yceffort
20 POSTS

Devops 1

  • ◆ Core Web Vitals 직접 수집하기 · 4편
    #web-performance#devops#debugging

    방문이 드문 블로그의 핵심 웹 지표를 직접 수집하기

    공용 관측 인프라에 맞춰 만든 핵심 웹 지표 수집 구성을 개인 블로그로 옮기기. 방문이 드물어 비어 있던 대시보드와 일반 브라우저에 맞지 않던 수집 시점을 고치며 찾은 조회 누락의 원인, 닷새치 데이터로 판단할 수 있는 범위

    56분
  • ◆ Core Web Vitals 직접 수집하기 · 3편
    #web-performance#devops#debugging

    앱 웹뷰의 핵심 웹 지표를 공용 관측 인프라로 보내기

    앱 웹뷰에서 측정한 핵심 웹 지표를 공용 관측 인프라로 보낼 때 일부 값이 누락되는 문제. 웹뷰의 이탈 이벤트부터 tail sampling, 누적 변환, Tempo 조회까지 재현 환경에서 확인하고, 수집 코드를 바꿔 해결할 수 있는 범위 가늠해보기

    수정 58분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 5편
    #kubernetes#devops#web-performance

    오토스케일링은 자동이지만 즉시가 아니다: HPA의 시간을 구간별로 실측한 기록

    트래픽을 12배로 올렸을 때 새 파드가 첫 요청을 받기까지 걸린 31.5초와, 그중 HPA가 부하를 알아채는 데 쓴 22.5초. 배포 직후 5분 동안 오토스케일러가 반응하지 못하는 조건, 스케일 다운이 계단식으로 내려오는 이유, 메모리 기준 HPA가 Node 앱에 맞지 않는 이유, KEDA로 미리 확장하는 방법

    수정 40분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 4편
    #kubernetes#devops#debugging

    파드는 어떻게 종료되는가: 배포 중 에러의 원인과 해결을 실측한 기록

    코드를 한 줄도 바꾸지 않은 배포에서도 생기는 요청 실패. 롤링 배포 중 실패한 요청을 유형과 시각으로 태깅해 찾은 원인 네 가지, 해법을 하나씩 더해 실패를 0건으로 줄인 순서, Next.js의 종료 처리 코드와 CrashLoopBackOff의 실제 재시작 간격

    수정 36분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 3편
    #kubernetes#networking#devops

    트래픽은 어떻게 내 파드에 도착하는가: ClusterIP부터 port-forward까지

    Service의 ClusterIP는 어느 기계에도 붙어 있지 않은 IP인데 curl 요청은 어떻게 파드에 도착할까. kind 클러스터에서 iptables 규칙과 conntrack, EndpointSlice, 클러스터 DNS의 ndots, Gateway, port-forward를 차례로 확인하며 요청 경로 따라가기

    수정 48분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 2편
    #kubernetes#docker#devops

    내 Next.js 앱은 어떻게 파드가 되는가: 컨테이너와 파드를 직접 열어본 기록

    같은 Next.js 앱으로 만든 1.72GB와 208MB짜리 두 이미지. 사라진 1.5GB를 레이어에서 역추적하고, 컨테이너가 격리된 프로세스라는 것을 PID와 cgroup 파일로 직접 확인해보기

    수정 34분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 1편
    #kubernetes#devops

    프론트엔드 개발자를 위한 쿠버네티스 개념 지도: 파드에서 오토스케일러까지

    SSR을 운영하는 프론트엔드 개발자를 위해 클러스터 구성, 배포, 파드의 상태와 자원, 트래픽 경로, 오토스케일링 순서로 정리한 쿠버네티스 핵심 개념

    수정 40분
  • ◆ 프론트엔드 개발자가 알아야 할 쿠버네티스 · 6편
    #memory#nodejs#kubernetes

    Node.js 파드는 왜 그 크기인가: NODE_OPTIONS부터 파드 수까지 직접 재본 사이징

    같은 워크로드에 GC 튜닝 플래그 한 줄을 붙였더니 살아 있는 데이터는 그대로인데 201MB에서 593MB로 늘어난 peak RSS. V8 New Space를 직접 측정해 그 이유를 따라가며 정리한, 프론트엔드 개발자를 위한 Node.js 파드 사이징의 세 가지 기준

    수정 84분
  • ◆ Next.js의 현주소 · 2편
    #nextjs#serverless#oss

    Cloudflare가 Next.js를 다시 만든 이유

    vinext가 던진 질문은?

    39분
  • #blogging#devops#pwa

    [블로그] PWA 임시 중지

    내 돈

    3분
  • #docker#devops

    Dockerfile 작성 가이드

    갑자기 docker를 파는 이유는 22

    수정 14분
  • #docker#devops

    더 나은 Dockerfile 작성을 위한 best practice - 2022년 버전

    갑자기 docker를 파는 이유는

    수정 13분
  • #ci-cd#git#software-engineering

    프론트엔드 프로젝트를 위한 github CI workflow

    사랑해요 Github

    수정 11분
  • #serverless#devops#debugging

    Vercel에서 배포가 안됐던 이야기

    Vercel 고객센터랑 싸운썰 푼다.txt

    7분
  • #web-performance#ci-cd#devops

    github workflow로 lighthouse ci 추가하기

    점수의 노예가 되버린 나

    수정 6분
  • #nodejs#backend#devops

    Nodejs에서 로깅하기

    어쩌다 보니 nodejs도 하고 있🤣

    6분
  • #ci-cd#git#devops

    GitHub Actions cron이 제시간에 실행되지 않는 이유와 대안

    GitHub Actions schedule은 왜 수십 분씩 밀리는가. 구조적 원인과 정시 실행이 가능한 대안 정리.

    수정 7분
  • #web-performance#networking#algorithm

    더 나은 압축 알고리즘, Brotli

    왜 이걸 이제 알았나 자괴감 들고 괴로워

    수정 4분
  • #ci-cd#git#devops

    Github actions 요약

    # Github action ## Github action 은 무엇인가? github actions은 사용자 정의 소프트웨어 개발 라이프 사이클 워크 플로우를 github 레파지토리에 직접 만들수 있도록 도와주는 도구다. > GitHub Actions enables you to create custom software development life c...

    수정 9분
  • #git#ci-cd#devops

    Github 액션으로 스케쥴링 작업하기

    Github actions가 나오면서 cron job을 실행하기가 더 편해졌습니다. 굳이 내 컴퓨터를 24시간 돌리고 있을 필요도 없고, 비싼 돈 주며 어디 이상한 compute를 쓸 필요도 없어졌습니다. [물론 공짜로 쓸 수 있는 Cron 서비스](https://www.easycron.com/)도 있지만 아무래도 github 과 연동할 수 있다는 점이 큰...

    2분