DevOps 개요


DevOps란?

DevOps는 Development(개발)와 Operations(운영)의 합성어로, 개발과 운영을 통합하여 소프트웨어 개발 생명주기를 단축하고 품질을 향상시키는 문화, 방법론, 도구의 조합입니다.


DevOps의 목적

1. 개발과 운영 간 소통 강화

  • 개발팀과 운영팀 간 장벽 제거
  • 협업 문화 구축

2. 배포 속도 향상

  • 자동화를 통한 빠른 배포
  • 지속적인 통합 및 배포 (CI/CD)

3. 품질 향상

  • 자동화된 테스트
  • 빠른 피드백 루프

4. 안정성 보장

  • 자동화된 모니터링
  • 빠른 문제 해결

DevOps 핵심 개념

1. CI/CD (지속적 통합 / 지속적 배포)

코드를 자주 통합하고 자동으로 빌드/테스트한 뒤, 프로덕션 환경까지 자동으로 배포하는 파이프라인입니다.

  • 🌐 네트워크 계층: L7 (응용 계층) - 주로 HTTP/HTTPS 웹훅(Webhook) 및 API 통신을 통해 코드 저장소와 CI/CD 툴 간의 자동 배포 트리거가 발생합니다.
  • 🛠️ 오픈소스 도구: Jenkins, GitLab CI, ArgoCD (Kubernetes 특화)
  • ☁️ 상용/클라우드 서비스: GitHub Actions, AWS CodePipeline, CircleCI
  • 💡 실제 사용 예시: 개발자가 GitHub에 코드를 Push하면, GitHub Actions가 이를 감지하여 도커(Docker) 이미지를 빌드합니다. 이후 ArgoCD가 EKS(Kubernetes) 환경에 새로운 버전의 애플리케이션을 블루/그린 방식으로 단 1초의 중단 없이 배포합니다.

2. Infrastructure as Code (IaC)

수동으로 서버를 세팅하는 대신, 코드를 통해 인프라를 프로비저닝하고 애플리케이션을 컨테이너 환경에서 일관되게 실행합니다.

  • 🌐 네트워크 계층: L3(네트워크 계층 - VPC, 서브넷, 라우팅 테이블)부터 L7(로드밸런서 규칙 설정)까지 인프라 전반의 네트워크 구성을 코드로 제어합니다.
  • 🛠️ 오픈소스 도구: Terraform (인프라 프로비저닝), Ansible (설정 관리), Docker, Kubernetes (컨테이너 오케스트레이션)
  • ☁️ 상용/클라우드 서비스: AWS CloudFormation, AWS EKS, GCP GKE
  • 💡 실제 사용 예시: terraform apply 명령어 하나로 AWS VPC 설정(L3), EC2 인스턴스 생성, ALB(L7 로드밸런서) 연결 등 복잡한 인프라가 5분 만에 스테이징 환경과 동일하게 프로덕션 환경에 자동 생성됩니다.

3. 트래픽 제어 및 고가용성 (Load Balancing & API Gateway)

단순한 인프라 자동화를 넘어, 사용자의 트래픽을 여러 서버로 분산시켜 부하를 조절하고 API 라우팅을 중앙에서 처리합니다.

  • 🌐 네트워크 계층:
    • L4 (전송 계층): IP와 포트(TCP/UDP) 기반의 빠르고 단순한 트래픽 분산 (예: L4 스위치)
    • L7 (응용 계층): HTTP 헤더, URL Path, 쿠키 기반의 정밀한 라우팅 및 Rate Limiting(요청 수 제한)
  • 🛠️ 오픈소스 도구: Nginx (L7), HAProxy (L4/L7), Kong, Apache APISIX (API Gateway)
  • ☁️ 상용/클라우드 서비스: AWS ALB(L7) / NLB(L4), AWS API Gateway, Cloudflare
  • 💡 실제 사용 예시: 특가 이벤트 등으로 트래픽이 폭주할 때, 앞단에 Nginx(L7)를 두어 단순 이미지 요청(/images/*)은 정적 캐시 서버로 라우팅하고, 결제 API 요청은 여러 대의 백엔드 서버로 고르게 분산시킵니다. 악의적인 매크로 접근은 API Gateway에서 초당 요청 수를 제한하여 서버다운을 방어합니다.

4. 관측성 (Observability : 모니터링 및 로깅)

시스템의 상태(Metrics, Logs, Traces)를 실시간으로 수집하여 장애를 사전 예방하고, 사후 분석을 통해 병목 지점을 찾습니다.

  • 🌐 네트워크 계층: L3/L4 계층의 트래픽 대역폭(Bandwidth) 및 포트 상태 모니터링부터, L7 계층의 HTTP 5xx 에러율 및 애플리케이션 쿼리 지연 시간(Latency)까지 시스템 전 구간을 감시합니다.
  • 🛠️ 오픈소스 도구: Prometheus(지표 수집) + Grafana(대시보드 시각화), ELK Stack (Elasticsearch, Logstash, Kibana - 로그 수집 및 검색), Jaeger (분산 추적)
  • ☁️ 상용/클라우드 서비스: Datadog, AWS CloudWatch, Splunk, New Relic
  • 💡 실제 사용 예시: 배달 앱에서 주문 폭주 시 사용자 문의가 들어오기 전에, Grafana에서 ‘주문 API HTTP 500 에러 스파이크’ 알림이 Slack으로 전송됩니다. 담당자는 Kibana(ELK)에서 해당 시간대의 에러 로그를 검색해, 외부 PG사(결제대행사) 연동 타임아웃 문제를 빠르게 파악하고 백업 결제 시스템으로 즉시 전환합니다.

DevOps 이점

  • 빠른 배포: 수 주에서 수 시간으로 단축
  • 높은 품질: 자동화된 테스트로 버그 감소
  • 안정성: 자동화로 인한 일관성
  • 협업: 개발과 운영의 통합
  • 비용 절감: 효율성 향상

참고

  • DevOps는 문화와 방법론이 먼저이고, 도구는 이를 지원합니다
  • 조직 문화 변화가 필수입니다
  • 점진적으로 도입하는 것이 좋습니다