インフラ屋から見た
Enterprise DevOps のための基盤
モニタリング コラボレーション
日本マイクロソフト株式会社
エバンジェリスト
高添 修
はじめに
小さく成功している企業も
これからの大成功を考えよう
リーン
スタートアップ
アジャイル開発
ソフトウェア
ライフサイクル
DevOps は
ビジネスの話
製品から
語るべからず
継続的・・・
に意味がある
Business
IT
Business
IT Business
IT
Cost Center Key Infrastructure Morphing IT
 確立したビジネスモデル
 全体計画→全体リリース
 技術的な意思決定は IT 部門
 ビジネスモデルに IT が関与
 ニーズに応じたリリース
 技術的な方向性は、経営者層
 ビジネスを IT がけん引
 ジャスト イン タイム
 IT 計画と投資は、顧客中心に
Defin
e
ビジネス
価値の創発
Develo
p
アイデアを
Operate
ソフトウェアを
ビジネス価値として提供
要求
運用開発
動くソフトウェア
Defin
e
ビジネス
価値の創発
Develo
p
アイデアを
Operate
ソフトウェアを
ビジネス価値として提供
要求
運用開発
動くソフトウェア
継続的フィードバック | 継続的品質 | 継続的デリバリー
Microsoft の
Enterprise DevOps とツール
無理のないコラボレーション環境
開発者の意識の
高さは理解できた
Enterprise
DevOps
運用/インフラ側は
何ができるのか ?
本セッションは
こちらのお話
Merc. Stage ShuttleJob
Cache
HTTP
SQL
Feed
Store DSS
FTP
必要なリソース
運用ポリシー運用特性
既存、あるいは
新しいシステムの
モデルを作成
モデルに則した
システム運用
モデルに則した自動的なリソース
確保とシステム構成
ストレージサーバー ネットワーク
ITライフサイクルをつなぐ
共通定義モデル
Dynamic
Systems
Initiative
(DSI)
運用を意識した
開発が必要
気づき
仮想化は重要な
要素技術
今を知ることで
次が見えてくる
アプリのために
インフラがある
クラウドは重要な
要素技術
モニタリングが
生み出す価値
アプリではなく
システムを開発
何のための IT
なのかを考える
アプリのエラーは
簡単には減らない
紆余曲折
(自律分散はまだ先)
テクノロジーが
並行的に進化
リソースには
限界がある
開発者と運用者は
ツールが違う
Define
ビジネス
価値の創発
Develop
アイデアを
動くソフトウェアへ
Operate
ソフトウェアを
ビジネス価値として提供
要求
運用開発
動くソフトウェア
運用を考慮した
受け入れ基準
運用可能な
ソフトウェア
• 実行可能なフィードバックの
適切な収集
ALM 統合された
ツールとワークフロー
構成とデプロイの自動化
本番環境でのテスト
本番稼動に影響を与えない
診断
• 運用を考慮した設計
• 運用を考慮したテスト
• ラボ管理の自動化
かいh
情報として管理
優先順位づけ
開発者とのつなぎ
ビジネス価値
アイデア
様々なシステムを
効率的に開発
様々なシステムを
効率的・効果的に
テスト リソースの
自動構築
開発ツールや
中央リポジトリとの
連携による
自動ビルド/自動展開
稼働中のアプリを監視
不具合発生時の
アラート発行や
不具合の未然チェック
Define
ビジネス
価値の創発
Develop
アイデアを
動くソフトウェアへ
Operate
ソフトウェアを
ビジネス価値として提供
要求
運用開発
動くソフトウェア
運用を考慮した
受け入れ基準
運用可能な
ソフトウェア
• 実行可能なフィードバックの
適切な収集
ALM 統合された
ツールとワークフロー
構成とデプロイの自動化
本番環境でのテスト
本番稼動に影響を与えない
診断
• 運用を考慮した設計
• 運用を考慮したテスト
• ラボ管理の自動化
Visual Studio System Center
Team Foundation
Server
ビジネス価値
アイデア
Test Manager
 本番環境にも対応する
IntelliTrace デバッグ
 品質の早期作りこみ
 疑似本番環境のラボ自動化
と継続的なテスト実施
 受け入れテスト駆動を促進
System Center
Orchestrator
 TFS の開発リソースを利用
 TFS の自動ビルドで Runbook
を活用
System Center
Operations
Manager 障害発生時に TFS に自動起票
 TFS 自体の運用・監視
