今週の水曜に、クックパッド社にて SRE Lounge #8 が開催されました。今回も参考になるお話が多かったです。
ちなみに、会場はキッチン付きの勉強会スペースで、さすがクックパッド!という感じでした。
SRE Lounge会場、さすがクックパッドという感じ。キッチンがある! #srelounge pic.twitter.com/iut4EdeIJp
— Masahiro Yoshizawa (@muziyoshiz) 2019年3月13日
ソラコムAPIの裏側で運用チームは何をやってきたのか
SORACOM の OpsDev Manager 五十嵐さん(インタビュー記事)による発表。
OpsDev というのは DevOps の書き間違いではありません。SORACOM では開発チームがメンテナンスと運用の両方に関わり、OpsDev チームは運用作業省力化のための開発をするチームとのことです。
OpsDev チームが開発したロングセラーツールとして、以下のものが紹介されていました。
- 緊急時のみ SSH 接続を許可するための設定自動化
- Slack に接続してきた開発者の IP アドレスを、Security Group に自動反映
- CodeCommit に登録された公開鍵の、EC2 インスタンスへの自動配布
- ログ取得(詳細は秘密でした)
- PagerDuty に似た、電話での通知の仕組み
- Slack で
/tel ニックネーム
とすると強制的に電話を鳴らす
- Slack で
- 実際の移動体通信を監視するためのラズパイのタワー(ソラコム・サグラダ・ファミリア)
質疑応答の中で面白いと思ったのは、SORACOM の他の社員の方が「SORACOM ではエンジニアが開発、運用、サポートまで見るので、サポートが一人負けするようなシステムにはならない」と言っていたこと。開発と運用が一体なのは当たり前、という感じで、素直にうらやましいと思いました(個人的にはいつも悩んでいるところなので……)。ただ、基本的に開発者向けのサービスだからできる話かもしれません。
「開発チームの中に開発担当と運用担当ができてしまうのでは?」という鋭い質問もありましたが、「まだ、両者を分けられるほどエンジニアの人数がいない。開発した人が一番早く直せるというポリシーでやっている」とのことでした。
Cookpad Microservice Architecture Overview
クックパッドの技術部 SRE グループの吉川さん(@rrreeeyyy)による発表。
2013年頃からマイクロサービス化に取り組んできて、一進一退しつつ進んできたという話でした。開発者との恊働の話がいくつか出てきました。
例えば、今までは大統一 Terraform を作っていたが、これだと開発者にとってはプルリクを投げづらい。今後はチームごとにディレクトリを分けて、そのディレクトリ内の変更はチームの責任で実施できるようにしたいと思っている、など。
各サービスのチームを巻き込んだ SLI/SLO の導入はまだこれからで、今後の課題とのことでした。
最近、既存サービスのマイクロサービス化について悩んでいたので、懇親会でマイクロサービス化の良い進め方について相談しました。以下はそのときのメモです。
- モノリシックなサービスの一部をマイクロサービスとして切り出したいとしても、最初は新しいサービスでマイクロサービスの作り方を確立して、開発者自身が自信を付けてからにするのがいい
- データの切れ目でサービスを分割するといい。例えばクックパッドなら、レシピのデータとユーザのデータは別のもの(レシピの作成者としてユーザ ID が入る程度)なので、そこで分割するとか
- 作業が SRE だけでほぼ完結するから、データベースの分割からやるのがやりやすいかもしれない。データベースをレプリケーションして、あるタイミングで writer をバタンと切り替える
ちなみに、マイクロサービス化は開発者のほうがモチベーションが高く、運用側から説き伏せて、みたいなことは全然なかったそうです。
割れ窓理論をWebインフラの改善に活用し、チーム内の知識共有を促進している話
はてなの id:hokkai7go さんによる発表。プレゼン資料に加えて、以下のブログ記事で詳細が補足されていました。
10名程度のはてな SREs(共通基盤)チームで実施中の活動で、以下のようにやっているそうです。
- 割れ窓(技術的負債)を見つけたら issue を作成して記録
- 取り組みやすそうな issue を「週刊割れ窓マガジン」という記事にリストアップ
- 週に一度、1時間の作業時間を取る(2時間だとダレた。現在は1.5時間に伸ばす試みをしてる)
- 振り返りやすいよう、終わった issue はスプレッドシートで一覧にしておく
僕は勝手に、開発者も入ってる活動なのかな……と思いながら聞いてたのですが、SRE だけでやっている活動とのこと。最低でもチームの半分くらいは集まって実施するそうです。
SRE の活動のなかで、SLO には現れないけど重要な、運用の品質とでも言うべきものはあると思っていて、最近こういうブログ記事を書いたりしてました。
はてなの他の取り組みで、PWG(Performance Working Group)という活動も以前聞いたことがあって、自社でも少し実施し始めています。この PWG と併せて、割れ窓タイムも導入してみたいと思いました。
次回の SRE Lounge
次回は5月に、サイバーエージェントで開催予定とのことです。
また、SRE Lounge とは違う、特定のテーマに沿ったディスカッションの場として「SRE Session」というイベントが新たに企画されています。初回は 4/10 で、テーマは SLO と Monitoring です。テーマに興味のある方はこちらも是非どうぞ。