• 検索結果がありません。

Java Cloud Serviceを使い倒せ! Developer Cloud Serviceによる継続的デリバリ

N/A
N/A
Protected

Academic year: 2021

シェア "Java Cloud Serviceを使い倒せ! Developer Cloud Serviceによる継続的デリバリ"

Copied!
29
0
0

読み込み中.... (全文を見る)

全文

(1)

Java  Cloud  Service

を使い倒せ!  

Developer  Cloud  Service

による  

継続的デリバリ  

⽇日本オラクル株式会社  

クラウド・テクノロジー事業統括  

Fusion  Middleware

事業統括本部  

(2)

以下の事項は

弊社の⼀一般的な製品の⽅方向性に関する概要を説明す

るものです

また

情報提供を唯⼀一の⽬目的とするものであり

いか

なる契約にも組み込むことはできません

以下の事項は

マテリア

ルやコード

機能を提供することをコミットメント(確約)するも

のではないため

購買決定を⾏行行う際の判断材料料になさらないで下さ

オラクル製品に関して記載されている機能の開発

リリースお

よび時期については

弊社の裁量量により決定されます

(3)

Oracle  Developer  Cloud  Service

  キーワード⼀一覧

コード開発

(privateの)  Git

リポジトリ

 

マージ・リクエ

スト

 

IDEから簡単接

 

GitHub連携  

Oracle  OTN  

Mavenリポジト

ビルド

Hudson)

シェル

 

Maven  

Ant  

Gradle  

Selenium  

privateの)

Maven  リポジト

実行環境連携

Java  Cloud  

Serviceへデプロ

 

ApplicaAon  

Container  

Cloudへデプロ

(予定)

便利機能

Webhooks  

メール通知

 

デフォルト・

コード・レビュー

プロジェクト

 &  

メンバー登録

 

Wiki  

Issues  

プロジェクトツー

(4)

Developer  Cloud

のHudsonビルドのアーキテクチャー

Developer  Cloud  Service

デプロイ

Java  Cloud  

Service

ビルドスレッドの

プール

 

(Hudsonスレーブ)  

3同時スレッドまで

HTTP(S)

インターネット

HTTP(S)

Maven  

リポジトリ

Web

コンソール

 

(Hudson  マスター)

VM

VM

VM

VM

VM

VM

インターネットアクセス可能

アイディア次第で色々なことが可能

 

Java  Cloudへは専用のデプロイ機能あり  

Git

Maven

(5)

Developer  Cloud

を活⽤用したJava  Cloud  Serviceの使い倒し  

テクニック

1.

継続的デリバリーとテスト⾃自動化で環境をフル稼働  

2.

マルチテナントでクラウド実⾏行行環境をシェアして使う  

(6)

1.

継続的デリバリーとテスト⾃自動化で

(7)

Developer  Cloud  Service

コミットした後は⾃自動的にデプロイされた環境での⾃自動テストまで実⾏行行

Developer  Cloud  Service

で⾏行行う継続的デリバリー

ブランチ  1  

ジョブ1

1.

パッケージ作成(mvn  package)

2.

デプロイ  (post  build  action)

Java  

Cloud  

Service

AP1

ブランチ  2

AP2

コミット1

コミット2

ジョブ2

1.

Webテスト

⾃自動トリガー

⾃自動トリガー

⾃自動トリガー

ブランチ  3

AP3

デプロイ

Webテスト

ポイント

コミット後は

Java  Cloud

への

デプロイとテストまで⾃自動化

可能

Gitリポジトリ数に制限がない

ので

アプリケーションのラ

インは細かく分けられる

Web

上のコードレビューと

マージ機能でブランチ開発を

促進

(8)

デプロイ設定を作成(複数可)  

デプロイ名とアプリケーション名  

デプロイ先のJava  Cloud  Serviceの管理理サーバーの

アドレスとポート  

タイプ:⾃自動デプロイもしくは⼿手動か  

