SlideShare a Scribd company logo
1 of 13
Zulu OpenJDK
Shigeru Tatsuta
Today’s Topic
Release Model from Java 9
●Java エンジニアにとって、JDK は悩ましい
問題
What is Zulu OpenJDK?
●JDK 専業ベンダーである Azul Systems の
提供する OpenJDK ビルド
●Microsoft Azure であれば、無償で LTS を
提供される
●Microsoft Azure 上だけでなく、Azure の
利用を想定していれば開発機でも利用可能。
What is Azul Systems?
●金融システムで実績のあるリアルタイム
JVM である Zing JVM を提供
●SoftBank では、2014 年にリアルタイム・
プラットフォーム (Chronos Core) で PoC
を実施 (採用には至らず…)
JDK in SoftBank
●Oracle JDK 以外に JRockit、RedHat
OpenJDK など、様々な JDK を運用
●SoftBank では、一部の Java アプリケーシ
ョンの JMX 監視エージェントで Zulu を
2014 年から導入
●クラウドとして Azure を利用することとな
り、Zulu をコンテナの JDK として採用
Problem of Container Size
●Kubernetes、および 12 factor apps の観
点から、コンテナのサイズは小さければ小
さいほどよい
●将来的には GraalVM のネイティブ・イメー
ジもターゲットに、まずは Zulu でコンテナ
サイズを削減
Container image of JDK
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
openjdk 11 f75c7d826c08 3 weeks ago 605MB
jboss/base-jdk 11 ea2575989d68 6 months ago 530MB
●オフィシャルの JDK の docker イメージの
サイズは大きい
Alpine and Zulu
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine 3.10 961769676411 2 weeks ago 5.58MB
●コンテナのイメージサイズを削減するには、
まずは Alpine Linux を利用が定石
●Zulu は Alpine をサポートしており、Alpine
のイメージ作成も簡単
Zulu image of Azul
●Zulu の Alpine イメージを利用することで、
270MB 程度削減
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
azul/zulu-openjdk-alpine 11 d0aebdc0193f 6 weeks ago 330MB
Custom JRE
FROM azul/zulu-openjdk-alpine:11 AS java-build
WORKDIR /jlink
RUN jlink --compress=2 --module-path /usr/lib/jvm/zulu-11/ --add-modules
java.base,java.datatransfer,java.desktop,java.instrument,java.logging,java.m
anagement,java.naming,java.rmi,java.security.jgss,java.security.sasl,java.sql,
java.xml,jdk.unsupported --output jre-min
FROM alpine:3.10
COPY --from=java-build /jlink/jre-min /opt/jre-min
USER root
ENV PATH /opt/jre-min/bin:$PATH
RUN apk add shadow
●jlink を使ってカスタム JRE をマルチステー
ジビルド
Custom JRE of zulu alpine
●jlink でカスタム JRE を作ることで、さらに
260 MB 程度削減
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zulu.custom 11 2ca39f1ed611 17 seconds ago 69.3MB
Conclusion
●クラウドに Azure を利用しているなら、JDK
に Zulu もよい選択肢

More Related Content

What's hot

What's hot (20)

Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
俺的 Ignite 2021 Fall Update まとめ
 俺的 Ignite 2021 Fall Update まとめ 俺的 Ignite 2021 Fall Update まとめ
俺的 Ignite 2021 Fall Update まとめ
 
C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)
 
.NET Micro Framework (プラレールと電子工作)
.NET Micro Framework (プラレールと電子工作).NET Micro Framework (プラレールと電子工作)
.NET Micro Framework (プラレールと電子工作)
 
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSMTech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkins
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
 
俺的 Build 2021 Update まとめ
俺的 Build 2021 Update まとめ俺的 Build 2021 Update まとめ
俺的 Build 2021 Update まとめ
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
 
Sb tech night#1_document_otsuki_202104
Sb tech night#1_document_otsuki_202104Sb tech night#1_document_otsuki_202104
Sb tech night#1_document_otsuki_202104
 
