oracle cloud platformで実践する アプリケーション...

44
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Cloud Platformで実践する アプリケーション開発と運用の最新トレンド Javaで創るクラウド時代のエンタープライズ開発 ~マイクロサービス、DevOps Java の最新動向~ 2016122日本オラクル株式会社 クラウド・テクノロジー事業統括本部 Fusion Middleware事業本部 副事業本部長 古手川 忠久

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

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. |

オラクルのアプリケーション開発 ソリューション

4

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. |

デモ実演

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. |

まとめ

41

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

既存アプリケーションの モダナイゼーション

クラウドネイティブ アプリケーション開発

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 43