イベント登録数1,965

[東京]マイクロソフト アーキテクト フォーラム 2013

クラウド/DevOps時代、アーキテクチャはどうあるべきなのか~マイクロソフトアーキテクトフォーラム2013レポート
柴田克己 2013/7/23  日本マイクロソフトは4月24日、品川本社において「マイクロソフト アーキテクト フォーラム2013」を開催した。同フォーラムは、主に上級エンジニアやITアーキテクトを対象としたもの。同社のフレームワークやシステム構築のための技術を紹介するとともに、マイクロソフトの担当者を交えた、エンジニア同士の議論の機会として実施された。 システム全体への構想力を持ったアーキテクトが重要に  同社が、こうしたシステムアーキテクトを対象としたイベントを主催するのは約4年ぶりのこと。今回のフォーラムをきっかけに、今後、日本マイクロソフトからアーキテクト向けの情報発信を強化していきたいという。  オープニングセッションのスピーカーとして登壇したのは、日本マイクロソフト デベロッパー&プラットフォーム統括本部統括本部長の伊藤かつら氏だ。 日本マイクロソフト デベロッパー&プラットフォーム統括本部 統括本部長 伊藤かつら氏  伊藤氏は冒頭、1975年のマイクロソフト創業当時のポール・アレン氏とビル・ゲイツ氏の写真を示しつつ、メインフレームの時代から現在まで、同社のビジョンは一貫して「人を中心としたコンピューティングの実現」であったとした。  ビル・ゲイツは今から14年ほどさかのぼる1999年に「時や場所、機器を問わず、優れたソフトウェアで人々の可能性を広げる」というミッションを掲げ、以来、各時代の技術トレンドに合わせたアーキテクチャを提案してきたという。それは、2000年代初期の「Microsoft .NET」であり、Web 2.0時代における「Software+Service」、クラウドとデバイスの多様化に対応した「3 Screens+Cloud」といったコンセプトであった。   そして現在、新たに同社が掲げているコンセプトが、「モバイルファースト」「クラウドファースト」の時代に対応する「Devices+Services」である。  「PCに加え、タブレット、スマートフォン、プリンタ、デジタルカメラ、自動車、家電や家といったあらゆるものが、当たり前のようにインターネットとつながる時代になっている。そこでマイクロソフトに求められているのは、インターネットやデータセンターから提供されるサービスを、いかにこれらのデバイスをつなげていくか。そうした時代にふさわしいアプリケーションをどのように提供するかといった点だ」(伊藤氏)  伊藤氏は、マイクロソフトが提供できる価値として、グローバルで15億以上の顧客が存在する「規模」の価値、市場に対する膨大な投資やR&Dの実績といった点に加え、多くのコンシューマー市場における実績を挙げた。  「コンシューマーとエンタープライズの両方の分野で実績を持っているプラットフォームホルダーは、業界の中でもマイクロソフトのみではないだろうか。われわれは、それも1つの強みになると考えている」(伊藤氏)  伊藤氏は、現在求められているアプリケーションに共通する特徴として「ユーザーセントリック」であること、「ソーシャルの要素」を持つこと、企業内外のデータとスムーズに連携する「データ指向」のアプリケーションであることの3点を挙げた。  また、こうしたニーズは時代とともに変化するものであるとし、「変化していくニーズに対しては技術中心のアプローチではうまくいかない。そこで、その実現に当たっては、システム全体への構想力を持ったアーキテクトの存在が重要になる」(伊藤氏)と述べた。  アーキテクトには、「技術・業界動向を見極める」「専門家との協力を進める」「顧客とつながる」「全体観をつかむ」といったさまざまなスキルが求められる。伊藤氏は、「マイクロソフトが考える、Device+Services時代の重要なトレンドや技術要素を厳選してアーキテクトを指向する方々にお伝えしたい」と、同イベントの意図を語った。 クラウド時代に求められるアーキテクチャとは  基調講演は「これまでのアーキテクチャの変遷と今後の技術戦略」と題し、日本マイクロソフト、テクニカルエバンジェリストの萩原正義氏により行われた。  萩原氏は、現在あらためてアーキテクチャが注目を集めている背景として、社会の成熟によってユーザーの要求が多様化していること、要素技術が高度化、複雑化して選択肢も増えていること。人間の思考スピードや、経営資源、ハードウェアの進歩などに合わせた適切な「リアルタイム性」が求められるようになってきていることなどを挙げた。 日本マイクロソフト テクニカルエバンジェリスト 萩原正義氏  「クラウドファースト」「デバイスファースト」の時代において、従来のアプリをクラウド上に配備しただけでは、こうした要求に対応できないとし、「クラウドでの展開、多様なデバイスへの対応を初めから考慮したアーキテクチャを実現する技術戦略とは何かについて考えを述べたい」とした。 現在のアーキテクチャを方向付ける「メガトレンド」  萩原氏は、現在のアーキテクチャを考えるに当たっては、いくつかの「メガトレンド」があるとする。今回の講演では「ハードウェアと仮想化」「アーキテクチャ設計」「論理、物理設計」「開発の競争優位性」といった観点から、そのトレンドを解説した。  ハードウェアの側面では、CPUやGPGPU、ストレージデバイス、ネットワークなど、あらゆるコンポーネントにおいて、ハードウェア自体の性能向上に加えて、さまざまな構成上の工夫によって、処理速度の高速化が進められている。  例えば、CPUなどのコンポーネントにおけるI/Oと比較するとHDDは遅く、それがシステム全体のボトルネックとなっている。この課題解消に当たって、I/Oの並列化やSSD化、インメモリDBの活用といったさまざまな方法が試みられており、必要に応じて置き換えが進んでいる状況にある。  また、Facebookの提唱による「Open Compute Project」によって、クラウド時代に適応したスケーラブルなハードウェアの標準化がコミュニティベースで進められており、これら活動成果をデータセンターに導入する動きが加速する可能性があることについても言及した。  「こうしたハードウェアの進化が、その上で動くソフトウェアを変える原動力の1つになっている」(萩原氏) ハードウェアの進化  アーキテクチャの側面では、1995年前後より広く普及し、現在も主流となっている、Remote Procedure Call(RPC)をベースとした3階層構造のモデルも進化を続けている。3階層のアーキテクチャでは、一般的にバックエンドにデータベース、中間にビジネスロジック(アプリケーションサーバ)、フロントエンドにWebサーバという構造をとるが、クラウドネイティブという観点で見た場合には「データベースサーバの部分がボトルネックになりやすい」と萩原氏は指摘した。  この点については、これまでの歴史の中で大きく2つのブレークスルーがあったという。1つは「分散システムとトランザクション処理」の組み合わせであり、もう1つはスレッド制御の並列処理である「データ指向トランザクションモデル実行制御」である。これらの技術は、すでに確立しているものの、クラウド環境での適用を考えた場合に耐障害性やスケーラビリティの面、求められるレベルのデータ一貫性をいかに保つか、ログデータなどのハンドリング方法をどうするかといった点を、個別にアーキテクチャの中で考えていく必要があるという。 3階層アーキテクチャの進化  そうした中で主流になっているのが「シェアードナッシング」型のアーキテクチャだ。ネットワーク以外のリソースを共有しないノードを並列に配備し、それぞれに独立して動作させるこのアーキテクチャは、Hadoopなどをはじめ、現在、多くのシステムで採用されている。データの依存関係や同期が必要になる場合は通信コストが発生するという課題もあるものの「かなり使える技術になってきている」とする。  関連する「注目技術」として、萩原氏は「DSM(Distributed Shared Memory)」を挙げる。DSMではリージョンにまたがったストレージ上にある、さまざまなタイプのデータベースやオブジェクトストアなどへのアクセスを合理化する考え方である。  このアーキテクチャにおいては、アプリケーション側からは、データストレージがより扱いやすくスケーラビリティの高いものとしてアクセスでき、ストレージ側ではマルチテナンシーを有した運用が可能になる。この構成をとることにより、マルチデータモデルやサイロ化されたデータモデルの共通化といったことが耐障害性を高めつつ実現できるとする。 DSM:Distributed Shared Memory 「柔軟性」や「弾性」を実現するアーキテクチャ  また、プライベートやパブリックを問わずクラウドが指向する方向性として「Elasticity(柔軟性)」や「Resiliency(弾性)」などを挙げた。  ここでのElasticityは、ワークロードに応じてインスタンスを増やしたり、インスタンスごとの処理能力を柔軟に高めようとする考え方を指す。仮想化技術を用いた構成定義や、あらかじめ定められたルールに基づくスケーリングの自動化などがトレンドになっている。また、事前にワークロードを予測してスケーリングを行い、システムを構築する動きも出てきているという。 Elasticity  同様にここでのResiliencyは、特にパブリッククラウドにおいて、スケーリングを行いつつ、障害にいかに対応していくかという考え方を指す。  「アーキテクチャ設計の観点で見ると、スケールしたシステムをまず作っておいて、そこに後付けで耐障害性を付加するのは難しい。そのため、あらかじめスケール可能で耐障害性を持つ仕組みを考慮しておくことが必要になる」(萩原氏)  この分野において典型的な考え方は、システムの冗長化やフェイルオーバークラスタの採用といった、ハードウェアに起こる可能性がある障害をソフトウェア側で担保するという原則だ。ここで重要なのは「想定される障害モデルによって、必要なアルゴリズムが変わってくる」点。これは例えば、どのような指標で障害を検知し、どのような対応を行うかという判断に関係してくる。  「特に分散システムで難しいのは、例えばタイムアウトの情報を得ただけでは、サーバが落ちているかどうか判断ができない点。もしかしたらネットワークが遅延しているだけかもしれない。その部分だけを指標にして障害対応を行おうとすると、間違える可能性がある。本来、こうしたことはOSやミドルウェア側で吸収すべき問題だが、アーキテクチャを考える場合には理解しておくことが必要。近年のクラウド環境では、クラスタマネージャがSPOF(単一障害点)となり得るが、その対策だけでは不十分であることを覚えておくべきだ」(萩原氏)  障害モデルについて、基本的な考え方は「分散環境の『対称性』へのアプローチ」によって異なる。同じソフトウェア環境で分散をする(対称)のか、別の技術やアルゴリズムを用いた構成(非対称)をとるのかといった点だ。  対称な構成をとることのメリットは管理が極めて容易になること。一方で、非対称な構成をとれば管理コストや構築コストは高まるものの、脆弱性への対応や技術の陳腐化といった、より長期的な障害のリスクを考えた場合にメリットがあるとする。こうした「非対称」の構成は、特に高い耐障害性を求められたり、極めて大規模なデータセンターを構築したりする場合に効果的であるとした。  そのほか、データ統合の新たな考え方についてはガートナーの提唱する「ICF(Information Capability Framework)」が、クライアント側の現在のテーマとしては「Webアプリとネイティブアプリ」のどちらを選択するかといった観点があることなどにも触れた。 開発の競争優位性は「サイエンス」がカギを握る  最後の論点として、萩原氏は「開発の競争優位性」がどこから生まれるかという点に触れた。同氏は自身の考え方として、その優位性は「プラクティスからサイエンス(既知の知見)へと移行している」という。  「3階層モデルの時代には、オブジェクト指向分析セットやデザインパターンを使い、まさにソフトウェア工学やプラクティス(既知の知見)を使って開発を進めれば、うまくいくケースが多かった。しかし障害対策の部分でも話した通り、クラウドの時代においては、あらゆるパターンが想定されるため、逐一対応していくと極めて効率が悪くなる。そこで必要になる発想は、コンピュータサイエンスを用いて、ソフトウェア工学的な部分やプラクティス(既知の知見)に頼る部分を減らしていくこと。現在証明されている基本的なアルゴリズムを使い、それに従った実装を行えば、基本的なバグや障害に対する対応が可能になる。これによって、テストの工数やテストケースの数を減らしていくことができる」(萩原氏)  一方で、ガベージコレクションや通信遅延など、確実に予見できない部分は工学的に解決する必要がある。そのため、従来のソフトウェア工学的な手法とコンピュータサイエンスを組み合わせつつ、少しずつプラクティスに依存する部分を削減していくことで、今後のさらなる技術の複雑化に対応していく方向性になるだろうとした。 開発の競争優位性  萩原氏は、基調講演のまとめとして、この講演の中で触れたアーキテクチャの重要性や技術的なトレンドは、最終的にそれを利用する「人」に対して、良い環境を提供するための要素になると締めくくった。  「これまでの経済の中では大きな設備を作って『もの』を作ることが重要だとされてきた。しかし、現在ではものを作るだけではダメで、そこに何らかの『付加価値』や『知恵』といったものが付加されていなければ買ってもらうことはできない。作ったものに付加価値を与えるのは『人』であり、その価値を生みだすには、人にとってよい環境が必要になる。今後、ITはそうした環境の提供をサポートする存在になっていくはず。その基礎になるのが『人』中心のアーキテクチャだ。皆さんと一緒にそのアーキテクチャを考え、作っていきたい」(萩原氏) DevOpsが注目される背景とマイクロソフトの取り組み  「マイクロソフト アーキテクト フォーラム2013」は、基調講演後に3つの会場に分かれ、それぞれ別のテーマでのセッションが行われた。ここでは、同社エバンジェリストの高添修氏と長沢智治氏による「10年前から始まったマイクロソフトのDevOps ~今とこれから~」と題されたセッションについて紹介する。  開発」と「運用」を1つの枠組みの中でとらえる「DevOps」の考え方について、同社のこれまでの取り組みと今後の展望を示す内容だ。  高添氏は冒頭、マイクロソフトがDevOpsに関連して「これまでに特に大きな2つの発表を行っている」として、2003年の「Dynamic Systems Intiative(DSI)」と2007年の「Oslo」を紹介した。 日本マイクロソフト エバンジェリスト 高添修氏  DSIは、システムのモデルを作成し、その運用特性、必要なリソース、運用ポリシーなどを考慮してITライフサイクル全般を通じて使われる「共通定義モデル」化するという業界を挙げての取り組みだった。運用の場面では、この共通定義モデルに応じてリソース確保とシステム構成、運用が行われる。運用時に何らかの問題が発生した場合には、共通定義モデルを改善することで、継続的にライフサイクルを展開していくという構想だったが、その後終息してしまう。  その後、2007年10月に発表された「Oslo」の構想は、「Quadrant」と呼ばれる補助ツールを使い、モデル駆動型開発の促進を目指したものだった。現在でも、他のさまざまな同社製品の中にOsloに含まれていた基本的なコンセプトは継承されているものの、具体的な製品として現存するものはない状態だ。  では、現在のマイクロソフトにおける「Enterprise DevOps」に対する取り組みはどのようなものなのだろうか。講演を引き継いだ長沢氏が、まずはそのコンセプトを説明した。  近年、DevOpsが注目を集める背景として、長沢氏は以前と比べてビジネスにおけるITの存在感が増している点を挙げた。  「現在のビジネスにおいて、新たな価値を生み出したり、新規の事業を拡大したりしようとする場合にITのサポートは必須だ。ビジネスをけん引し、その価値を継続的に生み出し続けるために、ITの存在は不可欠なものとなっている。また、意思決定者も急速に変わり、IT部門から経営者層へ、経営者から顧客中心の計画や投資へと変化している。ビジネスの展開の中で、エンジニアとして活躍できる場が広がると同時に、その結果に対する責任も増す方向にある」(長沢氏) 「戦略的なIT」への変化  DevOpsの重要性が増している理由は、エンジニアリングの観点で「開発」「運用」「ビジネスチーム」の間に存在した阻害要因を排除し、ビジネス価値を高めていこうというムーブメントにあるとした。  その前提に基づいた、マイクロソフトが考えるDevOpsのコンセプトが以下の図である。 DevOps:ビジネスにフォーカス  この図の中で、左側に描かれている部分が「開発」、右側に描かれているのが「運用」だ。このサイクルを、一度きりではなく継続的に回し続けられる環境が、最終的に目指すべき姿である。  実際に「Visual Studio 2012」では、「開発ツールでありながら、開発者だけの視点では提供されていない。継続的に、ビジネス価値を提供し続けるための開発支援ツールである点がポイントとなっている」という。 「サイクルタイム」と「MTTR」をいかに短縮するか  長沢氏は、ビジネス価値を高めるに当たって「サイクルタイム」と「MTTR(Mean Time to Repair)」の2つの時間軸を縮めていくことが重要だとする。サイクルタイムは、ビジネスのアイデアや課題への解決策を、動くソフトウェアとして提供するまでの時間。MTTRは、障害発生時にそれを復旧するまでの時間である。  しかしながら、その実現に当たっては、多くの「壁」が存在する。開発チームとテストチーム、運用チーム、そして利用者やステークホルダーの間に存在するそれらの「壁」を、ビジネスを阻害する要因として排除するために、さまざまな試みが進められている。  「高い透明性を実現し、価値の流れを作り、そのサイクルの中にあるムダをとる。ビジネス価値を高めるためのサイクルを円滑に回していくために、そうした取り組みを行うことが必要になってきている」(長沢氏) DevOps:Businessを阻害する「壁」  マイクロソフトでは、統合開発環境である「Visual Studio」と、運用フレームワークである「System Center」の拡張および連携で、この取り組みをサポートしようとしている。  長沢氏は、例として「Operation Readiness」「Just-in-Time Delivery」「Mean time to repair」の3つのテーマを挙げ、それぞれの課題に対してどのような解決策が考えられるかを紹介した。  Operation Readinessは、開発段階で運用時の要件に対する備えを進める考え方だ。その実現には、早期に要求を獲得し、十分な品質を作り込むことがカギになる。Visual Studioでは「Team Foundation Server」のポータル画面における、必要な情報の可視化、「ストーリーボード」機能によるモックアップの容易な作成、ユーザーが利用するフィードバックツールの拡充などによって、より早期の段階で運用時に近い環境における要件の獲得を行えるという。  「この環境では、開発に関するすべての情報が、記録され、可視化される。現在、どういった状況にあり、どこをどう変えるとビジネス上の価値を高められるのか。その判断のための情報を統合的に管理できる」(長沢氏)  Just-in-Time Deliveryは、開発の敏捷性を高め、継続的な改善を続けるために何をすればいいかというテーマだ。長沢氏は、アジャイル開発の方法論の1つである「スクラム」を取り上げ、こうしたフレームワークが、開発の現場だけではなく、ビジネス全体の進め方としても広く注目を集めている点に触れた。  Mean Time to Repair(MTTR)は、障害発生から復旧までのタイムスパンを短くすること目指すもので、運用開始後には、ビジネス価値に対する損害を最小限に抑えるために重要な考え方となる。長沢氏は、その際の課題として「開発における問題解決フローと、運用の問題解決フローの周期が現状では大きく異なっている」ことを挙げ、その周期の差を埋めるためのサポートをツールで行うことが重要になるとした。  このサポートは、同社ツールであればVisual StudioおよびTeam Foundation Serverと、System Centerとの連携によって実現される。例えば「再現性に乏しい障害」に対しては、「IntelliTrace」機能によって、最大限の追加情報を取得し、開発者に対して本番環境で起きている問題を可能な限り再現して見せることができる。これにより、開発側でのデバッグをより効率的に行えるという。  「今回取り上げた3つのテーマを考えるためには、サイクルを考え、ビジネス価値の向上を高めることに主眼を置いた全体的な取り組みが必要。現在、DevOpsはムーブメントの段階だが、数年のうちに大きな波になると考えている。まずは現状を知り、どの部分をどの程度変えることでDevOpsな環境を実現できるかと考えるところから始めてほしい」(長沢氏) 日本マイクロソフト エバンジェリスト 長沢智治氏  最後に再び登壇した高添氏は、セッションのまとめとして「Enterprise DevOpsの継続的なサイクルを生む仕組みをどう作るか」という点で、同社のVisual Studio、Team Foundation Server、System Centerの組み合わせに多くのメリットがある点をあらためて強調した。加えて、世界各国にあるマイクロソフトのデータセンターから、レスポンスタイムを含むさまざま観点での自動監視を可能にする「Global Service Monitor」といった機能を提供していることなども紹介。特に「アプリケーション監視」は、現在のマイクロソフトが注力しているテーマの1つだという。  「そのほかにも、ビルドとアプリ管理の自動化を行う『System Center Orchestrator』や、開発とテスト環境の構築管理を行う『Lab Center』など、DevOps環境の整備を強力にサポートする機能を提供している。多くのツール群が連携することで、開発担当者と運用管理者がともに、ビジネス価値向上のためのITを作り上げる環境ができつつある。もし、こうした取り組みがまだできていないのであれば、ぜひ検討を進めてほしい」(高添氏) 継続的な流れを生む仕組みへ 「イベントカレンダー+ログ」レポート投稿募集中!このレポート記事が掲載されている本サービス「イベントカレンダー+ログ」では、イベント登録者がレポートを投稿したり、資料を一覧できるまとめページを作成できます。新着レポートは一覧に表示され、こちらのRSSにも配信されるので、ぜひご活用ください。