人中心から自動化中心へのパラダイムシフトを目指すSRE改革
続いてテーマはSRE改革に移り、伊東氏が登壇した。伊東氏はHULFT Squareの開発にも携わっている一方で、SREエンジニアとしても活躍している。
サービス運用では苦労することも多い。例えばリソース管理でよくある苦労として挙げられるのが、本番環境の前のプレ本番環境やテスト用の環境、開発環境など、開発者が手動では把握しきれないほどのさまざまな環境を作ることがある。またデプロイであれば、デプロイ対象の過不足がないかの確認が必要になる。モニタリングでは、メトリクスやログが散在していたり、障害があれば、職人芸と化した障害調査が必要になるなど、「とにかく手と時間がかかっていた」と伊東氏は振り返る。
ここで伊東氏はHULFT Squareで実際にあった苦労話を紹介した。HULFT SquareはEKS(Amazon Elastic Kubernetes Service)を基盤に構築している。Kubernetesにはマニフェストファイル(デプロイ設定のプロファイル)が数多くある。これを環境ごとに管理していたため、設定が微妙にずれてしまうという状態に陥っていた。許容できないずれが分かると、そのたびに差分がないかを目視でチェックしなければならず、1回のデプロイのために1~2日の時間を要していたという。
またデプロイの場面でも、デプロイの結果の確認に不備があり、開発環境のモジュールをプレ本番で使用していたり、デプロイのし忘れなどがあったという。
モニタリングでもプレ本番環境でテストがうまくいかず、原因を探ろうとしてもログが散在していて探れなかった経験もある。設定ファイルを網羅的に確認して、原因がテスト環境の手動変更だと判明したこともあった。
HULFT Squareの運用チームには優秀な先輩、同僚がいる。目立ったミスが多かったわけではないのに、なぜうまくいかなかったのか。伊東氏は「人を中心としたシステム運用になっていたからではないか」と振り返る。
具体的にはAWSコンソールのボタンを人が押してリソースを作成したり、デプロイする際は分厚いデプロイマニュアルを確認し、その通りにCLIを手動で実行していた。「このあたりのマニュアル作業は一見、早くて便利ですが、環境差分が頻繁に発生するようになると、ミスの量が増大。その反省からチェック作業が増えていき、そのうち限界になると思いました」と伊東氏は語る。
そこで、自動化を中心据えることを考え、まずはスモールスタートで実施。すると自動化した部分が安定し、デプロイ速度も上がるなど効果を実感したという。これはまるで、人を中心にシステムが回っていると考える天動説から、自動化を中心に据え、太陽と捉えた地動説にパラダイムシフトしたような経験だった。

自動化を進めるうえで、IaCやCI/CDを中核に位置づけるというのは、具体的にどういうことか。例えば、コードフリーズやQAが完了すると本番環境にデプロイし、問題があればロールバックするといった各工程を「ワンクリックで完了するようなイメージ」と伊東氏は言う。
とにかく人手を介さないよう、ファイル差分、環境差分を自動でチェックするのはもちろん、新しいファイルを追加する場合は、どう自動でチェックするかを考えた上で、ファイル追加を行うようにした。またデプロイを行うのであれば、何がデプロイされるのか、サマリーページに自動集計するようにしたという。
自動化は一朝一夕にはできない。だが、少しずつ「今ではチームの常識が変わり、まず自動化されているかを考えるようになった」と伊東氏は語る。実際、運用上の繰り返し作業(トイル)が減少し、リリースの安定化、リードタイムやデプロイイシューの数が減るなどの具体的な成果につながっていると言う。
最後に伊東氏は会場の参加者に次のように呼びかけ、セッションを締めた。
「天動説の心地よさに浸るのは容易です。今でも油断すると手作業で仕事をしてしまいたくなることもある。ですが、私たちのチームは地動説を選び、歩んでいる。運用で同じような苦労している皆さん、一緒に頑張りましょう」(伊東氏)

