SlideShare a Scribd company logo
1 of 102
Download to read offline
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Oracle Code One 2018 Overview
Chihiro Ito (@chiroito)
Akihiro Nishikawa
Oracle Groundbreaker🥑
Oracle Corporation Japan
1
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Overview
3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Oracle Code One Oracle Open World
4
Oracle Code One とは
Java以外
Java
Oracleに関すること
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
スケジュール
21日(日) 22日(月) 23日(火) 24日(水) 25日(木)
5
事前登録
蟹One
セッション
JCP
セッション
BBQ
セッション
Live
セッション
Geek Bike Ride
12時(4時)
24時(16時)
8時(24時)
18時(10時)
12時(4時)
24時(16時)
8時(24時)
18時(10時)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 6
セッション情報
https://developer.oracle.com/codeone https://events.rainfocus.com/widget
/oracle/oow18/catalogcodeone18
Oracle Code One Feedback Meetup
7
@TOKYO
2018/11/17
@SENDAI
2019/2/2
@NAGOYA
2018/11/30
@TOYAMA
2019/1/26
@GINOWAN
2018/12/8
@HIROSHIMA
2019/1/19
@OKAYAMA
2019/1/18
@OSAKA
2018/11/24
@KUMAMOTO
2019/1/11
@FUKUOKA
2019/1/12
@SAPPORO
2019/2/9
Georges Saab
@gsaab
VP, Oracle Java Platform Group
Chair, OpenJDK Governing Board
8
Oracle Code Oneへようこそ
セッション
有志によるセッション(BoF)
チュートリアル
ハンズオン
405
45
16
41
9
Javaの良いところを維持します
Javaがオープンで無料であり続けることを保証する
継続的なプラットフォームの完成度を実現する
品質とセキュリティへの投資を継続する
オープンで透明な開発を維持する
開発者の生産性と互換性への投資する
10
Javaに対するOracleのコミットメント
機能強化とイノベーションをより早く提供します
Javaをもっとオープンにします
Javaエコシステムへ支援し続けます
11
オラクルが最近オープンソース化したものは何か
Javaをもっとオープンにします
Application Class Data Sharing
(OpenJDK 10)
Project ZGC
(OpenJDK 11)
Flight Recorder
(OpenJDK 11)
Mission Control
(Project in OpenJDK and builds)
共有アーカイブ内の標準拡張ディレクトリとアプリ
ケーションクラスパスからクラスを配置できる
実行中のJavaアプリケーションに関する診断
データとプロファイリングデータを収集
数テラバイトのヒープをサポートする低遅延
ガベージコレクタ
最小限のパフォーマンスオーバーヘッドでJavaア
プリケーションを監視および管理
12
OpenJDKコミュニティの多くの貢献に感謝します
みんなで作った JDK 11
JDK 11 で修正された 2468 の課題
様々な組織で働いている開発
者や個人あわせて500人以上
によって貢献されました
blogs.oracle.com/java-platform-group/building-jdk-11-together
13
Portola
ZGC
Loom
Valhalla
Panama
Amber
14
Graal VM
JDK Flight Recorder
Skara
15
現在の配列のレイアウト
Project Valhalla
final class Point {
final int x;
final int y;
}
headerPoint[] pts =
header
x
y
header
x
y
header
x
y
header
x
y
header
x
y
16
我々が望む配列のレイアウト
Project Valhalla
headerheader
x
y
x
y
x
y
x
y
Point[] pts =
value class Point {
int x;
int y;
}
Value Types:
コードはクラスのように書き、
プリミティブの配列のように動く
Project Panama
• JVMの外側にある関数とデータ
• シンプルに、安全に、かつ高性能にJNIを置き換える
• 通常のJavaコードを通じて低レベルなハードウェア機能へアクセスする
– ベクター演算、特別なメモリタイプ(例えば不揮発性メモリ)
• ビッグデータや機械学習
17
Project Loom
• 簡単にもっと拡張できる並行処理モデル
– 事実上ブロックを無くす
• “Fibers”という軽量スレッドと継続
– 何百万のFiberを単一のJVMで生成できる
18
Project “Amber”
• Java言語の改革
– 動的なクラスファイル定数
– Raw String リテラル
– Switch式
– パターンマッチング
19
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Java in a World of Containers
Mikael Vidstedt @MikaelVidstedt
Director, Java Virtual Machine
Java Platform Group, Oracle
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Java in a World of Containers
• 管理付きランタイム・言語
• ハードやOSに依存しない
• JVM によって保証されたセキュリティと安全性
• 信頼性:互換性は設計目標
• 可搬性:実行環境が変更されても、JVM が安定した運用を保つ
• 豊富なエコシステム
21
Javaの特徴はコンテナに適していると言えるのでは?
コミットメント:コンテナ利用において最適な選択肢であり続けること
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
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+)
22
https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Javaランタイムのカスタマイズ
• デフォルトのJDK を含むDockerイメージ: ~530 MB
– 必要なもの
java.{lang,util,...}.*, javax.management.*,
...
– 必要ではないもの
corba, jaxws, ...
• JDK 9 で導入されたモジュールシステム (“Jigsaw”)
– JDK 自体をモジュール化
– カスタムの JRE を生成するツール
• アプリが必要とするモジュールや機能だけを含む
23
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
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 モジュール
24
company.application
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Javaカスタムランタイム
25
java.sql
java.sql.rowset
java.activation
java.transfer
java.xml
java.logging
java.naming
java.base
company.application
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
JREサイズの最適化
• java.base のみ
– 多くのアプリケーションにとって十分
• “netty”
– 多くの(過半数?)のアプリにとって十分なモジュール
– java.base, java.logging, java.management,
java.xml, jdk.management, jdk.unsupported
– (netty 自体は含まれていない)
• 更に最適化できる
– jlink --compress (25%+ の圧縮)
26
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
ベースイメージ(OS)サイズの最適化
• 合計サイズの大きな因子
• OS の中身は殆ど影響なし
– 最低限:Java が動作する
• ”slim” というイメージはユーザスペースの
機能の殆どを取り除いたもの
27
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
OpenJDK Project “Portola”
• Alpine/musl への JDK ポート
• Alpine Linux はとにかく軽い (4.4MB)
– “musl” C ライブラリを利用
• 是非プロジェクトに参加してください!
– http://openjdk.java.net/projects/portola
– http://hg.openjdk.java.net/portola/portola
– portola-dev@openjdk.java.net
• Early access binaries
– http://jdk.java.net/12
28
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 29
JVM のサイズ – その他
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
• 5MB 未満!
– Java SE の仕様を準拠
• しかし... 機能は乏しい
– JIT なし
– Serial GC のみ
– デバッグや保守性などのための機能
は殆どなし
• 現実的ではないが、研究などの目
的には有用
30
“minimal” VM
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
• 約20MB のHelloWorld
– Alpine ベースイメージ込み
• minimal より小さいな JVM も存在
する(制限付き)
– Oracle Labs の SubstrateVM
31
“minimal” Docker イメージ
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 32
JDK 12 起動時間 (CDS アーカイブ)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 33
JDK 12 Application Class Data Sharing 起動時間
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
The Z Garbage Collector
Scalable Low-Latency GC in JDK 11
Per Lidén (@perliden)
Consulting Member of Technical Staff
Java Platform Group, Oracle
October 24, 2018
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 35
数テラバイトヒープ GCによる最大停止時間
簡単なチューニング アプリの性能低下を防ぐ
ゴール
10msTB
15%
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
どのフェーズが並行なのか?
Serial Parallel CMS G1 ZGC
Marking - - ✔* ✔* ✔
Relocation/Compaction - - - - ✔
Reference Processing - - - - ✔
Relocation Set Selection - - - - ✔
StringTable Cleaning - - - - ✔
JNI WeakRef Cleaning - - - - ✔
JNI GlobalRefs Scanning - - - - ✔**
Class Unloading - - - - ✔**
Thread Stack Scanning - - - - -
36
**) Old Gen Only
**) Post JDK 11
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 37
ZGC フェーズ
並行して
Mark/Remap
停止して Mark 終了 停止して Relocate 開始停止して Mark 開始
並行してRelocate
の準備
並行して
Relocate
GC サイクル
< 10 ms < 10 ms < 10 ms
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Colored Pointers
• ZGCの設計の中核をなすコンセプト
• メタデータは64-bit ポインタの未使用bitに格納します。
– 32-bit は対応しません
– CompressedOopsによるメモリ圧縮は対応しません
38
オブジェクトのアドレス (42 bits, 4TB アドレス空間)
64-bit オブジェクトポインタ
未使用 (18 bits)
カラー
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Mode: Composite
Heap Size: 128G
OS: Oracle Linux 7.4
HW: Intel Xeon E5-2690 2.9GHz
2 sockets, 16 cores (32 hw-threads)
SPECjbb®2015 is a registered trademark of the Standard Performance
Evaluation Corporation (spec.org). The actual results are not represented
as compliant because the SUT may not meet SPEC's requirements for
general availability.
39
SPECjbb®2015 – Score
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
ZGC Parallel G1
(Higher is better)
max-JOPS (Throughput) critical-JOPS (Throughput with latency requirements)
50%
29%
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
1
10
100
1000
ZGC Parallel G1
GCPauseTimes(ms)
Logarithmic scale
(Lower is better)
Average 95th percentile 99th percentile 99.9th percentile Max
40
SPECjbb®2015 – 停止時間
1.96
1.10
156
306
211
544
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
有効化
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC
41
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
将来の予定
• 短期的な予定
– 並行クラスアンロード
– ZGC を本機能として取り込む
• 長期的な予定
– 世代別GC
– ミリ秒以下の最大停止時間
– 他のプラットフォームの対応
– Graal JIT 対応
42
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
ZGC プロジェクト
zgc-dev@openjdk.java.net
http://wiki.openjdk.java.net/display/zgc/Main
43
購読して参加して、ぜひフィードバックしてください
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
ZGC プロジェクト
http://hg.openjdk.java.net/jdk/jdk
http://hg.openjdk.java.net/zgc/zgc
44
ソースコード
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Diagnose Your Microservices
Open Tracing / Oracle Application Performance Monitoring Cloud
Marcus Hirt / Consulting Member of Technical Staff
John Sullivan / Senior Director of Product Management
OMC
October, 2018
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
モノリシック vs. マイクロサービス
46
モノリシックなアプリケーションは、
そのすべての機能を1つのプロセスに集約し、
複数のサーバにモノリスを複製することで拡張します。
マイクロサービス・アーキテクチャは、
機能の各要素を個別のサービスに配置し、
これらのサービスをサーバ全体に分散し、
必要に応じて複製することによって拡張します。
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
クラウドでのマイクロサービス
47
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Open Tracing
• ベンダーに依存しない分散トレーシングAPI
– ライブラリ作成者は、1つのAPIを使用して複数のベンダーをサポートできます。
– お客様は、ベンダー・ロックインを心配することなくコンテキスト情報を追加できます。
• Open Tracing とは...
– トレースおよびトレース関連情報を生成するアプリケーション・レベルAPI。
– コンテキスト伝播用のAPI。
– 主な貢献者はLightStep、Jeager、Skywalking、Datadog。
• GitHub上の仕様と言語固有のAPIはこちら:
https://github.com/opentracing
48
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
JDK Flight Recorder (JFR)
• 実稼働時間のプロファイリングと診断のためのJVMテクノロジ。
• 民間航空機のFlight Data Recorderに似ています。
• JDK11でオープンソース化されました
• Hotspotランタイムチームによって継続的に機能が追加されます。
• Oracleでは本番システムの問題を解決するために長年使用してきました
「Oracle Fusion Applicationsでは、何十万ものFlight Recordingを
作成し、そのレコーディングだけを使用して問題の95%を把握で
きます。」
-Joe Albowicz、Oracle(Fusionアプリケーション開発)
49
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
しかし...
• 何千ものJavaプロセスがあるとしたらどうでしょう。
• どのように記録を出力するのか?
• 記録をどこに保存するのか?
• ログとログを処理する手段も必要な場合はどうすればよいでしょうか。
• 分散トレーシングを使った既存のメトリックが必要な場合はどうする?
50
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
隅々へのトランザクション可視化、コードレベルの可視性
• すべての出入口を測定します。
• サービスおよび階層全体の
パフォーマンスを測定します。
• 不十分な場合、ユーザ定義の
カスタムトレースポイント
(OpenTracing、POJOなど)を作成。
• 時間や場所を問わずにデータを監
視するための診断機能を活用で
きます。
51
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
APMにOpenTraceを追加されたカスタム・コールの例
52
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 53
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Java EE/Jakarta EE/MicroProfile
Java Server-Side Development and Microservices Track
54
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 55
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Community KeynoteのIBMの枠
左から
• Ian Robinson@IBM
• Will Lyons@Oracle
• Mark Little@Red Hat
• David Blevins@Tomitribe
一番右はMCのPratik Patel@IBM
56
KeynoteでJakarta EEについて触れた時間(約5分)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 57
セッション数
Java Server-Side Development and Microservices
23
12
24
86/618
Java EE
Jakarta EE
MicroProfile
52
40
158
Kubernetes
Docker
Container
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 58
Why?
EclipseCon
Europe
(10/23-25)
Jakarta EEへの
移行期間
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Jakarta EEのおさらい
• Cloud Native Javaのための仕様
• ホストはEclipse Foundation
• Java EEテクノロジーを進化させていく
• 目標
– より速いリリースサイクル
– 参加の障壁を下げる(TCK...)
– コミュニティの立ち上げ
– コミュニティのためにJakarta EEブランドを管理
59
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 60
2017年9月に発表
Technology
Community
& Vendors
Sponsorship
✓ Nimble
✓ Flexible
✓ Open
✓ Compatible
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
2018年は移行期間
• Oracleから
– Java EE 8の参照実装
– TCK
– ドキュメント
• Eclipse GlassFish 5.Xのビルド
• 仕様策定プロセスの定義
• 互換性チェックのプロセス策定
• テクノロジーの進化、MicroProfileとの統合
• OracleはJava EEのサポートを継続
61
✓ Nimble
✓ Flexible
✓ Open
✓ Compatible
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 62
Jakarta EE Working Group Strategic Members
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 63
Jakarta EE Working Group Participating Members
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 64
High Level Roadmap for Jakarta EE
Oracle
GlassFish 5.X
Eclipse
GlassFish 5.1
Eclipse
GlassFish “Next”
Java EE 8
Java EE 8 Jakarta EE 8
ソースコードやTCKを移管
Jakarta EE Next
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Eclipse GlassFish 5.1のリリーススケジュール
65
Java EE 8の検証のためにEclipse FoundationにJava EE 8 TCKをライセンス許諾済み
日時 予定
2018/9/21 GlassFishのビルドに必要な全てのコードを寄贈
2018/9/23 Eclipse GlassFishのビルド開始
2018/10/1 Eclipse Glassfishに対してJava EE 8 CTS(Compatibility Test Suite)によるテスト開始
2018/10/22 Eclipse GlassFish 5.1-RC1リリース
2018/10/29 CI/CDリリースパイプライン完了
2018/11/5 全てのコンポーネントをEclipse版に置き換え
2018/11/30 リリースレビューの完了
2018/12/14 Eclipse GlassFish 5.1のリリース(全CTSテスト完了)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
新仕様策定プロセス
• Jakarta EE Specification Committee
が策定
• フィードバックはオープンに受付
– Jakarta EE Communityメーリングリストを
通じたフィードバック(望ましい方式)
– ドキュメントに対するコメント
• アプローチ
– Jakarta EEにおけるJCPに変わるもの
– できる限りオープンソースの開発方式
に近づける
– 再利用可能なEclipseプロセスを作成
– code-first開発を可能に
– 高品質の仕様を作成
66
Eclipse Foundation Specification Process (EFSP)
https://tinyurl.com/ybh8sx8j
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 67
JCPとEFSP
Specification First
Led by Spec Lead
Public Communication
ドキュメントとTCKはClosed Source
1個の参照実装
(Reference Implementation)
Code First
Collaborative
Public Communication
ドキュメントとTCKはOpen Source
1個以上の互換実装
(Compatible Implementations)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 68
1800名超の開発者からのアンケートを基に
Jakarta EE Technical Directions
Top
3
改善すべきポイント
1. Microservicesのサポート強化
2. Kubernetesとのネイティブ統合
3. より速い技術革新
Top
Microservices構築時に利用するフレーム
ワークの上位は、
Jersey, Spring, Eclipse MicroProfile, Node.js
& Kubernetes
67%
回答者の67%が現在Microservices構築中
もしくは今後1年以内に構築予定
40%
Java EEを使用する上で最大の課題がメモリ
要件と感じている人は。回答者の40%
#1
Javaアプリケーション開発にJava EEを選択し
た理由の第1位は安定性
60%
microservicesのサポート向上を優先すべき
と考える人が回答者の60%
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Jakarta EE Technical Directions – Community Voices
• Jakarta EEからのメッセージやDirectionに影響
• 24のコミュニティから74件の詳細な回答
• 回答の一部
– CDIで出来る範囲の拡大、CDI仕様への整合性向上
– コミュニティ内で一番多い質問は、Java 11と Modularity
– MicroProfile、Microservices、Cloudは引き続き関心が高い
– Jakarta NoSQL(JNoSQL)によるエコシステムの拡大
69
https://docs.google.com/document/d/1y-
Vs4d9Iotw0HqsiTxG5UCm7ua0w35vJZkGVmS_hFrw/edit#
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
WebLogic Server
• Kubernetes Operator Patternを活用
• 管理:WebLogic Server Kubernetes Operator
https://github.com/oracle/weblogic-kubernetes-operator
• 監視:WebLogic Monitoring Exporter for Prometheus
https://github.com/oracle/weblogic-monitoring-exporter
• 移行:Oracle WebLogic Server Deploy Tooling
https://github.com/oracle/weblogic-deploy-tooling
70
Kubernetesでの動作をサポート、WebLogic Server管理をシンプルにするツールを提供
Kubernetes
Operator
WebLogic WebLogicWebLogic
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Project Helidon
• 2種類のプログラミングモデル
– Helidon SE: 関数型、透過的、CDIなし
– Helidon MP: Eclipse MicroProfile実装、
宣言型、Java EE開発者向け
(JAX-RS, CDI, etc.)
• Jakarta EEやMicroProfileテクノロジーの
再利用
• Oracle Cloudサービスとの統合
71
Microservices開発のためのJavaライブラリをオープンソースとして公開
Helidon MPHelidon SE
Netty
JAX-RS
WebServerConfig Security
CDI JSON-P/B
Oracle
Cloud
Integrations
Smaller
Larger
Spring Boot
Microframeworks
MicroProfile Based
Open Liberty
Full-Stack
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 72
Eclipse MicroProfile
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 73
Individuals, organizations, vendors
Community
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 74
https://wiki.eclipse.org/MicroProfile/Implementation
MicroProfileの実装
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 75
Eclipse MicroProfile 2.0 (2018/6)
MicroProfile 2.0
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 1.1
JWT
Propagation
1.1
Health
Check 1.0
Metrics 1.1
Open Tracing
1.1
Open API 1.0
Rest Client
1.1
JSON-B 1.0
■新規
■アップデート
■前リリース(MicroProfile 1.4)から変更なし
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 76
Eclipse MicroProfile 2.1 (2018/10)
MicroProfile 2.1
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.3
Fault
Tolerance 1.1
JWT
Propagation
1.1
Health
Check 1.0
Metrics 1.1
Open Tracing
1.2
Open API 1.0
Rest Client
1.1
JSON-B 1.0
■新規
■アップデート
■前リリース(MicroProfile 2.0)から変更なし
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 77
Eclipse MicroProfile 2.2 (2019/2) -- Roadmap
MicroProfile 2.2
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.0
JWT
Propagation
1.1
Health
Check 1.1
Metrics 2.0
Open Tracing
1.2
Open API 1.0
Rest Client
1.2
JSON-B 1.0
Reactive
Messaging
1.0
Reactive
Operators 1.0
■新規
■アップデート
■前リリース(MicroProfile 2.1)から変更なし
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
その他
• Reactive Streams Operatorsプロジェクトをスタンドアロンでリリース予定
– https://github.com/eclipse/microprofile-reactive-streams
• MicroProfileのリリースサイクルを年3回に変更
– 2月1日
– 6月1日
– 10月1日
78
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
現在議論中のトピック
• Long Running Actions
• Reactive Streams
• Reactive Events
• Data Access
• Event Data
• Service meshes
• Concurrency
79
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 80
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 81
• Microframework
• Functional Style
• Reactive
• Transparent
• MicroProfile
• Declarative Style
• CDI, JAX-RS, JSON-P
• Familiar to Java EE developers
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 82
Java Microservice Frameworks
Smaller
Larger
Spring Boot
Microframeworks
MicroProfile Based
Open Liberty
Full-Stack
Dropwizard
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 83
Architecture
Helidon SE
Netty
WebServer SecurityConfig
Helidon MP
CDI JAX-RS JSON-P
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Reactive WebServer
• 関数型ルーティングモデル+
リアクティブFlow API
• Netty上に構築
• OpenTracingおよび Metricsに
対応
• JAX-RS, JSON-P support
• 静的コンテンツのサポート
Config
• 柔軟な型付き設定モデル
• 複数のデータソース
• 階層型モデル
• 動的なアップデート
• 拡張可能
84
Security
• 認証・認可
• アウトバウンド・セキュリティ
• 監査
• 拡張可能
• 組込済みのプロバイダ
– OIDC
– JWT
– Google Login
Helidon SE
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Helidon SE
import io.helidon.webserver.Routing;
import io.helidon.webserver.WebServer;
public static void main(String[] args)
{
WebServer.create(
Routing.builder()
.get("/greet", (req, res) ->
res.send("Hello World!"))
.build()).start();
}
Helidon MP
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
public class GreetService {
@GET
@Path("/greet")
public String getMsg() {
return "Hello World!";
}
}
85
SE/MPの違い(Hello World)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 86
CDI ExtensionsをPreviewとして
現在の最新リリース:0.10.5
Helidon MP
Helidon SE
Microprofile 1.2に対応
• WebServer, Config, Security
• JSON-P
• Metrics
• OpenTracing
• HTTP/2 (experimental)
CDI Extensions MicroProfile ConfigとCDI 2.0 を使用し、種々のサービスとの統合
を実現するためのCDI Extension(開発者プレビュー)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 87
Archetype
Helidon SE
mvn archetype:generate -DinteractiveMode=false ¥
-DarchetypeGroupId=io.helidon.archetypes ¥
-DarchetypeArtifactId=helidon-quickstart-se ¥
-DarchetypeVersion=0.10.5 ¥
-DgroupId=io.helidon.examples ¥
-DartifactId=quickstart-se ¥
-Dpackage=io.helidon.examples.quickstart.se
Helidon MP
mvn archetype:generate -DinteractiveMode=false ¥
-DarchetypeGroupId=io.helidon.archetypes ¥
-DarchetypeArtifactId=helidon-quickstart-mp ¥
-DarchetypeVersion=0.10.5 ¥
-DgroupId=io.helidon.examples ¥
-DartifactId=quickstart-mp ¥
-Dpackage=io.helidon.examples.quickstart.mp
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 88
コンテナで実行
Docker
Kubernetes
docker build -t quickstart-se target
docker run --rm -p 8080:8080 quickstart-se
kubectl create -f target/app.yaml
kubectl get service
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 89
Java 8, 11, 12...
$ docker images quickstart-se
REPOSITORY TAG IMAGE ID CREATED SIZE
quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB
quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB
quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB
quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 90
jlinkで約1/3にまでコンパクトに
$ docker images quickstart-se
REPOSITORY TAG IMAGE ID CREATED SIZE
quickstart-se 12-oracle-custom edafa9a43204 7 days ago 172MB
quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB
quickstart-se 11-oracle-custom acc0127977c8 7 days ago 172MB
quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB
quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB
quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 91
Alpine Linuxでもっとコンパクトに...
$ docker images quickstart-se
REPOSITORY TAG IMAGE ID CREATED SIZE
quickstart-se 12-alpine-custom d948b732d796 7 days ago 58.4MB
quickstart-se 12-alpine ba31e688dcb6 7 days ago 341MB
quickstart-se 12-oracle-custom edafa9a43204 7 days ago 172MB
quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB
quickstart-se 11-oracle-custom acc0127977c8 7 days ago 172MB
quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB
quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB
quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
今後の予定
• MicroProfile 2.x対応
• Reactive HTTP Client
• GraalVMとの統合
• Project Starter UI
• Reactive storage (NoSQL, ADBA)
• Open API
• Eventing
92
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Resources
93
https://github.com/oracle/helidon
@helidon_project
https://helidon.slack.com
https://helidon.io
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Additionally...
94
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Oracle Cloud Infrastructure: Complete Services
ストレージ
NVMe, Block, File, Object, Archive
リザーブドIOPSブロックストレー
ジは他社より98%安価, 高いス
ケールが可能
コンピュート
ベアメタル, GPU, 仮想マシン
52物理CPUコア(104vcpu),
8 GPU, 768 GB RAM, 51 TB
local NVMe SSD, 500万IOPS
データベース
ベアメタル,仮想マシン, RAC, Exadata
秒間数百万トランザクションま
で。 RACとActive Data Guardを
完全にサポート
ネットワーク
VCN, ロードバランサ
予約されたIP、サブネット、セキュリ
ティリスト、ファイアウォール、LBを備
えた分離されたプライベートネット
ワーク
コンテナ
コンテナとKubernetes
フルマネージド, Kubernetesに
認定されたサービス
エッジ
DNS, VPN, FastConnect, Email
グローバルDNS, グローバル専
用接続は97%安価, email 配信
CLOUD AT CUSTOMER
IaaS, PaaS, Exadata On-premises
サブスクリプション価格のクラウドイ
ンフラストラクチャ、PaaS、および
Oracleが管理するデータベース
RAVELLO
VMware や KVMの移行
既存のネットワークを維持
したまま、VM環境をクラウ
ドに移行
DATA MOVEMENT
ストレージアプライアンス,データ転送
ソフトウェアNASゲートウェイ、フル・
チェーンの管理によるデータ取り込
みサービス(HDDまたはアプライアン
ス)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Container Engine for Kubernetes と Registry
Customer ManagedOracle Managed
OCI Container Engine
for Kubernetes
Cluster Management
Container Engine
Dashboard
Oracle Cloud Infrastructure
OCI Registry
In-flight and at rest
data encryption
VM based Clusters and Nodes
Bare Metal Clusters and Nodes
Customer’s OCI
Account/Tenancy
HA - 3 Masters/etcd
across 3 ADs
Cloud Native
• 標準の Docker と Kubernetes
• レジストリを統合
• 仮想ネットワークとストレージとの
統合
開発者フレンドリー
• 合理化されたワークフロー
• REST API
• 組み込まれたクラスタ
• オープンな標準に対応
Enterprise Ready
• シンプルなクラスタの操作
• ベアメタルの性能が出て可用性が
高いIaaS
• チームベースのアクセス制限
• 自立化したクラスタ
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Oracle Cloud Infrastructure (OCI) の能力を生かす
Kubernetesクラスター構成
• ハイパフォーマンスな次世代IaaS上にKubernetesクラスターを構築
• Availability Domainを横断してクラスターを構成し、高可用性を実現
Kubernetes クラスター
Availability Domain 1 Availability Domain 2 Availability Domain 3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エンタープライズグレードのパフォーマンス
• ミッションクリティカルなクラスターを運用するのに最適な基盤
– 高速SSDを搭載したベアメタル(非仮想)サーバー
– 3つのAvailability Domains (AD) でリージョンを構成。AD間、AD内のホスト間を、低レ
イテンシー、広帯域のN/Wで接続
高性能次世代IaaSがもたらすハイパフォーマンス
98
https://www.accenture.com/t20171003T083750Z__w__/us-
en/_acnmedia/PDF-62/Accenture-Enterprise-Workloads-Meet-Cloud.pdf
OCIOther
AD1
AD2 AD3
AD間: 1Tb/s, < 500µs
AD内: 25Gb/s, < 100µs
第3者機関によるN/W性能検証結果
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エンタープライズグレードの可用性
• Master Nodeをデフォルトで冗長化
• etcdを自動で定期バックアップ
デフォルトでHA構成のKubernetesクラスターを提供
Kubernetes クラスター
Availability Domain 1 Availability Domain 2 Availability Domain 3
Object Store Object StoreObject Store
Master Node Master Node Master Node
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 100
102

