bluemix テクニカル・セミナー 2017...12 ibm bluemix [参考情報] the twelve-factor app...

54
IBM Bluemix www.bluemix.net Bluemix テクニカル・セミナー 2017 DevOps 日本アイ・ビー・エム株式会社 クラウド事業本部 樽澤 広亨

Upload: others

Post on 29-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

IBM Bluemixwww.bluemix.net

Bluemix テクニカル・セミナー 2017

DevOps

日本アイ・ビー・エム株式会社

クラウド事業本部

樽澤 広亨

Page 2: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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をご覧ください。

Page 3: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation3

IBM Bluemixwww.bluemix.net

内容

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

Bluemix DevOps Services

Bluemix Continuous Delivery

Bluemix Garage

事例

Page 4: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation4

IBM Bluemixwww.bluemix.net

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

Page 5: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation5

IBM Bluemixwww.bluemix.net

クラウド化の対象ドメイン

SoEとSoIのクラウド化

➢ マーケットを先取りするスピードと柔軟性の実現

SoRのリノベーション

➢ ミッション・クリティカルのデジタル化によるエコ・システム創造

SoRSystems of Record

SoESystems of Engagement

SoISystems of Insights

確実な運用ミッション・クリティカルなアプリケーション運用管理

ビジネスの創造ビジネス成長のための消費者動向の洞察

スピーディな変革マーケット開発のための

開発,デプロイ,フィードバック

クラウド化API化レガシー・モダナイゼーション

Page 6: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation6

IBM Bluemixwww.bluemix.net

Systems of Engagementに求められる要件

スピード~素早いITシステム開発~

柔軟性~容易なシステム変更・保守~

スピードと柔軟性を兼ね備えた➢ IT基盤を実現するのがクラウド・ソリューション➢業務を実現するのがクラウド・ネイティブ・アプリケーション

Page 7: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation7

IBM Bluemixwww.bluemix.net

クラウド・ネイティブ開発の方針と方策

方針~アジャイル開発

短期間・高頻度で変わるビジネス・ニーズに見合ったITシステム構築を段階的に実現

方策

クラウドアジャイル開発を支える基盤技術

マイクロサービスアジャイル開発を支えるアプリケーション・アーキテクチャー・スタイル

継続的デリバリーアジャイル開発を支える手法

• アジャイル開発により小さく始め、開発の繰り返しを継続することで, クラウドの価値が享受できる

• 特に投資対効果の観点で, One Offの開発では, 十分な効果は得られない

Page 8: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation8

IBM Bluemixwww.bluemix.net

主要な技術要素:Microservices

クラウド上で稼働するITシステム開発プロジェクトからのフィードバックを集めたもの James Lewis & Martin Fowler

Martin FowlerのWebサイト(Bliki)で発表http://martinfowler.com/articles/microservices.html

マイクロサービス・アーキテクチャ・スタイル小さなサービスを組み合わせて, 一つのアプリケーションを開発する

各サービスは, それぞれ独立したプロセスで動作する

各サービスは, RESTのような軽量な仕組みで通信する

各サービスは, 完全に自動化された仕組みで, それぞれ個別にデプロイ(配備)される

サービスは, それぞれ異なるプログラミング言語で実装することができるし, 異なるデータ・ストレージを利用できる

動機チーム開発, 各アプリケーション個別の保守, 繰り返し開発を, 促進するためのモジュラー構造(マイクロサービス)を導入一枚岩アプリケーション(非マイクロサービス・アプリケーション,モノリス)は, 保守性に劣り, 繰り返し開発を阻害する

Page 9: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation9

IBM Bluemixwww.bluemix.net

主要な技術要素:Microservices~開発体制とサービスの関係 コンウェイの法則:システム構造は, プロジェクト体制を反映する Microservices :

➢ ビジネス目的に基づいてチーム編成➢ システムは、独立して置き換え可能なサービスで構成される

MicroservicesMonolith

ユーザー・インターフェース・チーム

アプリケーション・サーバー・チーム

DBチーム

ユーザーインターフェース層

アプリケーション層

サービス#1チーム サービス#1

サービス#2

サービス#3

サービス#2チーム

サービス#3チームDB層

ICTシステム構造開発運⽤プロジェクト体制

開発運⽤プロジェクト体制

ICTシステム構造

開発運用

開発運用

開発運用

開発運用

開発運用

開発運用

疎結合

密結合

密結合

疎結合

疎結合

保守時全システムに対する作業が必要 保守時各サービスの置き換えが可能

ユーザー・インターフェース・スペシャリスト

アプリケーション・サーバー・スペシャリスト

DBスペシャリスト

DBアクセス・プログラム

アプリケーション・サーバー・プログラム

ユーザー・インターフェース・ページとプログラム

密結合

疎結合

凡例

Page 10: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

繰り返し 繰り返し

➢ 一部機能をサービスとして分離 ➢ 機能をサービスとして分離➢ 新機能をサービスとして追加開発

➢ モノリスとしてアプリケーションを開発

Page 11: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation11

IBM Bluemixwww.bluemix.net

主要な技術要素:継続的デリバリー (Continuous Delivery:CD)

継続的デリバリー(CD)

開発者クラウド(SaaS)

継続的インテグレーション(CI)

コーディング

コンパイル

テスト

自動化

ビルド

ソフトウェア構成管理(SCM)

ソースコード管理 構成情報

アプリ

自動デプロイ

PaaS

基盤自動デプロイ

オーケストレーション

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

コンテナ

サービス

チェックインチェックアウト

繰り返し

マイクロサービス

開発

➢ アプリケーションの開発プロセスとデプロイ, 基盤のデプロイを自動化➢ システム・リリースのスピード・アップ, コスト抑制, 品質向上を実現

Page 12: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation12

IBM Bluemixwww.bluemix.net

[参考情報] The Twelve-Factor App

アプリケーションを開発・運⽤するためのベスト・プラクティス集Heroku上での経験を基に,Adam Wigginsを中心に収集・整理

対象の局面設計, 実装, テスト, デプロイ, 運⽤監視

対象のアプリケーションクラウドにデプロイされるWebアプリケーション

プログラミング言語には依存しない

スケーラビリティ, ツール, アーキテクチャー, 開発プラクティスに依存しない

特徴アプリケーション実装外での明示的な宣言:自動化

OS等下位層への非依存:アプリケーションのポータビリティ担保

クラウド・プラットフォームへのデプロイ:管理作業最小化

各環境の同⼀化:継続的で素早いデプロイ

参照:http://12factor.net/

https://12factor.net/ja/

Page 13: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation13

IBM Bluemixwww.bluemix.net

[参考情報] The Twelve-Factor AppNo. 名称 概要

I コードベース コードベースはバージョン管理され, 複数環境のデプロイに利⽤される

II 依存関係 ソフトウェアの依存関係は, 明示的に宣言し, アプリケーション実装から分離する

III 構成 環境変数に構成情報を保管する

IV バックエンド・サービス

バックエンド・サービスを疎結合されたリソースとして取り扱う

V ビルド,リリース,実行 ビルド・ステージと実行ステージを明確に分離する

VI プロセス アプリケーションは1つ以上のプロセスとして稼動

VII ポート・バインディング

ポート・バインディングによるサービス公開

VIII 並行性 プロセス単位のスケール・アウト

IX 廃棄容易性 素早い起動とグレースフル・シャットダウンによる堅牢性の最大化

X 開発環境と本番環境の⼀致

開発環境, ステージング環境, 本番環境を, 出来る限り同⼀の構成に保つ

XI ログ イベント・ストリームとしてログを取り扱う

XII 管理プロセス ⼀回限りのプロセスとして, 管理タスクを実行する

Page 14: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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クラウドはクラウド・ネイティブ開発をフルカバレッジで支援します

Page 15: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation15

IBM Bluemixwww.bluemix.net

Bluemix DevOps Services

Page 16: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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:

コンサルテーション&デリバリー・サービス

Page 17: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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以降を繰り返す。

Page 18: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation18

IBM Bluemixwww.bluemix.net

Bluemix Continuous Delivery

