モチベーション

令和元年の 2019 年も今日で最終日なので一年を振り返る。

TL;DR

  • 子供が生まれた。めちゃくちゃかわいい
  • 年初にアメリカの Computer Science 系の大学院合格したが、 現職で引き続き SRE として働いている
  • 所属するグローバルチームの SRE チームの立ち上げを完遂しつつ、組織に SRE を実装した
  • 組織論の復習と近代 Engineering Management ノウハウの獲得と実践を行った

プライベート

子供が生まれた

去年の出来事としてカウントするか微妙だけど、2018 年の 12 月に子供が生まれました。

2019 年 1 月生まれの予定だったのですが、妊娠高血圧症候群(?)で妻の血圧が 200 近くまで上がってしまいました。入院して落ち着くのを待つこともあるとのことでしたが、妻の場合どんどん血圧が高くなってしまい、命の危険性があったので手術での出産となりました。

出産後も妻の体調はなかなかよくならず長期で入院したり、数ヶ月薬で血圧を抑える生活でした。今は母子ともに元気で、赤ちゃんは洋服をタンスから引張りだして床にばらまくのが日課になっています。かわいい。

アメリカの大学院に合格したけど行くのを辞めた

3月にはアメリカの Computer Science 系の大学院に合格しました。

大学院合格についてとその動機について興味がある方は “Carnegie Mellon University に合格した話” を見ていただきたい。そこに全て書いてあります。

また、現在は留学はしないで Cookpad で SWE in SRE として働いています。 大学院に行かない理由は色々ありますが、以下が主です。

  • 妻の体調が心配だった
  • 仕事である程度裁量を得られて、チームメンバーも良い人を集められた
  • 申請していた奨学金に全て落ちたので、大学院の学費が金銭的に辛い

アメリカの大学院に今回行かなかったけど、最低限の語学力が付いていることは明らかだし、今は行きたくなったらまた挑戦すればいいだけと考えています。業務や on-call をこなしながらの大学院受験は大変ですが、限られた時間でそれを突破したという経験は大きな自信になりました。

仕事関連

グローバルチームの SRE チームの立ち上げを完遂

Cookpad のグローバルサービスの SRE チームの立ち上げを完遂しました。

全てを一人でやったというほど傲慢ではないですが、少なくともコアとなる候補者の集客、採用試験、オンボーディングの設計や思想の大部分は自分が言語化しフローとして実装しました。

また、新メンバーを加えたチームビルディングのためにグローバル・サービスの開発拠点があるイギリスにもかなり長期間滞在しました。

ステークホルダーが多くて思うように進まないことがあったり、採用したいと思う人が転職を検討していないなどの運の要素もあった。採用の基準を高くしていたので、ほとんどの応募者が採用試験を通らなかった。本当に難しい一年だった。

それでも来年は自分のチームのメンバーとして 100 % コミットしてくれる仲間が 6 人もいる。チームの人数が足りなくて手を出せなかった、戦略や技術的課題にチャレンジできると思うと楽しみです。

SRE としての業務

新しい Machine learning と Search backend チームが発足したので、それらをプロダクションに組み込むためのアーキテクチャ設計、開発方法、Fault Injection などの検討や実装をしていた。この辺の話は来年の SRE NEXT で話そうと思うので詳細は敢えて触れません。

グローバルチームのメンバーが増えて来て、マイクロサービスも増えて来た。それに伴い、Postmortem, SLO, Availability & Latency classes (a.k.a Production readiness check), on-call 制度の導入など、自分が持つSRE のノウハウを組織に展開した。On-call に関してはプロダクト開発チームの協力も得て “Strategy for two-tier on-call rotation” にあるような、”Follow the Sun” で運用し始めました。

これまでも海外展開プロジェクトとして、買収した企業のデータをプロダクションに安全に移行する方法を実装したり、全ての国のユーザが快適に使えるようにネットワークレイテンシを削減したり、GDPR に対応したアプリの実装、データ保護、システムデザインなど世界中にサービスを展開することで発生するユニークな課題に挑戦してきました。今年は、中国大陸にもサービスをデプロイする機会に恵まれた。特殊な 防御壁や法規制なども考慮する必要があり、ユニークな経験ができることは面白い。

他にも

  • 開発者と QA チームの要望を叶えるために staging 環境を改善
  • Rails アプリの非同期 schema migration の導入
  • 開発効率やチームのヘルスチェックのためのメトリクス収集ツールの開発
  • Loki の検証 (Single web UI for logging,metrics, and tracing のため)
  • AWS の Spot Instance、RI、Saving Plans などを踏まえてたコスト最適化

などに取り組んでいた。

組織論の復習と近代 Engineering Management のノウハウの獲得と実践

今年は SRE チームのリードとしても活動していたので、Engineering Management に関するノウハウの獲得と自チームへの応用も行った。

学生のときから組織論や経営がわかるエンジニアになりたいと思っていたため、MBAやMOT関連の講義を取っていた。またそのときに著名なエンジニアリングマネジメントの書籍を読み漁っていた。[1] 今年はその時に読み漁っていた本を引っ張り出してきて復習した。一度読んだ本でも自分が置かれる状況や経験値で本に関する感想が大きく変わるのは技術書と同じでした。

また、An Elegant PuzzleAccelerateINSPIRED を始めとした近代の開発組織論に関する知見が豊富な書籍からの知識のアップデートを行った。

これらの知見はあくまで他組織の事例です。組織が変われば経営資源は大きく変わり、そのままその手法や事例を適用できるわけでもない。[2]

チームの状態や組織のフェーズを注意深く評価した上で、自分の組織論の哲学や現時点での考えをひたすら言語化してメンバーに共有し続けた。

自チームでの戦略や意思決定のアライメントはこの一年で飛躍的に向上したと思っている。チーム内だけの話でいうと、チームとしての戦略とワークフローを大きく改善することで、チームメンバー1人が捌けるタスクや業務量が約 2 倍になったという定量的な結果も出ている。

この辺の Engineering Management や組織論の話はどこか別の機会でまとまってしたいと考えています。

対外活動

登壇

今年は自分の中で登壇の優先度はかなり低かった。国内のカンファレンスに 1 件登壇しただけだった。 優先順位が低かったのは、SRE チームの立ち上げを最優先にしており、短期的に登壇活動が結果に寄与することはないと判断したからです。

とはいえ、長期的に見ると必要なことだと理解しています。来年は 1 月の SRE NEXT に登壇させていただくことは決まっていますが、それに加えて、できれば海外で SRE や Observability (Grafana, Prometheus, Loki) 関連の登壇をしていきたいです。

SRE チームの組織論についての知見も溜まっているのでどこか発表できそうな場があれば教えてください。

採用・広報

  • KubeCon EU

KubeCon + CloudNativeCon に初めて参加した。目的は大きく分けて以下の3つでした。

  • Kubernetes、Prometheus、Envoy などエンドユーザとして CNCF プロダクトを大量に使っていることをアピールしたい
  • CNCF EU に参加する開発者のボリュームゾーンを確認したい
  • CNCF プロダクトのコントリビュータと話したい

KubeCon + CloudNativeCon Europe 2019 はそこまで大きなカンファレンスではなく、活気や規模は AWS のre:Invent には遠く及ばない印象を受けた。一方で、自分たちが使っている OSS のコントリビュータの多くが登壇や Q&A しているので気軽に話せるのは魅力的だなと感じた。

エンドユーザのスポンサー数はそれほど多くないので、スポンサーのコスパも高いと思いました。

おわりに

来年は何しようか。ひとまず今パッと思いつくあたりだと、

  • 妻子とともに渡英する
  • 業務時間内でのエンジニアリング活動を増やす
  • プライベートで好きな OSS にコミットする

この辺だろうか。妻子ともに渡英するはだいぶ昔に決まっていて、本当は2019 年内を予定していたけど諸々の理由で遅れた。2020年の早い時期に行きたいと思う。

[1] エンジニアリングマネージャを本職にしたいわけではない。
[2] 成功している企業は多くの失敗も経験している。それを書籍に全て落としこむのは不可能だし、その失敗をしたからこそ、その後成功したというケースもあるはず。