Devops는 개발의 기획부터 모니터링까지의 계획을 수립하고 이를 반복적으로 수행합니다. 이러한 일련의 과정의 반복을 DevOps라이프사이클이라고 부르며 하나의 라이프사이클이 끝나면 새로운 라이프사이클이 탄생합니다. 이번시간에는 DevOps 라이프사이클의 각 단계에 해야할 일과 자주사용되는 툴에 대해서 알아보도록 하겠습니다.
계획수립 단계에서는 다음 배포에 추가할 우선 순위가 높은 기능들을 우선적으로 탐색합니다. 탐색한 기능을 작업목록(백로그)에 추가합니다.
일반적으로 Gira, GitHub Issuee등을 활용하여 제품의 백로그를 작성합니다.
2) Code
코딩단계는 백로그에 작성된 작업항목들을 토대로 코딩하고 빌드하는 단계입니다. 작성한 코드를 자동화 배포 파이프라인을 통해 코드베이스로 통합하기 전, 로컬환경에서 작업하고 테스트를 먼저 진행합니다.
코드베이스로는 SVN, GitHub등이 사용됩니다.
3) Build
빌드 단계는 작성된 소스 코드를 실행 가능한 형태로 변환하는 과정입니다. 이 단계에서 코드는 컴파일되고, 필요한 라이브러리와 종속성이 포함되며, 최종 배포를 위한 패키지(JAR, WAR, Docker Image)가 생성됩니다
빌드도구로는 Maven, Gradle, Ant / Vite / Docker등이 사용됩니다.
4) Test & Analysis
테스트 및 분석 단계는 빌드된 코드의 품질과 안정성을 검증하는 과정입니다. 이 단계는 버그를 조기에 발견하고, 코드의 품질을 유지하는 데 매우 중요합니다. 단위 테스트, 통합 테스트, 성능 테스트 등 다양한 테스트가 자동으로 수행됩니다.
테스트 및 분석 도구로는 Junit(단위 테스트), SonarQube(정적 코드 분석) 등이 사용됩니다.
5) Release & Deploy
릴리스 및 배포 단계는 테스트가 완료되고 검증된 코드를 실제 운영 환경에 배포하는 과정입니다. DevOps에서는 이 과정을 자동화하여 사람의 실수를 줄이고 배포 속도를 높입니다.
배포 도구로는 Jenkins, Ansible, Terraform, Kubernetes 등이 사용됩니다.
6) Operate & Monitor
운영 및 모니터링 단계는 배포된 애플리케이션의 성능과 상태를 지속적으로 관찰하는 과정입니다. 시스템의 오류, 성능 저하, 자원 사용량 등을 실시간으로 모니터링하여 문제가 발생하면 신속하게 대응할 수 있습니다. 수집된 데이터는 다음 개발 사이클의 계획(Plan)단계에 피드백되어 개선 사항을 반영하는 데 사용됩니다.