DevOpsDays Amsterdam 2014の初日,オンラインストアのbol.comは,DevOpsへの道程における同社の経験について報告した。成功の鍵となったのは完全な自動化,慎重なチーム構築,そして組織全体に浸透したアジャイル思考だ。
同社のエンジニアであるJos Houtman氏とNiels van de Wall氏の説明によると,同社には企業全体として統一されたアジャイル思想がある。開発部門には150人のエンジニアで組織された30のスクラムチームがあり,50種類を越えるアプリケーションを管理している。アジャイル管理のプラクティスも取り入れてられていて,毎日のスタンドアップやスクラムボード,プロダクトバックログを用いたロードマップ計画などは通常の業務として運用されている。そうではあってもこの2年間は,Webオペレーションにおいて重大な変革期間となった。今回の移行に着手する上で同社は,Webオペレーション管理に関する次のような原則を定義した。
- インフラストラクチャの"Single Source of Truth(唯一の正しい情報源)"
- 高可用性において妥協のない技術的ソリューション
- 明確に条件付けされた境界 - その境界を越える変更があるようでは,製品の域に達していない
- すべてを測定,監視
- 手作業の介在を要しない環境セットアップ
- すべての環境(開発,ステージング,製品など)を同一方法で管理
- すべての変更を対象とする相互レビュー
構想を実行に移すためにbol.comでは,2つの意図を持ってチームを結成した。 DevOps思想とCAMSに向けての適切な姿勢,測定結果を反映した自動化と構造改善に対する意欲である。
技術的な観点から言えばbol.comでは現在,スクラッチ状態から2時間で完全な環境を構築することができる。コンフィギュレーション管理はPuppetを使用して,Craig Dunn氏のRoles/Profilesパターンに従って行う。ワークフローの自動化にはRundeckを使用する。改善に関してbol.comが警告するのは,Puppetの依存地獄(Dependency Hell)と,リソース使用量が拡大した場合のパフォーマンス低下だ。
設定データのキー/値を参照するツールとしてPuppetが提供しているHieraを,"Single Source of Truth"として使用する。これに関しては,Hieraが複雑な情報のデータソースとしては不十分であったため,その上に特別なソリューションを開発せざるを得なくなったことから,最善の選択ではなかった,と報告されている。
インフラストラクチャのモニタリングはNagiosで実施する。モニタリング設定は可能な限り,ツールとプラグインの提供する標準設定をベースとする。Roles/Profilesパターンを採用したので,モニタリングとログ,計測値などはすべてPuppetプロファイルに統合されている。
チームダイナミクスの点では,優れた人材が見つかったことが今回の成功に寄与している。チームメンバ志願者の行動と必要な専門知識を十分に検討して,適切なスタッフを選ぶことができたのだ。そのチームがアプリケーションの構築と稼働に責任を持ち,オーナシップとフォーカスを尊重している。
新しいチーム編成,新しいプラットフォーム,新しい仕事の方法といったものに時間的なプレッシャが加わると,作業分担もひどいものになりがちだ。その点では,短い期間に適切な人材を得ることができたことが幸運だった,と両氏は考えている。チーム参加者たちは短期間の立ち上げという,"圧力鍋"のようなプレッシャにさらされていた。チームの幸福感と意欲の維持は,一つ間違えば失敗に結びつくような,微妙なバランスを要する行為なのだ。