안심하고 쉽게 Java 애플리케이션 배포

Java 에코시스템에는 Java SE, Jakarta EE(Java EE 및 J2EE 후속 기능), Spring, 수많은 애플리케이션 서버 및 기타 프레임워크와 같은 다양한 기술이 포함되어 있습니다. Java로 어떤 작업을 하든, 앱을 빌드하고, 프레임워크를 사용하고, 애플리케이션 서버를 실행하는 작업은 다양한 선택 사항으로 워크로드를 Azure 지원. 마찬가지로 VM 또는 컨테이너에서 실행되는 모놀리식 애플리케이션부터 완전 관리형 서비스에서 실행되는 클라우드 네이티브 마이크로 서비스 기반 애플리케이션에 이르기까지 모든 애플리케이션 아키텍처를 Azure 지원.

일반적으로 Java 애플리케이션을 실행하려면 애플리케이션을 실행하는 JVM(Java Virtual Machine) 인스턴스인 애플리케이션 서버에 배포합니다. 또는 포함된 애플리케이션 서버를 사용하여 독립 실행형 애플리케이션을 빌드할 수 있습니다. 어느 쪽이든 애플리케이션 서버는 클라이언트 요청에 대한 동적 사용자 지정 응답을 반환하기 위해 웹 컨테이너와 공동 작업하는 일반적인 애플리케이션 인프라 및 기능 기능을 제공합니다. 클라이언트 요청은 서블릿, 동적 페이지, 엔터프라이즈 빈, 지원 클래스, 종속 라이브러리 및 데이터 드라이버를 포함할 수 있는 소프트웨어 구성 요소를 사용하여 처리할 수 있습니다.

Tomcat, JBoss EAP, WildFly, WebLogic 및 WebSphere는 인기 있는 애플리케이션 서버입니다. 마찬가지로 Spring Boot, Quarkus 및 Open Liberty는 포함된 애플리케이션 서버를 사용하여 독립 실행형 애플리케이션을 빌드하기 위한 인기 있는 프레임워크입니다. 모든 Azure 지원 Java 애플리케이션 서버를 사용하고 안심하고 쉽게 Java 애플리케이션을 배포할 수 있습니다.

모든 애플리케이션 서버에 Spring Boot 또는 Java 앱 배포 - Tomcat 및 Jakarta EE

Azure를 사용하면 제한 없이 자체 물리적 인프라를 관리할 필요 없이 모든 버전과 Java 및 애플리케이션 서버의 배포를 실행할 수 있습니다. 원하는 컨트롤의 양 또는 가상 머신, 컨테이너 및 완전 관리형 서비스와 같은 옵션을 사용하여 Azure에서 처리할 일상적인 관리 양을 결정합니다. VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server 또는 IBM WebSphere, Liberty 또는 OpenLiberty와 같이 상업적으로 지원되는 Java 앱 서버 또는 프레임워크를 사용하는 경우 Azure는 모든 사용자에 대해 공동으로 개발 및 지원되는 제품을 제공합니다.

배포 옵션

Azure는 IaaS(Infrastructure-as-a-Service), CaaS(Containers-as-a-Service) 및 PaaS(Platform-as-a-Service) 호스팅 서비스를 포함하여 Java 애플리케이션에 대한 풍부한 배포 옵션을 제공합니다. 기존 Java 애플리케이션을 VM(가상 머신)으로 리프트 앤 시프트하거나, 여러 가지 방법으로 컨테이너화하거나, 완전히 관리되는 PaaS 서비스에 배포하여 관리 용이성, 개발자 및 운영 생산성 및 총 소유 비용을 최적화할 수 있습니다.

VM 및 컨테이너

Azure의 가상 머신 또는 컨테이너에 배포할 때 Java의 배포 및 버전과 애플리케이션 서버를 자유롭게 사용할 수 있습니다. 선택은 전적으로 당신에게 달려 있습니다. 인프라 및 해당 구성 요소를 수동으로 구성해야 합니다. 이 범주에 속하는 배포 옵션은 다음과 같습니다.

  • Azure Virtual Machines는 가상화를 실행하는 물리적 하드웨어를 구매하고 기본 않고도 가상화의 유연성을 제공합니다. 그러나 VM에서 실행되는 소프트웨어를 설치, 구성 및 패치하여 VM을 기본 확인해야 합니다.

  • 부하 분산된 VM 그룹을 만들고 관리할 수 있는 Azure Virtual Machine Scale Sets입니다. VM 인스턴스의 수는 요구 또는 정의된 일정에 따라 자동으로 늘리거나 줄일 수 있습니다.

  • AKS(Azure Kubernetes Service)는 기본 테넌트 및 상태 모니터링과 같은 중요한 작업을 포함하여 모든 운영 오버헤드를 처리하여 관리되는 Kubernetes 클러스터 배포를 간소화합니다. AKS는 이벤트 기반 자동 크기 조정 및 KEDA 트리거를 포함하여 용량의 탄력적 프로비저닝을 지원합니다.

  • Azure Red Hat OpenShift는 주문형으로 고가용성 완전 관리형 OpenShift 클러스터를 제공합니다. OpenShift는 Kubernetes를 보완하는 부가 가치 기능을 제공하여 향상된 개발자 및 운영자 환경을 제공하는 턴키 컨테이너 플랫폼입니다.