Krustlet101
Krustlet101Krustlet101
Krustlet101
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
SB TechNight #5 ~AVD構築のアレコレ~
SB TechNight #5 ~AVD構築のアレコレ~SB TechNight #5 ~AVD構築のアレコレ~
SB TechNight #5 ~AVD構築のアレコレ~
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 

Similar to 【JJUG LT 大会】Zulu Open JDK

20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
samemoon
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
 

Similar to 【JJUG LT 大会】Zulu Open JDK (20)

Oracle Data Integrator R12.2.1.1 Studio及びRepositoryセットアップガイド
Oracle Data Integrator R12.2.1.1 Studio及びRepositoryセットアップガイドOracle Data Integrator R12.2.1.1 Studio及びRepositoryセットアップガイド
Oracle Data Integrator R12.2.1.1 Studio及びRepositoryセットアップガイド
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
Oracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 AgentセットアップガイドOracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 Agentセットアップガイド
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
Azureで実装する話題のコンテナサービス
Azureで実装する話題のコンテナサービスAzureで実装する話題のコンテナサービス
Azureで実装する話題のコンテナサービス
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
Java in the World of Container by David Buck
Java in the World of Container by David BuckJava in the World of Container by David Buck
Java in the World of Container by David Buck
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
 
Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要
 

【JJUG LT 大会】Zulu Open JDK

  • 3. Release Model from Java 9 ●Java エンジニアにとって、JDK は悩ましい 問題
  • 4. What is Zulu OpenJDK? ●JDK 専業ベンダーである Azul Systems の 提供する OpenJDK ビルド ●Microsoft Azure であれば、無償で LTS を 提供される ●Microsoft Azure 上だけでなく、Azure の 利用を想定していれば開発機でも利用可能。
  • 5. What is Azul Systems? ●金融システムで実績のあるリアルタイム JVM である Zing JVM を提供 ●SoftBank では、2014 年にリアルタイム・ プラットフォーム (Chronos Core) で PoC を実施 (採用には至らず…)
  • 6. JDK in SoftBank ●Oracle JDK 以外に JRockit、RedHat OpenJDK など、様々な JDK を運用 ●SoftBank では、一部の Java アプリケーシ ョンの JMX 監視エージェントで Zulu を 2014 年から導入 ●クラウドとして Azure を利用することとな り、Zulu をコンテナの JDK として採用
  • 7. Problem of Container Size ●Kubernetes、および 12 factor apps の観 点から、コンテナのサイズは小さければ小 さいほどよい ●将来的には GraalVM のネイティブ・イメー ジもターゲットに、まずは Zulu でコンテナ サイズを削減
  • 8. Container image of JDK $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE openjdk 11 f75c7d826c08 3 weeks ago 605MB jboss/base-jdk 11 ea2575989d68 6 months ago 530MB ●オフィシャルの JDK の docker イメージの サイズは大きい
  • 9. Alpine and Zulu $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE alpine 3.10 961769676411 2 weeks ago 5.58MB ●コンテナのイメージサイズを削減するには、 まずは Alpine Linux を利用が定石 ●Zulu は Alpine をサポートしており、Alpine のイメージ作成も簡単
  • 10. Zulu image of Azul ●Zulu の Alpine イメージを利用することで、 270MB 程度削減 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE azul/zulu-openjdk-alpine 11 d0aebdc0193f 6 weeks ago 330MB
  • 11. Custom JRE FROM azul/zulu-openjdk-alpine:11 AS java-build WORKDIR /jlink RUN jlink --compress=2 --module-path /usr/lib/jvm/zulu-11/ --add-modules java.base,java.datatransfer,java.desktop,java.instrument,java.logging,java.m anagement,java.naming,java.rmi,java.security.jgss,java.security.sasl,java.sql, java.xml,jdk.unsupported --output jre-min FROM alpine:3.10 COPY --from=java-build /jlink/jre-min /opt/jre-min USER root ENV PATH /opt/jre-min/bin:$PATH RUN apk add shadow ●jlink を使ってカスタム JRE をマルチステー ジビルド
  • 12. Custom JRE of zulu alpine ●jlink でカスタム JRE を作ることで、さらに 260 MB 程度削減 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE zulu.custom 11 2ca39f1ed611 17 seconds ago 69.3MB