More Related Content

What's hot

(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決オラクルエンジニア通信
 
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~オラクルエンジニア通信
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションオラクルエンジニア通信
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Hirofumi Iwasaki
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osakaTakashi Ito
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6Hironobu Isoda
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートオラクルエンジニア通信
 

What's hot (13)

Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~
Oracle Autonomous Data Warehouse Cloud vs 現役DBエンジニア ~自律型DBの実力を味わう~
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
 
Tech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_shareTech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_share
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 
Oracle Spatial 概要説明資料
Oracle Spatial 概要説明資料Oracle Spatial 概要説明資料
Oracle Spatial 概要説明資料
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
 
Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
 
オラクルのHadoopソリューションご紹介
オラクルのHadoopソリューションご紹介オラクルのHadoopソリューションご紹介
オラクルのHadoopソリューションご紹介
 

Similar to Oracle code one 2018 報告会概要

これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpYuji Kubota
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応歩 柴田
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!オラクルエンジニア通信
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
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
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)オラクルエンジニア通信
 
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019Takashi Ito
 
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)オラクルエンジニア通信
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupRecruit Technologies
 
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...オラクルエンジニア通信
 
Struggle against crossdomain data complexity in Recruit Group
Struggle against crossdomain data complexity in Recruit GroupStruggle against crossdomain data complexity in Recruit Group
Struggle against crossdomain data complexity in Recruit GroupDataWorks Summit/Hadoop Summit
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...David Buck
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Yuji Kubota
 