이러한 모든 IaaS 및 CaaS 서비스에 Java 런타임을 배포할 수 있지만 다음 런타임 중 하나를 사용하는 것이 좋습니다.

이러한 두 빌드는 라이선스 비용을 지불하지 않고도 로컬 개발 및 테스트 및 모든 플랫폼 또는 DevOps 도구를 사용하여 프로덕션 준비 이진 파일을 빌드하는 데 무료로 사용할 수 있습니다. 편의상 권장합니다. 이러한 빌드 중 하나를 사용하는 경우 문제가 있고 Azure에 대한 적격 지원 계획이 있는 경우 더 이상 비용 없이 Azure 지원 티켓을 열 수 있습니다. 즉, 이러한 권장 사항은 단지 지적 할 가치가있다 - 우리가 지원의 용이성을 위해 OpenJDK의 다른 자유롭게 사용할 수있는 다양한 빌드 중 권장 옵션. 자세한 내용은 Azure 및 Azure Stack에 대한 Java 지원을 참조하세요.

'Java Apps 빌드 또는 마이그레이션' 제목과 Java 기술과 Azure 서비스 범주 간의 관계를 보여 주는 차트가 있는 다이어그램

이러한 모든 IaaS 및 CaaS 배포 옵션을 사용하면 Apache Tomcat 애플리케이션 서버를 쉽게 배포할 수 있습니다. VMware의 Spring Runtime, Red Hat의 JBoss EAP, Oracle의 WebLogic Server 또는 IBM의 WebSphere와 같은 상용 제품을 사용하는 경우 Azure는 해당 공급업체의 공동 개발 및 지원 호스팅 옵션을 제공합니다. 나중에 Java 에코시스템 파트너와 공동으로 빌드되고 지원되는 솔루션에서 다룹니다.

PaaS(완전 관리형) 서비스

Azure에서 Java 애플리케이션을 실행하기 위한 완전 관리형 PaaS 서비스에는 다음 옵션이 포함됩니다.

Azure Spring Apps 및 Azure 앱 Service용 Java 런타임은 Microsoft에서 제공하고 기본. Java 8용 Eclipse Adoptium Temurin과 Java 11 및 17용 OpenJDK Microsoft Build를 사용하여 OpenJDK의 LTS 배포만 지원합니다. 즉, 공동으로 개발되고 지원되는 파트너 제품(나중에 설명됨)이 자체 런타임을 사용하는 등 몇 가지 주의 사항이 있습니다.

Azure Container Apps의 경우 소스 코드에서 고유한 컨테이너 이미지를 빌드하고 관리해야 하므로 원하는 Java 및 애플리케이션 서버의 배포 및 버전을 자유롭게 사용할 수 있습니다.

서버리스 Functions

경우에 따라 전체 Java 애플리케이션이 필요하지 않습니다. 예를 들어 실시간 데이터 처리를 위해 수백만 개의 이벤트와 수백만 개의 이벤트로 대규모로 트리거할 수 있는 작은 코드 조각만 필요할 수 있습니다. 이러한 이벤트는 Azure Event Hubs를 통해 수집되고, Azure Functions에서 대규모로 실행되는 이벤트 기반 서버리스 Java 코드로 처리되고, Azure Cosmos DB와 같은 데이터 저장소에 저장될 수 있습니다.

Java 에코시스템 파트너와 공동으로 빌드되고 지원되는 솔루션

Microsoft는 Java 에코시스템의 선도적인 공급업체와 협력하여 공동 개발 및 지원되는 관리 서비스부터 인기 있는 Java 애플리케이션 서버를 위한 Azure Marketplace 제품에 이르기까지 Azure에서 Java를 실행하기 위한 동급 최고의 솔루션을 제공합니다. 또한 이 설명서의 뒷부분에서 설명하는 인기 있는 애플리케이션 모니터링 도구도 통합했습니다.

이 문서에 설명된 파트너의 '강력한 파트너 에코시스템' 제목과 로고가 있는 다이어그램

Azure Spring Apps(Pivotal/VMware)

Microsoft와 Pivotal이 공동으로 개발한 Azure Spring Apps는 대규모로 Spring Boot 애플리케이션을 실행할 때 개발자, IT 운영자 및 DevOps 팀이 직면하는 많은 일반적인 문제를 해결하는 완전 관리형 서비스입니다. Spring 기반 애플리케이션 및 Spring Cloud 미들웨어 구성 요소를 실행하기 위한 인프라 관리의 복잡성을 추상화하여 Java 개발자가 코드에 집중할 수 있도록 하면서 Azure에서 동적 크기 조정, 보안 패치, 규정 준수 표준, 고가용성 등을 처리할 수 있습니다.

