소개

완료됨

온-프레미스 서버에서 실행할 앱을 빌드하고 배포하는 Java 개발자라고 상상해 보십시오. 이러한 서버를 오케스트레이션하고 종속성, 크기 조정 및 기타 고려 사항을 관리하는 것은 어려운 프로세스입니다.

하드웨어를 에뮬레이트하는 가상 머신과 달리 컨테이너는 호스트 운영 체제, 커널 및 하드웨어를 일반적인 프로세스로 직접 실행합니다. 이러한 단순성 때문에 컨테이너에는 더 적은 시스템 리소스가 필요합니다. 결과적으로 오버헤드가 훨씬 적고, 앱 시작 시간이 빨라지고, 주문형 크기 조정에 유용한 사용 사례가 생성됩니다.

컨테이너를 사용하면 앱 및 종속성이 항상 컨테이너 이미지에서 격리되고 대규모로 배포할 준비가 되었는지 확인합니다.

이 모듈에서는 먼저 기존 Java 앱을 컨테이너화합니다. 개방형 인터넷에서 MIT 라이선스에 따라 공유되는 항공 예약 시스템은 Java Servlet 및 JSP(Java Server Pages)를 사용하여 만든 MVC(모델 뷰 컨트롤러) 아키텍처를 사용하여 빌드된 샘플 항공사를 기반으로 하는 완전히 응답성이 뛰어난 샘플 웹 기반 항공편 예약 시스템입니다. 원래 웹 애플리케이션은 Java SE 8 및 Tomcat 8.5에서 실행되도록 설계되었습니다. 그러나 애플리케이션을 현대화하도록 업데이트되어 Java SE 17 및 Tomcat 10.1에서 실행할 수 있습니다.

앱을 컨테이너화한 후 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.66 이상의 로컬 설치