본문 바로가기

Cloud solutions

#008) CI/CD cloud solution (자동화 솔루션 with Azure)

CI/CD for VMs by Azure

 


Azure 의 컴퓨팅 서비스, Virtual Machines 을 중심으로 앱 개발시 CI/CD 자동화 파이프라인을 위한 애저의 기본 아키텍쳐이다.

Git 리포지토리에서 부터 시작하여 코드를 자동으로 빌드, 테스트하여 구축을 통해 업데이트된 코드를 잘 배포하고

관련한 정보들을 한눈에 파악하고 분석까지 가능하도록 한다.

 

CI ( Continuous Integration ) - 지속적 통합으로 새로운 업데이트 검증과 오류 발견에 신속히 대응할 수 있습니다.
예시로 여러 개발자들이 각각 개발한 코드를 병합 ( merge ) 할때 오류를 최소화 하기 위해 CI 를 통해 지속적으로
코드 통합을 시도해서 테스트 할 수 있습니다. 
CD ( Continuous Delivery/Deployment ) - 지속적 배포로 자동으로 배포할 수 있는 방법 입니다.
즉 코드 변경사항이 있을 때 직접 매번 배포하지 않아도 자동으로 배포해주어 수고로움을 덜어 줍니다.


 

 

Visual Studios 를 통해 어플리케이션 소스코드를 변경하고 Git repositories 를 통해

Azure Resource Manager 와 변경된 코드를 Commit 시킴

Visual Studios - Microsoft 에서 개발된 통합된 개발 환경 서비스 

Git repositories - Git 프로젝트에 있는 코드 파일에 변경사항을 저장하는 곳

Azure Resource Manager - 개발,관리,구축 및 보안을 아우르는 하나의 플랫폼을 제공해주는 서비스로 Azure 의 IaaS 

 

Azure DevOps Pipeline 을 통해 지속적인 코드빌드,테스트와 배포를 진행함

Azure DevOps Pipeline - Azure 의 대표적인 CI/CD 서비스

 

 Azure DevTest Labs 에 QA 환경을, Virtual machines 에 각각 staging, production 환경을 구축함

 Azure DevTest Labs - 재사용 가능한 탬플릿 환경을 쉽게 조성하여 구축에 따른 비용과 자원을 효율적으로 활용

Virtual machines- Azure 의 가상머신으로 빠르고 쉽게 하나의 컴퓨팅 시스템을 구축하여 필요한 만큼 사용할 수 있음

 

 

Azure application insights 를 통해 어플리케이션과 서비스에 나오는 이슈들이나 리소스정보들을 확인하고 분석함

Azure application insights- 어플리케이션의 포퍼먼스를 모니터링하고 분석하며 일어나는 문제들을 진단해주는 서비스

 

엔지니어는 워크플로우에 대한 정보를 리뷰하고 Azure DevOps 에 업데이트 시킴

Azure DevOps- 개발자들을 위한 서비스로 프로젝트나 코드 개발에 대한 기반환경으로 계획,협동 및 구축 할 수 있는 플랫폼을 제공하는 서비스

 

 

 

reference- https://docs.microsoft.com/en-us/azure/architecture/solution-ideas/articles/cicd-for-azure-vms