既に世界数カ所の都市で行われているServerlessConfがフランスのパリで開催されるという事でCFPに応募したら通ってしまったので発表してきました。75個の応募の中から選んで頂いて光栄ですね。
タイトルはAccelerating DevOps with Serverlessで、DevOpsを手助けする為にServerlessを使って解決したストーリーや仕組み。
内容としてはシンプルでgithubのbranchに応じて、テスト環境用のECSクラスタ内にrandom portでALBにtarget group, listenerを割り当ててservice作ってコンテナを配置するだけです。branch delete時にはtaskを停止し、逆順に削除していきます。通知はSNSでslack等へ連携可能。
少し特色があるとすれば、serviceを作成したりtaskを停止するのにかなり時間を要する場合があるので、単一のlambdaではなくstep functionsで制御した事ですかね。今回、serverless frameworkのstep functions pluginのおかげでstate machine dataをjsonで書かなくて済んだので作者のhorikeさんには感謝です。
発表した内容のモノは現在、複数プロジェクトで使えるようになるべく汎用的な作りにしてECS deityとして公開しています。参考にでもなれば。
https://github.com/ijin/ecs-deity
尚、GitHub eventによる自動デプロイだと毎回煩わしい場合もある(特定のbranch prefixが対象であるにせよ)ので、slackによるchatops手動デプロイも実装中です。
と、まあやってる事はそんなに難しくないので、海外カンファレンスのCFPがあれば誰でも気軽に応募してみると良いと思います!
Afterthoughts
やはり、serverlessだとログ周りが様々なCloudWatch logsのlog streamsに分散(api gw, lambda, step functions)しているので、トレーシングがしんどかったりしたけど今回のConfで何度も取り上げられたトピックがObervabilityだったので皆同様に苦労しているんだなぁと感じました。ブースにもその解決に取り込もうとしている企業がいくつかいたので、今後に期待ですね。
この辺は一緒に行ったyoshidashingoさんがブログでよく考察してくれています。
後、Keynote SpeakerのYan Cuiさんのトークが重厚で実に素晴らしかったのでYouTubeに上がったら是非観てください。内容もテンポもスライドも勉強になります。
最後に
- 海外カンファレンスだと世界中からのエンジニアと話せるので非常に良い刺激になりますよ(可能なら発表を!!)
- 2月のパリは寒い!行くなら観光客が少なく暖かい6月をオススメされた
- ご飯はどこ行っても美味しい!