DevOps

DevOps는 소프트웨어 개발(Development)과 IT 운영(Operations)을 통합하는 문화, 철학, 방법론 및 도구의 집합입니다.

핵심 원칙

  • 문화적 변화: 개발팀과 운영팀 간의 협업 강화
  • 자동화: 반복적인 작업의 자동화를 통한 효율성 증대
  • 지속적 통합/배포(CI/CD): 코드 변경사항을 자동으로 빌드, 테스트, 배포
  • 모니터링 및 피드백: 시스템 성능과 사용자 경험에 대한 지속적인 모니터링
  • 인프라스트럭처 as 코드(IaC): 인프라 구성을 코드로 관리

DevOps 도구

CI/CD 도구

구성 관리

컨테이너화 및 오케스트레이션

모니터링 및 로깅

인프라스트럭처 as 코드

DevOps 프로세스

  1. 계획(Plan): 요구사항 정의 및 작업 계획
  2. 코드(Code): 애플리케이션 코드 개발
  3. 빌드(Build): 코드 컴파일 및 빌드
  4. 테스트(Test): 자동화된 테스트 실행
  5. 릴리스(Release): 배포 준비 및 승인
  6. 배포(Deploy): 프로덕션 환경에 배포
  7. 운영(Operate): 시스템 운영 및 관리
  8. 모니터링(Monitor): 성능 모니터링 및 피드백 수집

DevOps의 이점

  • 더 빠른 제품 출시 및 시장 대응력 향상
  • 안정적인 소프트웨어 배포
  • 개발 및 운영 간 협업 강화
  • 자동화를 통한 인적 오류 감소
  • 지속적인 피드백을 통한 제품 품질 향상
  • 비용 절감 및 효율성 증대

관련 개념

  • MLOps: 머신러닝 모델의 개발 및 배포를 위한 DevOps 확장
  • DataOps: 데이터 분석 및 처리를 위한 DevOps 확장
  • GitOps: Git을 중심으로 한 인프라 및 애플리케이션 배포 방식
  • SRE(Site Reliability Engineering): 구글에서 시작된 운영 중심의 엔지니어링 접근법
  • LocalStack: 로컬 AWS 에뮬레이터
  • kumo: 로컬 AWS 서비스 에뮬레이터