Similar to Oracle code one 2018 報告会概要 (20)

これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応
 
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
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 発の最新技術トレンドを一気にキャッチアップ-
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
 
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
 
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)
 
Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版
 
Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
 
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...
[Modern Cloud Day Tokyo 2019] Oracle Cloud Infrastructure 基本サービス入門(1) - Netwo...
 
Struggle against crossdomain data complexity in Recruit Group
Struggle against crossdomain data complexity in Recruit GroupStruggle against crossdomain data complexity in Recruit Group
Struggle against crossdomain data complexity in Recruit Group
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
 

More from Chihiro Ito

Red Hat Data Grid 8.2 新機能
Red Hat Data Grid 8.2 新機能Red Hat Data Grid 8.2 新機能
Red Hat Data Grid 8.2 新機能Chihiro Ito
 
Red Hat Data Grid 8.1 新機能
Red Hat Data Grid 8.1 新機能Red Hat Data Grid 8.1 新機能
Red Hat Data Grid 8.1 新機能Chihiro Ito
 
Quarkus Technical Deep Dive - Japanese
Quarkus Technical Deep Dive - JapaneseQuarkus Technical Deep Dive - Japanese
Quarkus Technical Deep Dive - JapaneseChihiro Ito
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern javaChihiro Ito
 
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方Chihiro Ito
 