Page 19: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation19

IBM Bluemixwww.bluemix.net

Open Toolchains

開発, デプロイ, 運⽤タスクを支えるツールを統合するプラットフォーム

⼀連のタスクを支えるツール群を⼀括管理

ツール間の管理データ連携

メリット~開発生産性~

DevOpsの⼀連の作業にオープンなツールを組み込み可能

デファクト・スタンダード, 使い慣れたツールを活用してDevOpsを実践

オープンなツールをシームレスに統合

開発者の手作業による各ツール間の個別の連携を排除

Open ToolchainsがサポートするBluemixデプロイメント

Bluemix Public

米国南部でのみホスティング

Bluemix Dedicated

デプロイメントによってサポートするツールは異なる(次ページ参照)

オープンかつフルカバレッジのDevOpsソリューション

Page 20: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

○ ○

ベータ

Page 21: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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 ○ ○

ベータ

Page 22: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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 マネージド

アプリ開発者 エンドユーザー

アプリの利⽤アプリの開発・運⽤

フィードバック

Page 23: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation23

IBM Bluemixwww.bluemix.net

Open Toolchains : ダッシュボードに見るコンセプト➢ 各ツールを統合したビューをダッシュボードとして提供➢ Open Toolchainsが各ツール間にて、管理データを連携 (連携のレベルは各ツールに依存)

Git

アプリケーション開発

に利用するツール群

アイディアや課題等を

管理するツール

デリバリーに利用する

ツール群

運用管理に利用する

ツール

コミュニケーション等

チームのカルチャー

形成に利用するツール

新たなツールの追加

Delivery Pipeline

クリック

状況を可視化する

ツール

Web IDEクリック

Page 24: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation24

IBM Bluemixwww.bluemix.net

Open Toolchains : 始め方 1

アプリケーションからToolchainを

作成する

Bluemixコンソール上 >

アプリケーションの概要

継続的デリバリー・カードの”有効化”ボタン

をクリック

ツールチェーン画面

組織名とツールチェーン名を入力

必要に応じてツールを構成

“作成”ボタンをクリック

Page 25: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation25

IBM Bluemixwww.bluemix.net

Open Toolchains : 始め方 2 (1/2)

テンプレートからToolchainを

作成する (1/2)

Bluemixコンソール上 > ハンバーガー

> DevOps

ツールチェーン画面

”ツールチェーンの作成”ボタン

をクリック

Page 26: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation26

IBM Bluemixwww.bluemix.net

Open Toolchains : 始め方 2 (2/2)

テンプレートからToolchainを

作成する (2/2)

テンプレート画面

適切なテンプレートをクリックする

ツールチェーンの作成画面

組織名とツールチェーン名を入力

必要に応じてツールを構成

“作成”ボタンをクリック

Page 27: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

Page 28: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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とのシームレスな統合

Page 29: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation29

IBM Bluemixwww.bluemix.net

IBM Bluemix Continuous Delivery :Web IDE

編集画面

1.編集対象ファイル

の選択

2.編

集対象ファイル

の表示・編集領域

3.コード・アシストの例(JavaScript)

Page 30: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation30

IBM Bluemixwww.bluemix.net

IBM Bluemix Continuous Delivery:Delivery Pipeline

継続的デリバリー (Continuous Delivery:CD)を実現するフレームワーク ソフトウェアのビルド、デプロイ、テストの自動化を実現

機能 CDを構成する3つのステージを提供

ビルドコンパイルが必要な場合にはコンパイルを実施プログラム・ランタイムに適したパッケージを作成

デプロイビルド成果物を指定したクラウド・プラットフォームにデプロイ

テストプログラムのテストを実施

各ステージを必要な数だけ作成可能 各ステージの順番を制御可能 各ステージの実施条件を指定可能 ステージ構成例)

“ビルド” “テスト環境へのデプロイ & テスト” “本番環境へのデプロイ” SCMにソース・コードをコミットしたことをトリガーに⼀連のステージ処理を開始前ステージ処理が成功した場合のみ, 次ステージに遷移ステージ失敗時には, ログを出力して, 処理を中断