JBoss EAP(Red Hat)

Red Hat은 엔터프라이즈를 위한 오픈 소스 솔루션을 제공합니다. 이러한 솔루션 중 하나는 웹 프로필과 전체 플랫폼 모두에서 Java EE Certified 및 Jakarta EE 규격인 인기 있는 애플리케이션 서버 플랫폼인 JBoss EAP(Enterprise Application Platform)입니다. Red Hat은 Java 표준, OpenJDK, MicroProfile, Jakarta EE 및 Quarkus에 대한 기여자.

Red Hat과 협력하여 Azure 앱 Service에서 Red Hat JBoss EAP(엔터프라이즈 애플리케이션 플랫폼)를 제공하므로 Java 개발자는 두 회사의 통합 지원을 통해 별도의 Red Hat 구독 또는 라이선스 없이도 Jakarta EE 애플리케이션을 App Service에 배포할 수 있습니다. 또한 Azure VM, Azure VM Scale Sets 및 ARO(Azure RedHat OpenShift)에서 JBoss EAP에 대한 유사한 공동 제품을 출시했으며, 후자는 Microsoft와 Red Hat이 공동으로 운영합니다.

WebLogic Server(Oracle)

Oracle과 협력하여 Azure VM에 Oracle WLS(WebLogic Server)를 제공하고 Azure Kubernetes Service의 Oracle WebLogic Server를 제공했습니다. 이러한 솔루션은 가상 네트워크/스토리지 프로비전, Linux/Java 리소스 설치, WebLogic Server 설정 및 네트워크 보안 그룹을 사용하여 보안 구성과 같은 상용구 작업을 자동화하여 Azure로 쉽게 마이그레이션할 수 있도록 합니다.

WebSphere/Liberty/Open Liberty(IBM)

IBM과 협력하여 Azure VM의 WAS(WebSphere Application Server), Azure Kubernetes Service의 WebSphere Liberty 및 Open Liberty, Azure Red Hat OpenShift의 WebSphere Liberty 및 Open Liberty에 대한 솔루션을 공동으로 개발했습니다. 자세한 내용은 Azure에서 IBM WebSphere 제품군을 실행하는 솔루션은 무엇인가요? 이러한 솔루션을 사용하면 WebSphere 워크로드를 Azure로 쉽게 마이그레이션하여 고가용성 WebSphere 클러스터를 설정하는 데 필요한 대부분의 리소스 프로비저닝 작업을 자동화할 수 있습니다. 이 파트너십은 기존 중요 업무용 워크로드에서 클라우드 네이티브 애플리케이션에 이르는 다양한 사용 사례를 다룹니다.

Confluent Cloud의 Apache Kafka(Confluent)

과거에는 Confluent의 Kafka 서비스를 사용하려는 Azure 고객은 Azure 및 Confluent Cloud에서 리소스와 사용자를 별도로 만들고 관리해야 했습니다. 이러한 문제를 완화하기 위해 Confluent와 Microsoft는 Azure Portal, Azure CLI 또는 Azure Management SDK를 통해 Confluent Cloud 리소스를 만들고 관리하는 기능을 포함하여 Apache Kafka를 완전 관리형 서비스로 제공하는 Azure Marketplace 제품인 Confluent Cloud용 Apache Kafka를 제공하기 위해 파트너로 협력했습니다.

오늘날 고객 환경은 더 간단하고 안전하며 더 원활합니다. 고객은 통합 워크플로의 일부로 Azure 리소스와 함께 Confluent Cloud 리소스를 프로비전하고 관리할 수 있으며 Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2 및 Microsoft SQL Server용으로 빌드된 완전 관리형 커넥터를 활용할 수 있습니다. 개발자는 Apache Kafka 클라이언트 라이브러리를 사용하여 계속 코딩할 수 있습니다.

요약

이러한 제품의 대부분에 대 한 파트너와 공동 개발은 지속적인, 지속적인 노력. 파트너는 제품 혁신을 계속하면서 고객이 안심하고 쉽게 Java 애플리케이션을 배포하고 확장할 수 있도록 Azure에 동일한 혁신을 신속하게 제공하기 위해 긴밀히 협력하고 있습니다.

요약하자면, Java로 수행하는 작업에 관계없이 워크로드를 다양한 선택 항목으로 Azure 지원. VM 또는 컨테이너에서 실행되는 모놀리식 애플리케이션에서 완전히 관리되는 서비스에서 실행되는 클라우드 네이티브 마이크로 서비스 기반 애플리케이션에 이르기까지 모든 Java 앱을 빌드하고, 프레임워크를 사용하고, 애플리케이션 서버를 실행하고, 애플리케이션 아키텍처를 지원할 수 있습니다.

이 문서에 설명된 배포 옵션에 대한 '안심하고 쉽게 Java 애플리케이션 배포' 및 로고가 있는 다이어그램

다음 단계

엔드 투 엔드 보안, 모니터링 및 자동화를 사용하여 크기 조정