System Center
Virtual Machine
Manager
• TFS 連携
• 監視からの自動化
• Web サービス呼び出し
• スクリプト直実行
Orchestrator
Integration Pack
Orchestrator への
インプット
Orchestrator から
受け取り
実際の業務処理
(普通のコード)
自動
プロセスへ
※ ドキュメント化は
ゴールではない
プレゼンス
情報
リアルタイム重視
チャットやデータ共有
IP 電話常設タブレット
情報の蓄積も兼ねて
メール エンタープライズ ソー
シャル
CRM との連携
と営業
作るべき環境の提案
徹底したモニタリング環境
セルフサービス必須:方法はいろいろあります。
SLA とリソースのバランス (合意) 事前の容量制御と追加要求への対応
(例) 社内課金の2段階方式
1: 確保する容量で低額な課金
2: 利用した分で追加課金
※ 課金システムが難しくならないように
ディスクの
重複除去の例
開発環境用
プライベート
クラウド
開発者用のツールから
仮想マシンを管理
※ スナップショットも
Virtual
Machine
Manager
アラート
動作パターン識別
コード分析まで
System Center
Operations Manager
開発者に言い訳をさせない監視
開発のアサイン
Visual Studio か
ら
1
TFS ポータル
イベント例)パフォーマンス イベント アラー
ト
パフォーマンスの問題について
問題の分析~解決までに必要な情報の確認が可能
実行ツリービューにて、
処理ツーリーおよび処理ステップ毎の
処理時間の確認が可能
分散チェーンにて、
外部呼び出し(Web サービス)も含め
処理時間の分布を確認可能
処理を行った際の
変数の確認
イベント例)パフォーマンス イベント アラー
ト/クライアント
パフォーマンスの問題について
問題の分析~解決までに必要な情報の確認が可能
処理時間の内訳を表示
・ネットワーク通信(要求/応答)
・クライアント処理(JavaScript)
・サーバー処理
イベント例)アプリケーション エラーのアラート
アプリケーション エラーについて
問題の分析~解決までに必要な情報の確認が可能
エラー種別(例外)
エラーの発生場所
・ソースファイル名
・ソース内の行番号
メソッドが呼び出された際
のパラメータ情報
エラー発生時の
呼び出しスタック
イベント例)接続 アラート
接続のアラートについて
問題の分析~解決までに必要な情報の確認が可能
イベント例)世界規模な Web テスト
Visual Studio にて
テスト定義ファイル
.webtest の保存
世界中にある
マイクロソフトの
データセンターから監視
レスポンスだけ見ても
こんなに違いが !
Operations Manager
Global Service Monitor
(参考) AWS & System Center による監視
AWS Management Pack PowerShell による AWS コマンド
システムワイド
なテスト実行
リリース後の
不具合低減
チームによる
不具合状況の
適切な把握
リリース時期の
正しい決定
まとめ
Transform the Datacenter
サーバー ネットワーク ストレージサーバー
アプリ設計を変えられるような進化
アプリケーション開発・実行環境の標準化
データインサイト DevOps
データからビジネス開発
(業務データとソーシャル)
ビジネスのための IT へ
開発と運用の継続性
マイクロソフトテーブルにお持ちいただくと
ノベルティをプレゼントします。
みなさまのために何ができるのか、
いろいろと考えていますので、
ご意見・ご要望をお聞かせください。
© 2013 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.
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.

20130928 dev opsday_tokyo

