BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Kief Morris氏が語る,コードによるインフラストラクチャの実現

Kief Morris氏が語る,コードによるインフラストラクチャの実現

原文(投稿日:2016/06/14)へのリンク

クラウドへのアプリケーション移行がここ最近,一般的なことになってきた – 大企業に限らず中小企業も,その柔軟性とリソース使用効率に注目している。クラウドを実践面でリードするThoughtWorksのKief Morris氏は,QCon New York 2016で行なったプレゼンテーション“Implementing Infrastructure as Code”の中で,クラウドベースのインフラストラクチャ活用において重要な,いくつかの原則と助言を参加者に提供した。

講演の前提として氏はまず,クラウド・インフラストラクチャを使う動機と課題について詳しく説明した。一般的な企業が重視するのはスピード,すなわち,最小限実行可能な製品をいち早く市場に提供し,時間を掛けてそれを改善するという方法だ。クラウドテクノロジはそのための障壁を低くしてくれるが,それでもセキュリティやパフォーマンス,安定性など,念頭に置かなくてはならないリスクはいくつか存在する。

全体的な目標が速さであっても,守らなくてはならないものはある。品質に影響があれば – 最初のダウンを経験する前に – 即座に修正して,最終的な製品の品質を担保しなくてはならない。

続いて氏は,マウスのクリック1回でサーバを立ち上げることがクラウド導入の目標ではない,という点に言及した。クラウドは通常,大規模なサーバ群を必要とするため,コンフィギュレーションの不統一に結び付くことも多い。一貫性のないサーバ群の自動保守は困難なため,このようなマシンのメンテナンスは必然的に手作業になり,不統一性はさらに拡大することになる。

その問題に対するソリューションであるインフラストラクチャ・アズ・ア・コードが,明確に定義されたサーバの導入手段として検討される理由はここにある – PuppetやChefなどを,“完全無人化”モードで使用することができるからだ。これらのツールでは手動による変更の必要はなく,すべてがスケジュールによって実行される。基礎となるテンプレートやコンフィギュレーションの細かな変更は必要であっても,最終的には手作業による変更をまったく必要としない,不変(immutable)あるいはコンテナ化されたサーバ環境の構築が可能になるのだ。同じコンセプトを,環境間でサーバを移動するような場合にも活用することができる。テンプレートやコンフィギュレーションはステージ間でも,可能な限り再利用すべきだ。

運用の自動化によって手作業の多くを省略できる点に加えて,氏が言及したのは,継続的デリバリのパイプラインを使用することによる品質保証面でのメリットだ。デリバリを自動化することによって,すべての変更作業は,サーバコンフィギュレーションの妥当性検証やセキュリティ要件の充足性の確認など,運用に反映されるまでにさまざまなステージでテストされるようになる。自動化することで,ガバナンスプロセスが効果的に運用されるのだ。

ただし,氏が述べたのはメリットばかりではない。プレゼンテーションではいくつかの欠点や落とし穴についても言及があった。複数のチームによって開発ないし維持されるシステムの常として,統合ポイントやボトルネック,あるいは依存関係を常に把握することに留意が必要だ。例えば,ユーザ駆動ないし契約駆動のテストを活用して,すべてのサービスが所定の方法で協調動作することを確認するためには,依存関係にあるサービスにテスト用のインスタンスを提供することが必要になる。テンプレートやコンフィギュレーションの一部が共有ライブラリのように使用されているのであれば,他のチームに配布する前に十分なテストを実施しなくてはならない。

最後に,自動化されたDevOpsシステムを促進することによる基本的なメリットを強調して,氏は自身のプレゼンテーションを締め括った。

  • 提供と改善の迅速化
  • バグ修正の容易化
  • サーバの一貫性維持
  • 価値創造への集中

 

なお,QConのプレゼンテーションのすべてが,カンファレンス終了後数週間で無償公開されるのではない点について理解して頂きたい。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT