より価値の高い仕事に人間がフォーカスできるように
左近充氏は、インフラチームが行っている他のプラクティスについても解説する。まずはコーディングについて。少人数ということを活かし、ブロードリーフではモブプログラミングを採用している。
モブプログラミングとは、チーム全体が同じ場所に集まり、同じコンピュータを使って作業をするソフトウェア開発のアプローチだ。ブロードリーフでは東京、札幌、福岡とそれぞれの拠点が離れているため、音声のやり取りにGoogleハングアウトを、ソースコードの共有のためにVisual Studio LiveShareを使用している。
モブプログラミングの利点として、左近充氏は「プログラムの品質が向上すること」を挙げる。リアルタイムで他のメンバーに見られていることで、「より良いコードを書かなければ」という意識が生まれるためだ。作業中に全員のレビューを受けているのと同じ状態になるため、別途レビューをする必要もなくなる。教える方も教えられる方も学ぶことが多く、チーム全体のスキルも上がる。
また、開発スピードを落とさないための工夫も存在している。ブロードリーフでは、本番環境以外はインフラチームのメンバー以外でもクラウドリソースを触ることができる。ベストプラクティスとしては、すべてのインフラ変更を厳密にIaC管理するべきだが、現実的にはその運用は難しいためだ。だが、この方法には課題がある。Terraformは状態を保持しているため、手作業でクラウドリソースを修正した場合には設定の差分が出てしまうのだ。
ブロードリーフではその課題を、既存のインフラリソースからTerraformのコードを生成してくれるTerraformingやTerraformerなどを用いて解消している。さらに、現環境とIaCの差分を自動的にSlack通知してくれるSlack Botも存在している。通知内容を確認することで、こまめにIaCをメンテナンスできる仕組みが確立されているのだ。
「なるべくマネージドサービスを使い、環境やツールを自作しない」という方針も徹底しているという。何かを自作すると、バージョンアップ対応や脆弱性対応など必ずその後のメンテナンスが必要になってしまうためだ。マネージドサービスを使うことで、運用工数を最小化できる。
また、「チームメンバーが思い思いにCronJobを仕掛けると、どのサーバーで何が動いているかわからなくなる」という課題を解決するために、OSSのジョブ管理ツールであるRundeckを導入したという。RundeckはGUIやAPIを介してジョブの作成や実行、管理、スケジューリングを行える。多種多様なプラグインも存在しており、機能拡張も容易だ。
さらに、適切な運用を行うため、アラート通知の見直しも行った。以前は、ありとあらゆるアラートをすべてメールで通知していたそうだ。その結果、「朝起きると70、80件もメールが来ていたが、ひたすらアーカイブしてみると結局どれもサービス影響はなかった」という事態が多発していたという。まさにメール地獄である。
監視において重要なのは「本当に必要な情報だけを通知すること」だ。狼少年のようなアラートは、必ず無視されるようになってしまう。人が対応する必要のない異変については、データを収集するのみで通知はしないというルールを徹底すべきなのだ。

最後に、左近充氏はセッションをこう総括した。
「IaCはあくまで『手段』です。ツールで解決できることはツールでやって、人間がより価値のある仕事にフォーカスできるようにすることが目的です。例えば、先端技術の検証・導入、ミドルウェア・クラウドの理解向上、可用性・信頼性の向上、コスト削減などに時間を割くべきです。
そうすれば、さらに業務を効率化して、できることを増やして強くなり続けることができます。IaCを使って不要な心配や失敗をなくして、必要な失敗だけをしてチャレンジし続けられるチーム。これこそ、『ぼくのかんがえたさいきょうのいんふらちーむ』となります」
お問い合わせ
株式会社ブロードリーフ
- コーポレートサイト
- 問い合わせメールアドレス: j.event@broadleaf.co.jp