Quarkusのビジネスと技術的な価値
Quarkusのビジネスと技術的な価値Quarkusのビジネスと技術的な価値
Quarkusのビジネスと技術的な価値Chihiro Ito
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Chihiro Ito
 
Getting started MySQL as Document Data Store
Getting started MySQL as Document Data StoreGetting started MySQL as Document Data Store
Getting started MySQL as Document Data StoreChihiro Ito
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015Chihiro Ito
 
JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法Chihiro Ito
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 

More from Chihiro Ito (13)

Red Hat Data Grid 8.2 新機能
Red Hat Data Grid 8.2 新機能Red Hat Data Grid 8.2 新機能
Red Hat Data Grid 8.2 新機能
 
Red Hat Data Grid 8.1 新機能
Red Hat Data Grid 8.1 新機能Red Hat Data Grid 8.1 新機能
Red Hat Data Grid 8.1 新機能
 
Quarkus Technical Deep Dive - Japanese
Quarkus Technical Deep Dive - JapaneseQuarkus Technical Deep Dive - Japanese
Quarkus Technical Deep Dive - Japanese
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern java
 
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方
 
Quarkusのビジネスと技術的な価値
Quarkusのビジネスと技術的な価値Quarkusのビジネスと技術的な価値
Quarkusのビジネスと技術的な価値
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発
 
