こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。
会の概要
実践DevOpsというタイトルにちなんで、開発運用の実践事例にまつわる発表を聞いていくイベントです。
会の様子
Self-hosted runnersでAWSコスト削減?
まずは古屋さんから話がありました。
Github ActionsをCIに組み込んでいるKubellさんですが、Push/Pullそれぞれで料金が課金されてしまうが故にAmazon ECRが高いことに課題を抱えているそうで、ワークロードに近いところで動かす(=EKSのpodとしてrunnersをActions Runner Controllerを活用して動かす)ようにしたということでした。
結果的に、ECRの通信費用とGitHub Actionsの料金が減ってEC2の料金が増え、コストは削減できたということでした。
スクラムチームのDevOpsを支えるプラットフォームエンジニアリング
続いてShimokawaさんから発表がありました。
KAGさんではGHESの管理やクラウド環境のコスト最適化やIdP運用管理、セキュリティ改善、スクラムチームへのヒアリングなどに取り組んでいるそうで、プラットフォームとしてはGitHub Enterprise Organizationを活用しているということです。
具体的なサービスとしては、
- GuardDutyの検出結果をBedrockでわかりやすく通知
- GHEのSelf-hosted Runnerをマネージドで展開
- NAT Gatewayを定期的に作成/削除してコスト削減
- Security Hubからの通知をSlackへ自動送信
といったサービスを展開しているそうです。
サービス展開の際にはインナーソースを活用することで社内全体でツールやナレッジを共有して蓄積しているということで、今後は効果測定や自発的参加を促すコミュニティ作りを目指しているというお話でした。
EKSとArgoRolloutで実現するChatworksの新リリースプロセス
続いて桝谷さんから話がありました。
Chatworksでは数百台のPodが起動しているため、すべてのPodが入れ替わるまでにかなり時間がかかってしまうということで、カナリアリリースをする気軽にするためにArgo Rolloutsを導入することにしたそうです。
具体的なステップとしては、
- Argo Rolloutsのinstall
- Deployment -> Rolloutに移行(Rolloutリソースを作ってからDeploymentのHPAを停止)
- 開発者に対してチャットや定例で周知&デモの実施
という流れで進めたということです。
今後はさらなる進化として、StepのOn/offをArgoCDのダッシュボード上でできるようにするとともに、Datadogと連携させることを検討しているということでした。
運用監視設計をするときに考えること
最後にKitauraさんから話がありました。
システム開発は、
- 何もしなければ壊れてしまう(OSSのコードがサポート終了したり脆弱性が見つかったりする)
- なんとかしても壊れてしまう(本番環境でバグを0とすることは不可能)
- 壊さないように努力しすぎると何もできないが努力を怠ると使ってもらえない
という特性があるため運用監視を継続的にし続けることが重要ですが、その際にはMTTRをより短くしてMTBFをより長くしていくという視点で取り組みをすることが大切だということでした。
こうした取り組みをするうえでのアンチパターンとして、
が特に多く見受けられるということで、こうした状態に陥らないために
- 被監視対象の見直し
- アラーティング最適化
- オンコールシフト見直し(全員集合も意外とおすすめ)
- オンコール対応があった次の日は打ち上げ
- オンコール対応最適化
- プレイブック整備
- ダッシュボード整備
- APM導入
- ポストモーテムの再発防止策の実施
- ポストモーテム輪読会
- アーキテクチャ見直し
- リリース分割
- デプロイ方式最適化
といったプラクティスを実践することが重要だということです。
会全体を通した感想
実践をしている話が多かったので、具体的かつ生々しい課題とその課題に対する技術的なアプローチの話を多く聞くことができて非常に良かったです。
個人的には、こういったイベントだとよく聞く当たり前の課題の一歩先に踏み込んだ課題に対応されているような印象があり、満足度が高い内容でした。