본문 바로가기

OSS on Azure/OpenDev

애저 앱 서비스! Java SE 8 지원, 인프라 고민 없이 코드에 집중하기 좋은 세상

*글 최초 발행일자: 2018.07.31*

 

개발자를 위한 클라우드 서비스인 애저 앱 서비스(Azure App Service)가 Java SE 8을 지원합니다. 요즘 라이선스 이슈로 개발자 커뮤니티에서 시끄럽긴 하지만 일단 Java SE에 관심을 끊고 살 수는 없죠. 하여간 애저 앱 서비스 환경에서 Java SE 8 기반 앱을 개발하고 운영할 수 있다는 것은 좋은 소식이긴 합니다. 

Jave SE 8 기반 애플리케이션을 애저 앱 서비스 환경에서 운영 가능

현재 프리뷰 단계이긴 하지만 지금 바로 Java SE 8 기반 앱을 애저 앱 서비스에 올릴 수 있습니다. 현재 리눅스 상에서 운영하는 것만 지원되는 데요 정식 출시되면 윈도우 서버에서도 이용할 수 있을 것으로 예상합니다. 

Java SE 8 기반 앱을 개발해 둔 것이 있다면 일단 한번 올려 보시죠. 없다면 샘플 코드라도 올려 보시죠. 클라우드 스케일의 확장성을 제공하는 인프라, 스스로 패치를 하는 웹 호스팅 서비스 환경의 이점은 생각보다 큽니다. 자바 개발자가 왜 편해지는지 6가지로 이유를 풀어 보겠습니다. 

(1) 매니지드 서비스 기반 엔터프라이즈 플랫폼: 로그 수집, 이메일 통보, 애저 포탈을 통한 통보, 자동 패치 등 개발자가 인프라에 신경 쓰지 않도록 상당한 수준의 관리를 마이크로소프트가 대신합니다. 

(2) 성능 모니터링: APM 기능이 포함되어 있어서 클라우드에 올린 자바 앱의 성능을 지속해서 살필 수 있습니다. 

(3) 글로벌 수준의 확장과 고가용성 보장: 99.95% 수준의 업타임을 보장하며, 확장의 경우 오토스케일링을 이용하거나 매뉴얼 방식으로 직접 할 수 있습니다. 확장은 마이크로소프트 데이터센터가 위치한 세계 곳곳의 센터를 대상으로 할 수 있습니다. 

(4) 보안과 규제 준수: ISO, SOC, PCI DSS, GDPR 등 각종 규제 준수도 그저 믿고 맡기면 됩니다. 패치 작업 등도 마이크로소프트가 하기 때문에 보안 걱정도 덜 수 있습니다. 

(5) 사용자 인증: 애저 액티브 디렉토리 기반 인증 서비스가 기본으로 제공됩니다. 따라서 역할 기반 접근 제어(RBAC) 정책을 토대로 IP 주소를 통제하고 관리할 수 있습니다. 

(6) CI/CD 지원: 지속적 통합과 배포 기반의 자동화 역시 간편히 이용할 수 있습니다. 메이븐, 젠킨스, 비주얼 스튜디오 팀 서비스 등이 지원될 예정입니다. 

실습 간단히 해보시죠. 작성한 코드가 있다면 해당 앱을 올려 보면 되고, 없다면 다음과 같이 샘플 코드를 불러와 실습하면 됩니다.

$ git clone https://github.com/spring-projects/spring-petclinic.git

$ git clone https://github.com/spring-projects/spring-petclinic.git

다음에 할 일은 애저 웹 앱에 메이븐 플러그인을 적용하는 것입니다. 

<build> <plugins> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>1.2.0</version> <configuration> <!-- Web App information --> <resourceGroup>${RESOURCE_GROUP}</resourceGroup> <appName>${WEBAPP_NAME}</appName> <region>${REGION}</region> <pricingTier>S1</pricingTier> <!-- Java Runtime Stack for Web App on Linux --> <linuxRuntime>jre8</linuxRuntime> <deploymentType>ftp</deploymentType> <!-- Resources to be deployed to your Web App --> <resources> <resource> <directory>${project.basedir}/target</directory> <targetPath>/</targetPath> <includes> <include>app.jar</include> </includes> </resource> </resources> <appSettings> <property> <name>JAVA_OPTS</name> <value>-Djava.security.egd=file:/dev/./urandom</value> </property> </appSettings> </configuration> </plugin> </plugins> <finalName>app</finalName> </build> ​
bash-3.2$ mvn package azure-webapp:deploy [INFO] Scanning for projects... [INFO] [INFO] ---------------------------------------------------------------------- [INFO] Building petclinic 2.0.0 [INFO] ---------------------------------------------------------------------- [INFO] ... ... [INFO] --- azure-webapp-maven-plugin:1.2.0:deploy (default-cli) @ spring-petclinic --- [INFO] Start deploying to Web App myjavase-07262018aa... [INFO] Authenticate with Azure CLI 2.0 [INFO] Target Web App doesn't exist. Creating a new one... [INFO] Creating App Service Plan 'ServicePlan1af9c8f0-3f71-43a8'... [INFO] Successfully created App Service Plan. [INFO] Successfully created Web App. ... ... [INFO] Finished uploading directory: /Users/selvasingh/GitHub/selvasingh/spring-petclinic/target/azure-webapps/myjavase-07262018aa --> /site/wwwroot [INFO] Successfully uploaded files to FTP server: waws-prod-bay-081.ftp.azurewebsites.windows.net [INFO] Starting Web App after deploying artifacts... [INFO] Successfully started Web App. [INFO] Successfully deployed Web App at https://myjavase-07262018aa.azurewebsites.net [INFO] ---------------------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] ---------------------------------------------------------------------- [INFO] Total time: 03:06 min [INFO] Finished at: 2018-07-13T18:03:22-07:00 [INFO] Final Memory: 139M/987M [INFO] ----------------------------------------------------------------------

 

이제 남은 일은 브라우저를 열어 사이트를 열어 보는 것입니다. 샘플 코드를 이용했다면 다음 화면이 보일 것입니다. Java SE 앱을 이렇게 쉽게 올려 쓸 수 있다니 참 편한 세상입니다. 
 

 

*이 외에도 락플레이스의 최신 뉴스레터 소식(2021~) 을 받아보고 싶으시다면? *

락플레이스 뉴스레터 구독하기 click

 

 

*락플레이스 1:1 문의 바로가기*

 1:1 문의 바로가기 click

 

 락플레이스는 2005년에 출범하여 대한민국 리눅스의 역사와 성장을 함께 해온 오픈소스 전문 기업으로 국내 최다 엔지니어, 국내 최고 기술력, 국내외 유수기업 컨설팅의 풍부한 경험과 탄탄한 기술력으로 고객의 성공적인 오픈소스 플랫폼 구축과 응용 프로그램 전체 범위의 서비스를 제공하고 있습니다. 락플레이스는 레드햇코리아로부터 Elite Business Associate/Advanced Business Parter/채널 어워드 한국  파트너/FY15 champion 등을 수상 파트너며, Microsoft Microsoft Cloud Solution Partner(CSP)로서 함께하고 있습니다