アカウントを記憶する
次への埋め込みコード: Microsoftが実践したScrum導入7年間の旅そしてDevOps
いずれかを選択してください。
小
中
大
Scrum Gathering 2016のMicrosoftの開発チームのScrum / DevOpsの導入のストーリです。
Sam Gukenheimer氏のDevOps Enterprise Summit 2015の資料を基に完全に日本語化したものです。
http://scrumtokyo.ideascale.com/a/dtd/Microsoft%E3%81%8C%E5%AE%9F%E8%B7%B5%E3%81%97%E3%81%9FScrum%E5%B0%8E%E5%85%A5%EF%BC%97%E5%B9%B4%E9%96%93%E3%81%AE%E6%97%85%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6DevOps%E3%81%B8%E3%81%AE%E9%80%B2%E5%8C%96/206773-38103
参考: Sam Gukenheimer氏のオリジナル講演(英語)
https://www.youtube.com/watch?v=-3uSiHO22tc
Microsoft が実践した
Scrum 導入7 年間の旅。そして
DevOps への 進化
Sam Gukenheimer の DevOps Journey
Microsoft Corporation Senior Technical Evangelist DevOps
Tsuyoshi Ushio | @sandayuu
Sam Guckenheimer
Product Owner Visual Studio Cloud Service Agile Conference 2014 Keynote speaker
Visual Studio Team Services: 内部ストーリ ボックスからクラウドへ Microsoft 開発部門のDevOps ジャーニーからの学びと考察
Product Owner, Visual Studio Cloud Services Microsoft Corporation
@samguckenheimer
@shitsamgusays
http://aka.ms/devops
オリジナルストーリ!
標準的な DevOps のビュー (aka Gene Kim’s “Three Ways”)
Development Business
Operations Customer
DevOps と は
ビジネス・ DEV・ OPS が協力し、ソフトウェアライフサイクル
を改善し、ビジネス価値の創出を改善する活動
3時間でデプロイ 可能な能力! By Kiro Harada
10デプロイ/日を可能に
DEV
OPS
QA
Dev / Ops
経営 / セキュリティ / 営業
DevOps のメリット
IT パフォーマンスが向上して 競争優位になる
コードのデプロイが 30 倍スピードアップ
IT 部門のパフォーマンスが高いと、企業の収益性、市場シェア、 生産性も倍増する
そのうえ、 パフォーマンスの低い環境に比べて リード タイムを 200 分の 1 に短縮できる
エラーを 60 分の 1 に削減できる
DevOps 手法を通じて IT のパフォーマンスを強化できる
さらに、パフォーマンスに劣る 環境に比べてエラーからの復元を 168 倍高速化できる
出典 :
https://puppetlabs.com/ https://puppetlabs.com/
DevOps に向けた典型的な障害
モニタ + 学習
計画
パフォーマンスと可用性のトラブルシューティングはいつも難しい
投資の優先順位付けが実際に使われるパターンに即していない
Development
Operations
アジャイル方法論が開発サイクル をスピードアップした
運用者は速度についていって、 十分早くリリースができない
開発 + テスト
リリース
パッケージとしての VS 2010 の認識
コミュニティ投票によるベストプロダクト
アナリストが認識する Microsoft のポジション
GARTNER:
Magic Quadrant for Application Life Cycle Management 5 June 2012
IDC:
IT PPM Market Landscape
December 2010 Evaluating VS2010
VOKE:
Test Market Mover Array
July 2010 Evaluating VS2010
Visual Studio Team Service
100 万 超ユーザのサービスで起こったこと
アナウンス当日にフューチャフラグを Onにした結果
7 時間の
サービス
ダウン
SaaS プロバイダ としての学び
Microsoft のDevOps ジャーニー
最初の姿
Dev
Program Management
Ops
Dev + QA = Engineering
Engineering
Engineering + Ops + Program Management
= Feature team
Feature team
Collaborate with Customer
Innovation
Build
Measure
Learn
Customer
チームの自己組織化
とエンタープライズ としての提携
Team rooms
3 週間のスプリント
デプロイ
スプリント計画
完了 !
Week 1
Week 2
Week 3
Sprint 56
Sprint 58
Sprint 57
プランニングホライゾン
18 か月毎の
ビジョン
6か月毎の
シーズン
3スプリント毎の 計画チャット
3週間毎の
スプリント
Sprint メール
技術的負債を
マネジメントする
コード : クラウド先行・次にオンプレミス
コードベースは複数のデリバリストリームを持つ
マスタブランチは一つ、複数のリリースブランチ
共有抽象化レイヤ (VSSF)
Update 2
Update 1
Update N
ゴール:クリーンなままで迅速に
最小限のコンフリクトで頻繁に出荷する
15 分で、プロダクションにhotfix を自動でプッシュできることが目標
早くて予測可能なインナーループ インナーループ = ビルド > デプロイ > テストサイクル 1日に信頼性高く数百回実施される
クラウド時代の品質アプローチ設計 ステージングや、エクスポージャコントロール、リッチなテレメトリによって
オンプレミスの高い品質基準を継続する
いくつかの、 Doneの定義は全てのデリバリストリームに有効
最も低レベルのテストを実施する
原則
テストは可能な限り低レベルで書かれる
“Write once, run anywhere” – 本番環境含む プロダクトは、テストが容易な設計になっている
テストコードはプロダクトコード。信頼できる テストだけが生き残る
テストインフラストラクチャは共有サービス
顧客価値のフロー
SLA を ユーザエクスペリエンス に
Phase 1: “Outside-in” のシンセティックテスト 結果: サービスが拡大するとカバレッジが少なすぎることに気づいた
Phase 2: コマンドのヘルス 結果: コマンドの数が増えたら、気づきにくくなった。
Phase 3: ア カウント 毎の失敗 / 遅いユーザ時間 結果: 顧客のインパクトをより身近に感じれるようになった
その他の人に着目する (“Red”を抱擁せよ )
アカウント毎の利用可能性を測定 … プロアクティブに低利用可能性のユーザに接触している
アカウントレベルの利用可能性トレンド
トップカスタマの一人が低利用可能性であることがわかり、プロアクティブにコンタクトをとり、問題を解決した
顧客との会話
UserVoice
Top Customers
インスパイアの源 …
オープンソースソフトウェア (OSS) … オープンソースのワークフローは、シェア、再利用、コラボレーションを重視している。
シェアやコラボレーションのためにコンポーネント化は、自己の強度をより増している。
… 大きくスケールするサービスで 疎結合で、協調するサービスは独立してリリースされる
… をエンタープライズの強度で
エンタープライズのコードガバナンスと長い期間のサポート要求
コントリビューションのフューネル
使う
それが何かを理解できるようになる 簡単に見つかるようにして使う フォーク / フォロー / Favoriteする
ダウンロードする
質問に答える、ブログを書く
ドキュメントを修正したり追加する バグを記録する typoを報告する
時間の貢献
バグを直してコードパッチを送る
新しい機能を実装する
プラットフォームをメインテナンスする
翻訳する
コードの貢献
Stick around: プロジェクトの方向性に影響を与える コアコミッタになる( 書き込み権限取得)
コードの貢献の受入 / 評価 新しい人を育てる
所有
学びにより 整理整頓された
バックログ
Build-Measure-Learn
Hypothesis ( 仮説)
{ 顧客セグメント} は{ プロダクト / 機能} が欲しいと思う。なぜなら、 { 顧客の視点から見た価値} があるから
Experiment ( 実験)
… 上記 を検証するために、チームは次のような実験をする
Learning ( 学び)
上記の実験は次のようなメトリクスにインパクトを与えたため、 仮説が証明された。
以前は …
多すぎるアクションと、混乱要素によって 顧客がプロジェクトを作るという次の自然な ステップを実施することができなかった
Previous project creation experience
現在は …
Web
プロジェクト作成のエクスペリエンスに集中して、 IDEのフローに統合した
IDE
学びを検証する
アカウントを作った日にプロジェクトを作成した割合 (%)
January 22 to February 11 (all sources)
アカウントを作った日にプロジェクトを作成した割合 (%) IDEのみ January 22 to February 5
2 つ目の実験が平行で 走 っており結果が歪んでいる
初期プロジェクト作成 が、 15%から 50%に!
IDE 経由での最初のプロジェクト作成が3% から20% に!
本番環境で
集められたエビデンス
すべてを収集する
トレース
コードのトレースはデフォルト ON エラー条件や多くのノブ (ユーザ、コンポーネント、ステートメント )を含んでいる
ライブサイトのインシデントのデバッグに有効
1日最大 150GB
Dependent
Services
Activity
Logging
Traces
KPI
Metrics
Job
History
Intelligence
Synthetic
Perf
Counters
Operational Intelligence
Business Intelligence
Customer Intelligence
KPI メトリクス
リアルタイムもしくはバックエンド で収集されたメトリクスが ”調理 ”される 可用性の計算と、アラートを発生 されるために使われる
パフォーマンスカウンタ
プラットフォームと Azureインフラのパフォーマンスをキャプチャする デバッグとパフォーマンス測定に用いる
~50M イベント / 日
ネットワークへの Ping
ネットワークパフォーマンスの ベースラインとヘルスをキャプチャ ネットワーク起因の問題を早く特定するのに役立つ ー システム外の問題は特定が難しく時間がかかる
プロダクションファースト
マインドセット
ライブサイト文化の原則
ライブサイトステータスは常に最優先
グローバルレスポンスチーム
地域ごとに DRIが待機
24x7 のためサービスデリバリチームが5つのタイムゾーンに
週次のライブサイトレビュー
月次のライブサイトレビュー
リアルタイムでのコミュニケーション
ライブサイトのイシューがプロダクトバックログアイテムになる
根本原因を修正する
ソリューションを自動化する
Live Site Issues (LSIs)
自動ダンプ機能
遷移的な CPUスパイク。再現や、 診断ツールをタイムリーにオン にするのが難しい (ダンプ、プロファイル)
自動化されたトリガが、診断 プロセスを自動でスタートし オンデマンドでデータを収集
根本原因 最初に問題が起こった時に診断を実施
セキュア セキュリティリスクを避けるため RDPを使わない
高速
再現やデータ収集をしなくてもいいように
コミュニケーションの自動化
時間の節約 自動的にブログと emailと twitterをポストする
一貫性
事前に承認されたテンプレートを最大限活用
承認済みのテンプレートはインシデント通知 を素早く作成することができる。危機の間にも、チームが何が求められているかを知るのを助けてくれる。
サービスステータス の見える化
根本原因分析 (RCA)の透明性
的確で正確で注意深いアラートが早期検出のコツ
… お粗末なアラートがDevOps を不幸にする 同じ問題に対するアラートの重複
適切な閾値の設定の必要性と、頻繁なチューニング
将来のノイズのためのステートレスなアラート
アラートのゴールを設定した すべてのアラートはアクション可能で、システムの本当の問題を示している
アラートは緊急時のセンスを作り出すべき – 偽物のアラートはそれを惑わせる
Solution 解決策 アクショナブルなアラートだけを通知した
ヘルスモデルに基づいて、根本原因分析をし、ルーティングを自動化した
ヘルスモデル イン アクション
メモリとパフォーマンスに3つのエラー発見
全て同じコードの欠陥に関するものである。
アラートノイズの減少 :
~928 アラート / 週から ~22
DRI への エスカレーション~56% 減少
APM コンポーネントはフューチャーチーム にマップされる。グローバルのDRI に オートダイヤルする
DATA PROTECTION
我々のセキュリティ マインドセットは、
侵入を防ぐだけでなく
既に侵入されている前提
で考えています
全て面でセキュリティプログラムは
このマインドセットでデザインされています
Oops
Microsoft promotional use
DATA PRIVACY
Disasters
Microsoft access
SERVICE AVAILABILITY
Service down
Law enforcement access
DDoS
Data loss
Security holes
SERVICE SECURITY
Stolen credentials
シークレットのマネジメント
Azure Secret Store ストアをセルフサービスAPI で暗号化
Config を暗号化
シークレットを app config内で暗号化
有効期限スキャナ
シークレットの有効期限切れの警告
ローテート
シークレットを定常的に変更する
監査
承認の無いアクセスを警告する
証明書 ストレージキー
パスワード
サービスアカウント
シークレット
どうするか?
課題
有効期限切れ
全てのシークレットは有効期限あり
リーク シークレットが偶然に漏れてしまう
盗難 ハッキングや侵入
1000+
VSTS シークレット数
インフラストラクチャを
柔軟なリソースとして扱う
デプロイの自動化
いつでもデプロイする オンラインオペレーション – サービスは 24x7x365
TFS のリリースマネジメントで完全自動化
複数のバージョンが平和に共存している
ステージング カナリーの展開は最初 (SU0)その後他に展開
展開の後に、詳細なヘルス分析を行う
フューチャフラグを使った公開コントロール コードを変えたり、再デプロイすることなく、ランタイムに機能を On / Offする
新しい機能公開の方法
リリースマネジメント
フューチャーフラグ
全てのコードはデプロイされる。 ただし、フューチャフラグの公開コントロール付きで
フラグはユーザ単位でコントロール可能
該当ユーザは再デプロイすることなく追加 / 削除可能
ダークラウンチを有効にする
新しい実験と、改善のためのメカニズム
複数のスケールユニットがカナリアテストを可能にする
Shared Platform Services
JA
AT
San Antonio
VSTS SU1
VSTS SU0
VSTS SU7
Chicago
Australia
トラックしているメトリクス
利用率 獲得
契約率
リテンション
コンバージョン率
乗り換え率
ライブサイト
検出までの時間 軽減までの時間
インシデントが止めたアイテム数
時間のたったライブサイトの問題 カスタマーサポートメトリクス (SLA, MPI, top drivers)
ベロシティ
ビルド時間
自己テスト時間
デプロイ時間
学びまでの時間 (Telemetry pipe)
エンジニアリングエンジニア毎のバグキャップ
重要カテゴリの時間のたったバグ
パス率とカバレッジ
“本番環境 ”などという場所はない
DevOps ハッカソン
開発者、インフラ技術者のための DevOps ハッカソン
~本物の DevOps をエバンジェリストと学ぶ 2 日間~
Tsuyoshi Ushio
DevOps ハッカソンは毎月開催!
Microsoft corporation
Senior Technical Evangelist for DevOps
無料!
Jan 23rd – 24th @Osaka
Feb 27th – 28th @Fukuoka
Mar 5th – 6th @Shinagawa
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
Visual Studio 11
If something is canonical status, it is accepted as having all the qualities that a thing of its kind should have.
正典、標準的な
© 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
<Event Name Here>
2014 Report collected in December 2013 had over 9,200 survey respondents across 110 countries with companies of ALL sizes and verticals.
2015 Report had 4,976 respondents with companies of ALL sizes and verticals.
<Conference/Group Name>
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
商用オフザシェルフ(英語 : commercial off-the-shelf、 COTS)とは、既製品で販売やリースが可能となっているソフトウェア製品やハードウェア製品、または一般向けにライセンス提供されるものを採用することである。 PPM = Product portfolio management
The sprints are traditional Scrum sprints. Teams do sprint planning on day 1 of week 1. We’re done at the end of the 3rd week. And then we rinse and repeat. And we deploy live to our service 1 week after the sprint wraps up. I’ll talk more about that later…
Rinse: clean and wash it
Momentum: IF a process or movement gains momentum, it keeps developing or happening more quickly and keeps becoming less likely to stop.
A cadence is the phrase that ends a section of music or a complete piece of music
Rigorous: very thorough and strict.
Question: The lowest possible level の例は?
https://en.wikipedia.org/wiki/Synthetic_monitoring
Those paths are then continuously monitored at specified intervals for performance, such as: functionality, availability, and response time measures.
Reinforce: strengthen
Stick around: linger in a place
Value proposition: https://en.wikipedia.org/wiki/Value_proposition
A value proposition is a promise of value to be delivered and acknowledged and a belief from the customer that value will be delivered and experienced. A value proposition can apply to an entire organization, or parts thereof, or customer accounts, or products or services.
最初のプロジェクトが作られない問題があった
6つのうち2つのスケールユニットで試した
IDE は7倍!
しかし、 Web画面のほうはせいぜい1.7倍だった。これは同時にほかの実験が走っていたから
だった。新しいユーザ獲得のものが動いていて、お試しの人がたくさん去っていったからだ。
実験は同時に一つ。これをやめたら、50%にまでアップした
A knob is a round switch on a piece of machinery or equipment.
Mesh: material made of a network of wire or thread.
Escalate: increase rapidly / become more serious
On-call 待機して
DRI: Designated Responsible Individual
ダッシュボードが壁に飾れれていて、誰でも気づくようになっている
RCA (Root Cause Analysis)
Precise alerting is key to fast detection … Precise: exact, accurate, and careful about details.
Consolidate: more strong
Breach: break a law
Assume: imagine it is true.
既に侵入されているという前提で
Churn:
Attrition or turnover of customers of a business or users of a service. Read more: http://www.businessdictionary.com/definition/churn.html#ixzz3xTCTRtdV
<Event Name Here>antee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATIO