이 랩은 확인 및 정리할 내용이 있어 2편에 걸쳐 분리하여 포스팅 하고자 한다.먼저 1편을 정리한다.
개요
Azure DevOps 서비스는 팀이 모든 플랫폼을 대상으로 하는 모든 앱에 대해 지속적인 통합, 테스트 및 배포를 통해 애플리케이션 개발 수명주기를 현대화하고 아이디어에서 배포로 이동할 수 있도록 지원한다.
Azure DevOps 서비스는 Visual Studio, Eclipse, IntelliJ, Android Studio, XCode 등을 포함한 모든 개발 도구와 함께 작동하여 개발자가 Azure DevOps를 쉽게 사용할 수 있도록 한다.
이 랩에서는 Azure DevOps를 사용하고 Eclipse를 사용하는 Java 개발자를 위한 일반적인 종단간 워크 플로를 안내한다. 운전자가 여행 내역에 액세스하고 수집된 요금을 볼 수 있는 포털을 제공하는MyShuttle이라는 가상 고객을 사용할 것이다. 이것은 Apache Tomcat에서 실행되고 MySQL을 데이터베이스로 사용하는 JSP/Servlet 기술에 구축된 Java 애플리케이션이다. Ubuntu 데스크톱 스테이션에서 개발하고 Azure에 앱을 배포한다.
이 랩에서 다루는 것
이 랩에서는 접근 방식을 모두 다루며 다음 태스크가 수행된다.
샘플 데이터 및 사용자로 Azure DevOps 조직 팀 프로젝트 프로비전
Eclipse 용 Azure DevOps 플러그인인Eclipse Photon및Team Explorer Everywhere설치
Azure Toolkit for Eclipse 설치 및 탐색
Azure Build 파이프라인을 설정하여 코드를 빌드 및 테스트한 다음 Azure Container Registry로 푸시한다.
Azure Web App을 설정하고 Azure Web App에 이미지를 배포하도록 Azure 릴리즈파이프 라인 구성한다.
1. Eclipse Java IDE를 연다. Eclipse를 처음 실행할 때 작업영역을 선택하라는 메시지가 나타날 것이다. 이클립스를 기본값으로 사용하고 다시 확인하지 않으려면 폴더를 지정하고 "Use this as the default and do not ask again" 확인란을 누른다.
우리는 마이크로소프트의 이클립스를 위한 공식 플러그인Team Explorer Everywhere (TEE)를 설치하여Azure DevOps와 Azure DevOps서버를 이클립스 기반 IDE와 연결할 것이다. Linux, Mac OS X 및 Windows에서 지원되며 Eclipse 4.2에서 4.6을 기반으로하는 IDE와 호환된다. 우리는 또한Azure Toolkit for Eclipse를 설치할 것이다.Azure Toolkit for Eclipse는 이클립스 개발 환경에서 클라우드 애플리케이션을 쉽게 만들고 개발하고 테스트하고Azure에 배포할 수 있는 템플릿과 기능을 제공한다.
2. Eclipse가 시작된 후Help|Install New Software를 설치하여 설치 대화 상자 페이지를 가져온다.
8. Team Explorer 보기에서Connect to a Team Foundation Server or Team Services account할 링크를 클릭한 다음 Azure DevOps 조직(https://your-account-name.visualstudio.com)의 이름을 입력하고Next 버튼을 누른다.
9. "Connect to a Team Foundation Server or Team Services account"옆 "Servers…" 버튼을 누른다. "Add/Remove Team Foundation Server" 패널에서 "Add…"를 누르고 "Add Team Foundation Server" 패널에 Azure DevOps 조직의 이름(https://{your-account-name}.visualstudio.com)을 입력한다. 그런 다음Enter Credentials를 누른다.
(원문의 지침대로 진행이 안되어 PAT 방식을 통한 인증을 수행한다.)
10. Personal access token (all scope)를 선택하고 Azure DevOps에서 생성한 전체 권한의 PAT를 붙여넣고 OK를 클릭한다.
11. Eclipse로 돌아가서 장치 로그인 창에서 확인 버튼을 누른다. 이제 Azure DevOps 조직이 연결할 서버 목록에 표시되어야한다. 현재 창을 닫으려면 "Close"버튼을 누른 다음 "Next" 버튼을 눌러 서버에 연결한다.
실습2: Eclipse를 사용하여 Azure DevOps Services Git repo에서 MyShuttle 복제
1. Team Explorer 패널에서Git Repositories를 선택한다. 그러면 프로젝트의 모든 Git 저장소가 나열된다.
2. 팀 프로젝트에서 MyShuttle 리포지토리를 마우스 오른쪽 단추로 클릭하고Import Repository를 선택한다.
상위 디렉토리 및 repo 폴더 이름의 기본값을 계속 사용하고Next버튼을 누른다. 그러면 저장소가 VM에 복제된다.
3. 저장소에 저장된 Eclipse 프로젝트가 없다. 이제 마법사를 닫을 수 있다. Eclipse 프로젝트 대신 Maven 프로젝트로 프로젝트를 가져온다. "Import Projects from Team Foundation Server" 창에서Cancel버튼을 클릭한다.
4. 코드가 지역 리포에 복제되었다. 우리는 그 곳으로부터 불러올 수 있다. 이클립스에서File -> Import…를 선택하여 Import window를 연다. 가져오기 창에서 메이븐 폴더를 확장하고Existing Maven projects를 선택한다. 그런 다음Next단추를 누른다.
루트 디렉토리의 경우 "C:\Users{your-user-name}\git\MyShuttle"의 루트 디렉토리 경로에서 찾아보기 버튼을 클릭하거나 입력한다. pom.xml 파일은 Maven 프로젝트를 나타내는 프로젝트 아래에 나타나야 한다. 또한 Add project(s) to working set옆의 확인란을 클릭하여 작업 세트에myshuttle을 추가하여 패키지 탐색기 창에서 별도의 프로젝트로 액세스할 수 있다. 그런 다음Finish를 클릭한다.
5. Eclipse 상단의 툴바에서Window -> Show View -> Package Explorer를 클릭하여 Eclipse의 패키지 탐색기에서 myshuttle 프로젝트를 본다 (패키지 탐색기 보기를 보려면 다른 창을 최소화해야 할 수 있음).
실습3: Docker 이미지를 빌드하기위한 Azure Pipeline 만들기
이 태스크에서는 이미지를 빌드하고 Azure Container Registry에 푸시할 Azure Pipelines 빌드 정의를 구성한다.
2. + Create a resource를 선택하고Container Registry를 검색한다.Create를 선택한다. Create Container Registry대화 상자에서 서비스 이름을 입력하고 새 리소스 그룹을 만들고 위치를 선택하고 Review + Create를 선택한다.
ACR 생성 후 Access keys에서 Admin user를 활성화한다.
3. Azure DevOps 조직으로 돌아가 Pipelines –> Pipelines 허브를 클릭하고MyShuttleDockerBuild빌드를 편집한다. 이 빌드 정의에는 pom.xml 파일을 빌드하는maven 태스크가 포함되어 있다. Maven 태스크에서 다음 매개 변수 값을 설정한다.
Parameter
Value
Notes
Options
-DskipITs -settings ./maven/settings.xml
빌드 중 통합 테스트를 건너 뛴다.
Code Coverage Tool
JaCoCo
커버리지 도구로 JaCoCo를 선택한다.
Source Files Directory
src/main
JaCoCo의 소스 파일 디렉토리를 설정한다.
4. 스테이징 디렉터리에 아티팩트를 복사하고 Azure DevOps (또는 파일 공유)에 게시하는Copy및 Publish 태스크가 있다.
5. 다음으로Docker Compose 태스크를 사용하여 이미지를 빌드하고 게시한다. 2개의 Docker compose 태스크인Build an image및Push an image의 설정은 다음과 같다.
Parameter
Value
Notes
Container Registry Type
Azure Container Registry
이전에 만든 Azure Container Registry에 연결하기위한 것이다.
Azure Subscription
Your Azure subscription
레지스트리가 포함된 구독을 승인해야한다.
Azure Container Registry
Your registry
이전에 만든 Azure Container 레지스트리를 선택해야한다.
Image Name
Web:$(Build.BuildNumber)
빌드의 각 인스턴스에 대해 고유한 태그를 설정한다.
Include Latest Tag
Check (set to true)
이 빌드에서 생성 된 이미지에latest태그를 추가한다.
6. 이 빌드를 저장하고 대기열에 넣으려면 "Save and Queue"버튼을 클릭한다.Hosted Ubuntu 1604에이전트를 사용하고 있는지 확인한다.
7. 빌드는 이전에 만든Azure Container Registry로 이미지를 푸시한다.
8. Eclipse 내의Azure Explorer보기에서 이미지가 제대로 푸시되었는지 확인할 수 있다.Windows > Show View를 선택하고Other…를 선택한다.Azure Explorer를 검색하고Open을 선택한 후 클릭한다. 마우스 오른쪽 버튼을 클릭하여 Azure에Sign in한 다음 Azure Container Registry를 새로 고친다. 마우스 오른쪽 버튼을 클릭하고Open ACR Explorer를 선택한다 빌드 번호로 태그가 지정된 이미지를 확인한다.