소개
온-프레미스 서버에서 실행할 앱을 빌드하고 배포하는 Java 개발자라고 상상해 보십시오. 이러한 서버, 종속성 및 크기 조정(몇 가지 이름)을 오케스트레이션하는 것은 모두 어려운 프로세스입니다.
하드웨어를 에뮬레이트하는 가상 머신과 달리 컨테이너는 기본적으로 다른 프로세스로 호스트 운영 체제, 커널 및 하드웨어를 기반으로 직접 실행됩니다. 즉, 컨테이너에는 더 적은 시스템 리소스가 필요하므로 오버헤드가 훨씬 적고 앱 시작 시간이 빨라지고 주문형 크기 조정에 유용한 사용 사례가 있습니다.
컨테이너를 사용하면 앱과 종속성이 항상 컨테이너 이미지에서 격리되고 대규모로 배포할 준비가 되었는지 확인합니다.
이 모듈에서는 먼저 Java 앱을 컨테이너화합니다. 편의를 위해 사용할 기존 Java 앱을 선택했습니다. 개방형 인터넷에서 MIT 라이선스에 따라 공유되는 Flight Booking System for Airline Reservations는 Java Servlet 및 JSP(Java Server Pages)를 사용하여 만든 MVC(모델 뷰 컨트롤러) 아키텍처를 사용하여 빌드된, 샘플 항공사를 기반으로 하는 완전히 응답성이 뛰어난 샘플 웹 기반 항공편 예약 시스템입니다.
그런 다음 Dockerfile을 생성하고 컨테이너 이미지를 빌드하는 데 필요한 Docker 지침을 작성합니다. 다음으로, 컨테이너 이미지를 로컬로 실행하고 앱을 테스트합니다. 그런 다음, 컨테이너 이미지를 Azure Container Registry에 푸시하고 Azure Kubernetes Service에 배포합니다.
이 모듈을 마치면 Java 앱을 컨테이너화하고, 컨테이너 이미지를 Azure Container Registry로 푸시한 다음 Azure Kubernetes Service에 배포할 수 있습니다.
이 모듈에서는 자신의 Azure 구독(리소스를 만들고, 업데이트하고, 제거할 수 있는 액세스 권한이 있음)을 사용하여 리소스를 배포합니다. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
중요
Azure 구독에서 불필요한 요금이 발생하지 않도록 하려면 이 모듈을 완료한 후 Azure 리소스 프로비저닝을 해제해야 합니다.
학습 목표
이 모듈을 마치면 다음을 수행할 수 있습니다.
- Java 앱을 컨테이너화합니다.
- Java 앱용 컨테이너 이미지를 빌드합니다.
- 로컬로 컨테이너 이미지를 실행합니다.
- 컨테이너 이미지를 Azure Container Registry에 푸시합니다.
- Azure Kubernetes Service에 컨테이너 이미지를 배포합니다.
필수 조건
여러분은 Java 개발자로서 이미 앱 빌드에 대해 잘 알고 있습니다. 이 모듈의 연습을 완료할 때는 개인 Azure 계정을 사용합니다. 다음 리소스가 있는지 확인합니다.
- 리소스를 만들고 업데이트하고 제거할 수 있는 액세스 권한이 있는 Azure 구독
- Docker CLI, Git CLI 및 Azure CLI(2.12 이상)의 로컬 설치