DevOps 애플리케이션 수명 주기 살펴보기
DevOps 사례에는 광범위한 범위가 있지만 기본 목표는 애플리케이션 수명 주기 관리를 최적화하는 것입니다. 가상의 회사 예제에서 기존 앱에서 업데이트된 기능이 있는 새 앱으로 마이그레이션하려면 애플리케이션 수명 주기의 모든 단계를 다시 검토해야 합니다. 따라서 DevOps 원칙이 계획에서 개발 및 전달, 운영에 이르기까지 각 단계가 구현되는 방식을 크게 변경하는 방법을 알아봅니다. 이 단원에서는 이러한 구현에 대한 개략적인 개요를 단계별로 설명합니다.
애플리케이션 수명 주기 단계
애플리케이션 수명 주기 단계에는 계획, 개발, 전달 및 작업이 포함됩니다.
계획 수립
계획 단계에는 개발할 소프트웨어의 기능과 기능을 간략하게 설명하고 정의하기 위해 고객의 요구 사항을 검토하는 작업이 포함됩니다. 이러한 소프트웨어는 개별 마이크로 서비스에서 여러 제품으로 구성된 포트폴리오에 이르기까지 다양할 수 있습니다. 결과는 애플리케이션의 개발 및 배포에 대한 소프트웨어 요구 사항, 범위 및 중요 시점을 정의합니다. DevOps 관점에서 이 단계의 주요 고려 사항에는 민첩성, 고객 중심 포커스, 맞춤 및 가시성이 포함됩니다.
발달
개발 단계에서는 애플리케이션 코드 개발의 모든 측면을 다룹니다. 이러한 측면에는 프로그래밍, 테스트 및 코드 검토가 포함됩니다. DevOps 사례를 준수하기 위해 코드는 공동 작업을 용이하게 하고 버전 관리를 지원하는 소스 제어 시스템에 있어야 합니다. 코드의 작업 버전은 후속 배달에 적합한 아티팩트를 빌드하는 데 사용됩니다. 이러한 아티팩트에서는 실행 가능한 이진 파일, 소프트웨어 라이브러리, 컨테이너 이미지, 설치 관리자 패키지, 구성 파일, 배포 스크립트 또는 설명서의 형태를 사용할 수 있습니다.
이 단계의 변경 내용은 개발 프로세스를 가속화하고 민첩성을 향상시키는 CI(연속 통합)라고 하는 자동화된 테스트 및 빌드를 통해 약간씩 적용해야 합니다.
배달
배달은 개발 단계에서 빌드된 아티팩트를 일관되고 안정적인 방식으로 프로덕션 환경에 배포하는 프로세스입니다. 이 단계의 궁극적인 목표는 CD(지속적인 업데이트)를 통한 완전한 자동화이지만, 일부 조직, 특히 DevOps 채택 초기 단계에서 수동 승인 또는 검사를 구현하도록 선택할 수 있습니다. DevOps 사례에 대한 신뢰도가 커짐에 따라 일반적으로 이러한 검사를 완전히 자동화할 수 있습니다. 예를 들어 스테이징 환경에 대한 배포의 성공적인 무인 확인은 프로덕션 환경으로 전환하기 위한 기초가 될 수 있습니다. 자동화는 배달 프로세스를 확장 가능하고 반복 가능하며 복원력을 높이는 데 도움이 됩니다(사용자 오류 가능성을 최소화). 이러한 접근 방식의 성공적인 구현의 핵심은 적절한 테스트, 관찰 가능한 측정 사용 및 지속적인 학습을 비롯한 DevOps 사례를 따르는 것입니다.
배달은 IaC를 통해 대상 환경의 인프라를 프로비전하고 구성하는 것도 고려해야 합니다. 인프라를 코드로 처리하면 일관성, 재현성 및 민첩성을 비롯한 다양한 이점이 제공됩니다.
운영
작업 단계에서는 프로덕션 환경에서 애플리케이션을 유지 관리, 모니터링 및 문제 해결합니다. DevOps 관점에서 이 단계의 주요 목표는 안정성 및 안정성, 신속한 인시던트 대응, 보안 및 규정 준수, 고객 만족도입니다. 어느 정도 이러한 목표에 도달하는 것은 측정 가능한 결과를 제대로 구현하는 데 달려 있습니다. 또한 DevOps 프로세스는 성능 메트릭, 응답성 및 향상된 기능 또는 성능 저하 기능을 비롯한 전반적인 사용자 환경과 같은 배포된 애플리케이션의 현재 상태를 반영하는 데이터를 제공하는 소위 피드백 루프 를 사용합니다.
이 단계에서는 개발, 운영 및 보안 팀 간의 최대 공동 작업 수준을 보장하는 것이 중요합니다. 이 단계는 연속 학습의 필수 소스로도 사용됩니다.
애플리케이션 수명 주기의 마지막 단계는 무엇인가요?
이름이 나타내고 이 단원의 시작 부분에 있는 이미지가 보여 주듯이 애플리케이션 수명 주기는 의도적으로 순환 프로세스입니다. 시작 및 서비스 해제 이벤트에 의해 결정되는 애플리케이션 수명 범위의 결정적 시작과 끝이 있습니다. 그러나 초기 배포(또는 이전의 빈도)에 따라 사용자 및 모니터링 데이터의 피드백은 후속 업데이트 및 애플리케이션의 진화를 알 수 있습니다.
비고
이 단원 전체에서 보안이 몇 번만 언급되었지만 DevSecOps 원칙에 따라 해당 역할은 애플리케이션 수명 주기 전반에 걸쳐 적용됩니다. 실제로 보안 관련 고려 사항은 초기 계획의 시작 부분에서 시작하여 각 단계에서 고려해야 합니다.