소개
이 모듈에서는 배포 패턴을 소개하며 배포 주기를 개선하고 기존 배포 패턴과 최신 배포 패턴을 검토하는 데 도움이 되는 마이크로 서비스 아키텍처를 설명합니다.
지속적인 업데이트는 연속 통합의 확장입니다. 고객에게 변경 내용을 빠르게 적용하고 유지 가능한 메서드를 사용해야 합니다.
지속적인 업데이트가 계속 진행되고 프로덕션 파이프라인을 통과하는 변경 내용이 고객에게 릴리스됩니다.
지속적인 업데이트는 릴리스 관리보다 큰 개념입니다.
지속적인 업데이트에서는 요청 시 소프트웨어를 제공할 수 있는지 확인하는 데 필요한 프로세스, 사람, 도구가 중요합니다.
배포는 지속적인 업데이트 프로세스 내에 있는 단 하나의 단계입니다. 요청 시 또는 하루에 여러 번 배포하려면 모든 필수 조건을 적용해야 합니다.
예를 들면 다음과 같습니다.
테스트 전략
테스트 전략을 적용해야 합니다. 소프트웨어의 유효성을 검사하기 위해 많은 수동 테스트를 실행해야 하는 경우에는 요청 시 제공에 병목 상태가 발생합니다.
코딩 사례
소프트웨어가 안전하고 유지 가능한 방식으로 작성되지 않은 경우에는 높은 릴리스 주기를 유지할 수 없습니다.
기술적인 문제의 양이 많기 때문에 소프트웨어가 복잡한 경우 코드를 빠르고 안정적으로 변경하기가 어렵습니다.
고품질 소프트웨어와 고품질 테스트를 작성하는 것은 지속적인 업데이트의 필수적인 부분입니다.
아키텍처
애플리케이션의 아키텍처는 항상 중요합니다. 하지만 지속적인 업데이트를 구현하는 경우 훨씬 더 중요할 수 있습니다.
소프트웨어가 다양한 구성 요소 간에 긴밀한 결합을 사용하는 모놀리식인 경우 소프트웨어를 지속적으로 제공하는 것이 어렵습니다.
변경된 모든 부분은 변경되지 않은 다른 부분에 영향을 줄 수 있습니다. 자동화된 테스트는 이러한 예기치 않은 많은 종속성을 추적할 수 있지만 여전히 어렵습니다.
다른 팀과 협력하는 경우에는 시간 문제도 있습니다. 팀 A가 팀 B의 서비스를 사용하는 경우 팀 A는 팀 B가 완료될 때까지 제공할 수 없습니다. 제공 시 또 다른 제약 조건이 도입됩니다.
대규모 소프트웨어 제품의 지속적인 업데이트는 복잡합니다.
더 작은 부분의 경우 더 쉽습니다. 따라서 대부분의 경우 소프트웨어를 더 작고 독립적인 부분으로 나누는 것은 좋은 해결 방법입니다.
이러한 문제를 해결하는 한 가지 접근 방식은 마이크로 서비스를 구현하는 것입니다.
연속 통합은 DevOps의 핵심 요소 중 하나입니다.
버전 제어 시스템에서 코드를 만든 후에는 코드를 지속적으로 통합하는 자동화된 방법이 필요합니다.
Azure Pipelines를 사용하여 모든 기능을 갖춘 플랫폼 간 CI 및 CD 서비스를 만들 수 있습니다.
기본 설정된 Git 공급자와 함께 작동하며 Azure를 비롯한 가장 중요한 클라우드 서비스에 배포할 수 있습니다.
이 모듈에서는 연속 통합 사례뿐만 아니라 개발 수명 주기, 해당 혜택, 속성 등에서 이를 구현하기 위한 핵심 요소를 자세히 설명합니다.
학습 목표
이 모듈을 마치면 학생 및 교수들은 다음을 수행할 수 있습니다.
- 배포 패턴을 설명합니다.
- 마이크로 서비스 아키텍처를 설명합니다.
- 클래식 및 최신 배포 패턴을 이해합니다.
- 아키텍처를 계획하고 디자인합니다.
사전 요구 사항
- DevOps의 정의 및 개념 이해
- 버전 제어 원칙을 잘 알고 있으면 도움이 되지만 반드시 알아야 하는 것은 아닙니다.
- 소프트웨어를 제공하는 조직에서 경험을 쌓는 것이 좋습니다.