Weitere ähnliche Inhalte Ähnlich wie ToolChainを使った次世代DevOps環境の作り方 (20) Mehr von Harada Kazuki (10) Kürzlich hochgeladen (11) ToolChainを使った次世代DevOps環境の作り方2. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp/
自己紹介
2
原田 一樹 (Kazuki Harada)
o Bluemix UserGroup Community Leader
o クラウドアーキテクト/スクラムマスター
o クラウドイノベーションセンター所属
興味・関心:
Cloud/IoT/機械学習/OSS/API/Scrum/DevOps
書籍・記事・実績:
o エンタープライズAWS導入ガイド
o 人口知能アプリケーション総覧-Watson
o BluemixとWatsonの全貌を知る-ITpro
o BluemixHack 最優秀賞
o BluemixChallenge2015 最優秀賞
o Watson日本語版ハッカソン 最優秀賞
3. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp/
Bluemix UserGroup (BMXUG)
3
Bluemix UserGroupのコミュニティリーダーを担当
リアルな技術情報の集まる環境で最新の情報を収集・発信
Bluemix UserGroup(BMXUG) facebookページ
5. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
2015年5月 Bluemix Hack 最優秀賞
WearableBluemix クーポン× ×
2015年12月 Watson日本語版ハッカソン 最優秀賞
ChatWatson QAナレッジ× ×
2015年9月 Bluemix Challenge 2015 最優秀賞
機械学習Bluemix 観光× ×
7. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
伝統的なDevとOpsの関係
7
開発エンジニア(Developer)
新しい機能を
追加したい
運用エンジニア(Operator)
安定稼働
させたい
利害の対立
ニーズの変化に応じて新しい機能
を開発して反映させたい
手順書作成するのが手間。想定し
ていないエラーまで手順化は困難
ユーザーの声が分からない
安定したシステムを手を加えたくな
い(変更リスクを負いたくない)
全て手順書にまとめてほしい(エ
ラー時対応含めて)
ユーザーの要求に合わないアプリで
クレーム対応が大変
開発部門と運用部門が自身の利益の最大化を目指し、利害不一致。
8. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
理想的なDevとOpsの関係
8
開発エンジニア(Developer) 運用エンジニア(Operator)
DevOps
ツールにより変更リスクを最小化
新機能や機能改善を即時反映
手順の自動化によりドキュメント作成負荷の軽減
顧客の声を取り入れて、ムダな開発を排除した効率
の良い開発の実現
ビジネス変化・顧客要求に対応し、
ビジネス拡大/顧客満足度を最大化をしたい
本来の目的である「ビジネス拡大」や「顧客満足度の最大化」で利害が一致
9. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOpsの原点
9
開発担当者と運用担当者が連携して協力する開発手法のこと。
「Velocity 2009」でFlickrの講演で初めて使われた言葉と言われている。
「開発と運用が協力することで1日に10回以上のリリースが可能になる」
http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
10. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOpsの原点 ~必要なツールと文化~
10
Flickrの講演では、DevOpsの実現に必要なツールと文化として、
下記の10の要素を紹介している。
自動化されたインフラ、バージョン管理、ビルドツールなどのツール群の整備と、
開発担当者と運用担当者がお互いに尊敬し、信頼しあう文化が大事。
必要なツール
インフラ構築の自動化
バージョン管理
継続的インテグレーション
デプロイ自動化
監視
情報共有(Wiki, IRC, BTC…)
お互いを尊重する
お互いを信頼する
失敗に対する健全な態度
お互いを非難しない
必要な企業文化
11. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOpsの適用領域(クネビンフレームワーク)
11
無秩序
カオス
やや複雑
やや複雑単純 複雑
複雑
◆DevOps/Scrumの効果は大きい
複雑なものを「検証」と「適応」を繰り
返し、右往左往しながらもより良いや
り方をチームで考えて進行させる。
⇒ DevOps/Scrumを採用
◆DevOps/Scrumの効果は小さい
実現内容が単純明快で失敗する
可能性が小さいもの。要件が変わら
ない、それはウォーターフォールが得意
分野。
⇒ ウォーターフォールを採用
安定した
技術
不安定な
技術
明確な
要件
未確定な
要件
DevOpsの適用は要件が未確定で変更する可能性が高い領域で効果大
12. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOps実現のための戦略立案
12
「1日に10回以上のデプロイ」がDevOpsの目的ではない。
戦略を階層化し、DevOpsの根本的な必要性を考える必要がある。
→組織作り、文化そのものを変革するにはトップダウンの指針が必要
ツール群(インフラ自動化、CIツール、Git…)
アプリの更新頻度を増やす
(1日に10回以上デプロイ)
ビジネスのスピードに合った価値提供
企業文化を変える(お互いを尊重)
競合優位性維持 / 顧客満足度の向上
国内シェア No1を目指す
サービス事業者として世界的に認知
…
…
…
…
…
…
…
DevOpsの目的
DevOpsで
実現できること
DevOps
実現の手段
DevOpsの先の
最終ビジョント
ッ
プ
ダ
ウ
ン
ボ
ト
ム
ア
ッ
プ
13. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOps実現のための戦略立案
13
「1日に10回以上のデプロイ」がDevOpsの目的ではない。
戦略を階層化し、DevOpsの根本的な必要性を考える必要がある。
→組織作り、文化そのものを変革するにはトップダウンの指針が必要
ツール群(インフラ自動化、CIツール、Git…)
アプリの更新頻度を増やす
(1日に10回以上デプロイ)
ビジネスのスピードに合った価値提供
企業文化を変える(お互いを尊重)
競合優位性維持 / 顧客満足度の向上
国内シェア No1を目指す
サービス事業者として世界的に認知
…
…
…
…
…
…
…
DevOpsの目的
DevOpsで
実現できること
DevOps
実現の手段
DevOpsの先の
最終ビジョント
ッ
プ
ダ
ウ
ン
ボ
ト
ム
ア
ッ
プ
DevOpsの全体像を踏まえた上で、
Bluemixを利用した
DevOps環境の作り方の話をします。
16. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
IBM DevOps Servicesの特徴
16
Web IDE
(Webエディタ)
Code Management
(Git/バージョン管理)
Track/Plan
(スクラム管理)
Pipeline
(ビルド・デプロイ)
用意されたツールを使うことで、
一連の開発サイクルをWeb上で実現可能
(スクラム管理・コーディング・バージョン管理・ビルド&デプロイ)
17. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Track & Plan – Scrum管理ページ
17
ダッシュボードページ
へのリンク
自分のタスク管理
バックログ、スプリント、
チームのタスク管理
未完了、進行中の
タスクの表示
未完了、進行中のタ
スクの表示
バックログ、スプリント、タスクの管理が可能
24. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Build & Deploy
24
間にテストステージを
追加することも可能
標準でGit連携してBuildとDeployを実行し、Bluemix実行環境に
反映することが可能。テストステージを追加することも可能。
Git pushのタイミングで実行開始
手動実行への変更も可能
26. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
チーム開発における課題
26
【前提】
・チーム開発 (スクラム手法で開発)
・本番稼動中にも高い頻度でデプロイが発生する
【課題】
スクラム管理の方式で”かんばん”を求める方には不適合
Web IDEを複数人で同時に触ると収集がつかなくなる
デバッグ・ツールで実行時のエラーログを確認することが
可能だが、Node.js + Live Codingの環境が前提
Gitのブランチ管理が難しい
デフォルト設定だとデプロイ時にダウンタイムが発生する
→ ローカル環境や別ツールと連携するのが現実的
27. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
代替策
27
スクラム管理の方式で”かんばん”を求める方には不適合
→別のスクラム管理ツール、ホワイトボードを利用する
Web IDEを複数人で同時に触ると収集がつかなくなる
→ローカルの開発環境を使う
→Bluemix上に各個人の開発環境を用意する
デバッグ・ツールで実行時のエラーログを確認することが
可能だが、Node.js + Live Codingが前提
→ローカルで動作確認するようにする
Gitのブランチ管理が難しい
→ローカルGit連携が可能なのでこちらを利用する
デフォルト設定だとデプロイ時にダウンタイムが発生する
→Active Deployを利用する
31. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Garage Methodの紹介ツール群(抜粋)
31
Track and Plan
Track and Plan
IBM Rational
Team Concert
Load Impact
Active Deploy Build & Deploy UrbanCode Deploy
Monitoring and Analytics Alert Notification PagerDuty
Timeline Analytics
34. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
The Information Model
34
ToolChainはユーザ側に用意される「Tool instance」と、
ツールプロバイダー向けに用意される「Tool broker」によって構成される
39. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOps on Bluemix
39
下記のツール群を使ってDevOps環境を試してみた
ZenHub
Load Impact
Active Deploy
Build & Deploy
Monitoring and
Analytics
Alert Notification
Application Security on Cloud
40. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 アプリ構成 〜オンラインストア〜
40
■作成手順
https://developer.ibm.com/bluemix/2015/03/16/sample-application-using-microservices-bluemix/
Bluemix Dev blogに公開されているMicroserviceアーキテクチャの
アプリケーションを用意し、今回のDevOps環境を試してみる。
45. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
GitHub × Slack
45
SlackにGitHub Integrationを追加
GitHubへのイシュー操作、Git操作をするとSlackへ通知が可能に
SlackのApp Directoryから
GitHub Integrationを追加
認証完了後、通知対象
を設定する
認証へ
47. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
hub-jazzからGitHubへの切り替え
47
Git on Bluemixから、
Git on GitHubへ切り替え可能
自身のGitHubアカウントに、Orders/Catalog/UI用のリポジトリを作成
DevOps Servicesが参照するリポジトリをそれぞれGitHubに切り替える
48. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
hub-jazzからGitHubへの切り替え
48
GitHubへの切り替え設定をすると、GitHubのWebhooksの設定画面で、
DevOps Servicesとの連携の設定がされていることが確認できる。
自動でGitHubのWebhooksに、
DevOps Servicesとの連携が設定される
上記設定があるため、GitHubにプッシュすると
Build & Deployと連携が可能。
49. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
SauceLabs
49
SauceLabsはOS/ブラウザ横断のテスト環境をクラウド提供しているサービス
複数環境でブラウザ操作をシミュレートしキャプチャ取得が可能。
複数のOS/ブラウザ及びバージョンを
選択してテスト対象にすることが可能
52. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Delivery Pipelineの拡張
52
Delivery Pipelineは拡張することが可能。詳細は下記参照。
https://hub.jazz.net/docs/deploy_ext/
■追加可能な機能の例
Static Code Scansの追加
→Javaアプリのセキュリティチェック (.war .ear .jar .class)
Globalizing stringsの追加
→別の言語への翻訳
HipChat notificationsの追加
→HipChatへの通知
Slack notificationの追加
→Slackへの通知機能
Active Deployの追加
→ゼロダウンタイムのデプロイ
Build & Deploy
今回試した内容
53. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Slack通知の追加
53
Build & Deploy
SlackのApp Directoryから、[Incoming WebHooks]を追加
Incoming WebHooksを追加
Webhook URLをメモする
54. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Slack通知の追加
54
Build & Deploy
環境プロパティーにWebhookURLを保存しておくことで再利用が簡単に。
任意のジョブのスクリプトにSlack通知用のコマンドを追記することで通知可能に。
curl -X POST --data-urlencode
'payload={"text": "デプロイ成功!"}'
${SLACK_WEBHOOK_PATH}
55. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Bluemix上に本番稼動環境と最新状態の環境(非アクセス)を用意する
本番環境に変更内容をデプロイする際に、ダウンタイムが発生しないよ
うに最新稼動環境にも一時的にアクセスが通る状態になる
デプロイ成功時は本番環境だったものが非アクセス状態となり、最新状
態の環境にアクセスが切り替わる
(参考) http://qiita.com/khara914/items/aacb6b0de5752db450c7
Active Deployとは Active DeployBuild & Deploy
57. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 Active Deploy (2/6)
57
Active Deploy実行用に新規インタンスを生成するスクリプトを作成
[ステージの構成]を選択
#!/bin/bash
NAME="${CF_APP}_${BUILD_NUMBE
R}"
cf push "${NAME}" --no-route -i 1
export NAME
Active Deploy
はじめに経路情報(URL)のないインスタン
スを新規生成するスクリプトを記述。
自動採番されるBuild番号を名前に利用し、
名前をエクスポートしておく。
(エクスポート先の設定は後述を参照)
Build & Deploy
58. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 Active Deploy (3/6)
58
Active Deployを開始するジョブを追加する
デプロイヤー・タイプを、
「IBM Active Deploy」 に変更
スクリプトはデフォルトのままでも
動作する
Active DeployBuild & Deploy
59. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 Active Deploy (4/6)
59
テスト・ジョブを追加し、任意のテストコードを実行することも可能。
#!/bin/bash
set -x
if [[ -n ${TEST_RESULT_FOR_AD} ]] &&
(( ${TEST_RESULT_FOR_AD} )); then
exit 0
fi
if (($(($RANDOM % 100)) < 30)); then
export TEST_RESULT_FOR_AD=1
else
export TEST_RESULT_FOR_AD=0
fi
任意のテストコードを記述し、
デプロイ前にテスト可能。
※必須ではない。
Active DeployBuild & Deploy
テストコードの
テスト用スクリプト。
(ランダムでエラー発生)
60. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 Active Deploy (5/6)
60
テスト・ジョブを追加し、任意のテストコードを実行することも可能。
デプロイヤー・タイプを、
「CompleteIBM Active Deploy」 に変更
スクリプトはデフォルトのままでも
動作する
Active DeployBuild & Deploy
61. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
【準備】 Active Deploy (6/6)
61
下記の3つの[文字プロパティ]を
追加する
Active Deploy
新バージョンのアプリ名を
保管するプロパティ
アプリケーションの
インスタンス数
テスト結果保管用の
プロパティ
スクリプトで使用する独自プロパティを追加する
Build & Deploy
67. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Monitoring and Analytics
67
Monitoring and
Analytics
Bluemixで使える無償の死活監視及びパフォーマンス監視サービス
高度なことはできないが無償なので追加しておく。
70. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Alert Notification 〜ポリシー作成〜
70
Alert Notification
通知ポリシーやエスカレーションルールを作成し、状況を察知可能
通知方法は下記の通り
・Eメール
・SMS
・音声通知
72. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
New Relic × Slack
72
SlackのAppDirectoryからNew Relicを追加できる
取得したWebhook URLをNew Relic側で設定することでSlack通知が可能。
73. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
Application Security
73
Application Security
モバイル、Web、デスクトップアプリのセキュリティスキャンができるサービス
実行結果をレポートとして閲覧することが可能
76. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOps on Bluemix
76
必要なフェーズに必要なツールが揃っていることを確認できた
ZenHub
Load Impact
Active Deploy
Build & Deploy
Monitoring and
Analytics
Alert Notification
Application Security on Cloud
78. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
DevOps実現のための戦略立案
78
「1日に10回以上のデプロイ」がDevOpsの目的ではない。
戦略を階層化し、DevOpsの根本的な必要性を考える必要がある。
→組織作り、文化そのものを変革するにはトップダウンの指針が必要
ツール群(インフラ自動化、CIツール、Git…)
アプリの更新頻度を増やす
(1日に10回以上デプロイ)
ビジネスのスピードに合った価値提供
企業文化を変える(お互いを尊重)
競合優位性維持 / 顧客満足度の向上
国内シェア No1を目指す
サービス事業者として世界的に認知
…
…
…
…
…
…
…
DevOpsの目的
DevOpsで
実現できること
DevOps
実現の手段
DevOpsの先の
最終ビジョント
ッ
プ
ダ
ウ
ン
ボ
ト
ム
ア
ッ
プ
79. Copyright(C) ITOCHU Techno-Solutions Corporation | http://www.ctc-g.co.jp
BMXUGへの参加のススメ
79
BMXUG - facebookページ
https://www.facebook.com/groups/bmxug/
BMXUG – DoorKeeper
https://bmxug.doorkeeper.jp/
ご静聴ありがとうございました。
引き続き、SoftLayer Bluemix Community Festa 2016をお楽しみください。
引き続きBMXUGではBluemixに関する情報を発信していきます。