
#本投稿は、US DADコミュニティサイトブログからの翻訳です。
前回の投稿では、ITソリューションの開発とIT運用業務に留まらず、エンタープライズレベルの様々な活動も含めて合理化するものとして、ディシプリンドDevOpsの概要を紹介した。今回は、DevOpsをサポートする戦略を概観することから始めたい。今回の投稿では一般的な戦略を概観することに留め、次回以降開発、運用、リリース管理、データ管理、およびエンタープライズアーキテクチャ戦略を説明していく予定だ。
DevOpsをサポートする”一般的”な戦略を、以下に挙げてみよう:
1.共同作業(Collaborative work) DevOpsの基本理念は、開発者、運用スタッフ、およびサポート担当者が定期的に緊密に協力しなければならないと謳っている。そこには、彼らがお互いを重要な利害関係者と認識し、積極的に協力する機会を探さなければならないという意図が暗黙のうちに含まれている。アジャイルコミュニティで常識とされるプラクティスに、”オンサイト顧客”(出自はエクストリーム・プログラミングXPだ)がある。これは、アジャイル開発者がビジネスサイドにより近づいていくよう促している。DADアプローチを採用するアジャイリストは、さらに一歩進めた「積極的な利害関係者の参加」プラクティスを実践する。このプラクティスでは、ビジネスサイドの利害関係者だけでなく、運用やサポートスタッフも巻きこんで、彼らのすべてと緊密に連携しなければならないと謳っている。これは双方向で行われる:運用とサポートスタッフは、喜んで開発者と密接に協力しなければならない。
2.自動化されたダッシュボード 自動化されたダッシュボードを使うというプラクティスは、IT インテリジェンスと呼ばれるが、これはビジネス・インテリジェンス(BI)アプリケーションをITに効果的に適用したものだ。これには、開発インテリジェンスと運用インテリジェンスの2つの側面がある。開発インテリジェンスは、メトリックを生成する機能を持った開発ツールを使用する必要がある。例えば、構成管理(CM)ツールは、誰がいつ何のためにチェックイン/アウトしたのかを記録する機能をすでに持っている。継続的インテグレーションツールも同様な機能を持っており、ビルドが行われた時に、どれくらい多くのテストが実行され、どれくらいテストに時間がかかり、ビルドがうまくいったのか、どれくらいのテストがパスしたのか等々の情報を記録する。この種の生データが自動的に分析されダッシュボードに表示される。運用インテリジェンスは、以前議論したアプリケーション監視の一様態である。自動化されたダッシュボードを使うと、組織全体でメトリックを収集するオーバーヘッドを劇的に抑えることができる(すべてを自動化できるわけではないから、完全になくすことは出来ない話なのだが)。自動化されたダッシュボードは、組織のガバナンスチームへリアルタイムの洞察をもたらす。
3.統合構成管理 構成管理(CM)に統合されたアプローチでは、これまで慣例としてきた開発チームがソリューション構築でCMを採用するだけでなく、開発されたソリューションとその他の組織インフラとの間に生じる運用環境の課題も考慮する。これは、開発者にとっては大きな変更となる可能性がある。なぜなら、彼らは現在作業しているソリューション構築の文脈でしかCMを考えていないことが多いからだ。DevOps環境では、開発者がエンタープライズ対応という意識と能力を持ち、より大きな全体像を理解する必要がある。彼らのソリューションは、運用中の他のアセットとどのように連携し、それらを活用するのだろうか?その他のアセットは、開発中のソリューションを活用するだろうか?これらは、開発チームが自らのプロダクトと依存関係のあるあらゆる事を理解し、管理する必要があるだろうということを意味している。統合された構成管理は、新しいリリースがもたらす潜在的な影響を運用スタッフが理解する助けとなる。それによって、新しいリリースの許可を出すタイミングを決定しやすくなる。
4.統合変更管理 組織全体へのサポートを向上させるためにITインフラストラクチャは進化していくが、ITの観点からは、この進化を成功裏にすすめかつ意味のあるものにするためには、変更管理は欠くことの出来ない活動である。多くの技術あるいは類似の技術の様々なバージョンさえ、単一のソリューションの開発に使われるため、プロジェクト·チームレベルでの変更管理には十分な注意が必要だ。DevOpsは、運用に関わるエンタープライズレベルの課題を持ち込むために、統合された変更管理戦略ははるかに複雑になる。非常に多くのソリューションが稼働する運用環境では、同時に相互作用しあうということを考えておくべきだ。統合された変更管理では、組織レベルでの技術の変化の影響を理解するために、開発チームは運用チームと密接に協力しなければならない。このアプローチは、積極的な利害関係者の参加、統合された構成管理、および自動テストといったプラクティスの早い段階で決まる。
5.トレーニング、教育、メンタリング 予想されているように、DevOps戦略を学び適用するためには、手助けが必要になる。
6.継続的改善 DADチームは、自身の経験からだけでなく他の人からも学ぶために努力するので、一緒に作業するやり方を継続的に改善することができる。もちろんそこにはDevOpsへのアプローチ方法も含まれる。
7.ワン・チーム DevOpsの考え方の重要な側面は、「彼らと私たちの考え方」から「私たちの考え方」にシフトしていることだ。私たちは、単一の、合理的なチームとしてみな協力し合いながら作業する。これを突き詰めた形が「あなたがビルドし、そして実行する」という哲学だ。そこでは、開発も運用もデータ管理チームもなにも分離しておらず、その代わりにプロダクトのライフサイクル全体に責任を持つプロダクトチームがあるだけだ。
次回は、開発チームの戦略を概観する予定だ。
オリジナル: DevOps Strategies – General
URL :https://disciplinedagiledelivery.wordpress.com/2015/01/27/devops-strategies-general/
(翻訳:藤井 智弘)