Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
IBM Bluemixwww.bluemix.net
Bluemix テクニカル・セミナー 2017
DevOps
日本アイ・ビー・エム株式会社
クラウド事業本部
樽澤 広亨
© 2017 IBM Corporation2
IBM Bluemixwww.bluemix.net
ご注意
この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年9月現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2017 IBM Corporation3
IBM Bluemixwww.bluemix.net
内容
クラウド・ネイティブ・アプリケーション
Bluemix DevOps Services
Bluemix Continuous Delivery
Bluemix Garage
事例
© 2017 IBM Corporation4
IBM Bluemixwww.bluemix.net
クラウド・ネイティブ・アプリケーション
© 2017 IBM Corporation5
IBM Bluemixwww.bluemix.net
クラウド化の対象ドメイン
SoEとSoIのクラウド化
➢ マーケットを先取りするスピードと柔軟性の実現
SoRのリノベーション
➢ ミッション・クリティカルのデジタル化によるエコ・システム創造
SoRSystems of Record
SoESystems of Engagement
SoISystems of Insights
確実な運用ミッション・クリティカルなアプリケーション運用管理
ビジネスの創造ビジネス成長のための消費者動向の洞察
スピーディな変革マーケット開発のための
開発,デプロイ,フィードバック
クラウド化API化レガシー・モダナイゼーション
© 2017 IBM Corporation6
IBM Bluemixwww.bluemix.net
Systems of Engagementに求められる要件
スピード~素早いITシステム開発~
柔軟性~容易なシステム変更・保守~
スピードと柔軟性を兼ね備えた➢ IT基盤を実現するのがクラウド・ソリューション➢業務を実現するのがクラウド・ネイティブ・アプリケーション
© 2017 IBM Corporation7
IBM Bluemixwww.bluemix.net
クラウド・ネイティブ開発の方針と方策
方針~アジャイル開発
短期間・高頻度で変わるビジネス・ニーズに見合ったITシステム構築を段階的に実現
方策
クラウドアジャイル開発を支える基盤技術
マイクロサービスアジャイル開発を支えるアプリケーション・アーキテクチャー・スタイル
継続的デリバリーアジャイル開発を支える手法
• アジャイル開発により小さく始め、開発の繰り返しを継続することで, クラウドの価値が享受できる
• 特に投資対効果の観点で, One Offの開発では, 十分な効果は得られない
© 2017 IBM Corporation8
IBM Bluemixwww.bluemix.net
主要な技術要素:Microservices
クラウド上で稼働するITシステム開発プロジェクトからのフィードバックを集めたもの James Lewis & Martin Fowler
Martin FowlerのWebサイト(Bliki)で発表http://martinfowler.com/articles/microservices.html
マイクロサービス・アーキテクチャ・スタイル小さなサービスを組み合わせて, 一つのアプリケーションを開発する
各サービスは, それぞれ独立したプロセスで動作する
各サービスは, RESTのような軽量な仕組みで通信する
各サービスは, 完全に自動化された仕組みで, それぞれ個別にデプロイ(配備)される
サービスは, それぞれ異なるプログラミング言語で実装することができるし, 異なるデータ・ストレージを利用できる
動機チーム開発, 各アプリケーション個別の保守, 繰り返し開発を, 促進するためのモジュラー構造(マイクロサービス)を導入一枚岩アプリケーション(非マイクロサービス・アプリケーション,モノリス)は, 保守性に劣り, 繰り返し開発を阻害する
© 2017 IBM Corporation9
IBM Bluemixwww.bluemix.net
主要な技術要素:Microservices~開発体制とサービスの関係 コンウェイの法則:システム構造は, プロジェクト体制を反映する Microservices :
➢ ビジネス目的に基づいてチーム編成➢ システムは、独立して置き換え可能なサービスで構成される
MicroservicesMonolith
ユーザー・インターフェース・チーム
アプリケーション・サーバー・チーム
DBチーム
ユーザーインターフェース層
アプリケーション層
サービス#1チーム サービス#1
サービス#2
サービス#3
サービス#2チーム
サービス#3チームDB層
ICTシステム構造開発運⽤プロジェクト体制
開発運⽤プロジェクト体制
ICTシステム構造
開発運用
開発運用
開発運用
開発運用
開発運用
開発運用
疎結合
密結合
密結合
疎結合
疎結合
保守時全システムに対する作業が必要 保守時各サービスの置き換えが可能
ユーザー・インターフェース・スペシャリスト
アプリケーション・サーバー・スペシャリスト
DBスペシャリスト
DBアクセス・プログラム
アプリケーション・サーバー・プログラム
ユーザー・インターフェース・ページとプログラム
密結合
疎結合
凡例
© 2017 IBM Corporation10
IBM Bluemixwww.bluemix.net
主要な技術要素:Microservices~モノリス・ファースト
モノリス・スタイルのアプリケーションを, 段階的にマイクロサービス・スタイルに置き換えるプラクティス初回のアプリケーション開発時:従来通りモノリス・スタイルで開発
繰り返し開発/保守時:マイクロサービス・スタイルで開発
http://martinfowler.com/bliki/MonolithFirst.html
動機マイクロサービスの懸念点の解決
システム開発現場からのフィードバック
CoreService
Service Service
Service Service
ServiceService
Service Service
Monolith
Service Service
Service Service
Monolith
Serv
ice
Service
繰り返し 繰り返し
➢ 一部機能をサービスとして分離 ➢ 機能をサービスとして分離➢ 新機能をサービスとして追加開発
➢ モノリスとしてアプリケーションを開発
© 2017 IBM Corporation11
IBM Bluemixwww.bluemix.net
主要な技術要素:継続的デリバリー (Continuous Delivery:CD)
継続的デリバリー(CD)
開発者クラウド(SaaS)
継続的インテグレーション(CI)
コーディング
コンパイル
テスト
自動化
ビルド
ソフトウェア構成管理(SCM)
ソースコード管理 構成情報
アプリ
自動デプロイ
PaaS
基盤自動デプロイ
オーケストレーション
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
チェックインチェックアウト
繰り返し
マイクロサービス
開発
➢ アプリケーションの開発プロセスとデプロイ, 基盤のデプロイを自動化➢ システム・リリースのスピード・アップ, コスト抑制, 品質向上を実現
© 2017 IBM Corporation12
IBM Bluemixwww.bluemix.net
[参考情報] The Twelve-Factor App
アプリケーションを開発・運⽤するためのベスト・プラクティス集Heroku上での経験を基に,Adam Wigginsを中心に収集・整理
対象の局面設計, 実装, テスト, デプロイ, 運⽤監視
対象のアプリケーションクラウドにデプロイされるWebアプリケーション
プログラミング言語には依存しない
スケーラビリティ, ツール, アーキテクチャー, 開発プラクティスに依存しない
特徴アプリケーション実装外での明示的な宣言:自動化
OS等下位層への非依存:アプリケーションのポータビリティ担保
クラウド・プラットフォームへのデプロイ:管理作業最小化
各環境の同⼀化:継続的で素早いデプロイ
参照:http://12factor.net/
https://12factor.net/ja/
© 2017 IBM Corporation13
IBM Bluemixwww.bluemix.net
[参考情報] The Twelve-Factor AppNo. 名称 概要
I コードベース コードベースはバージョン管理され, 複数環境のデプロイに利⽤される
II 依存関係 ソフトウェアの依存関係は, 明示的に宣言し, アプリケーション実装から分離する
III 構成 環境変数に構成情報を保管する
IV バックエンド・サービス
バックエンド・サービスを疎結合されたリソースとして取り扱う
V ビルド,リリース,実行 ビルド・ステージと実行ステージを明確に分離する
VI プロセス アプリケーションは1つ以上のプロセスとして稼動
VII ポート・バインディング
ポート・バインディングによるサービス公開
VIII 並行性 プロセス単位のスケール・アウト
IX 廃棄容易性 素早い起動とグレースフル・シャットダウンによる堅牢性の最大化
X 開発環境と本番環境の⼀致
開発環境, ステージング環境, 本番環境を, 出来る限り同⼀の構成に保つ
XI ログ イベント・ストリームとしてログを取り扱う
XII 管理プロセス ⼀回限りのプロセスとして, 管理タスクを実行する
© 2017 IBM Corporation14
IBM Bluemixwww.bluemix.net
クラウド・ネイティブ開発におけるBluemixのポジショニング
継続的デリバリー(CD)
開発者クラウド(SaaS)
継続的インテグレーション(CI)
コーディング
コンパイル
テスト
自動化
ビルド
ソフトウェア構成管理(SCM)
ソースコード管理 構成情報
アプリ
自動デプロイ
PaaS
基盤自動デプロイ
オーケストレーション
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
コンテナ
サービス
チェックインチェックアウト
開発運⽤
チーム
開発運⽤
チーム
開発運⽤
チーム開発
運用
マイクロサービス
アジャイル
ソフトウェア
開発手法
エンドユーザー
利用
フィードバック
IBM Bluemix
App Runtimes & Services
IBM Bluemix Continuous Delivery
(Open Toolchains)
IBM Bluemix Garage
IBMクラウドはクラウド・ネイティブ開発をフルカバレッジで支援します
© 2017 IBM Corporation15
IBM Bluemixwww.bluemix.net
Bluemix DevOps Services
© 2017 IBM Corporation16
IBM Bluemixwww.bluemix.net
Bluemix DevOps Servicesとはクラウド・ネイティブ・システムを開発するために必要なフル・
カバレッジのIBMソリューション
構成要素
Bluemix Continuous Delivery:Bluemix上でSaaSとして提供される
継続的デリバリー(CD)ソリューション
Open Toolchains:カスタマイズ可能なオープンなToolchain
Open Toolchainsを構成する主要なツール:
WebIDE (Eclipse Orion based):統合開発環境
IBM Git Repos and Issue Tracking:SCM & 課題管理
Deliver Pipeline:ビルド/テスト/デプロイの自動化
DevOps Insights:品質管理
他多数Open Toolchainsへの組み込みが可能
GitHub, Slack, PagerDuty, Sauce Labs, Jenkins, JIRA, …
https://console.bluemix.net/docs/services/ContinuousDelivery/index.html
Bluemix Garage Method:
コンサルテーション&デリバリー・サービス
© 2017 IBM Corporation17
IBM Bluemixwww.bluemix.net
Bluemix DevOps Servicesによるクラウド・ネイティブ・アプリケーション開発全体像
WebIDE EclipseDelivery
PipelineSauce Labs
Pager DutyAvailability
MonitoringNew Relic
Git on Bluemix Repository
Git on Bluemix
Issue Tracker Slack
DevOps Insights
THINK(課題管理)
LEARN(品質管理)
SCM(構成管理)
CULTURE(チームワーク)
CODE(開発) DELIVER(ビルド/テスト/デプロイ)
MANAGE(運用管理)
Open Toolchain
Bluemix DevOps Service
Bluemix Garage Method
2)
開発, UTを実施し、Git Repoにコミット。
1)
バックログをIssueに記載。
3)
Git Repoへのコミットをトリガーとして、ビルド/テスト/
Bluemixへのデプロイを自動実行。
4)
ビルド/テスト/デプロイ状況を分析可視化。
5)
運⽤状況を分析可視化。
6-a)
不具合時には、Slack等で通知。
6-b)
不具合時には、Slack等で通知。
7)
不具合を課題として起票。2以降を繰り返す。
© 2017 IBM Corporation18
IBM Bluemixwww.bluemix.net
Bluemix Continuous Delivery
© 2017 IBM Corporation19
IBM Bluemixwww.bluemix.net
Open Toolchains
開発, デプロイ, 運⽤タスクを支えるツールを統合するプラットフォーム
⼀連のタスクを支えるツール群を⼀括管理
ツール間の管理データ連携
メリット~開発生産性~
DevOpsの⼀連の作業にオープンなツールを組み込み可能
デファクト・スタンダード, 使い慣れたツールを活用してDevOpsを実践
オープンなツールをシームレスに統合
開発者の手作業による各ツール間の個別の連携を排除
Open ToolchainsがサポートするBluemixデプロイメント
Bluemix Public
米国南部でのみホスティング
Bluemix Dedicated
デプロイメントによってサポートするツールは異なる(次ページ参照)
オープンかつフルカバレッジのDevOpsソリューション
© 2017 IBM Corporation20
IBM Bluemixwww.bluemix.net
Open Toolchains : サポート対象ツール 1/2局面 ソリューション 概要 提供元 種別 Bluemix
PublicBluemixDedicated
SCM Git on Bluemix(Repository)
IBMがホスティングするGitリポジトリーでソース・コードを管理します。
IBM Open Toolchain
○ ×
GitHub Enterprise Bluemix Dedicated上にホスティングされるGitリポジトリーでソース・コードを管理します。
IBM サービス × ○
GitHub GitHub.comがホスティングするGitリポジトリーでソース・コードを管理します。
3rd Party Open Toolchain
○ ○
THINK Git on Bluemix(Issue Tracker)
プロジェクトの課題を管理します。 IBM Open Toolchain
○ ×
JIRA プロジェクトの課題を管理します。 3rd Party Open Toolchain
○ ×
Rational Team Concert
ビルドやデプロイメント等の自動化に加え、プロジェクト計画、変更管理、課題管理、ソースコード管理、れポーティング等、チーム開発に必要な統合開発機能を提供します。
IBM Open Toolchain
○ ×
LEARN
DevOps Insights
コードの品質、チーム開発状況、デプロイメント状況等プロジェクト全般の状況や品質を可視化します。
IBM サービス ○ ×
CULTURE
Slack プロジェクト・チーム・メンバー間のコミュニケーション機能を提供します。
3rd Party Open Toolchain
○ ○
CODE WebIDE SaaS形式の統合開発環境です。ブラウザーをインターフェースとしてプログラミング、テストを行えます。
IBM Open Toolchain
○ ○
ベータ
© 2017 IBM Corporation21
IBM Bluemixwww.bluemix.net
Open Toolchains : サポート対象ツール 2/2
局面ソリューション
概要 提供元 種別 BluemixPublic
BluemixDedicated
DELIVER
ビルドデプロイ自動化
Delivery Pipeline
ビルドやデプロイメント等を自動化します。 IBM Open Toolchain ○ ○
Jenkins ビルドやデプロイメント等を自動化します。 3rd Party Open Toolchain ○ ×
ビルド管理
Artifactory リポジトリーやビルドを管理します。 3rd Party Open Toolchain ○ ×
Nexus リポジトリーやビルドを管理します。 3rd Party Open Toolchain ○ ×
テスト Sauce Labs プロジェクトの継続的統合テストを自動化します。 3rd Party Open Toolchain ○ ×
SonarQube ソース・コードの品質をチェックします。 3rd Party Open Toolchain ○ ×
MANAGE
監視 Availability Monitoring
Bluemix上のアプリケーションの状況を監視し、Bluemixコンソールにて可視化することに加え、Eメール、Slack、SMS、プッシュ通知にてアラートを送信します。
IBM サービス ○ ×
通知 Alert Notification
DevOpsツール処理中の問題に関する通知を、Eメール、SMS、ボイスで送信します。
IBM Open Toolchain ○ ×
Cloud Event Management
イベントや障害などを統合管理し、速やかな問題の分析や解決を支援します。
IBM サービス ○ ×
PagerDuty 障害などの重要イベントをEメールやSlack等で通知します。
3rd Party Open Toolchain ○ ○
ベータ
© 2017 IBM Corporation22
IBM Bluemixwww.bluemix.net
Open Toolchainの優位性
徹底的な自動化によるクラウド・アプリ開発運用のスピードアップ
運用コストを抑え、アプリ開発作業に最大限専念可能
➢ IBMマネージド~Bluemixが各ツールを導入、構成、運用
オープン・スタンダード製品の積極的な採用
Open Toolchains
課題管理
Git Issues
開発
Git Repos
WebIDE
デリバリ
Delivery
Pipeline
Sauce Labs
運⽤管理
Pager Duty
Availability
Monitoring
品質管理
DevOps
Insights
協業
Slack
Bluemix PaaS
コンテナ
アプリケーション
Kubernetes
コン
テナ
クラ
スタ
ー管
理
アプリケーション自動デプロイ
ツール間自動連携 & 自動導入構成 & IBM マネージド
アプリ開発者 エンドユーザー
アプリの利⽤アプリの開発・運⽤
フィードバック
© 2017 IBM Corporation23
IBM Bluemixwww.bluemix.net
Open Toolchains : ダッシュボードに見るコンセプト➢ 各ツールを統合したビューをダッシュボードとして提供➢ Open Toolchainsが各ツール間にて、管理データを連携 (連携のレベルは各ツールに依存)
Git
アプリケーション開発
に利用するツール群
アイディアや課題等を
管理するツール
デリバリーに利用する
ツール群
運用管理に利用する
ツール
コミュニケーション等
チームのカルチャー
形成に利用するツール
新たなツールの追加
Delivery Pipeline
クリック
状況を可視化する
ツール
Web IDEクリック
© 2017 IBM Corporation24
IBM Bluemixwww.bluemix.net
Open Toolchains : 始め方 1
アプリケーションからToolchainを
作成する
Bluemixコンソール上 >
アプリケーションの概要
継続的デリバリー・カードの”有効化”ボタン
をクリック
ツールチェーン画面
組織名とツールチェーン名を入力
必要に応じてツールを構成
“作成”ボタンをクリック
© 2017 IBM Corporation25
IBM Bluemixwww.bluemix.net
Open Toolchains : 始め方 2 (1/2)
テンプレートからToolchainを
作成する (1/2)
Bluemixコンソール上 > ハンバーガー
> DevOps
ツールチェーン画面
”ツールチェーンの作成”ボタン
をクリック
© 2017 IBM Corporation26
IBM Bluemixwww.bluemix.net
Open Toolchains : 始め方 2 (2/2)
テンプレートからToolchainを
作成する (2/2)
テンプレート画面
適切なテンプレートをクリックする
ツールチェーンの作成画面
組織名とツールチェーン名を入力
必要に応じてツールを構成
“作成”ボタンをクリック
© 2017 IBM Corporation27
IBM Bluemixwww.bluemix.net
Open Toolchains : 情報源
IBM Cloud Garage Method DevOps toolchainsページ
https://www.ibm.com/devops/method/category/tools
Bluemix 資料
https://console.bluemix.net/docs/services/ContinuousDelivery/toolchains_working.html#toolchains_getting_started
GitHub
https://github.com/open-toolchain
Wiki (GitHub)
https://github.com/open-toolchain/sdk/wiki
© 2017 IBM Corporation28
IBM Bluemixwww.bluemix.net
IBM Bluemix Continuous Delivery :Web IDE
ブラウザーをインターフェースとする統合開発環境
Eclipse Foundation “Orion Project”をベースに実装
Webブラウザー上で稼動するオープンなツールの統合基盤
“Developing for the web, in the web”
機能
コード・アシスト, コード・コンプリーション,
エラー・チェック
JavaScript, HTML, CSS
シンタックス・ハイライティング
C, C++, Go, Java, JSON, PHP, Python, Ruby, Swift, VB, XML, 他
デバッグ (Bluemix Live Sync)
SCMとのシームレスな統合
© 2017 IBM Corporation29
IBM Bluemixwww.bluemix.net
IBM Bluemix Continuous Delivery :Web IDE
編集画面
1.編集対象ファイル
の選択
2.編
集対象ファイル
の表示・編集領域
3.コード・アシストの例(JavaScript)
© 2017 IBM Corporation30
IBM Bluemixwww.bluemix.net
IBM Bluemix Continuous Delivery:Delivery Pipeline
継続的デリバリー (Continuous Delivery:CD)を実現するフレームワーク ソフトウェアのビルド、デプロイ、テストの自動化を実現
機能 CDを構成する3つのステージを提供
ビルドコンパイルが必要な場合にはコンパイルを実施プログラム・ランタイムに適したパッケージを作成
デプロイビルド成果物を指定したクラウド・プラットフォームにデプロイ
テストプログラムのテストを実施
各ステージを必要な数だけ作成可能 各ステージの順番を制御可能 各ステージの実施条件を指定可能 ステージ構成例)
“ビルド” “テスト環境へのデプロイ & テスト” “本番環境へのデプロイ” SCMにソース・コードをコミットしたことをトリガーに⼀連のステージ処理を開始前ステージ処理が成功した場合のみ, 次ステージに遷移ステージ失敗時には, ログを出力して, 処理を中断
© 2017 IBM Corporation31
IBM Bluemixwww.bluemix.net
IBM Bluemix Continuous Delivery:Delivery Pipeline
デプロイヤー・タイプ
Cloud Foundry
Kubernetes
IBM Containers on Bluemix
ターゲット
米国南部
英国
ドイツ
シドニー
汎⽤Cloud Foundry
© 2017 IBM Corporation32
IBM Bluemixwww.bluemix.net
IBM Bluemix Continuous Delivery:Delivery Pipeline
ステージの構成例
ビルド・ステージ
成功
したら
遷移
ステージング・ステージ 本番ステージ
成功
したら
遷移
成功したら遷移
成功したら遷移
成功したら遷移
Done!
© 2017 IBM Corporation33
IBM Bluemixwww.bluemix.net
Git Repos and Issue Tracking
IBMがホストするGitLab Community Edition
Bluemix PaaSまたはローカル環境から利⽤可能
利⽤可能な機能
Gitリポジトリー
Issue Tracker
利⽤できない機能
GitLabが提供する継続的インテグレーション
GitLabの管理機能
リポジトリーの最大サイズ
リポジトリー・サイズ:最大1GB
ファイル・サイズ:最大100MB
© 2017 IBM Corporation34
IBM Bluemixwww.bluemix.net
IBM Cloud DevOps Insights
クラウド環境におけるアプリケーション開発の品質管理ソリューション
4つのサブシステムを提供
Deployment Risk:ビルド品質の可視化、次工程遷移のポリシー管理
Developer Insights:開発アクテビティ/インシデント履歴統計の可視化と予測される方向性の定時
Team Dynamics:ソーシャル・コーディングの分析と可視化
Delivery Insights:過去のデリバリー履歴の分析とレポート
© 2017 IBM Corporation35
IBM Bluemixwww.bluemix.net
IBM Cloud DevOps Insights:Deployment Risk
ビルド内各アクティビティの
達成状況
ビルド内各テストの
カバレッジ状況
© 2017 IBM Corporation36
IBM Bluemixwww.bluemix.net
IBM Cloud DevOps Insights:Delivery Insightsデプロイ成否
の合計数
環境毎デプロイ
失敗回数
アプリケーション
デプロイに要する
所要時間
© 2017 IBM Corporation37
IBM Bluemixwww.bluemix.net
Open Toolchainsの拡張
Open Toolchainsがサポートしないツールも統合可能
統合のレベル
ツールに依存
データ連携のための構成は、ユーザーの責任で実装
統合対象ツールがデータ連携のための仕組みを提供しない場合
エンドユーザーの手動運⽤にて対応する必要有
ユースケース
Open Toolchainsがサポートしない
使い親しんだツールを統合したい
機能を提供するツールを統合したい
© 2017 IBM Corporation38
IBM Bluemixwww.bluemix.net
Bluemix Garage
© 2017 IBM Corporation39
IBM Bluemixwww.bluemix.net
Bluemix Garage
MVP : Minimum Viable Product
短期間で, 開発と稼動が可能で, 且つ, 仮説を検証できる, 最小の成果物
エンドユーザーに使ってもらえるという確証を得るまでは, 開発への投資を最小限に抑える
Bluemix Garage Method
リーン, IBM Design Thinking, eXtreme Programingを活用
素早いアイディア創出, 設計, 開発, デプロイ, 評価, 本番移行を促進
Bluemix Garageは, MVPを検証した上で, お客様ビジネスのトランスフォーメーションを促進するコンサルテーション・サービス
© 2017 IBM Corporation40
IBM Bluemixwww.bluemix.net
Bluemix Garage オファリング例:基本的流れ
前提
成果
ビジネス改善に繋がる革新的なアイディア
Garageメソッドの経験ビジネス・チャンスの選択
アプリケーションのユースケース
Design Workshopで定義された
MVPのスコープ
他アプリケーションやチームへの横展開のニーズ
MVPの定義仮説の定義
ビジネスとITの方向性定義
MVPアプリケーションのビルドとデプロイ
Garageメソッドの活用
スピーディなイノベーションを継続するアプリケーション
開発チーム
2-4 時間 2-4 日 4-10 週 12+ 週
© 2017 IBM Corporation41
IBM Bluemixwww.bluemix.net
Bluemix Garage オファリング例:新規アプリケーション開発
4-10 週
– アーキテクチャーの定義– Bluemix サービスの選択– Toolchain の定義
2-4 時間 12+ 週
– MVP の実装とデプロイ– ビジネス上の価値の確認– Garageメソッドの活用
2-4 日
4-10 日
– Garageメソッドの理解
– ビジネスチャンスの選択
– MVP の定義– 仮説の定義– ビジネスとITの方向
性定義
© 2017 IBM Corporation42
IBM Bluemixwww.bluemix.net
Bluemix Garage オファリング例:既存アプリケーションの移行
2 週
– 目的の定義– アプリケーションの選択
– アーキテクチャーの定義
– ランタイムの選択– 移行のアセス– プロセスと
Toolchainの定義
– Bluemix上のアプリケーション– テストの成功– 利用可能なDevOps
– 次の開発プロジェクト
2-5 日
– アーキテクチャーの定義
– セキュリティの理解– CUPS/サービス・ブ
ローカーの定義
4-10 日3-4+ 週
– 変更点– DevOpsパイプライン– アーキテクチャーの定義
*Cloud Foundry User Provided Services (CUPS)
© 2017 IBM Corporation43
IBM Bluemixwww.bluemix.net
Bluemix Garage Method
Culture基本的な価値観と
原則
Thinkケイパビリティーの概念化、改良、優先順位付け
Code機能の生成、拡張、最適化、
テスト
Deliverオファリングの製品化とデリバリーの自動化Run
クラウドで実行するために必要なサービス、オプション、ケイパビリティー
Manageオファリングの継続的モニタリング、サポート、リカバリー
Learn実験結果から継続的に学習
Design Thinking、リーン・スタートアップ、アジャイル開発、DevOps とクラウドの業界ベスト・プラクティスを組み合わせ、革新的なソリューションを構築・配信するための手法
参照先:https://www.ibm.com/devops/method
© 2017 IBM Corporation44
IBM Bluemixwww.bluemix.net
Bluemix Garage Method 適⽤例局面 手法
Think (アイディア創出) IBM Design Thinking
Code (開発) eXtreme Programming (XP)ペア・プログラミングテスト駆動開発継続的インテグレーション自動テスト
Deliver (コンパイル/ビルド/デプロイ)
継続的デリバリー
Run (運用) ダーク・ローンチフィーチャー・トグル自動スケーリング
Manage (管理) サーキット・ブレーカー
Learn (フィードバック) 仮説駆動開発A/B テスト
Culture (チームワーク) デイリー・スクラム
© 2017 IBM Corporation45
IBM Bluemixwww.bluemix.net
事例
© 2017 IBM Corporation46
IBM Bluemixwww.bluemix.net
プロフィール
業種:運輸業
対象システム
ポータル・サイト
予約, 購入
チケット発券, 搭乗, 予約変更
アカウント管理
課題
複雑なアプリケーション構造
新規アプリケーション組み込みが困難
保守が困難
目標
システム更改を期としたコスト削減
素早いアプリケーションのリリース
容易なメンテナンス
© 2017 IBM Corporation47
IBM Bluemixwww.bluemix.net
ソリューション
方針
ポータル・アプリケーションのクラウド・ネイティブ化
マイクロサービス・アーキテクチャー
アジャイル開発手法
継続的デリバリー
方策
開発環境&本番環境:Bluemix PaaS
Cloud Foundry
Open Toolchains
開発手法:Bluemix Garage Method
IBM Design Thinking
XP
テスト駆動開発
移行手法:ストラングラー・パターン
ステップ・バイ・ステップによる移行
© 2017 IBM Corporation48
IBM Bluemixwww.bluemix.net
プロセス~ソリューション・ビュー~
ペアプログラミング
IBM
Design
Thinking
?!
テスト駆動開発
xUnit
CD - 継続的デリバリー
Bluemix PaaS
Bluemix Continuous
Delivery
サービス
IBM Garage MVP ビルドアップMVP
アイディア出し
アプリケーション開発
1週間に⼀回
マイクロサービス・
スタイルのサービスを
リリース
毎週繰り返し
© 2017 IBM Corporation49
IBM Bluemixwww.bluemix.net
プロセス~成果物ビュー~
MVP
ユーザー・ストーリー ユーザー・ストーリー ユーザー・ストーリー ・・・
➢ チャンク➢ チャンク➢ チャンク➢ ・・・
✓ エピック✓ エピック✓ エピック✓ ・・・
サービス
IBM Bluemix
Garageの成果物
MVPは複数の
ユーザー・ストーリー
から構成される
ユーザー・ストーリーは
複数のチャンク
から構成される
チャンクは
複数のエピック
から構成される
スクワッドは
1つのエピックを
実装する
スクワッドサービスは
1つのエピックの
実装である
複数のエピックあるいはチャンクを
実装することもある
© 2017 IBM Corporation50
IBM Bluemixwww.bluemix.net
チーム
凡例
チーム編成
プロダクトオーナー
スクワッド
ビルド・スクワッド コンテンツ・スクワッド
運用基盤ビルドスクワッド
SREスクワッド
チームの成果物に
責任を負う
各スクワッドに技術的
アドバイスを与える
HTML, CSSなど
静的Webコンテンツを開発
アプリケーション
を開発
開発&運⽤基盤を
構築(終了後解散)
サイトの安定運⽤
に責任を負う
お客様
IBM
アドバイザリースクワッド
スクワッド・リード
© 2017 IBM Corporation51
IBM Bluemixwww.bluemix.net
ストラングラー・アプリケーション・パターンを活⽤した移行
ストラングラー・アプリケーション・パターン
既存と新規開発アプリケーションを並存させて、徐々に新規アプリケーションに移行する手法
Martin FowlerのBlikiによる紹介
https://www.martinfowler.com/bliki/StranglerApplication.html
Strangle : 窒息する, 絞め殺される
新規アプリが既存アプリを徐々に置き換えていく様のメタファー
メリット
リスク低減
ソフト・ランディング
スピードアップ
最初の新規アプリのリリースは、ビッグバン型移行に比較し遥かに早い
デメリット
コスト増
重複するアプリケーションのホスティング
© 2017 IBM Corporation52
IBM Bluemixwww.bluemix.net
オンプレミス
データセンター
従来システム新システム
暫定的なシステム・アーキテクチャー
WebApp NativeAppHTML5
Apache
TomcatTomcat Tomcat
CMS
WebSphere
DataPower
Backend
System
WebApp NativeAppHTML5
Mobile BFF
サービス
Web
BFF
CMS
Bluemix
PaaS
段階的に
置き換え
© 2017 IBM Corporation53
IBM Bluemixwww.bluemix.net
スケジュール
お客様と
IBMエグゼクティブの
最初のコンタクト
IBM Bluemix Garageにて
Design Thinkingの実施
IBM Bluemix Garageにて
MVPビルドアップ(PoC)
の実施
開発・移行プロジェクト
契約締結
サービスイン
ストラングラー・
パターンによる
段階的な移行開始
201720162015
12月 7月1月6月4月
© 2016 IBM Corporation54
IBM Bluemixwww.bluemix.net