5分で分かった気になるDevOps

 2013/05/14

最近あっちゃこっちゃでDevOpsという単語を聞きますが、概念的な言葉でスコープが広いので簡単に整理しておくことにします。 これで5分くらいで分かった気になるかもしれません。

  • 2009年にFlickrの人が発表した概念
  • 概念なので、実装は個々の現場によって異なる。アジャイル開発とアジャイル開発方法論の関係のようなもの。
  • 従来型の考え方による利害対立
    • Devは多くの機能を早く届けなければならない
      • すばやい変化
    • Opsは安定した運用を行いトラブルを起こさないようにしなければならない
      • 変化を避けたい
    • それじゃビジネスに勝てない
  • DevOpsとはDevとOpsが協力しながら、ビジネスのために継続的に成果を出す、もしくは変化に対応するためにアジリティを向上させていくこと、またはそれにかかわる活動全般のこと
  • 文化とツールを通じて、変化に対応し、変化のリスクを減らすことこそが大事
    • 「アジャイルマニフェストでは、ツールやプロセスより個人の対話を」とあり、これはツールよりも協力しあう文化が大事であることを指す。一方でツールやプロセスが大事ではない、とは一言も言っていない。こちらも重要であることには違いない。度合の問題である。
  • 文化
    • 双方が協力しあう。
    • それはオレの仕事じゃねぇ、とか言わない
    • 情報をオープンに共有する
    • 常に改善しつづける
  • ツール
    • よく登場するツール群(特定のツールが決められているわけでも、ツールさえ入れればうまくいくわけでもない)
      • バージョン管理
      • 継続的インテグレーション
      • デプロイ
      • 環境構築
      • 監視
      • 情報共有
      • 情報の集約と再利用
    • 自動化による時間の使い方の変化
      • 頻繁な変化を人手で対応するのは無理がある
      • いままでは手作業に多くの時間を費やしていた
      • でも今は自動でテストを実行したりインフラを構築(Infrastructure as Code)したりできる
      • 捻出できた時間で本来やるべきことをやる
  • DevとOps双方間での情報共有
    • WikiやITS、IRCなどなど
    • DevもOpsも運用に関心をもつ
  • あらゆるものをバージョン管理
    • 再作成可能なもの(バイナリなど)を除く
    • ●●さんの担当、という概念も排除(コードの共同所有)
    • DevとOpsで環境構築用のコードを共有
  • 継続的なテストとデプロイを可能にする仕掛け
    • 継続的インテグレーション→継続的デリバリー
    • アプリケーションやインフラの品質の作りこみ
  • Design for Failure

ちなみに、最近みたDevOpsの説明資料のプレゼンの中でも、マイクロソフトの長沢さんが作られたものは秀逸です。 是非こちらをご参照いただくことをお勧めします。

 2013/05/14

著作

寄稿

Latest post: