Fruit Smoothies의 평가 웹 사이트는 여러 구성 요소로 구성된다. 웹 프런트 엔드, 캡처된 데이터를 저장하는 문서 데이터베이스 및 웹 프런트 엔드가 데이터베이스와 통신할 수 있도록 하는 RESTful 평가 API가 있다. 개발 팀은 MongoDB를 평가 웹 사이트에 대해 선택한 문서 저장 데이터베이스로 사용하고 있다. 이전 단원에서 Helm을 사용하여 MongoDB를 배포했다. 이 단원에서는 배포를 계속하고 평가 API를 배포한다. 평가 API는 Express 프레임워크를 사용하여 작성된 Node.js 애플리케이션이다. 이 애플리케이션은 MongoDB 데이터베이스에서 항목 및 해당 평가를 검색하고 저장한다. Azure Container Registry 인스턴스를 이미 만들었음을 기억하실 것이다..
Fruit Smoothies의 평가 웹 사이트는 여러 구성 요소로 구성된다. 웹 프런트 엔드, 캡처된 데이터를 저장하는 문서 데이터베이스 및 웹 프런트 엔드가 데이터베이스와 통신할 수 있도록 하는 RESTful API가 있다. 개발 팀은 MongoDB를 평가 웹 사이트에 대해 선택한 문서 저장 데이터베이스로 사용하고 있다. 이 실습에서는 Helm을 사용하여 AKS(Azure Kubernetes Service) 클러스터로 MongoDB를 배포한다. 또한 Kubernetes 시크릿을 사용하여 MongoDB 연결 사용자 이름 및 암호를 저장하는 방법도 확인할 수 있다. 이 예제 아키텍처는 애플리케이션에서 데이터를 저장하는 데 사용할 클러스터에 MongoDB를 배포한다. 이 방법은 테스트 환경과 개발 환경에서 ..
Fruit Smoothies 소프트웨어 개발 및 운영 팀은 새로 개발된 모든 애플리케이션을 컨테이너화하기로 했다. 컨테이너화된 애플리케이션은 팀 상호 간에 혜택을 제공한다. 예를 들면 다음과 같다. 호스팅 환경 관리의 용이성 소프트웨어 딜리버리의 지속성 보장 서버 하드웨어의 효율적 사용 환경 간 애플리케이션의 이식성 팀에서는 모든 컨테이너를 중앙의 안전한 위치에 저장하고 결정을 내릴 때 Azure Container Registry를 사용하도록 했다. 이 실습에서는 다음을 수행하게 된다. Azure CLI를 사용하여 컨테이너 레지스트리 만들기 Azure Container Registry 작업을 사용하여 컨테이너 이미지 빌드 Azure Container Registry에서 컨테이너 이미지 확인 Azure C..
Fruit Smoothies는 Kubernetes를 컴퓨팅 플랫폼으로 사용하고자 한다. 개발 팀은 이미 애플리케이션 개발 및 배포에 컨테이너를 사용하고 있으며 오케스트레이션 플랫폼을 사용하면 애플리케이션의 빠른 빌드, 제공 및 스케일링 할 수 있다. 이렇게 하려면 Kubernetes 환경의 기반을 배포해야 한다. 이 실습에서는 다음을 수행한다. 새 리소스 그룹 만들기 클러스터 네트워킹 구성 Azure Kubernetes Service 클러스터 만들기 kubectl을 사용하여 Kubernetes 클러스터에 연결 Kubernetes 네임스페이스 만들기 새 리소스 그룹 만들기 먼저 리소스를 배포할 리소스 그룹을 만들어야 한다. 1. Azure 계정으로 로그인 하고 우측 상단의 Azure Cloud Shell을..
이번에 소개할 내용은 MS Learn의 학습 모듈 중 Azure Kubernetes Service 워크샵을 토대로 한다. 전반적으로 내용이 좋아 다시 한번 정리해볼겸 시리즈로 엮어서 진행해 나가려 한다. 원문의 내용을 최대한 살리되 어색한 번역 및 최근 업데이트 된 내용에 대해 현행화를 하고 필요 시 추가적인 내용을 함께 정리하며 진행해 나가고자 한다. 모쪼록 이 글이 AKS에 대한 관심을 가지시는 분들에게 도움이 되길 바란다. 소개 전국적인 스무디 매장 체인인 Fruit Smoothies의 IT 엔지니어라고 가정해보라. 회사의 개발 팀은 사용자가 회사의 다양한 스무디 맛을 평가할 수 있도록 하는 새로운 웹 사이트를 개발했다. Fruit Smoothies는 전 세계에 대규모 팔로워 기반이 있는 여러 아울..
이번 글에서는 어떻게 Azure DevOps의 6가지 주요 기능을 활용하여 애플리케이션 생명주기를 관리할 수 있는지에 대해 쉽게 이해할 수 있도록 정리한 Subhankar Sarkar님의 "AZURE DEVOPS – MANAGE YOUR APPLICATION LIFECYCLE IN CLOUD" 라는 글을 소개하고자 한다. 이 글을 한글화하는데 흔쾌히 허락해주신 Subhankar Sarkar님에게 다시 한번 감사의 말씀을 전한다. ALM(Application Lifecycle Management) 이란? 애플리케이션 라이프사이클 관리(AML)는 컴퓨터 프로그램의 제품 생명주기를 관리하는 것으로 요구사항 관리, 소프트웨어 아키텍처, 컴퓨터 프로그래밍, 소프트웨어 테스트, 소프트웨어 유지보수, 변경 관리, 지..
Azure Repo 및 Pipeline 이벤트 게시하기 이제 Azure DevOps에 Slack을 통합하였으니 Azure Repo 및 Pipeline에 대한 이벤트를 게시하도록 구성하고 검증하도록 해보자. 참고로 실습을 위해 필요한 Azure DevOps내 프로젝트 구성 (소스 및 파이프라인 구성 등) 내용은 생략한다. 각 자 구성된 환경을 기준으로 진행하면 된다. Service hooks 추가하기 1. 통합하려는 프로젝트로 이동하여 프로젝트 설정으로 이동한다. 1.1 Service hooks 화면에서 를 눌러 Slack을 선택한다. 1.2 트리거 할 이벤트 타입으로 "Code pushed"를 선택하고 레파지토리를 선택 후 Next를 클릭한다. 1.3 이전 섹션에서 복사해 둔 Slack 웹훅 URL을 붙..
개요 이번 글에서는 Azure DevOps에 Slack을 통합하여 Azure Board, Repo 및 Pipelines의 이벤트를 게시하는 내용을 다루고자 한다. 즉, 빌드 완료, 코드의 변경, PR, Work Item의 변경 등과 같은 이벤트를 Slack의 채널 상에 메시지 형태로 게시하는 내용이다. 이를 통해 DevOps가 추구하는 핵심 가치 중 하나인 민첩성을 확보할 수 있으며 더불어 Value Stream을 개선할 수 있다. 즉 고객에게 가치를 주지 않는 불필요한 커뮤니케이션 시간을 줄일 수 있다. 먼저 첫 번째 Azure Board 상의 이벤트를 감지하여 Slack으로 공지하는 내용을 다루고자 한다. Slack 웹후크 URL 준비하기 1. Slack에 채널을 생성한다. 또는 기존 채널을 활용할 ..
실습 3: 릴리즈 게이트를 추가 한 후 애플리케이션 업데이트 및 배포 이 실습에서는 애플리케이션에서 약간의 코드 변경을 수행하고 빌드 및 릴리즈를 트리거하는 리포지토리에 커밋한다. 진행에 앞서 다음 작업을 먼저 수행한다. 1. Bugs 쿼리의 Security...를 클릭한다. 2. "ReleaseGates...." 라는 Users를 검색하여(각자의 프로젝트 이름이므로 다를 수 있다.) 추가하고 Read를 "Allow" 한다. 1. Repos로 이동하여 파일을 클릭한다. "src/PartsUnlimitedWebsite/Views/Home/Index.cshtml"경로로 이동하여 30행의 "20%"에서 "30%"로 내용을 수정한다. 수정 후 변경 사항을 Commit 한다. 2. PartsUnlimited-CI..
실습 1: 릴리즈 파이프라인 구성 위의 Azure DevOps 데모 생성기로 만든 프로젝트로 이동한다. 릴리즈 태스크 업데이트 1. Pipelines 아래 Releases로 이동하여 PartsUnlimited-CD 파이프라인의 Edit 을 선택한다. 이 파이프라인에는 두 가지 환경이 있다. 즉, Canary Environment와Production 이다. “1 job, 2 tasks”링크를 클릭하여 태스크를 확인하고 업데이트 한다. 2. Canary environment에는 패키지를 Azure Web App에 게시하고 배포 후 애플리케이션을 지속적으로 모니터링 할 수 있는 두 가지 태스크가 있다. 3. Canary Environment 스테이지를 선택한다. Azure 구독 필드의 드롭 다운에서 Azure..