DevOps
DevOps는 소프트웨어 개발(Development)과 IT 운영(Operations)을 통합하는 문화, 철학, 방법론 및 도구의 집합입니다.
핵심 원칙
- 문화적 변화: 개발팀과 운영팀 간의 협업 강화
- 자동화: 반복적인 작업의 자동화를 통한 효율성 증대
- 지속적 통합/배포(CI/CD): 코드 변경사항을 자동으로 빌드, 테스트, 배포
- 모니터링 및 피드백: 시스템 성능과 사용자 경험에 대한 지속적인 모니터링
- 인프라스트럭처 as 코드(IaC): 인프라 구성을 코드로 관리
DevOps 도구
CI/CD 도구
구성 관리
컨테이너화 및 오케스트레이션
모니터링 및 로깅
인프라스트럭처 as 코드
DevOps 프로세스
- 계획(Plan): 요구사항 정의 및 작업 계획
- 코드(Code): 애플리케이션 코드 개발
- 빌드(Build): 코드 컴파일 및 빌드
- 테스트(Test): 자동화된 테스트 실행
- 릴리스(Release): 배포 준비 및 승인
- 배포(Deploy): 프로덕션 환경에 배포
- 운영(Operate): 시스템 운영 및 관리
- 모니터링(Monitor): 성능 모니터링 및 피드백 수집
DevOps의 이점
- 더 빠른 제품 출시 및 시장 대응력 향상
- 안정적인 소프트웨어 배포
- 개발 및 운영 간 협업 강화
- 자동화를 통한 인적 오류 감소
- 지속적인 피드백을 통한 제품 품질 향상
- 비용 절감 및 효율성 증대
관련 개념
- MLOps: 머신러닝 모델의 개발 및 배포를 위한 DevOps 확장
- DataOps: 데이터 분석 및 처리를 위한 DevOps 확장
- GitOps: Git을 중심으로 한 인프라 및 애플리케이션 배포 방식
- SRE(Site Reliability Engineering): 구글에서 시작된 운영 중심의 엔지니어링 접근법
- LocalStack: 로컬 AWS 에뮬레이터
- kumo: 로컬 AWS 서비스 에뮬레이터