쿠버네티스 포기하고 단순성으로 전환하는 이유

왜 쿠버네티스를 포기하고 단순성에서 행복을 찾았는가

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • DevOps 엔지니어, 인프라 관리자, 팀 리더
  • 중간 난이도: 인프라 복잡성과 도구 선택에 대한 실무 경험 필요

핵심 요약

  • 쿠버네티스는 복잡성과 시간 소모로 인해 실무에서 과도한 부담을 유발
  • Fargate, Fly.io, VPS 등 단순한 인프라 솔루션으로 전환하여 생산성 향상
  • "복잡성이 아니라 실용성"을 기준으로 인프라 결정을 수정

섹션별 세부 요약

1. 쿠버네티스 도입의 초기 기대

  • Kubernetes가 제공하는 자동 확장, 롤링 업데이트, 컨테이너 오케스트레이션 기능 강조
  • DevOps 문화에 대한 자부심 유발 (예: .yaml 파일 조작)
  • Netflix 등 대규모 인프라 사례로의 비유 사용

2. 쿠버네티스 사용 중 발생한 문제점

  • 라이브니스 프로브 설정 오류, 네트워크 이슈, YAML 인덴트 오류로 인한 프로덕션 다운타임
  • DevOps 팀이 클라우드 제공자 SRE 역할을 수행하는 상황 발생
  • 인프라 관리가 애플리케이션 개발보다 우선순위가 되는 문제

3. 쿠버네티스 포기 결정과 대안 탐색

  • 팀 내부 회의에서 "실제로 필요한 인프라"에 대한 재검토
  • 필요한 기능: 빠른 배포, 간단한 롤백, 고가용성, Dev 환경의 용이성
  • Fargate, Fly.io, VPS 등 단순한 솔루션 탐색

4. 단순한 솔루션의 성공 사례

  • Fargate: AWS 기반의 자동 프로비저닝, 노드 관리 불필요
  • Fly.io: fly deploy 명령어로 간단한 배포, 전역 엣지 배포 지원
  • VPS + GitHub Actions: 예측 가능한 인프라, YAML 복잡성 제거

5. 결과와 문화적 변화

  • 배포 시간 단축, 다운타임 감소, 온콜 팀의 스트레스 감소
  • "Kubernetes가 필요했던 적 없다"는 인식 확산
  • 팀원의 생산성과 자신감 향상, 기능 개발 속도 증가

결론

  • "복잡성이 아니라 실용성"을 기준으로 인프라 선택하는 것이 핵심
  • Fargate, Fly.io 등 단순한 솔루션은 복잡성 감소와 생산성 향상에 효과적
  • 과도한 인프라 선택은 미래의 확장성보다 현재의 실용성을 희생하는 것