デプロイプロセスの設計
設計面については、環境を取り巻く諸要素によって実現方法は変化しますが、『原則として、粒度は小さくあるべき』なのだそうです。
『ブルーグリーンデプロイ』辺りは昨今のデプロイプロセスとしては代表的なものの一つとして挙げられますし、その他クラウドのメリットを活かす手法を採択することも有効でしょう。
選択肢はさまざまですが、吉羽氏はこの点についても『アンチパターン』としていくつかの注意点を掲げました。
- パターンを多くし過ぎてはならない。デプロイの信頼性が低下する。
- 手作業を混ぜてはならない。これらは間違いによるデプロイ失敗に直結するものである。
- 専用のツールを使うのもNG。シェルスクリプトは複雑化しやすい。
環境構築の3つの選択肢
クラウド環境における環境構築については、3つのやり方があると解説しました。
- 全部入りの仮想イメージを作成し維持していく
- OS仮想イメージ+ベースとなるソフトウェアを導入したイメージを作成、初回起動時に追加部分をプロビジョニング
- OS仮想イメージを作成+初回起動時に必要なものをすべてプロビジョニング
環境構築におけるベストプラクティスも、これまで同様『最初からやり始めていくこと』。最初から続けていくことでずっとテストされ続けていきます。またアンチパターンについても同様に「手作業を混ぜてはいけません。障害対応以外でSSHにログインすることはなくなるはずです。テストがないのもいけません。自動化スクリプトは手順書と同等です」とそのポイントについて解説しました。
まとめ
一連の自動化構成の"実例"として、AWS環境構成図を元に解説を踏まえ最後にまとめとしての振り返りを行い、吉羽氏の講演は幕を閉じました。
『疎結合で自動化しやすい構成を』『自動化されたテストを含める』『手作業は含めない』など、繰り返し指摘されてきたポイントはぱっと対応してみよう、取り込んでみようと思ってもそう簡単にはいかないものです。だからこそ、これも繰り返し強調されてきた『プロジェクトの最初から始める』ことでハードルも飛び越えやすく、また継続も容易なものとなっていくのだなぁと氏の講演を聞いて思った次第です。