SlideShare a Scribd company logo
1 of 61
Download to read offline
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Java in a World of Containers
David Buck @DavidBuckJP
Principal Member of Technical Staff
Java Platform Group, Oracle
1
• JVM Sustaining Engineer
• OpenJDK 8 Update Project
Maintainer
• JavaOne Rock Star
• Co-author of Oracle WebLogic
Server 11g 構築・運⽤ガイド
• @DavidBuckJP
• https://blogs.oracle.com/buc
k/
Hi There!
Agenda
3
Java in a World of Containers
Docker イメージの作成
カスタム JRE の作成
イメージサイズの最適化
Java 提供するDocker ⽤の機能
Java in a World of Containers
コンテナの世界での Java
4
コンテナの世界で期待されるのは
• 安全とセキュリティはますます重要に
• スプロール
• 多数のインスタンス
• 異なるアプリケーションの混合
• 異なるアーキテクチャの混合
• 異なるコンテナ構成の混合
5
https://citelighter-cards.s3.amazonaws.com/p17k6i1bqs3okg8gnisklkg1k0_51924.png
Java in a World of Containers
• 管理付きランタイム・⾔語
• ハードや OS に依存せず
• JVM によって保証されたセキュリティと安全性
• 信頼性:互換性は設計⽬標
• 可搬性:実⾏環境が変更されても、JVM が安定した運⽤を保つ
• 豊富なエコシステム
6
コンテナの利用なら Java の特徴は理想的
Java in a World of Containers
• 管理付きランタイム・⾔語
• ハードや OS に依存せず
• JVM によって保証されたセキュリティと安全性
• 信頼性:互換性は設計⽬標
• 可搬性:実⾏環境が変更されても、JVM が安定した運⽤を保つ
• 豊富なエコシステム
• コミットメント:コンテナの最も適切な選択肢であることの維持
7
コンテナの利用なら Java の特徴は理想的
Docker イメージの作成
8
入れ子になった仮想化にご注意!
Docker + Java
9
Docker
<dir>/
Dockerfile
openjdk-11+28_linux-x64_bin.tar.gz
HelloWorld.class # Your favorite application
10
Dockerfile
1 FROM oraclelinux:latest
2 ADD openjdk-11+28_linux-x64_bin.tar.gz /opt/jdk
3 WORKDIR /workdir
4 ADD HelloWorld.class .
5 ENV PATH=/opt/jdk/jdk-11/bin:$PATH
6 CMD ["java", "-showversion", "HelloWorld"]
11
Docker イメージの作成と実⾏
# docker image build -t hello .
Sending build context to Docker daemon 187.6MB
Step 1/6 : FROM oraclelinux:latest
. . .
Successfully built df05dbf52403
# docker container run --rm hello
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
Hello, world!
12
カスタム JRE の作成
13
カスタム JRE とモジュール
• デフォルトのJDK を含む Docker イメージは⼤きい
• 約 600MB
• 229MB OS のベースイメージ
• 343MB の JDK
• 必要なもの
• java.{lang,util,…}.*,
javax.management.*, …
• 必要ではないもの
• java.xml, corba, javaws, …
14
カスタム JRE とモジュール
• デフォルトのJDK を含む Docker イメージは⼤きい
• 約 600MB
• 229MB OS のベースイメージ
• 343MB の JDK
• 必要なもの
• java.{lang,util,…}.*,
javax.management.*, …
• 必要ではないもの
• java.xml, corba, javaws, …
15
11
530MB
297MB
java.corba
java.se
java.se.ee
java.transaction
java.xml.ws
java.sql
java.sql.rowset
java.xml.bind
java.jnlp
java.activation
java.desktop
java.management.rmi
java.xml.crypto
java.transfer
java.compiler java.rmi
java.xml
java.instrument java.logging
java.management
java.naming
java.scripting
java.security.jgss
java.base
java.prefs
java.security.sasl
java.xml.ws.annotation
java.smartcardio
Java SE
モジュール
16
java.corba
java.se
java.se.ee
java.transaction
java.xml.ws
java.sql
java.sql.rowset
java.xml.bind
java.jnlp
java.activation
java.desktop
java.management.rmi
java.xml.crypto
java.transfer
java.compiler java.rmi
java.xml
java.instrument java.logging
java.management
java.naming
java.scripting
java.security.jgss
java.base
java.prefs
java.security.sasl
java.xml.ws.annotation
java.smartcardio
Java SE
モジュール
17
company.application
java.corba
java.se
java.se.ee
java.transaction
java.xml.ws
java.sql
java.sql.rowset
java.xml.bind
java.jnlp
java.activation
java.desktop
java.management.rmi
java.xml.crypto
java.transfer
java.compiler java.rmi
java.xml
java.instrument java.logging
java.management
java.naming
java.scripting
java.security.jgss
java.base
java.prefs
java.security.sasl
java.xml.ws.annotation
java.smartcardio
Java SE
モジュール
18
company.application
Java のカスタムランタイム
19
java.sql
java.sql.rowset
java.activation
java.transfer
java.xml
java.logging
java.naming
java.base
company.application
カスタム JRE とモジュール
• JDK 9 でモジュールシステムが導⼊ (“Jigsaw”)
• JDK ⾃体をモジュール化
• カスタムの JRE を⽣成するツール
• アプリが必要とするモジュールや機能だけを含む
• 最も⼩さい JRE は java.base のみを含む
• 多くのアプリケーションにとって⼗分
20
Demo: jlink & jdeps
21
jlink と jdeps の利⽤
• カスタム JRE の作成は簡単:
$JAVA_HOME/bin/jlink --output myjre --add-modules java.base
• jdeps でアプリが利用するモジュールを特定する
$JAVA_HOME/bin/jdeps HelloWorld.class
• 重要:アプリケーション自体のモジュール化は不要
22
Custom JRE
my.module
java.managem
ent
java.base
jdeps
jdeps でアプリが利⽤するモジュールを特定する
# $JAVA_HOME/bin/jdeps lib/tomcat-api.jar
tomcat-api.jar -> java.base
tomcat-api.jar -> java.instrument
tomcat-api.jar -> java.naming
...
23
Multi-Stage を利⽤し、カスタム JRE の
Docker イメージの作成
# Multi-Stage example using jlink to produce small Java runtime
FROM oraclelinux:latest AS java-build
ADD openjdk-11+28_linux-x64_bin.tar.gz /opt/jdk
ENV PATH=/opt/jdk/jdk-11/bin:$PATH
WORKDIR /jlink
RUN jlink --output my-jre --add-modules java.base
FROM oraclelinux:latest
WORKDIR /workdir
COPY --from=java-build /jlink/my-jre /opt/my-jre
ENV PATH /opt/my-jre/bin:$PATH
CMD [”java”, “-version”]
24
イメージサイズの最適化
25
カスタムの Java ランタイム
• デフォルトのJDK を含む Docker イメージ
は⼤きい: ~530 MB
• 必要なもの
• java.{lang,util,…}.*, javax.management.*, …
• 必要ではないもの
• corba, jaxws, …
• JDK 9 でモジュールシステムが導⼊
(“Jigsaw”)
• JDK ⾃体をモジュール化
• カスタムの JRE を⽣成するツール
• アプリが必要とするモジュールや機能だけを含む
26
Java Docker image Size
Size(MB)
0
150
300
450
600
Size (MB)
297
234
oraclelinux:7
JDK
カスタムの Java ランタイム
• デフォルトのJDK を含む Docker イメージ
は⼤きい: ~530 MB
• 必要なもの
• java.{lang,util,…}.*, javax.management.*, …
• 必要ではないもの
• corba, jaxws, …
• JDK 9 でモジュールシステムが導⼊
(“Jigsaw”)
• JDK ⾃体をモジュール化
• カスタムの JRE を⽣成するツール
• アプリが必要とするモジュールや機能だけを含む
27
Letʼs 最適化!
JRE サイズの最適化
• java.base のみ
• 多くのアプリケーションにとって⼗分
• “netty”
• 多くの(過半数?)のアプリにとって⼗
分なモジュール:
• java.base,java.logging,java.management,
java.xml,jdk.management,jdk.unsupported
• (netty ⾃体は含まれていない)
• 更に最適化することが可能
• jlink --compress (25%+ の圧縮)
28
JRE Sizes
Size(MB)
0
50
100
150
200
250
300
Full JDK java.base “netty”
60
48
297
ベースイメージ(OS)サイズの最適化
• 合計サイズの⼤きいな因⼦
• OS の中⾝は殆ど影響なし
• 最低限:Java が実⾏出来る
• ”slim” というイメージはユーザス
ペースの機能の殆どを除いたもの
29
Docker image sizes (java.base)
Size(MB)
0
50
100
150
200
250
300
oraclelinux:7 oraclelinux:7-slim
48
48
117
234 Base Image
java.base
Alpine Linux と musl libc
⼩さい。シンプル。安全
Alpine Linux とは、musl libc と
busybox ベースのセキュリティを
中⼼した軽量 Linux の
ディストリビューション
https://www.alpinelinux.org
30
musl とは標準を正しく準拠す
ることと安全性を中⼼した早い、
そしてシンプル且つ軽量の libc
の実装。
https://www.musl-libc.org
OpenJDK Project “Portola”
• Provides a port of the JDK to
Alpine/musl への JDK ポート
• Alpine Linux は客端に軽い (4.4MB)
• “musl” C ライブラリを利⽤
• 是⾮にご参加下さい!
• http://openjdk.java.net/projects/portola
• http://hg.openjdk.java.net/portola/portol
a
• portola-dev@openjdk.java.net
• Early access binaries:
http://jdk.java.net/12
31
Docker image sizes (java.base)
Size(MB)
0
75
150
225
300
oraclelinux:7 oraclelinux:7-slim alpine:3.8
48
48
48
4.4
117
234
Base Image
java.base
OpenJDK Project “Portola”
• Provides a port of the JDK to
Alpine/musl への JDK ポート
• Alpine Linux は客端に軽い (4.4MB)
• “musl” C ライブラリを利⽤
• 是⾮にご参加下さい!
• http://openjdk.java.net/projects/portola
• http://hg.openjdk.java.net/portola/portol
a
• portola-dev@openjdk.java.net
• Early access binaries:
http://jdk.java.net/12
• 利⽤したい⽅は?
32
Docker image sizes (java.base)
Size(MB)
0
75
150
225
300
oraclelinux:7 oraclelinux:7-slim alpine:3.8
48
48
48
4.4
117
234
Base Image
java.base
OpenJDK Project “Portola”
• Provides a port of the JDK to
Alpine/musl への JDK ポート
• Alpine Linux は客端に軽い (4.4MB)
• “musl” C ライブラリを利⽤
• 是⾮にご参加下さい!
• http://openjdk.java.net/projects/portola
• http://hg.openjdk.java.net/portola/portol
a
• portola-dev@openjdk.java.net
• Early access binaries:
http://jdk.java.net/12
• 利⽤したい⽅は?
• プロジェクトに貢献したい⽅は?
33
Docker image sizes (java.base)
Size(MB)
0
75
150
225
300
oraclelinux:7 oraclelinux:7-slim alpine:3.8
48
48
48
4.4
117
234
Base Image
java.base
One more thing…
34
One more thing…
• 理論的な最低限
• java.base のみの JRE には何が含まれている?
35
Files Size (bytes)
lib/modules 23,529,047
lib/server/libjvm.so 21,197,904
<その他のファイル> 1,545,818
合計 46,272,769
JVM のサイズ
36
(近似計算)
JVM のサイズ ‒ JIT コンパイラ
37
JVM のサイズ ‒ GC
38
JVM のサイズ ‒ ⼀番軽い GC: Serial
39
JVM のサイズ ‒ その他
40
• 5MB 未満!
• Java SE の仕様を準拠
• しかし: 機能は乏しい
• JIT なし
• Serial GC のみ
• デバッグや保守性などの機能は殆
どなし
• 現実的ではないけど、研究な
どの⽬的には役に⽴つ
“minimal” VM
4
1
Size of JVM variants
Size(MB)
0.0
5.0
10.0
15.0
20.0
25.0
server minimal
• 約20MB のHelloWorld
• Alpine ベースイメージ込み
• minimal より⼩さいな JVM
も存在する(制限付き)
• Oracle Labs の SubstrateVM
“minimal” のDocker イメージ
4
2
“minimal” VM + java.base
Size(MB)
0.0
10.0
20.0
30.0
40.0
default —compress=2 —strip-debug
10.5
12.9
25.3
4.84.84.8
4.04.04.0
alpine:3.6
libjvm.so
JDK
これは本当に限界?
これは本当に限界?
• いいえ、そうではない。。。
Sharing Across Instances
• Micro-services とコンテナの利⽤する場合、同じマシン上で数
多くのプロセスを実⾏することが多い
• 全く同じアプリを実⾏するインスタンスが多い可能性が⾼い
• ネイティブ データは OS のライブラリによって共⽤される
• libc, libjvm.so などは OS と Docker によって共⽤される
• 前提:同じ layer/file/inode
• 例:共⽤された Docker イメージに含まれている JRE やボリュームを
利⽤した明⽰的な共⽤
• docker run –v /shared/java:/jre … (container 1)
• docker run –v /shared/java:/jre … (container 2, etc.)
• Java のクラスのデータは?
45
• OS の共⽤ライブラリのようなも
ので、Java クラスのデータ⽤
• アーカイブは memory-mapped
• ROページが共⽤, RW ページは
共⽤ (copy-on-write)
• Mapped されたメモリからクラ
スをそのまま読み込む。Jar ファ
イルの検索や分析処理の負荷は
ない
• アーカイヴは複数の Docker コ
ンテナによって共⽤される
Class Data Sharing (CDS)
4
6
47
JDK 12 起動時間 (CDS アーカイブ)
48
JDK 12 Application Class Data Sharing
起動時間
実験的:
Ahead-of-Time Compilation (AOT)
• Class Data Sharing のような概念。ただ JIT によって⽣成さ
れたコードを共⽤するため。
• 事前にコンパイルされたマシンコードをアーカイブに格納
• 共⽤(メモリ節約)とより速い起動
49
Java 提供するDocker ⽤の機能
Matthew Gilliardʼs のブログも⾒てください:
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
50
Docker ⽤の改善
• JDK-8146115: Docker container detection and resource
configuration usage (jdk8, jdk10+)
• JDK-8186248: More flexible, percentage based heap sizing
flags (jdk10+)
• JDK-8179498: Namespace aware attach (jdk10+)
• JDK-8193710: Docker container aware jcmd (jdk11+)
• JDK-8203357: JDK internal Container Metrics API (jdk11+)
51
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
Docker/cgroups リソース制限を守る
• JVM は⾃動的にシステムのリソースを検出し、設定を⾃動的に
調整する
• メモリ, cpu の数, CPU の型番, など
• 例:物理メモリの空き領域によってヒープサイズを決める
• Docker ではさらにリソースの制限を指定することが可能
• cgroups で実現されている
• 非トランスペアレント ‒ アプリ側で対応が必要
• JVM で明⽰的な対応が必要
52
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
Docker/cgroups リソース制限を守る:
CPU
• JDK が Docker CPU 設定を守る
• --cpuset-cpus (JDK 9)
• --cpus, --cpu-shares, --cpu-quota (JDK 10)
• JDK-8146115: Improve docker container detection and resource configuration
usage
• 影響を及ぼされた振舞:
• Runtime.availableProcessors(), ForkJoin プール, VM 内部スレード
プール
• Libraries/frameworks (例: core.async, ElasticSearch, Netty)
53
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
Docker/cgroups リソース制限を守る:
Memory
• メモリの設定 (JDK 10)
• -m<size>
• 影響を及ぼされた振舞
• Java ヒープサイズ, GC 領域サイズ, その他の VM の内部構造(例 code cache)
• JDK-8186248: Allow more flexibility in selecting Heap % of
available RAM
• 従来の「⽐率」ベースのオプションの代わりに
-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage
54
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
その他
• JDK-8179498: attach in linux should be relative to
/proc/pid/root and namespace aware (JDK 10)
• JDK-8193710: jcmd -l and jps commands do not list Java
processes running in Docker containers (JDK 11)
• 将来の JEP
• Draft JEP: JDK-8182070: Container Awareness
55
まとめ
56
まとめ
• デフォルトのままのイメージは⼤きい
• JDK 11: 229MB + 300MB = 529MB
• サイズを極点に減らすことが可能
• 適切なベースイメージを利⽤
• oraclelinux:7-slim は 117MB, alpine は 4MB
• jlink でカスタム JRE を作成
• “netty” は 60MB, “java.base” は 46MB (jlink ‒compressed=2 の場合:~38MB)
• JVM を含む HelloWorld は 38MB 未満のイメージでデプロイ出来る
• CDS で複数の JVM や docker コンテナでクラスのデータを共⽤できる
57
Java の Docker イメージの最適化
Summary
• 新機能:cgroup 制限を守るための機能
• CPUs: --cpuset-cpus, --cpus, --cpu-shares, --cpu-quota
• Memory: -m<size>
• 新機能:“percentage” でヒープサイズを指定する
• -XX:{Initial,Min,Max}RAMPercentage
• 新機能:サービサビリティツールがコンテナ対応になるに
• jps, jcmd, …
• これからさらに新しい機能などが出る⾒込み
58
Docker/cgroup/namespace interaction
59
Q&A
Experts in Modern
Development• Cloud
• Microservices and Containers
• Java, JavaScript/Node.js, PHP,
Python
• DevOps
developer.oracle.com/ambassador @groundbreake
• Continuous Delivery
• Open Source Technologies
• SQL/NoSQL Databases
• Machine Learning, AI, Chatbots
Java in the World of Container by David Buck