Page 31: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation31

IBM Bluemixwww.bluemix.net

IBM Bluemix Continuous Delivery:Delivery Pipeline

デプロイヤー・タイプ

Cloud Foundry

Kubernetes

IBM Containers on Bluemix

ターゲット

米国南部

英国

ドイツ

シドニー

汎⽤Cloud Foundry

Page 32: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation32

IBM Bluemixwww.bluemix.net

IBM Bluemix Continuous Delivery:Delivery Pipeline

ステージの構成例

ビルド・ステージ

成功

したら

遷移

ステージング・ステージ 本番ステージ

成功

したら

遷移

成功したら遷移

成功したら遷移

成功したら遷移

Done!

Page 33: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

Page 34: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation34

IBM Bluemixwww.bluemix.net

IBM Cloud DevOps Insights

クラウド環境におけるアプリケーション開発の品質管理ソリューション

4つのサブシステムを提供

Deployment Risk:ビルド品質の可視化、次工程遷移のポリシー管理

Developer Insights:開発アクテビティ/インシデント履歴統計の可視化と予測される方向性の定時

Team Dynamics:ソーシャル・コーディングの分析と可視化

Delivery Insights:過去のデリバリー履歴の分析とレポート

Page 35: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation35

IBM Bluemixwww.bluemix.net

IBM Cloud DevOps Insights:Deployment Risk

ビルド内各アクティビティの

達成状況

ビルド内各テストの

カバレッジ状況

Page 36: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation36

IBM Bluemixwww.bluemix.net

IBM Cloud DevOps Insights:Delivery Insightsデプロイ成否

の合計数

環境毎デプロイ

失敗回数

アプリケーション

デプロイに要する

所要時間

Page 37: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation37

IBM Bluemixwww.bluemix.net

Open Toolchainsの拡張

Open Toolchainsがサポートしないツールも統合可能

統合のレベル

ツールに依存

データ連携のための構成は、ユーザーの責任で実装

統合対象ツールがデータ連携のための仕組みを提供しない場合

エンドユーザーの手動運⽤にて対応する必要有

ユースケース

Open Toolchainsがサポートしない

使い親しんだツールを統合したい

機能を提供するツールを統合したい

Page 38: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation38

IBM Bluemixwww.bluemix.net

Bluemix Garage

Page 39: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation39

IBM Bluemixwww.bluemix.net

Bluemix Garage

MVP : Minimum Viable Product

短期間で, 開発と稼動が可能で, 且つ, 仮説を検証できる, 最小の成果物

エンドユーザーに使ってもらえるという確証を得るまでは, 開発への投資を最小限に抑える

Bluemix Garage Method

リーン, IBM Design Thinking, eXtreme Programingを活用

素早いアイディア創出, 設計, 開発, デプロイ, 評価, 本番移行を促進

Bluemix Garageは, MVPを検証した上で, お客様ビジネスのトランスフォーメーションを促進するコンサルテーション・サービス

Page 40: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation40

IBM Bluemixwww.bluemix.net

Bluemix Garage オファリング例:基本的流れ

前提

成果

ビジネス改善に繋がる革新的なアイディア

Garageメソッドの経験ビジネス・チャンスの選択

アプリケーションのユースケース

Design Workshopで定義された

MVPのスコープ

他アプリケーションやチームへの横展開のニーズ

MVPの定義仮説の定義

ビジネスとITの方向性定義

MVPアプリケーションのビルドとデプロイ

Garageメソッドの活用

スピーディなイノベーションを継続するアプリケーション

開発チーム

2-4 時間 2-4 日 4-10 週 12+ 週

Page 41: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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の方向

性定義

Page 42: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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)

Page 43: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

Page 44: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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 (チームワーク) デイリー・スクラム

Page 45: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation45

IBM Bluemixwww.bluemix.net

事例

Page 46: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation46

IBM Bluemixwww.bluemix.net

プロフィール

業種:運輸業

対象システム

ポータル・サイト

予約, 購入

チケット発券, 搭乗, 予約変更

アカウント管理