ジョブ名と⼿手動デプロイの場合はビルド番号  

ジョブで⽣生成されたアーチファクト  

デプロイアクションでデプロイ実⾏行行  

デプロイ/再デプロイ/アンデプロイ  

アプリケーションのスタート/ストップ  

ジョブのPost-­‐Build  AcFonsにデプロイの実⾏行行を

組み⼊入れ可能  

Developer  Cloud  Service

のデプロイ機能  

(9)

マージ・リクエスト  

コードレビュー機能

 

レビュー  

ブランチに対してのレビュー  

Developer  Cloud  Service

プロジェクト内のメンバー

がレビューアを複数指定  

ソースコード上にレビューコメントを挿⼊入できる  

レビューの中でコメントを書いて会話をシステム

上で展開  

マージ  

Web

のボタンからトピックブランチをターゲット

ブランチにマージ  

メール通知をサポート  

リクエストの作成

承認

却下

クローズ

キャ

ンセル

コメント追加時に通知  

レビューコメントを追加

コード上に

 

リクエスト一覧

コードレビュー

(10)

Selenium  IDE

を使って記録した

WebDriver

テストスクリプト  

Developer  Cloud

はXv[をサポート

GUI

なしのFirefoxのSelenium  

WebDriver

テストが可能  

Developer  Cloud

でもできる⾃自動テストテクニック①  

Selenium  WebDriver

を利利⽤用

(11)

Apache  JMeter

を使ってJava  Cloud  

Service

に簡易易な負荷テストを実⾏行行  

Developer  Cloud  Service

にテストをジョ

ブとして登録し

いつでもテストが実

施可能に  

jmeter-­‐maven-­‐plugin  (h`ps://

github.com/jmeter-­‐maven-­‐plugin/jmeter-­‐

maven-­‐plugin)

を利利⽤用すればMavenから

簡単にJMeterのインストールと実⾏行行が

可能  

JMeter

の結果ファイルをアーチファク

ト保存して結果を参照  

Developer  Cloud

でもできる⾃自動テストテクニック②  

 jmeter-­‐maven-­‐plugin  

を利利⽤用

Java  Cloud  Service

WebLogic  

サーバー

Developer  Cloud  

Service

ビルド

VM

JMeter

多重

 

Webリクエスト

ジョブ実行

Maven  

Central  

Repository

download

(12)

Selenium

テストで多重度度テスト

をしてみたい場合に利利⽤用  

JMeter

のJUnitサンプラーを利利⽤用

Developer  Cloud

でもできる⾃自動テストテクニック③  

(13)

2.

マルチテナントでクラウド実⾏行行環境

(14)

コードのリポジトリやブランチが多く

なると実⾏行行環境も増やしたくなる(=

テナント化)

 

テナント毎にデータや設定が独⽴立立でき

ることが理理想

ただ

⼀一般的には管理理

が増えて増やすことができない

 

テナント毎にサーバーを⽤用意すると課

⾦金金コストが⾼高くつく

 

オラクル製品のマルチテナント機能と

オラクルクラウドの拡張性でソリュー

ションを⾒見見出してみます

 

クラウド開発はマルチテナント!

デプロイ

&テスト

デプロイ

&テスト

デプロイ

&テスト

リポジトリ

X  

ブランチ

A

デプロイ

&テスト

デプロイ

&テスト

デプロイ

&テスト

リポジトリ

Y  

ブランチ

ブランチ

B

ブランチ

C

(15)

Database  Cloud

はDB12cのマルチテナン

ト機能を利利⽤用するのがベスト    

High  Peformance

以上のエディションが必要  

Database  Cloud

付属のWebコンソールでPDB

が誰でも簡単に追加・削除・クローン可能  

Java  Cloud

の現状バージョン

(WebLogic  サーバー12.1.3)のマルチ

テナント化の⽅方法の⼀一つはコンテキス

トルートを分ける⽅方法    

※ちなみに最新WebLogicサーバー12.2.1では

マルチテナントが機能として登場!

 

AP

とPDBの追加・削除に加え

マッピ

ング(接続設定)の管理理をいかに簡単

にするかがカギ  

アプリケーション層とデータベース層のマルチテナントの  

実現⽅方法

 

Java  Cloud  Service  

WebLogicサーバー

Database  Cloud  Serivce  

Oracle  Database  

PDB1

PDB2

AP  

1-­‐1

1-­‐2

AP  

1-­‐3

AP  

AP2

AP3

PDB2

1-­‐1

1-­‐2

1-­‐3

 

2

 

3

テナントが増えたら環境を拡張可能

(16)

マルチテナントのイメージ

URL

のルートパスでテナントを分ける

SQL>  show  pdbs  

 

       CON_ID  CON_NAME  

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  

                 2  PDB$SEED                      

                 3  PDB1                              

                 4  PDB2                          

                 5  PDB3                                      

ブラウザ

Webアプリケーション

データベース

(17)

WebLogicサーバー

アプリケーションが増えるにつれ

データソースの数も増えて

使⽤用メモ

リが増加してしまう  

データソース内の接続は空いているこ

とが多い

 

それぞれの接続数を個別にチューニングす

るのは⼿手間がかかる

 

 

WebLogic

サーバーのPDB接続⽅方法  

パターン①:PDB毎にJDBCデータソースを設定

AP1

PDB1

PDB2

AP2

PDB3

AP3

(18)

データソースは⼀一つで済む  

接続数のチューニングも⼀一か所

で済む  

WebLogic

とUCPの機能を利利⽤用し

たコネクション・ラベリング・

コールバックを利利⽤用して実現  

WebLogic

サーバーのPDB接続⽅方法  

パターン②:単⼀一のデータソースから複数のPDBにアクセス

WebLogicサーバー

AP1

PDB1

PDB2

AP2

PDB3

AP3

(19)

コネクション・ラベリング・コールバックの

クラスのjarファイルをWebLogic  サーバーの

$DOMAIN_HOME/lib

ディレクトリーに配置  

データソースを作成  

接続設定のユーザーはCDB共通ユーザーを指定  

• 

CREATE  USER  c##test_user1  IDENTIFIED  BY  

  xxxxxx  

CONTAINER=ALL;  

データソースに対してコールバック関数を登録

 

アプリケーション内のプロパティファイルに

使⽤用したい

PDB

名を設定

 

UCP

コネクション・ラベリング・コールバックの設定⽅方法

import  oracle.ucp.jdbc.ConnecAonLabelingCallback;  

import  oracle.ucp.jdbc.LabelableConnecAon;  

 

public  class  PDBSwitchLabelingCallback  implements  

ConnecAonLabelingCallback  {  

   public  boolean  configure(ProperAes  reqLabels,  Object  conn)  {  

       String  valStr  =  (String)  reqLabels.get("pdbname");  

       Statement  s  =  ((ConnecFon)  conn).createStatement();  

       s.executeUpdate("ALTER  SESSION  SET  CONTAINER  =  "  +  valStr);  

       LabelableConnecFon  lconn  =  (LabelableConnecFon)  conn;  

       lconn.applyConnecFonLabel("pdbname",  valStr);  

       ………..  

   }    

   public  ProperAes  getRequestedLabels()  {  

       ProperFes  labels  =  new  ProperAes();  

       ProperFes  appProp  =  new  ProperAes();  

       appProp.load(Thread.currentThread().getContextClassLoader()  

             .getResourceAsStream("app.proper<es"));  

       labels.put("pdbname",  appProp.get("pdbname"));  

       return  labels;  

   }  

}  

※紙面の都合でコードは簡略化されています

pdb1.war

pdbname

=PDB1

プロパティファイル

pdb2.war

pdbname

=PDB2

プロパティファイル

(20)

テナント毎にビルドジョブを作成  

設定を共通化しておけばジョブコピーで簡

単に増加可能

 

テナントを分けるための設定箇所  

weblogic.xml

のcontext-­‐root値でURLのルート

パスを設定  

プロパティファイル内の接続先PDB名  

デプロイするときのアプリケーション名

(名前は分ける必要あり)  

Developer  Cloud

のビルドでアプリケーションの  

マルチテナント化を楽にする

pdb

1

テナントビルドジョブ

GitのコードリポジトリAをダウンロード

pdb

2

テナントビルドジョブ

<シェルステップ>  

weblogic.xmlの置換  

<context-­‐root>$PDB

 

<シェルステップ>  

weblogic.xmlの置換  

<context-­‐root>$PDB

 

コンパイル

 

コンパイル

 

pdb.war

pdb.war

pdb1デプロイ設定  

pdb2デプロイ設定  

パラメータ設定

 

PDB=pdb

1  

パラメータ設定

PDB=pdb

2  

<シェルステップ>  

プロパティファイル置換

 

pdbname=$PDB

 

<シェルステップ>  

プロパティファイル置換

 

pdbname=$PDB

 

(21)

3.

開発で

Java  Flight  Recorder(JFR)

をフル

(22)

Java  Flight  Recorder

で可視化でき

ること(例例)  

個々のWebリクエストの実⾏行行時間  

個々のリクエスト中のSQL⽂文と実⾏行行

時間  

時間のかかったJavaメソッド  

  ※Java  Flight  RecorderのWebLogic  Server  

Plugin  (Unsupported)

を利利⽤用した場合  

 

※Java  Flight  Recorderの利利⽤用にはJava  Cloud  

開発で役⽴立立つJava  Flight  Recorder

(23)
(24)

課題  

JFR

ダンプファイルをサーバーから取得する

には慣れが必要  

慣れている場合でも

ダンプファイルを取

得するのに数分かかる(障害解析のときに

は問題ないが

フローの⼀一部として常時取

得するには⼿手間)  

サーバーが複数ある場合

それぞれから取

得が必要な場合もある  

⾃自動テストの結果の⼀一部にダンプファイル

を残す⽅方法がない

Java  Flight  Recorder

を開発フローの⼀一部に⼊入れる際の課題

ノード1

WebLogic

サーバ

jcmd

JFRダンプ

WebLogic  

管理コンソール

 

診断イメージ出力

 

SSH

Webブラウザ

scpダウンロード

Java  Mission  

Controlを使って

分析

Java  

Mission  

Control

JMX

1.

Webテスト実行  

2.

JFRダンプファイル出力を実行  

3.

JFRファイルをダウンロード  

4.

オフラインで分析

 

(25)

簡単・素早くダンプ実⾏行行  

Web

ブラウザやcurlなどを利利⽤用  

Storage  Cloud

にファイル保存  

ダンプ実⾏行行時に⾃自動的にOracle  Storage  

Cloud

にダンプファイルが保存される  

ダウンロードも簡単  

Storage  Cloud

にあるファイルをJFRダンプマ

ネージャー経由でWebダウンロード  

ダンプリクエストのレスポンスにダウン

ロードのリンクが含まれ

⾃自動テスト結果

にリンクを残せられる  

JFR

ダンプマネージャー

(⾃自作実験ツール)  

+Oracle  Storage  Cloud

 

Service

Java  Cloud  

ノード1

WebLogic

サーバ

1

WebLogic  

管理サーバ

Java  Cloud  

ノード2

WebLogic

サーバ

2

JFRダンプ

マネー

ジャー

Developer  

Cloud  

ジョブ

ダンプ指示

 

Storage  Cloud

img

img

img

img

ダンプ指示

ブラウザ

からダウ

ンロード

REST

REST

img

…  WebLogic診断イ

メージファイル(

JFRダ

ンプを含む)

アップロード

ダウンロード

img

GitHub

で公開予定

Storage  Cloudは従量課金で有料です

ダンプ

 

ダンプ

 

(26)

参加登録はこちら:

http://ora.cl/91T

クラウド・テクノロジーを語ろう

第1回  Meetup  2016年年1⽉月29⽇日  19:00〜~

@オラクル⻘青⼭山センター  

var  community  =  React.createClass({

init  :  function(){

return  {

date  :  “2016-‐‑‒1-‐‑‒29”,

location  :  “OAC”,

goal  :  [

“Learn”,

“Connect”,

“Have  Fun”

]

};

}

});

(27)

         Oracle  Cloud  

ラーニング・サブスクリプション

【ご注意】  Oracle  Plauorm  as  a  Service  (PaaS)  ラーニング・サブスクリプションの最小購入ユーザー数は5  です。  

本特別価格は、2015  年  12  月  31  日までにご購入される方に対して適用されます。また、他の割引契約、またはキャンペーンと併用することはできません。

定価

:  116,856  円  (税込)

 

 

特別価格

:  

58,428

 円  (税込)  

1ユーザー/1年間利用可能  

Oracle  Cloud  (PaaS)  

の導入から運用まで、クラウドを活用するために必要なスキルを身につけた


"Cloud  Ready"  

なエンジニアを育成するための学習プラットフォーム

 

 

 

 

l

Oracle  Cloud  Service  の活用に必要なスキルを学習できるビデオ・トレーニング

l

製品アップデートに応じて最新のコンテンツに更新

l

1年間のサブスクリプション形式

ただいま

無償体験版公開中

 

 Oracle  Cloud  インスタンスの作成やクラウド

上の

 Oracle  Database,  WebLogic  Server    の

起動方法など

技術者が円滑に

 Oracle  

Cloud  (PaaS)  をはじめるためのポイントを学

習できる『

Gevng  Started』を視聴可能

アクセスはこちらから

educaFon.oracle.co.jp/cls_paas

 

Oracle  Placorm  as  a  Service  

ラーニング・サブスクリプション

 

多彩な

Oracle  PaaS  の活用方法をトータルにカバー

。す

べての

Oracle  PaaS  技術者にオススメします!


学習内容

:

【対応サービス】

Database  Cloud,  Java  Cloud,  Business  Intelligence  Cloud,    

Process  Cloud,  Mobile  Cloud,  IntegraFon  Cloud,  Documents  Cloud,   Messaging  Cloud,  Internet  Of  Things  Cloud,  SOA  Cloud,    

Database  Backup  Cloud,  Developer  Cloud  

Oracle  Cloud  Plauorm  as  a  Service  の使用方法

Oracle  PaaS  の多様なサービスを活用する利点

Oracle  PaaS  の運用管理

Oracle  PaaS  を使ったアプリケーションの開発とデプロイ

既存のアプリケーションの Oracle  PaaS  への移行 など

DBCSとJCSは


日本語講義


視聴可能

50%  Off  

(28)
(29)

参照

関連したドキュメント

Furthermore, computing the energy efficiency of all servers by the proposed algorithm and Hadoop MapReduce scheduling according to the objective function in our model, we will get

Zheng and Yan 7 put efforts into using forward search in planning graph algorithm to solve WSC problem, and it shows a good result which can find a solution in polynomial time

クチャになった.各NFは複数のNF  ServiceのAPI を提供しNFの処理を行う.UDM(Unified  Data  Management) *11 を例にとれば,UDMがNF  Service

う東京電力自らPDCAを回して業 務を継続的に改善することは望まし

申込共通① 申込共通② 申込共通③ 申込共通④ 申込完了

○特定緊急輸送道路については、普及啓発活動を継続的に行うとともに補助事業を活用するこ とにより、令和 7 年度末までに耐震化率

In our opinion, the financial statements referred to above present fairly, in all material respects, the consolidated financial position of The Tokyo Electric Power

Azure Cloud Native Dojo Azure Light-Up.. ©Microsoft