Lookback 2019 (2019年の振り返り)
2019年も懲りず仕事ばかり実施し、今までの社会人人生で一番ハードに働いた1年でした、1年間とにかくずっと走っていたので、2018年同様1年の棚卸しをしようと思います。
Summary
この1年で働き方/ポジション/責任範囲が変わり、2019年から、チームリード兼エンジニアリングマネージャとして大きく分けてOpenStack(IaaS関連)、Kubernetes(Cloud Native関連)の2つのエリアに責任をもつことになりました。
また、エンジニアリングマネージャになったことに加えて、もう1つチームの状況に大きな変化がありました。
Hiring活動に力を入れた結果、OpenStack、Kubernetes両方のチームあわせて10名以上新しいメンバーが増え、数名だったチームメンバーも今は倍以上になっています。
そのため、この1年、一番印象に残っている課題と意識をしたこととして、情報の明文化(ドキュメントに残す)が挙げられます。
この活動の背景には、下記のような考えがあります。
1. 情報共有の徹底をすることで、チームでの業務経験に関わらず業務知識の素早いキャッチアップが可能になり、アウトプットを出すためのリードタイムが短縮できるという考え。
2. 人が増えるとチーム内での認識のズレは、思わぬところでの手戻り、スピード感の損失につながるため、なるべく同じ認識、意識をベースラインとして持っておきたいと考え。
これらの2つの考えのもと、今まで明文化されていなかった、
オンボーディング、今まで課題と感じている点、これからの方向性、システムデザインの整理、その他日常/定期的に実施してる業務のドキュメンティングなど、様々な情報/自身の考えを徹底的に言語/ドキュメント化することを特に意識しました。
また、それをチームとして継続できるようにドキュメントを書くという文化づくりにもチャレンジした1年でした。
この他リードエンジニアになってから、”こういうマインドを持ってチームづくりにチャレンジした”というポイントを下記の2つの記事にまとめています。
印象的なイベント
続いて、印象的なイベント/技術トピックをピックアップしてみます。
上半期
上半期は、Kubernetesチーム側では、プロジェクトディレクションと緊急/難易度の高いトラブルシューティングのみを実施していました。そのため、大半の時間は、チームビルディングと新しいOpenStackクラスタの要件整理/開発/構築/提供に費やしていました。
リードとしての責任はKubernetes、OpenStack両方に対して持っていますが、時間配分としては、70%(OpenStack) vs 30%(Kubernetes) ぐらいで取り組めていたと思います。
仕事
自分主体
- 新しいOpenStackクラスタの要件整理/開発/構築/提供
(Nova, Neutron, Designate, Keystoneのカスタマイズ) - 対外活動 (日本仮想化技術 OpenStack勉強会)
- Introduction of private cloud in LINE(仮想化技術LINK) -
- Introduction of private cloud in LINE(LINE LINK)- - 対外活動 (Rancher Deep Dive#1)
- OpenStack, Kubernetes How we should face them -
自分以外主体(プロジェクトディレクション/イニシャルデザインのみ関与)
- RabbitMQのデプロイアーキテクチャの見直し
(OpenStack Summit Shanghaiで成果について発表)
Private
- ブロックチェーンプログラミングのためのコンピューターサイエンス基礎本の執筆のお手伝い (Amazon Link)
下半期
採用が成功したこともあり、下半期はもう少しフラットにOpenStackとKubernetesの両方をみることができるようになりました。
Kubernetesチームでは、提供しているManaged Kubernetes Serviceのスケールが2000 Nodeを越えていき、RancherのAvailabilityやScaleに関する課題が浮き彫りになりました。Rancherを大規模な環境でProduction運用可能にするというトピックが比較的大きな技術的なイベント/チャレンジだったと思います。
OpenStackチームでは、ある程度新規開発が落ち着いてきているので、運用をより高度化していくProjectをこれから円滑に進めるために、これまで実施してきた取り組みや、既存の環境や構成情報をドキュメント化して、チーム内でProductの理解を高める取り組みを中心に実施しました。
これらの情報共有/発信は、社内向けに止まらずCloud Native DaysのパネルやOpenStack Summitの発表として社外に向けた情報発信も頻繁に行ったことが印象に残っています。
また、それだけでなく、2019年Q4ぐらいからは、運用の高度化のための新規Projectもいくつか開始しています。
仕事
自分主体
- RancherのMetrics APIがUpstreamにMergeされた!
PR: https://github.com/rancher/rancher/issues/20341
Rancher 2.4のScalability改善プロジェクトで利用される予定 - Rancherのスケーラビリティ改善
TODO: Blog準備中 - Managed Kubernetes ServiceのProduction提供
- 対外活動 (Cloud Native Days展示)
作成したPanelについての解説Blogを同僚が書いてくれています
1. Verda at CloudNative/OpenStack Days 2019 (1/2)
2. Verda at CloudNative/OpenStack Days 2019 (2/2) - 対外活動 (Rancher Day Keynote)
Managed Kubernetes in Private Cloud using Rancher with more than 1000 nodes scale - 対外活動 (Cloud Native Forum Taiwan Keynote)
Managed Kubernetes Cluster Service In Private Cloud - 対外活動 (OpenStack Summit Shanghai)
How we used RabbitMQ in wrong way at a scale - 対外活動 (LINE Dev Day 2019)
Slide: Cloud Native Challenges in Private Cloud with K8s, Knative
Logme1/2: LINEのプライベートクラウドが挑む、Cloud Nativeへの道
Logme2/2: 5人で130クラスタ、2,000超ノードを開発・運用する仕組み
自分以外主体(プロジェクトディレクション/イニシャルデザインのみ関与)
- OpenStack Container化
- MSAにおいてBackend実装に依存せずAudit Logを取得する仕組みの整備
Private
- Rancher活用ガイドの執筆/出版(Amazon Link)
- Rancher活用ガイドWEB連載の執筆(Series Link)
振り返り
いざ、棚卸しをしてみると、2018年の振り返り の時と比べて、やっぱり書くことが変わってきたなぁという印象です。
Me -> Product から Me -> Team Member -> Product へ
以前は、自分で計画しそのまま自分で実装するという形が基本で、業務が比較的、自分の中で完結していました。しかし、今年は以前より多くのProjectや機能を計画し、それを遂行するために必要な情報をひたすら整理し、他の人がそれを完遂できるようにサポートをすることがメインになりました。
そういった背景もあり、純粋に技術だけを追い求める時間というのはやっぱり相対的に減ってきたなと思います。しかし、情報をまとめる、正しく伝える、うまく回るチームになるように考え行動するという新しい要素も長期的にキャリアを考えてみると重要と考えているので、この状況を最大限楽しんで取り組みたいと思っています。
ただ、一点だけそんな中自分自身注意したいと思っているのは、最新技術キャッチアップとProduct/Teamの現状を正しく理解をするということです。自分自身、今のエンジニアリングマネージャというポジションは、あくまでも現場レベルで起きていることを正しく理解し、そこに関連した技術を深く理解していることが前提で、その上で何をするか情報をまとめる、正しく伝える、チームがうまく回るように行動することが求められていると考えています。
そのため、業務時間中、相対的に純粋に技術を追い求める時間が減ったとしても、技術的な調査や実装については、プライベート、業務問わずきちんと確保していきたいと思っています。
初めての書籍執筆
業務外では、初めて書籍の執筆を経験しました。業務がそこそこ忙しい中での書籍の執筆は想像の数倍大変でしたが、初めて書店で自分の名前をみた時は、やっぱりとても嬉しかったです。
今回いただいた話も定期的な対外的なアウトプットから発生した話だったので、今後も新しいトピックについて貪欲に調べて対外的なアウトプットをしていきたいと思います。
自分が関わったProjectは対外的に公開する方針
僕は、自分が関わったProject/技術詳細については何らかの形で対外的に公開するという思いを入社時から持っています(もちろん会社の許可が得られた場合)
そのため、今まで グローバルカンファレンス、会社の技術ブログ、勉強会などでそれらを発表してきました。
基本的には、関わった全てのProjectについて発表することができていますが、2019年の上半期のメイントピックである比較的大きいプロジェクト(New OpenStack Clusterの要件整理/開発/構築)に関する技術的な詳細については、まだどこでも発表できてないので、2020年のどこかでチャンスを見つけて発表か会社のブログで公開したいと思っています。