Editor's Notes

  • #2 Software delivery is a cross-functional team effort that requires diverse functions to integrate in delivering the value envisioned for software investments. Effective Application lifecycle management practices enable organizations to integrate cross-functional teams in delivering a continuous flow of business value through software investments.
  • #5 Software and technology are key enablers of business modernization in the current and evolving age. The business of IT is enabling business modernization. IT investments need to extend beyond traditional back-office systems to delivering modern and connected edge facing solutions that enable new consumer engagement, new revenue streams, and cost reduction value opportunities. Investments to realize such value opportunities need to be executed in rapid and incremental iterations to deliver timely value and make the needed directional pivots based on learning from production usage. Striking the balance between agility and quality while maximizing the economies of scale in taking their businesses forward by delivering continuous value, are the top challenges faced by IT organizations across the world and in every industry.
  • #6 First, this slide really is the summary slide for the multi hour arch review that we are scheduling, so we’re really only going to scratch the surface here.There are three key pieces to our architecture: The runtimes that participate in this model driven world and their associated content, a place to store content called the repository and a tool to manipulate that content called Quadrant.Executable content is the center of valueI mean two things by this: firstis that we see many runtimes storing and leveraging their content inside the repository and using it directly, not via codespit. We’re trying to create a very dynamic environment that is not modal in the way many systems are today, no design time vs. run time. Updating the database is enough to change the application. You’re going to see an example of this in our demo.Second is that we are recognize that the system gets more value as we get more content and as we get the associated runtimes that leverage the content. We have a staged approach for targeting content and in the Oslo timeframe we’ll be focused on the middle tier (SOA) and systems management. We’re working with other groups like SharePoint and TFS to get them in our next product iteration.We store this content in a “Natural” SQL database repositoryThis means that our repository is designed to be a classic database application that deeply bets on the features of the database and doesn’t try to encapsulate it or build multiple layers on top of it. This approach allows us to not only leverage the features that the SQL team is building, but it also allows us to leverage the whole database ecosystem that exists, things like reporting, BI, integration with Office and other tools for example. When a customer looks at the repository through an existing tool, our goal is to ensure that they can make sense of what is there and leverage that tool.We are focused on modeling for the masses, not the ivory tower. We want a very broad base of developers to be able to use our system, and we want customers like business analysts, architects and systems management folks to also be comfortable editing these models. Thus we need a broadly approachable, general-purpose modeling tool. We call this tool Quadrant. It is designed to be able to edit any model in the repository using a set of generic viewers such as table, tree and diagram, much like Excel or Access can edit any tabular data. These views can also be customized to provide a more specific experience when editing certain models. You’ll see lots of examples of this in the demo. Finally it is important to note that Quadrant is really the first customer of this platform in that it, itself is model-driven. I’ve got a couple of slides that drill into Quadrant next and we’ll go into that in a little more detail.Because the file based world is not going away anytime soon, we are also creating a human-friendly textual representation of the content which is a modeling language called “D” D is a new declarative language designed for cases where you need a text based representation of your repository content and has a compiler and tool chain that allows you to build your .D files into SQL Scripts you can store in the repository or visa versa. Visual studio can then operate on these files directly in the file system.We also recognize that there is much content already in the world that will we will want to get in and out of the repository. Depending on the content, we expect customers to either load it directly into the repository (“Loaders”) or transform it to .D or .SQL files which can then be loaded via D.
  • #7 First, this slide really is the summary slide for the multi hour arch review that we are scheduling, so we’re really only going to scratch the surface here.There are three key pieces to our architecture: The runtimes that participate in this model driven world and their associated content, a place to store content called the repository and a tool to manipulate that content called Quadrant.Executable content is the center of valueI mean two things by this: firstis that we see many runtimes storing and leveraging their content inside the repository and using it directly, not via codespit. We’re trying to create a very dynamic environment that is not modal in the way many systems are today, no design time vs. run time. Updating the database is enough to change the application. You’re going to see an example of this in our demo.Second is that we are recognize that the system gets more value as we get more content and as we get the associated runtimes that leverage the content. We have a staged approach for targeting content and in the Oslo timeframe we’ll be focused on the middle tier (SOA) and systems management. We’re working with other groups like SharePoint and TFS to get them in our next product iteration.We store this content in a “Natural” SQL database repositoryThis means that our repository is designed to be a classic database application that deeply bets on the features of the database and doesn’t try to encapsulate it or build multiple layers on top of it. This approach allows us to not only leverage the features that the SQL team is building, but it also allows us to leverage the whole database ecosystem that exists, things like reporting, BI, integration with Office and other tools for example. When a customer looks at the repository through an existing tool, our goal is to ensure that they can make sense of what is there and leverage that tool.We are focused on modeling for the masses, not the ivory tower. We want a very broad base of developers to be able to use our system, and we want customers like business analysts, architects and systems management folks to also be comfortable editing these models. Thus we need a broadly approachable, general-purpose modeling tool. We call this tool Quadrant. It is designed to be able to edit any model in the repository using a set of generic viewers such as table, tree and diagram, much like Excel or Access can edit any tabular data. These views can also be customized to provide a more specific experience when editing certain models. You’ll see lots of examples of this in the demo. Finally it is important to note that Quadrant is really the first customer of this platform in that it, itself is model-driven. I’ve got a couple of slides that drill into Quadrant next and we’ll go into that in a little more detail.Because the file based world is not going away anytime soon, we are also creating a human-friendly textual representation of the content which is a modeling language called “D” D is a new declarative language designed for cases where you need a text based representation of your repository content and has a compiler and tool chain that allows you to build your .D files into SQL Scripts you can store in the repository or visa versa. Visual studio can then operate on these files directly in the file system.We also recognize that there is much content already in the world that will we will want to get in and out of the repository. Depending on the content, we expect customers to either load it directly into the repository (“Loaders”) or transform it to .D or .SQL files which can then be loaded via D.