2月7日、「kazeburoさんとShimizuさんに聞く、SREに必要なスキルと運用の秘訣」に参加しました(資料が公開されたら後日追記していきます)。
SREとは
まずはスピーカーのお二人からのお話の前に、司会の佐藤さんからSREとはどんな職種なのかについて説明がありました。
SRE(サイト信頼性エンジニアリング)とは、信頼性の高い本番環境システムを実行するための職務、マインドセット、エンジニアリング手法のセット。SREの責任範囲には以下のようなものがあるとのこと。
- サービスの可用性
- レイテンシ
- パフォーマンス
- 効率性
- 変更管理
- モニタリング
- 緊急対応
- キャパシティプランニング
あらゆる手法を駆使して「信頼性を上げる」ことに重きを置く職種であり、各社によってSREの職務領域や定義が異なるとのことでした。
参考図書として『SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム』も紹介されていました。
LT
続いて、kazeburoさん、ShimizuさんによるLTです。それぞれの職場でのSREの取り組みについてお話されていました。
さくらインターネットのkazeburoさん
さくらインターネットさんは2022年7月にクラウド事業部SRE室が発足。2022年頭のクラウド障害がきっかけだったそうです。
ミッション、ビジョンを定義することを重視していて、ミッションを「クラウドサービスの信頼性を高めることにより、お客様や社会のDXをしっかり支える」、ビジョンを「サービスそのものの信頼性向上だけでなく、社内でのSREの実践を広め、お客様への価値提供を高める」と定義しているとのことです。
現状ではEmbedded SRE/Enabling SREとしての取り組みが中心。開発チームと一緒に以下について取り組んでおられるとのことです。
- クラウドサービスのチーム開発/運用体制づくり
- CI/CD、監視/モニタリングなどDX向上の仕組みの構築
- ポストモーテム導入
- SRE as a Serviceの開発
- k8s基盤構築
- ログ/監視基盤の研究開発
「一緒に"手を動かして"信頼性向上の文化をつくることが重要」、「開発運用チームと密なコミュニケーションを取り、期待値を明確に」、「開発者が運用からのフィードバックを受けつつ運用性の高いソフトウェアを書く」といったお話もされていたのが印象的でした。
SREのプラクティスを全部やっていくというより、他社の事例を参考にしつつ、SRE以外の人たちと一緒に取り組んでいくことを心がけているとのことです。
株式会社mixiのShimizuさん
mixiさんでは2016年 モンスターストライクのSRE組織が誕生とのこと。Shimizuさん現在「みてね」というサービスのSREとして勤務されているそうです。
SREにおんぶにだっこの体制にならないよう、組織が自律的に問題解決できるようにプラットフォームを提供することが重要とのことでした。
また、メンバー間のスキルセットの差を減らすため、なるべく細かいタスクにわけで、個人の得意・不得意に関わらずまんべんなくアサインすることで、スキルセットの平準化を図っているとのことです。
とにかくやってみることでスキルアップできる面もあるので、ペアプロなどで実践の機会を増やすのが大切とも話されていました。
普段実践している技術は?
続いて、kazeburoさん、Shimizuさんお二方が普段実践されている技術を紹介されていました。
後ほど資料は公開されるはずなので、個人的に気になったところを抜粋します。
kazeburoさん
メインはGo言語を使用されているとのことです。
Go言語はシングルバイナリでデプロイが容易、Goroutineでかんたんに並列並行処理が書けるのが気に入っているとのことです。
Go言語はサードパーティのライブラリを使っていても1個の実行ファイルにまとめてビルドしてくれるので、デプロイは非常に楽そうですね。私はPythonを使うことが多いのですが、この点は圧倒的にGoが勝っている点だと思います。
Shimizuさん
Shimizuさんはオブザーバビリティに関心があるとのことで、
Prometheus、Loki、Grafana、New Relicなどを挙げられていいました。
また、「みてね」は動画配信サービスなのでエンコーダのパラメータチューニングをSREでやっているとのことです。
注目しているトレンドは?
kazeburoさん、Shimizuさんが気になっている技術について紹介されていました。
kazeburoさん
以下について挙げられていました。
- Four Keys(ソフトウェアデリバリのパフォーマンス指標)などチームでの開発力の向上
- eBPF/XDP
- ロードバランサの拡張
- DNSのDDos体制
- WireGuard
「Four Keys」は私は聞きかじった程度の知識しかありませんが、Googleがこんなドキュメントを公開していましたね。
エリート DevOps チームであることを Four Keys プロジェクトで確認する | Google Cloud 公式ブログ
Shimizuさん
以下について挙げられていました。
- NewSQL
- TiDBなどMySQL互換で自動的にシャーディングをしてくれるデータベース
- オブザーバビリティ全般
- k8sにおけるネットワーク・セキュリティ周りのオブザーバビリティ
どうやったらSREになれるのか?
最後にSREを目指す人向けに、kazeburoさん、Shimizuさんが重要と考える心構えについてのお話がありました。
kazeburoさん
- 監視をする
- 自分の携わっているサービスを好きになる。運用者だけでなくお客様の立場でもサービスを理解
- なぜうまく動く(動かない)を突き詰める
- 監視、セキュリティ、コストの適正化などで強みをつくる
- ISUCONに参加する
Shimizuさん
- 開発者の気持ちになる(開発者が運用で困っていることを支援する。メトリクスやログ、CI/CDなど)
- 推測しない・楽観視しない(=ちゃんと計測。可視化。悲観的にならない)
- 失敗から学ぶ文化を広める(ポストモーテムの推進)
最後に
昔ながらの開発現場だと開発チームとインフラチームは完全に分かれる形になっていることが多かったように思いますが、お二方ともSREとしてのスキルセットをSREだけのものではなく、他チームにも広げていこうという姿勢だったのが印象に残りました。
また、必要なスキルセットについても、特定の分野のスペシャリストというより、プロダクト運用に関わる総合的なスキルを持つイメージを持ちました。
プロダクト開発に関わる色んなことに挑戦してみたい、興味があるという人には、SREはいい選択肢の一つかもしれれませんね。