Getting started MySQL as Document Data Store
Getting started MySQL as Document Data StoreGetting started MySQL as Document Data Store
Getting started MySQL as Document Data Store
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
Hello Java
Hello JavaHello Java
Hello Java
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015
 
JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Oracle code one 2018 報告会概要

  • 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Oracle Code One 2018 Overview Chihiro Ito (@chiroito) Akihiro Nishikawa Oracle Groundbreaker🥑 Oracle Corporation Japan 1
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 2
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Overview 3
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Oracle Code One Oracle Open World 4 Oracle Code One とは Java以外 Java Oracleに関すること
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. スケジュール 21日(日) 22日(月) 23日(火) 24日(水) 25日(木) 5 事前登録 蟹One セッション JCP セッション BBQ セッション Live セッション Geek Bike Ride 12時(4時) 24時(16時) 8時(24時) 18時(10時) 12時(4時) 24時(16時) 8時(24時) 18時(10時)
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 6 セッション情報 https://developer.oracle.com/codeone https://events.rainfocus.com/widget /oracle/oow18/catalogcodeone18
  • 7. Oracle Code One Feedback Meetup 7 @TOKYO 2018/11/17 @SENDAI 2019/2/2 @NAGOYA 2018/11/30 @TOYAMA 2019/1/26 @GINOWAN 2018/12/8 @HIROSHIMA 2019/1/19 @OKAYAMA 2019/1/18 @OSAKA 2018/11/24 @KUMAMOTO 2019/1/11 @FUKUOKA 2019/1/12 @SAPPORO 2019/2/9
  • 8. Georges Saab @gsaab VP, Oracle Java Platform Group Chair, OpenJDK Governing Board 8
  • 12. オラクルが最近オープンソース化したものは何か Javaをもっとオープンにします Application Class Data Sharing (OpenJDK 10) Project ZGC (OpenJDK 11) Flight Recorder (OpenJDK 11) Mission Control (Project in OpenJDK and builds) 共有アーカイブ内の標準拡張ディレクトリとアプリ ケーションクラスパスからクラスを配置できる 実行中のJavaアプリケーションに関する診断 データとプロファイリングデータを収集 数テラバイトのヒープをサポートする低遅延 ガベージコレクタ 最小限のパフォーマンスオーバーヘッドでJavaア プリケーションを監視および管理 12
  • 13. OpenJDKコミュニティの多くの貢献に感謝します みんなで作った JDK 11 JDK 11 で修正された 2468 の課題 様々な組織で働いている開発 者や個人あわせて500人以上 によって貢献されました blogs.oracle.com/java-platform-group/building-jdk-11-together 13
  • 15. 15 現在の配列のレイアウト Project Valhalla final class Point { final int x; final int y; } headerPoint[] pts = header x y header x y header x y header x y header x y
  • 16. 16 我々が望む配列のレイアウト Project Valhalla headerheader x y x y x y x y Point[] pts = value class Point { int x; int y; } Value Types: コードはクラスのように書き、 プリミティブの配列のように動く
  • 17. Project Panama • JVMの外側にある関数とデータ • シンプルに、安全に、かつ高性能にJNIを置き換える • 通常のJavaコードを通じて低レベルなハードウェア機能へアクセスする – ベクター演算、特別なメモリタイプ(例えば不揮発性メモリ) • ビッグデータや機械学習 17
  • 18. Project Loom • 簡単にもっと拡張できる並行処理モデル – 事実上ブロックを無くす • “Fibers”という軽量スレッドと継続 – 何百万のFiberを単一のJVMで生成できる 18
  • 19. Project “Amber” • Java言語の改革 – 動的なクラスファイル定数 – Raw String リテラル – Switch式 – パターンマッチング 19
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Java in a World of Containers Mikael Vidstedt @MikaelVidstedt Director, Java Virtual Machine Java Platform Group, Oracle
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Java in a World of Containers • 管理付きランタイム・言語 • ハードやOSに依存しない • JVM によって保証されたセキュリティと安全性 • 信頼性:互換性は設計目標 • 可搬性:実行環境が変更されても、JVM が安定した運用を保つ • 豊富なエコシステム 21 Javaの特徴はコンテナに適していると言えるのでは? コミットメント:コンテナ利用において最適な選択肢であり続けること
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 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+) 22 https://mjg123.github.io/2018/01/10/Java-in-containers-jdk10.html
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Javaランタイムのカスタマイズ • デフォルトのJDK を含むDockerイメージ: ~530 MB – 必要なもの java.{lang,util,...}.*, javax.management.*, ... – 必要ではないもの corba, jaxws, ... • JDK 9 で導入されたモジュールシステム (“Jigsaw”) – JDK 自体をモジュール化 – カスタムの JRE を生成するツール • アプリが必要とするモジュールや機能だけを含む 23
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 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 モジュール 24 company.application
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Javaカスタムランタイム 25 java.sql java.sql.rowset java.activation java.transfer java.xml java.logging java.naming java.base company.application
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. JREサイズの最適化 • java.base のみ – 多くのアプリケーションにとって十分 • “netty” – 多くの(過半数?)のアプリにとって十分なモジュール – java.base, java.logging, java.management, java.xml, jdk.management, jdk.unsupported – (netty 自体は含まれていない) • 更に最適化できる – jlink --compress (25%+ の圧縮) 26
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. ベースイメージ(OS)サイズの最適化 • 合計サイズの大きな因子 • OS の中身は殆ど影響なし – 最低限:Java が動作する • ”slim” というイメージはユーザスペースの 機能の殆どを取り除いたもの 27
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. OpenJDK Project “Portola” • Alpine/musl への JDK ポート • Alpine Linux はとにかく軽い (4.4MB) – “musl” C ライブラリを利用 • 是非プロジェクトに参加してください! – http://openjdk.java.net/projects/portola – http://hg.openjdk.java.net/portola/portola – portola-dev@openjdk.java.net • Early access binaries – http://jdk.java.net/12 28
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 29 JVM のサイズ – その他
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. • 5MB 未満! – Java SE の仕様を準拠 • しかし... 機能は乏しい – JIT なし – Serial GC のみ – デバッグや保守性などのための機能 は殆どなし • 現実的ではないが、研究などの目 的には有用 30 “minimal” VM
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. • 約20MB のHelloWorld – Alpine ベースイメージ込み • minimal より小さいな JVM も存在 する(制限付き) – Oracle Labs の SubstrateVM 31 “minimal” Docker イメージ
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 32 JDK 12 起動時間 (CDS アーカイブ)
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 33 JDK 12 Application Class Data Sharing 起動時間
  • 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. The Z Garbage Collector Scalable Low-Latency GC in JDK 11 Per Lidén (@perliden) Consulting Member of Technical Staff Java Platform Group, Oracle October 24, 2018
  • 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 35 数テラバイトヒープ GCによる最大停止時間 簡単なチューニング アプリの性能低下を防ぐ ゴール 10msTB 15%
  • 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. どのフェーズが並行なのか? Serial Parallel CMS G1 ZGC Marking - - ✔* ✔* ✔ Relocation/Compaction - - - - ✔ Reference Processing - - - - ✔ Relocation Set Selection - - - - ✔ StringTable Cleaning - - - - ✔ JNI WeakRef Cleaning - - - - ✔ JNI GlobalRefs Scanning - - - - ✔** Class Unloading - - - - ✔** Thread Stack Scanning - - - - - 36 **) Old Gen Only **) Post JDK 11
  • 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 37 ZGC フェーズ 並行して Mark/Remap 停止して Mark 終了 停止して Relocate 開始停止して Mark 開始 並行してRelocate の準備 並行して Relocate GC サイクル < 10 ms < 10 ms < 10 ms
  • 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Colored Pointers • ZGCの設計の中核をなすコンセプト • メタデータは64-bit ポインタの未使用bitに格納します。 – 32-bit は対応しません – CompressedOopsによるメモリ圧縮は対応しません 38 オブジェクトのアドレス (42 bits, 4TB アドレス空間) 64-bit オブジェクトポインタ 未使用 (18 bits) カラー
  • 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Mode: Composite Heap Size: 128G OS: Oracle Linux 7.4 HW: Intel Xeon E5-2690 2.9GHz 2 sockets, 16 cores (32 hw-threads) SPECjbb®2015 is a registered trademark of the Standard Performance Evaluation Corporation (spec.org). The actual results are not represented as compliant because the SUT may not meet SPEC's requirements for general availability. 39 SPECjbb®2015 – Score 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% ZGC Parallel G1 (Higher is better) max-JOPS (Throughput) critical-JOPS (Throughput with latency requirements) 50% 29%
  • 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 1 10 100 1000 ZGC Parallel G1 GCPauseTimes(ms) Logarithmic scale (Lower is better) Average 95th percentile 99th percentile 99.9th percentile Max 40 SPECjbb®2015 – 停止時間 1.96 1.10 156 306 211 544
  • 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 有効化 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC 41
  • 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 将来の予定 • 短期的な予定 – 並行クラスアンロード – ZGC を本機能として取り込む • 長期的な予定 – 世代別GC – ミリ秒以下の最大停止時間 – 他のプラットフォームの対応 – Graal JIT 対応 42
  • 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. ZGC プロジェクト zgc-dev@openjdk.java.net http://wiki.openjdk.java.net/display/zgc/Main 43 購読して参加して、ぜひフィードバックしてください
  • 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. ZGC プロジェクト http://hg.openjdk.java.net/jdk/jdk http://hg.openjdk.java.net/zgc/zgc 44 ソースコード
  • 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Diagnose Your Microservices Open Tracing / Oracle Application Performance Monitoring Cloud Marcus Hirt / Consulting Member of Technical Staff John Sullivan / Senior Director of Product Management OMC October, 2018
  • 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. モノリシック vs. マイクロサービス 46 モノリシックなアプリケーションは、 そのすべての機能を1つのプロセスに集約し、 複数のサーバにモノリスを複製することで拡張します。 マイクロサービス・アーキテクチャは、 機能の各要素を個別のサービスに配置し、 これらのサービスをサーバ全体に分散し、 必要に応じて複製することによって拡張します。
  • 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. クラウドでのマイクロサービス 47
  • 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Open Tracing • ベンダーに依存しない分散トレーシングAPI – ライブラリ作成者は、1つのAPIを使用して複数のベンダーをサポートできます。 – お客様は、ベンダー・ロックインを心配することなくコンテキスト情報を追加できます。 • Open Tracing とは... – トレースおよびトレース関連情報を生成するアプリケーション・レベルAPI。 – コンテキスト伝播用のAPI。 – 主な貢献者はLightStep、Jeager、Skywalking、Datadog。 • GitHub上の仕様と言語固有のAPIはこちら: https://github.com/opentracing 48
  • 49. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. JDK Flight Recorder (JFR) • 実稼働時間のプロファイリングと診断のためのJVMテクノロジ。 • 民間航空機のFlight Data Recorderに似ています。 • JDK11でオープンソース化されました • Hotspotランタイムチームによって継続的に機能が追加されます。 • Oracleでは本番システムの問題を解決するために長年使用してきました 「Oracle Fusion Applicationsでは、何十万ものFlight Recordingを 作成し、そのレコーディングだけを使用して問題の95%を把握で きます。」 -Joe Albowicz、Oracle(Fusionアプリケーション開発) 49
  • 50. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. しかし... • 何千ものJavaプロセスがあるとしたらどうでしょう。 • どのように記録を出力するのか? • 記録をどこに保存するのか? • ログとログを処理する手段も必要な場合はどうすればよいでしょうか。 • 分散トレーシングを使った既存のメトリックが必要な場合はどうする? 50
  • 51. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 隅々へのトランザクション可視化、コードレベルの可視性 • すべての出入口を測定します。 • サービスおよび階層全体の パフォーマンスを測定します。 • 不十分な場合、ユーザ定義の カスタムトレースポイント (OpenTracing、POJOなど)を作成。 • 時間や場所を問わずにデータを監 視するための診断機能を活用で きます。 51
  • 52. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. APMにOpenTraceを追加されたカスタム・コールの例 52
  • 53. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 53
  • 54. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Java EE/Jakarta EE/MicroProfile Java Server-Side Development and Microservices Track 54
  • 55. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 55
  • 56. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Community KeynoteのIBMの枠 左から • Ian Robinson@IBM • Will Lyons@Oracle • Mark Little@Red Hat • David Blevins@Tomitribe 一番右はMCのPratik Patel@IBM 56 KeynoteでJakarta EEについて触れた時間(約5分)
  • 57. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 57 セッション数 Java Server-Side Development and Microservices 23 12 24 86/618 Java EE Jakarta EE MicroProfile 52 40 158 Kubernetes Docker Container
  • 58. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 58 Why? EclipseCon Europe (10/23-25) Jakarta EEへの 移行期間
  • 59. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Jakarta EEのおさらい • Cloud Native Javaのための仕様 • ホストはEclipse Foundation • Java EEテクノロジーを進化させていく • 目標 – より速いリリースサイクル – 参加の障壁を下げる(TCK...) – コミュニティの立ち上げ – コミュニティのためにJakarta EEブランドを管理 59
  • 60. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 60 2017年9月に発表 Technology Community & Vendors Sponsorship ✓ Nimble ✓ Flexible ✓ Open ✓ Compatible
  • 61. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 2018年は移行期間 • Oracleから – Java EE 8の参照実装 – TCK – ドキュメント • Eclipse GlassFish 5.Xのビルド • 仕様策定プロセスの定義 • 互換性チェックのプロセス策定 • テクノロジーの進化、MicroProfileとの統合 • OracleはJava EEのサポートを継続 61 ✓ Nimble ✓ Flexible ✓ Open ✓ Compatible
  • 62. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 62 Jakarta EE Working Group Strategic Members
  • 63. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 63 Jakarta EE Working Group Participating Members
  • 64. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 64 High Level Roadmap for Jakarta EE Oracle GlassFish 5.X Eclipse GlassFish 5.1 Eclipse GlassFish “Next” Java EE 8 Java EE 8 Jakarta EE 8 ソースコードやTCKを移管 Jakarta EE Next
  • 65. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Eclipse GlassFish 5.1のリリーススケジュール 65 Java EE 8の検証のためにEclipse FoundationにJava EE 8 TCKをライセンス許諾済み 日時 予定 2018/9/21 GlassFishのビルドに必要な全てのコードを寄贈 2018/9/23 Eclipse GlassFishのビルド開始 2018/10/1 Eclipse Glassfishに対してJava EE 8 CTS(Compatibility Test Suite)によるテスト開始 2018/10/22 Eclipse GlassFish 5.1-RC1リリース 2018/10/29 CI/CDリリースパイプライン完了 2018/11/5 全てのコンポーネントをEclipse版に置き換え 2018/11/30 リリースレビューの完了 2018/12/14 Eclipse GlassFish 5.1のリリース(全CTSテスト完了)
  • 66. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 新仕様策定プロセス • Jakarta EE Specification Committee が策定 • フィードバックはオープンに受付 – Jakarta EE Communityメーリングリストを 通じたフィードバック(望ましい方式) – ドキュメントに対するコメント • アプローチ – Jakarta EEにおけるJCPに変わるもの – できる限りオープンソースの開発方式 に近づける – 再利用可能なEclipseプロセスを作成 – code-first開発を可能に – 高品質の仕様を作成 66 Eclipse Foundation Specification Process (EFSP) https://tinyurl.com/ybh8sx8j
  • 67. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 67 JCPとEFSP Specification First Led by Spec Lead Public Communication ドキュメントとTCKはClosed Source 1個の参照実装 (Reference Implementation) Code First Collaborative Public Communication ドキュメントとTCKはOpen Source 1個以上の互換実装 (Compatible Implementations)
  • 68. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 68 1800名超の開発者からのアンケートを基に Jakarta EE Technical Directions Top 3 改善すべきポイント 1. Microservicesのサポート強化 2. Kubernetesとのネイティブ統合 3. より速い技術革新 Top Microservices構築時に利用するフレーム ワークの上位は、 Jersey, Spring, Eclipse MicroProfile, Node.js & Kubernetes 67% 回答者の67%が現在Microservices構築中 もしくは今後1年以内に構築予定 40% Java EEを使用する上で最大の課題がメモリ 要件と感じている人は。回答者の40% #1 Javaアプリケーション開発にJava EEを選択し た理由の第1位は安定性 60% microservicesのサポート向上を優先すべき と考える人が回答者の60%
  • 69. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Jakarta EE Technical Directions – Community Voices • Jakarta EEからのメッセージやDirectionに影響 • 24のコミュニティから74件の詳細な回答 • 回答の一部 – CDIで出来る範囲の拡大、CDI仕様への整合性向上 – コミュニティ内で一番多い質問は、Java 11と Modularity – MicroProfile、Microservices、Cloudは引き続き関心が高い – Jakarta NoSQL(JNoSQL)によるエコシステムの拡大 69 https://docs.google.com/document/d/1y- Vs4d9Iotw0HqsiTxG5UCm7ua0w35vJZkGVmS_hFrw/edit#
  • 70. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. WebLogic Server • Kubernetes Operator Patternを活用 • 管理:WebLogic Server Kubernetes Operator https://github.com/oracle/weblogic-kubernetes-operator • 監視:WebLogic Monitoring Exporter for Prometheus https://github.com/oracle/weblogic-monitoring-exporter • 移行:Oracle WebLogic Server Deploy Tooling https://github.com/oracle/weblogic-deploy-tooling 70 Kubernetesでの動作をサポート、WebLogic Server管理をシンプルにするツールを提供 Kubernetes Operator WebLogic WebLogicWebLogic
  • 71. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Project Helidon • 2種類のプログラミングモデル – Helidon SE: 関数型、透過的、CDIなし – Helidon MP: Eclipse MicroProfile実装、 宣言型、Java EE開発者向け (JAX-RS, CDI, etc.) • Jakarta EEやMicroProfileテクノロジーの 再利用 • Oracle Cloudサービスとの統合 71 Microservices開発のためのJavaライブラリをオープンソースとして公開 Helidon MPHelidon SE Netty JAX-RS WebServerConfig Security CDI JSON-P/B Oracle Cloud Integrations Smaller Larger Spring Boot Microframeworks MicroProfile Based Open Liberty Full-Stack
  • 72. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 72 Eclipse MicroProfile
  • 73. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 73 Individuals, organizations, vendors Community
  • 74. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 74 https://wiki.eclipse.org/MicroProfile/Implementation MicroProfileの実装
  • 75. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 75 Eclipse MicroProfile 2.0 (2018/6) MicroProfile 2.0 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 1.1 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.1 Open API 1.0 Rest Client 1.1 JSON-B 1.0 ■新規 ■アップデート ■前リリース(MicroProfile 1.4)から変更なし
  • 76. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 76 Eclipse MicroProfile 2.1 (2018/10) MicroProfile 2.1 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.3 Fault Tolerance 1.1 JWT Propagation 1.1 Health Check 1.0 Metrics 1.1 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 JSON-B 1.0 ■新規 ■アップデート ■前リリース(MicroProfile 2.0)から変更なし
  • 77. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 77 Eclipse MicroProfile 2.2 (2019/2) -- Roadmap MicroProfile 2.2 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.0 JWT Propagation 1.1 Health Check 1.1 Metrics 2.0 Open Tracing 1.2 Open API 1.0 Rest Client 1.2 JSON-B 1.0 Reactive Messaging 1.0 Reactive Operators 1.0 ■新規 ■アップデート ■前リリース(MicroProfile 2.1)から変更なし
  • 78. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. その他 • Reactive Streams Operatorsプロジェクトをスタンドアロンでリリース予定 – https://github.com/eclipse/microprofile-reactive-streams • MicroProfileのリリースサイクルを年3回に変更 – 2月1日 – 6月1日 – 10月1日 78
  • 79. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 現在議論中のトピック • Long Running Actions • Reactive Streams • Reactive Events • Data Access • Event Data • Service meshes • Concurrency 79
  • 80. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 80
  • 81. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 81 • Microframework • Functional Style • Reactive • Transparent • MicroProfile • Declarative Style • CDI, JAX-RS, JSON-P • Familiar to Java EE developers
  • 82. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 82 Java Microservice Frameworks Smaller Larger Spring Boot Microframeworks MicroProfile Based Open Liberty Full-Stack Dropwizard
  • 83. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 83 Architecture Helidon SE Netty WebServer SecurityConfig Helidon MP CDI JAX-RS JSON-P
  • 84. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Reactive WebServer • 関数型ルーティングモデル+ リアクティブFlow API • Netty上に構築 • OpenTracingおよび Metricsに 対応 • JAX-RS, JSON-P support • 静的コンテンツのサポート Config • 柔軟な型付き設定モデル • 複数のデータソース • 階層型モデル • 動的なアップデート • 拡張可能 84 Security • 認証・認可 • アウトバウンド・セキュリティ • 監査 • 拡張可能 • 組込済みのプロバイダ – OIDC – JWT – Google Login Helidon SE
  • 85. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Helidon SE import io.helidon.webserver.Routing; import io.helidon.webserver.WebServer; public static void main(String[] args) { WebServer.create( Routing.builder() .get("/greet", (req, res) -> res.send("Hello World!")) .build()).start(); } Helidon MP import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; public class GreetService { @GET @Path("/greet") public String getMsg() { return "Hello World!"; } } 85 SE/MPの違い(Hello World)
  • 86. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 86 CDI ExtensionsをPreviewとして 現在の最新リリース:0.10.5 Helidon MP Helidon SE Microprofile 1.2に対応 • WebServer, Config, Security • JSON-P • Metrics • OpenTracing • HTTP/2 (experimental) CDI Extensions MicroProfile ConfigとCDI 2.0 を使用し、種々のサービスとの統合 を実現するためのCDI Extension(開発者プレビュー)
  • 87. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 87 Archetype Helidon SE mvn archetype:generate -DinteractiveMode=false ¥ -DarchetypeGroupId=io.helidon.archetypes ¥ -DarchetypeArtifactId=helidon-quickstart-se ¥ -DarchetypeVersion=0.10.5 ¥ -DgroupId=io.helidon.examples ¥ -DartifactId=quickstart-se ¥ -Dpackage=io.helidon.examples.quickstart.se Helidon MP mvn archetype:generate -DinteractiveMode=false ¥ -DarchetypeGroupId=io.helidon.archetypes ¥ -DarchetypeArtifactId=helidon-quickstart-mp ¥ -DarchetypeVersion=0.10.5 ¥ -DgroupId=io.helidon.examples ¥ -DartifactId=quickstart-mp ¥ -Dpackage=io.helidon.examples.quickstart.mp
  • 88. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 88 コンテナで実行 Docker Kubernetes docker build -t quickstart-se target docker run --rm -p 8080:8080 quickstart-se kubectl create -f target/app.yaml kubectl get service
  • 89. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 89 Java 8, 11, 12... $ docker images quickstart-se REPOSITORY TAG IMAGE ID CREATED SIZE quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
  • 90. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 90 jlinkで約1/3にまでコンパクトに $ docker images quickstart-se REPOSITORY TAG IMAGE ID CREATED SIZE quickstart-se 12-oracle-custom edafa9a43204 7 days ago 172MB quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB quickstart-se 11-oracle-custom acc0127977c8 7 days ago 172MB quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
  • 91. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 91 Alpine Linuxでもっとコンパクトに... $ docker images quickstart-se REPOSITORY TAG IMAGE ID CREATED SIZE quickstart-se 12-alpine-custom d948b732d796 7 days ago 58.4MB quickstart-se 12-alpine ba31e688dcb6 7 days ago 341MB quickstart-se 12-oracle-custom edafa9a43204 7 days ago 172MB quickstart-se 12-oracle 35675acf14d4 7 days ago 468MB quickstart-se 11-oracle-custom acc0127977c8 7 days ago 172MB quickstart-se 11-oracle c3d347de8d23 7 days ago 469MB quickstart-se 8-alpine fae858de0489 7 days ago 88.6MB quickstart-se 8-slim 3a505f8068dc 7 days ago 210MB
  • 92. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 今後の予定 • MicroProfile 2.x対応 • Reactive HTTP Client • GraalVMとの統合 • Project Starter UI • Reactive storage (NoSQL, ADBA) • Open API • Eventing 92
  • 93. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Resources 93 https://github.com/oracle/helidon @helidon_project https://helidon.slack.com https://helidon.io
  • 94. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Additionally... 94
  • 95. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Oracle Cloud Infrastructure: Complete Services ストレージ NVMe, Block, File, Object, Archive リザーブドIOPSブロックストレー ジは他社より98%安価, 高いス ケールが可能 コンピュート ベアメタル, GPU, 仮想マシン 52物理CPUコア(104vcpu), 8 GPU, 768 GB RAM, 51 TB local NVMe SSD, 500万IOPS データベース ベアメタル,仮想マシン, RAC, Exadata 秒間数百万トランザクションま で。 RACとActive Data Guardを 完全にサポート ネットワーク VCN, ロードバランサ 予約されたIP、サブネット、セキュリ ティリスト、ファイアウォール、LBを備 えた分離されたプライベートネット ワーク コンテナ コンテナとKubernetes フルマネージド, Kubernetesに 認定されたサービス エッジ DNS, VPN, FastConnect, Email グローバルDNS, グローバル専 用接続は97%安価, email 配信 CLOUD AT CUSTOMER IaaS, PaaS, Exadata On-premises サブスクリプション価格のクラウドイ ンフラストラクチャ、PaaS、および Oracleが管理するデータベース RAVELLO VMware や KVMの移行 既存のネットワークを維持 したまま、VM環境をクラウ ドに移行 DATA MOVEMENT ストレージアプライアンス,データ転送 ソフトウェアNASゲートウェイ、フル・ チェーンの管理によるデータ取り込 みサービス(HDDまたはアプライアン ス)
  • 96. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Container Engine for Kubernetes と Registry Customer ManagedOracle Managed OCI Container Engine for Kubernetes Cluster Management Container Engine Dashboard Oracle Cloud Infrastructure OCI Registry In-flight and at rest data encryption VM based Clusters and Nodes Bare Metal Clusters and Nodes Customer’s OCI Account/Tenancy HA - 3 Masters/etcd across 3 ADs Cloud Native • 標準の Docker と Kubernetes • レジストリを統合 • 仮想ネットワークとストレージとの 統合 開発者フレンドリー • 合理化されたワークフロー • REST API • 組み込まれたクラスタ • オープンな標準に対応 Enterprise Ready • シンプルなクラスタの操作 • ベアメタルの性能が出て可用性が 高いIaaS • チームベースのアクセス制限 • 自立化したクラスタ
  • 97. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Oracle Cloud Infrastructure (OCI) の能力を生かす Kubernetesクラスター構成 • ハイパフォーマンスな次世代IaaS上にKubernetesクラスターを構築 • Availability Domainを横断してクラスターを構成し、高可用性を実現 Kubernetes クラスター Availability Domain 1 Availability Domain 2 Availability Domain 3
  • 98. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エンタープライズグレードのパフォーマンス • ミッションクリティカルなクラスターを運用するのに最適な基盤 – 高速SSDを搭載したベアメタル(非仮想)サーバー – 3つのAvailability Domains (AD) でリージョンを構成。AD間、AD内のホスト間を、低レ イテンシー、広帯域のN/Wで接続 高性能次世代IaaSがもたらすハイパフォーマンス 98 https://www.accenture.com/t20171003T083750Z__w__/us- en/_acnmedia/PDF-62/Accenture-Enterprise-Workloads-Meet-Cloud.pdf OCIOther AD1 AD2 AD3 AD間: 1Tb/s, < 500µs AD内: 25Gb/s, < 100µs 第3者機関によるN/W性能検証結果
  • 99. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エンタープライズグレードの可用性 • Master Nodeをデフォルトで冗長化 • etcdを自動で定期バックアップ デフォルトでHA構成のKubernetesクラスターを提供 Kubernetes クラスター Availability Domain 1 Availability Domain 2 Availability Domain 3 Object Store Object StoreObject Store Master Node Master Node Master Node
  • 100. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 100
  • 101.
  • 102. 102