More Related Content

What's hot

これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムオラクルエンジニア通信
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoTakahiro YAMADA
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)オラクルエンジニア通信
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界オラクルエンジニア通信
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムオラクルエンジニア通信
 
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)オラクルエンジニア通信
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osakaTakashi Ito
 
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0オラクルエンジニア通信
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!オラクルエンジニア通信
 
Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方Hirofumi Iwasaki
 

What's hot (20)

これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
20190202 jdk new_release_model_sendai
20190202 jdk new_release_model_sendai20190202 jdk new_release_model_sendai
20190202 jdk new_release_model_sendai
 
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
 
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajoOpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
 
Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版
 
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
企業システムで使えるマイクロサービスの特長と実践 (Oracle Cloudウェビナーシリーズ: 2021年4月15日)
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
 
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
 
Tech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_shareTech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_share
 
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方Jakarta EE + MicroProfile との付き合い方
Jakarta EE + MicroProfile との付き合い方
 

Similar to Java in the World of Container by David Buck

コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!オラクルエンジニア通信
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-PE-BANK
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfJava-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfYoshio Terada
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法Meiji Kimura
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2shozon
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018Yoshio Terada
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題Kota Mizushima
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードKazuhiro Hara
 

Similar to Java in the World of Container by David Buck (20)

コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfJava-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
JSer Class #2
JSer Class #2JSer Class #2
JSer Class #2
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
Quarkus入門
Quarkus入門Quarkus入門
Quarkus入門
 

More from オラクルエンジニア通信

Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートOracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートOracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートOracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートOracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートOracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートOracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートOracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)オラクルエンジニア通信
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートOracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートオラクルエンジニア通信
 
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)オラクルエンジニア通信
 

More from オラクルエンジニア通信 (20)

Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートOracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートOracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートOracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートOracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートOracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートOracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートOracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートOracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
 
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
 

Java in the World of Container by David Buck