oracle cloud platformで実践する アプリケーション...
TRANSCRIPT
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud Platformで実践する アプリケーション開発と運用の最新トレンド
Javaで創るクラウド時代のエンタープライズ開発 ~マイクロサービス、DevOpsとJavaの最新動向~
2016年12月2日 日本オラクル株式会社 クラウド・テクノロジー事業統括本部 Fusion Middleware事業本部 副事業本部長 古手川 忠久
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アジェンダ
オラクルのアプリケーション開発ソリューション
アプローチ1: クラウド・ネイティブアプリケーション開発
デモ ~ API + Single Page App + End to End Monitoring
アプローチ2: 既存アプリケーションのモダナイゼーション
デモ ~ オン・プレミスWLSインスタンスのクラウド移行
まとめ
1
2
3
3
5
4
3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 5
Oracle Cloud Platform
Network Storage Compute Your Data Center
Oracle Cloud at Customers Oracle Data Center Oracle Cloud
IaaS
IDENTITY & SECURITY
CONTENT & EXPERIENCE
ENTERPRISE INTEGRATION
DATA INTEGRATION
BUSINESS ANALYTICS
PaaS Open
Hybrid Cloud
Comprehensive
Integrated
IT OPERATIONS MANAGEMENT
APPLICATION DEVELOPMENT
DATA MANAGEMEN
T
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アプリケーション開発と エンタープライズ・ソフトウェアのポートフォリオ
6
コア ソフトウェア – これまでの運用を持続する (ERP IaaS)
差別化 ソフトウェア - 今のビジネスを支える (Java/DB PaaS)
イノベーション ソフトウェア – 次のビジネスを追求する (PaaS/Cloud)
古いソフトウェア 限定的なDevOps
新規ソフトウェア 最新のDevOps
成熟・安定したソフトウェア 第一世代のDevOps
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud活用に向けた3つのパス IaaSへの移行、PaaSにモダナイズ、クラウドネイティブで新規開発
Java Cloud, SOA Cloud,
DB Cloud, Dev Cloud
App Container, Dev Cloud, Mobile, API,
APM, App Builder, Integration
オン・プレミス
• オラクル資産
• オラクル以外の資産
IaaSにリホスト
• コア (ERP/CRM) ソフトウェア
• レガシー 資産
• オラクル以外の資産
PaaSにモダナイズ
• 差別化 ソフトウェア
• Java, SOA, and Database
クラウドネイティブ 新規開発
• イノベーション ソフトウェア
• 新規開発アプリ
• レガシー資産の拡張
1 2
3
7
活用のステップは順不同
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
トラディショナル、クラウドネイティブ、コーディングレスのユニークなブレンド
Oracle Cloud Platform: アプリケーション開発のためのサービス群
8
Oracle Platform for Cloud Application Development
Compute (VM, Bare Metal)
共通 サービス Developer Cloud
(CICD) Identity APM/Log
Analytics API
Management*
インテグレーション サービス
データ サービス
Database NoSQL* MySQL
Integration SOA
バックエンド サービス
Mobile Application Container
Java
EE SDKs
(3rd Party, JET)
App Builder
フロントエンド ツール
Network Storage
Infrastructure as a Service
Internet of Things
Container Cloud (Docker, Orchestration)
Messaging Cloud
* CY17 提供予定
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
9
2つの主要な開発アプローチ
Java, Database, IaaS
運用負荷軽減 開発/テストの迅速化 PaaSサービスの活用
事前装備済
既存アプリケーションの モダナイゼーション
App Container, App Builder, Mobile
より多くの機能 より迅速な市場投入 革新のスピードアップ より簡単に試行
クラウドネイティブ アプリケーション開発
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アプローチ1: クラウド・ネイティブアプリケーション開発
10
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
11
2つの主要な開発アプローチ
Java, Database, IaaS
運用負荷軽減 開発/テストの迅速化 PaaSサービスの活用
事前装備済
既存アプリケーションの モダナイゼーション
App Container, App Builder, Mobile
より多くの機能 より迅速な市場投入 革新のスピードアップ より簡単に試行
クラウドネイティブ アプリケーション開発
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12
クラウドネイティブ開発に対する要件
スケーラブルPolyglot マイクロサービス
DevOpsの自動化
コンテナベース デプロイ容易性 拡張性
APIファースト
モバイル対応 モダンなUX
php EE
SE
パフォーマンス監視 診断分析
Application Container CS
API Platform CS*
JavaScript Extension Toolkit
Application Container CS
Developer CS
Management CS
Container CS
Mobile CS
* CY17 提供予定
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Container Cloud Service 最新のPaaSプラットフォーム上で構築するクラウドネイティブ・アプリ
• クラウドネイティブ、多様な開発言語 – Build, zip & deploy
• クラウドを考慮した仕様/機能 – DevOpsを完全自動化
– Dockerベース、柔軟なスケーリング
– REST API
• Oracleのエコシステムで差別化 – JDKセキュリティパッチ / Java Flight Recorder
– Java CS/DBCS上のOracle Workloadと連携
– API Platform CSによるAPI管理
–Management CSでパフォーマンス監視
13
他のクラウドサービス群との連携
DBCS JCS MsgCS NoSQL API CS MySQL DevCS Docker MobileCS
* CY17提供予定
* * *
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Developer Cloud Service – CI/CD & アジャイル開発
• 標準ベース • Hosted Git, GitHub, Maven, Hudson
• IDEインテグレーション • Eclipse, NetBeans, JDeveloper
• テストツール対応 • Selenium, Arquillian
• コラボレーション機能 – Scrum/Agile, Wikis, Issue Tracking
• 多くのデプロイターゲット • Java Cloud, Java SE or Node Cloud, SOA Cloud,
Mobile Cloud
14
IDE git
maven
PaaS
Selenium
JUnit
push build test
deploy Hudson
source control
task tracking
http://ant.apache.org/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
API Platform Cloud Service*
• Security(API の保護) –認証・認可
–外部からの攻撃に対する防御
• Engagement(APIの活用促進)
–開発者やパートナーに必要な情報を開発者ポータルで公開
• Optimization(APIの最適化) – API利用状況、SLAの分析
APIのライフサイクルを包括的にサポート
15
設計
実装
配備
管理
発見
監視 分析
* CY17 提供予定
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Performance Monitoring Cloud Service
16
Database Web Services External Calls Application Resources
Application Request
• 全てのページリクエストとAJAXリクエストの パフォーマンスを監視
• 全てのアプリケーション・リクエストを計測し、重要なインスタンスのサンプルを分類して保存
• エンド・ユーザー側で体験した遅延をバックエンドのサーバー・パフォーマンンスに関連づけ
End to Endでアプリケーション性能を可視化
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle JET (JavaScript Extension Toolkit)
17
• オープンソース・プロジェクトにオラクルがエンタープライズ開発に必要な要素を追加
– Oracle JET を構成するオープンソース・プロジェクト
– オラクルが追加した要素
• 双方向データ・バインディングのための共通データ・モデルAPI、i18n/L10N、アクセシビリティ、データ検証/変換、データ可視化UI
• レスポンシブ Web アプリとハイブリッド・モバイル・アプリの両方に対応
• オープンソース (Universal Permissive License) で利用可能
クラウド・ネイティブなエンタープライズ・システムのための JavaScript ツールキット
Knockout.js RequireJS jQuery jQuery UI Hammer
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Container Cloud Service Docker Platformをベースに提供
Registry
Scheduling & Elastic Scaling
Security, Reliability, Metering, Monitoring
Stateful and Stateless Containers
DIY
Container CS
App. Container CS
Java Node
.js
Any container workload
PHP Python Ruby C++ Go
Compute Cloud Service
18
• ニーズに応じたコンテナ ソリューションを選択可能
- Application Container CS - Container CS - IaaS + Docker / Mesos / etc.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
クラウドネイティブ要件のOracleソリューションマッピング
Polyglot/12 Factor App Container Cloud
Docker/Registry Container Cloud and Registry
Messaging/Eventing Messaging Cloud, Event Hub Cloud*
Monitoring/Logging APM & Log Analytics – Management Cloud
API Platform/Security API Platform Cloud, Identity Cloud
State App Container Cloud Caching*
Data Storage Database Cloud, MySQL Cloud, NoSQL Cloud*
DevOps Developer Cloud
* CY17 提供予定
19
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
デモ ~ API + Single Page App + End to End Monitoring
20
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
人事 情報
認証 ステート
デモ 全体像
API Gateway
API mngmt
組み込み ロード
バランサー
Developer CS
Management Cloud Service Application Performance Management
スケールアウト
Database CS
ステート・キャッシュ サービス
(今回はACCS上の スクラッチアプリ)
API PF CS Application Container Cloud Service
永続化データ
キャッシュデータ ユーザー
システム管理者
Ajaxコール
Staticコンテンツ (HTML5/JavaScript)
監視・診断
サーバーサイド アプリ クライアントサイド
アプリ
サーバーサイド アプリ
サーバーサイド アプリ
JET
パフォーマンス情報 パフォーマンス情報
今回は デモ対象外
ユーザー 情報
ユーザーディレクトリ
Single Page Application
API Services
End to End Monitoring
21
2017年2月10日 セミナー開催!
Identity CS
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ポイント① APIファーストなコンテナ・ベースのアーキテクチャ
• フロントエンド = 多様化/高性能化
– Web Browser、モバイルNative App、IoT(デバイス)、B2B(サーバー/App)、etc.
• Web Browser想定でサーバーサイドでMVCモデルを構築するシステムは限定的になる
• フロントエンドにデータ・バインディングがシフトする(MVVMモデルなど)
• サーバーサイド = 必要な機能を小さな粒度でREST APIとして提供
– アプリケーションはステートレスにして(オート)スケーラビリティを向上させる
– ステートの管理は外部のステート管理サービスに委託(DBCS, State Cache, etc.)
REST API
Business Logic
Application Container Cloud Service
多様なフロントエンド
22
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ポイント② Application Container Cloud Serviceのインスタンス管理 • サーバーレス
– コンテナの物理的な配置を意識しない • Dockerコンテナの存在自体も隠ぺい
– インスタンスの数とメモリサイズを即時変更可能
• 組み込みロードバランサーとローリング・リスタート
– 無停止でインスタンス拡張/縮退が可能
• ステートレス
– 永続データは外部に保存
• Java Flight Recorderを利用可能 (Java SE)
• REST APIによる操作・情報収集
– ライフサイクル管理
– ヘルス・モニタリング
– ログ取得
23
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ポイント③ JAX-RSによるREST APIの実装 • JAX-RS = Javaベースでマイクロサービスを実装する有力な選択肢
– Java EE標準、他の標準(JSON-P/B等)との組み合わせ – 開発効率化、投資保護
– アノテーションを使ってPOJOを簡単にREST APIとして公開可能
– Filter, Interceptor, ExceptionMapper等の実用的API – コード共通化、関心事の分離
Servlet Engine (Tomcat)
JAX-RS (Jersey)
JPA (EclipseLink)
Application (microservices)
Java SE
Oracle JDBC Driver
APM Java Agent
JAX-RS Server JAX-RS Client
Java Flight Recorder
REST REST
JDBC
外部サービス群
SCIM*
24
/api/auth/in /api/auth/out /api/hr/employees
Application Container CS
*SCIM(System for Cross-domain Identity Management) = ID管理のためのREST API標準
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
参考: JAX-RS – The Java API for RESTful Web Services
25
Oracleがスペックリード
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Client Application
ポイント④ Oracle JETで作るフロントエンドSPA(Single Page Application)
• Oracle JET(JavaScript Extension Kit)活用による高い開発生産性
– レスポンシブ Web アプリとハイブリッド・モバイル・アプリの両方に対応
– MVVM(Model-View-ViewModel)パターンの双方向データ・バインディング
– 豊富なUIコンポーネント
Oracle JET
Browser
JET JQuery
JQuery UI Knockout
RequireJS Hammer
HTML5 / JavaScript
APM JavaScript Snippet Ajax Call
Static Contents (HTML5/JavaScript)
SPAアプリケーションの ダウンロード
REST APIの 呼び出し
26
/api/auth/in /api/auth/out /api/hr/employees
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ポイント⑤ APM Java AgentによるEnd to Endアプリケーション監視
• 実際にエンド・ユーザーが体験したレスポンス時間を表示
– Ajaxリクエストを含めた上でのアプリケーションのパフォーマンスを表示
• 遅延レスポンスがサーバー側の実行によるものかブラウザ側によるものかを判別
– Ajaxリクエストは自動的にページ及びサーバー側リクエストに関連付けられ迅速な分析が可能
• 計測用JavaScriptがアプリケーションのHTMLページに自動的にインジェクトされる
アプリケーション
Server Requests
Database Queries
End Users
APM Agent
ACCS
APM JavaScript 自動挿入
パフォーマンス データ 主要なWeb
サーバーに対応
スタティックに 埋め込みも可
27
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
まとめ: Oracleのクラウドネイティブソリューションの特長
29
最新のクラウドネイティブ 開発プラットフォーム
DevOpsのための統合環境
APIライフサイクル管理
アプリケーション監視と診断
アプリケーション統合・拡張 のためのPaaSエコシステム
API Platform CS
Application Container CS
Developer CS
Management CS (Application Performance Management, Log Analytics)
Java CS, Database CS, Integration CS, Identity CS Mobile CS, and MORE AND MORE…
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アプローチ2: 既存アプリケーションのモダナイゼーション
30
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
31
2つの主要な開発アプローチ
Java, Database, IaaS
運用負荷軽減 開発/テストの迅速化 PaaSサービスの活用
事前装備済
既存アプリケーションの モダナイゼーション
App Container, App Builder, Mobile
より多くの機能 より迅速な市場投入 革新のスピードアップ より簡単に試行
クラウドネイティブ アプリケーション開発
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 32
既存アプリケーションのモダナイゼーションに対する要件
無改修のまま クラウドに移行
DevOpsの自動化
メンテナンス/ ライフサイクル管理 の自動化
マイクロサービス による拡張
モバイル対応 UIのモダナイゼーション
パフォーマンス監視 診断分析
php
EE
SE
Patch
DR/Backup
Provision
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
オラクルの提供するJavaとDatabaseのモダナイゼーション
Java Cloud (Java EE)
Database Cloud
AppToCloud
マイグレーション
DB バックアップ/リストア
DB クローニング
DB マルチテナント
Data Pump
パッチング
自動バックアップ/リストア
DevOps 自動化
自動スケーリング
33
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java CloudとDatabase Cloudによるライフサイクル自動化 インスタント・プロビジョニング
自動バックアップ/リカバリ/スタンバイ
自動スケーリング スケールイン/アウト/アップ/ダウン
パッチング
API、CLI、Web UIを使った操作が可能
34
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Container Cloud Serviceを使った オープン・ソース サーバー資産のクラウド移行
• シンプルな運用管理
– 組み込みロードバランサー
– スケールアップ/ダウン/アウト/イン
– クラスタリング(提供予定)
– REST API
• データベースもPaaSを活用
– Database Cloud Service
– MySQL Cloud Service
• DevOpsの付加価値
– Developer Cloud Service
– Management Cloud Service
35
+ Tomcat JBoss
PHP Other
App Servers
Application Container Cloud Service
Database Cloud Service
MySQL Cloud Service
Developer Cloud Service
Management Cloud Service
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
設備コスト: データセンター, ISP, CDN, DNS, ...
ハードウェア・コスト: サーバー, ストレージ, ネットワーク, …
ソフトウェア・コスト: ライセンス, インストール, 設定, セキュリティ構成, DR構成, ...
継続的メンテナンス・コスト: バックアップ, パッチング, ハードウェア・アップグレード, OSアップグレード, Firmwareアップグレード, SWアップグレード, Test-Dev 同期化, クローニング, データ・マスキング, セキュリティ設定確認, セキュリティ監査, …
Traditional IaaS
Traditional PaaS
Value Creation
Oracle PaaS
36
クラウド自動化のバリュー
36
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
デモ ~ オン・プレミスWLSインスタンスのクラウド移行
37
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
AppToCloud ツール
•既存WebLogic Server環境をそのままJava Cloud Serviceに移行させるためのコマンドライン・ツールを用意
移行
前提条件
確認
ツールの
インストール
ヘルスチェック
の実施
ドメインの
エクスポート
AppToCloud用
JCS
インスタンス
の作成
インスタンスに
アプリを
インポート
移行不可の
ドメイン
リソース
を作成
AppToCloud Tool JCSインスタンス作成/構成
• ドメイン構成情報 • アプリケーション ※Container Cloud Service上に一時保存
38
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
デモ実演
WebLogicサーバー サンプルアプリケーションを AppToCloudツールを使ってJCSに移行
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
まとめ: OracleのJava & DBモダナイゼーションの特長
40
移行を支援する自動化ツール群
オラクル製品の移行を完全サポート: Java, Fusion Middleware, Database
OSS, 3rd Partyアプリケーションの 移行もサポート
継続的メンテナンスの自動化 による業界最低レベルのTCO
モダナイゼーションを促進する PaaSエコシステム
Marketplace: 120以上の OSS, 数百のアプリケーション
AppToCloud, マルチテナントDB and WLS
Java Cloud, SOA Cloud, Database Cloud
バックアップ, リカバリ, バッチング, スケーリング, DR, …
Integration, Mobile, IoT, BigData, Cloud Native, …
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
トラディショナル、クラウドネイティブ、コーディングレスのユニークなブレンド
Oracle Cloud Platform: アプリケーション開発のためのサービス群
42
Oracle Platform for Cloud Application Development
Compute (VM, Bare Metal)
共通 サービス Developer Cloud
(CICD) Identity APM/Log
Analytics API
Management*
インテグレーション サービス
データ サービス
Database NoSQL MySQL
Integration SOA
バックエンド サービス
Mobile Application Container
Java
EE SDKs
(3rd Party, JET)
App Builder
フロントエンド ツール
Network Storage
Infrastructure as a Service
Internet of Things
Container Cloud (Docker, Orchestration)
Messaging Cloud
既存アプリケーションの モダナイゼーション
クラウドネイティブ アプリケーション開発