課題

複雑なアプリケーション構造

新規アプリケーション組み込みが困難

保守が困難

目標

システム更改を期としたコスト削減

素早いアプリケーションのリリース

容易なメンテナンス

Page 47: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation47

IBM Bluemixwww.bluemix.net

ソリューション

方針

ポータル・アプリケーションのクラウド・ネイティブ化

マイクロサービス・アーキテクチャー

アジャイル開発手法

継続的デリバリー

方策

開発環境&本番環境:Bluemix PaaS

Cloud Foundry

Open Toolchains

開発手法:Bluemix Garage Method

IBM Design Thinking

XP

テスト駆動開発

移行手法:ストラングラー・パターン

ステップ・バイ・ステップによる移行

Page 48: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation48

IBM Bluemixwww.bluemix.net

プロセス~ソリューション・ビュー~

ペアプログラミング

IBM

Design

Thinking

?!

テスト駆動開発

xUnit

CD - 継続的デリバリー

Bluemix PaaS

Bluemix Continuous

Delivery

サービス

IBM Garage MVP ビルドアップMVP

アイディア出し

アプリケーション開発

1週間に⼀回

マイクロサービス・

スタイルのサービスを

リリース

毎週繰り返し

Page 49: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation49

IBM Bluemixwww.bluemix.net

プロセス~成果物ビュー~

MVP

ユーザー・ストーリー ユーザー・ストーリー ユーザー・ストーリー ・・・

➢ チャンク➢ チャンク➢ チャンク➢ ・・・

✓ エピック✓ エピック✓ エピック✓ ・・・

サービス

IBM Bluemix

Garageの成果物

MVPは複数の

ユーザー・ストーリー

から構成される

ユーザー・ストーリーは

複数のチャンク

から構成される

チャンクは

複数のエピック

から構成される

スクワッドは

1つのエピックを

実装する

スクワッドサービスは

1つのエピックの

実装である

複数のエピックあるいはチャンクを

実装することもある

Page 50: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation50

IBM Bluemixwww.bluemix.net

チーム

凡例

チーム編成

プロダクトオーナー

スクワッド

ビルド・スクワッド コンテンツ・スクワッド

運用基盤ビルドスクワッド

SREスクワッド

チームの成果物に

責任を負う

各スクワッドに技術的

アドバイスを与える

HTML, CSSなど

静的Webコンテンツを開発

アプリケーション

を開発

開発&運⽤基盤を

構築(終了後解散)

サイトの安定運⽤

に責任を負う

お客様

IBM

アドバイザリースクワッド

スクワッド・リード

Page 51: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation51

IBM Bluemixwww.bluemix.net

ストラングラー・アプリケーション・パターンを活⽤した移行

ストラングラー・アプリケーション・パターン

既存と新規開発アプリケーションを並存させて、徐々に新規アプリケーションに移行する手法

Martin FowlerのBlikiによる紹介

https://www.martinfowler.com/bliki/StranglerApplication.html

Strangle : 窒息する, 絞め殺される

新規アプリが既存アプリを徐々に置き換えていく様のメタファー

メリット

リスク低減

ソフト・ランディング

スピードアップ

最初の新規アプリのリリースは、ビッグバン型移行に比較し遥かに早い

デメリット

コスト増

重複するアプリケーションのホスティング

Page 52: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 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

段階的に

置き換え

Page 53: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2017 IBM Corporation53

IBM Bluemixwww.bluemix.net

スケジュール

お客様と

IBMエグゼクティブの

最初のコンタクト

IBM Bluemix Garageにて

Design Thinkingの実施

IBM Bluemix Garageにて

MVPビルドアップ(PoC)

の実施

開発・移行プロジェクト

契約締結

サービスイン

ストラングラー・

パターンによる

段階的な移行開始

201720162015

12月 7月1月6月4月

Page 54: Bluemix テクニカル・セミナー 2017...12 IBM Bluemix [参考情報] The Twelve-Factor App アプリケーションを開発・運 するためのベスト・プラクティス集

© 2016 IBM Corporation54

IBM Bluemixwww.bluemix.net