2022年は、プラットフォームエンジニアリング的なことは行いませんでした。一方で、プラットフォームエンジニアリングを行う上で大事なSREプラクティスの実践や、社内他サービスが横断的に利用し、社外のユーザーにも機能提供するサービス開発、種々のデータ移行やインフラのメンテナンスなどの運用経験が増しました。

その意味で「プラットフォームエンジニア3年目」として振り返るかどうかは迷いました。しかし、大きく目指す方向性や提供したい価値は変わっていない以上、同じ枠で振り返った上で軌道修正すべきならする、方向性自体を変える必要があるなら変えるべきと思い、このタイトルで書くことにしました。

役割の前に、組織における課題が存在します。そのため、特定組織を前提としない一般的な役割に合致した動きをしたかどうかで良し悪しが決まるのもではありません。提供価値の多寡とも別軸です。その上で、ここで言及する「プラットフォームエンジニア」はこの記事で触れられているようなものを意図しています。

チームトポロジーでいう「プラットフォームチーム」とも重なる部分も多いですが、軸や出自が異なります。

過去分

2022年

3年目にやったこと

  • Cloud SQLのSpanner移行
  • 認証サービスの開発・運用
  • fastly、GKE、その他GCPのサービス、Terraformなどを利用したサービスインフラの開発・運用
  • アサイン調整に利用するスキル、アサインなどメンバー情報の可視化ツールやデータパイプラインの整備

Cloud SQLのSpanner移行

1サービスの移行を終え、中断しました。あとは頼んだAlloyDB。

認証サービス開発・運用

SREとして信頼性やインフラに関わる部分だけという形ではなく、プロダクトとしての認証サービスのスクラムのスクラムマスター兼開発者として参加しました。認証サービスは、ユーザー接点のあるプロダクトしての顧客価値検証的な側面もある一方で、サービス横断的な必須基盤として側面が強いです。継続的・安定的な運用が不可欠な特性が強い分、開発・運用不可分(切り出された運用だけ請け負う形式は苦しい)だと改めて感じました。SREのプラクティス実践においても、サービスのドメイン理解は必須です。

前職では、マイクロサービスプラットフォームを開発するチームに異動する前に、決済関連のマイクロサービスをいくつか設計、開発、運用していました。当時と比較して、持続的に信頼性高く運用していくためのプラクティスの理解が増し、打ち手も増えたように思います。改善の余地はあるけれど、継続的な改善に取り組めるイメージや周囲の理解があるのが何よりです。

ただ、自身の認証(・認可)ドメインの理解度がなかなか高まらず、プロダクト開発者としての動き(プロダクトロードマップの議論、利用プロダクトのサポート、ドメイン観点のレビュー)が鈍かったり、コード全体の雰囲気の理解度も高まらず「オーナーシップを持って開発・運用している状態」には程遠い(or 表面的な反応はできても本質的な打ち手を出せない)という反省やもどかしさがあります。言語的な観点では、「Goに入りてはGoに従え」を実践したいのはどの組織でも感じるし、自分にもやっていけることがありそうです。スクラムマスターとしての動きも、一般的なことをざっと復習して経験、振り返り、改善に徹するにとどまり、よいプラクティスを主体的に収集、検討、導入するには至りませんでした。

諸々を経てやることを絞ってみたものの、絞った中でも取りこぼしが多かったというのが実感です。

より具体的にはつぎのようなことに取り組みました。

  • SLI/SLOの導入
  • PrometheusのカスタムメトリクスやGrafana、Cloud Monitoringを利用したオブザーバビリティ強化
  • Firebaseからのデータ移行
  • GoとNext.jsを利用した機能開発
  • fastly WAF導入

サービスインフラの開発・運用

fastly、GKE、その他GCPのサービス、Terraformなどを利用したサービスインフラの開発・運用を行いました。メディア露出などの事前にタイミングがわかる負荷の対策、アプリケーション開発者からの問い合わせ対応やサポート、メンテナンス、問題調査などが主です。影響範囲の広い基盤設計や、Kubernetesエコシステムの調査、検証などにはあまり触れなくなりました。

サービスインフラ(システムアーキテクチャ)は理論上変更できるものの、いわゆる「ハードパーツ」です。アプリケーション以上に運用が人員的にボトルネックになったり、機能が見えづらい分構造の改善に投資しづらく、組織文化によってはハードパーツ化に拍車をかけます。その意味で、技術的意思決定時に何かを取り何を取らなかったか、取らなかったものが問題として顕在化するタイミング、その意思決定の記録を残すこと、取りたいものに対して極力シンプルなアーキテクチャで運用負荷を下げることの重要性に対する認識が深まりました。限られた工数の中でそういうものに取り組んでいたり、組織の認識も変わりつつある状況だったりで尊いです。

fastlyのTerraform providerの(破壊的)バージョンアップや、Cloud SQLからの移行含めSpannerまわりの大小データ移行では、公式に提供されている方法・ツールでは無理があったところ、各種OSSに助けられ安全に実行できた。別記事にします。

メンバー情報可視化

組織開発文脈で、アサイン調整などに利用するスキル、アサイン、過去担当プロジェクトなど、メンバー情報の可視化ツールの整備を行いました。先人が整備してくれた仕組みを活用させてもらい、外部SaaS、メンバー入力情報など、さまざまなデータソースを1箇所に集約するためのデータパイプラインに触れました。データプラットフォームは領域的に近いようで直接は触れてこなかったので、一連のデータフローを眺められたのはよかったです。

複業

かなり時間的な制約が大きかったり、休んでいる期間も長かったりした分、解くべき課題の選定、設計をしっかりやって短期間集中して取り組みました。

  • オブザーバビリティ
  • SLI/SLOと運用
  • マイクロサービスプラットフォームのイシューマップとロードマップ作り
  • Cloud Runネットワークまわり
  • Dialogflow CX開発フロー整備

オブザーバビリティ

マイクロサービスプラットフォーム開発において、2022年1〜3月はマイクロサービスの死活監視の概要がわかるダッシュボードと、開発・運用のためのログ、トレーシング、エラーレポートが関連付けられている状態を目指しました。

複業の中でおいたOKRは、メンバーの助けを借りつつ一通り構築し終えました。OKRはつぎのようなものでした。

  • O1: 単一のリクエストIDでマイクロサービスのメトリクスを関連付けて自由自在に調査できるようにする
  • KR1: 各サービスの稼働状況がひと目でわかるようにする
  • KR2: リクエストIDでログをマイクロサービス横断でフィルタリングできるようにする
  • KR3: エラーレポートからリクエストIDが取り出せるようにする
  • KR4(option): 単一のリクエストがどのマイクロサービスでどれだけ時間を要したか分析できるようにする

複業においては細かいタスクを渡してもらうよりも、大きな課題を渡してもらった上でADRを書きながら課題調査・精査、PoCし、議論を収束させ実装に向かう流れを腰を据えてやっていくスタイルが好きでした。

このOKRに関しては、以下の2つのADRで提案・議論する形で進めました。

  • 分散トレーシングの技術スタックとTrace ID選定
  • 構造ログの構造とライブラリ選定

SLI/SLOと運用

こちらはObjective下のアラート対応の仕組み化というKRをもち、つぎの受け入れ基準を満たすようにやっていくというものでした。

  • Sentryのエラー対応フローがアプリケーション開発チームで運用されている
  • xxx、yyy、zzzサービスのSLI/SLOが定義されている
  • SLOを脅かす状態にある可能性があるときに通知される
  • アラートを見たオンコール当番が何をすべきかわかる
  • (stretch)緊急のエラーがオンコール当番に電話通知される

SRE本を振り返りながら、以下2つのADRを経て進めました。いずれもどのチームがオーナーシップを持つのか、プラットフォームチームはどうサポートすべきかの議論からでした。立場上、自分がサポートするというのは限定的でした。

  • Sentryの運用方針
  • SLI/SLOの導入

マイクロサービスプラットフォームロードマップ作り

以下がある中でそれらがどう関連し、どうロードマップを作り、それを元にどうjob descriptionを作っていければよいかを考えるためのドキュメントを書きました。

  • チームミッション、ビジョン、バリュー
  • OKR
  • 開発サイクルとアーキテクチャ上のコンポーネントベースでのイシューマップ
  • イシューマップに典型的なソリューションと取組状況を追記したもの
  • 開発者目線の課題感

プラットフォーム作りで何を掲げるにしても、開発者が普段の開発において感じる課題が解決されてなんぼというのを改めて考えました。

Cloud Runネットワークまわり

Cloud Runを使う分には、ネットワークであれこれ考える必要と思い込んでいました。しかし、VPC関連の設計や接続先・接続元次第では考慮すべきことだったり、とれなくなる選択肢があったりするというのを学びました。

Dialogflow CX開発フロー整備

チャットボットのバックエンドサービスのような、複雑なワークフローを含むサービスをどう複数人・複数ステージ(dev、stg、prd)で開発・デプロイすべきかという課題に取り組みました。その辺りをサポートするDialogflow CXの機能が限定的だったり、一般的なGitOpsと噛み合わない設定モデルの中で、いろいろ検証するのは面白いテーマでした。

まだやりきってないのと、現段階でそこまできっちりした管理は求められてないのでタスクはタスク、研究は研究で分けます。

プライベートOKRとアウトプット

業務とは別に、プライベートOKRで四半期毎に身につけたいことを決めて取り組みました。取り組みたいことは無限にあるので、「この四半期はこれ以外はやらない」をはっきりさせる意味合いが強いです。

OKRは、各記事でなぜそれが達成したいのかや、どの程度達成したのかなどの振り返りと合わせてまとめています。

学業

大学院の振り返りはnoteに書きました。

Georgia Tech OMSCS 1年目総括

出願の動機(本音)は、「もしいま働かなくてもいいとしたら、コンピューターサイエンスをしっかり勉強してみたい」でした。しかし、いざ履修したい科目を挙げていくと、現在のプラットフォームエンジニアリングに深く関わる分散システムの理論と実装、クラウドコンピューティングの実装、OS、コンパイラなど、低レイヤーの理解を深めるものが多いのは変わりありません。次節のプライベートOKRで目標に据えるのはもちろん、プラットフォームエンジニアリング上も重要なものとして位置づけています。

これまでと異なる形での交流も、刺激があってよかったです。

資格

無資格。GCPの資格がいくつか失効したり、Kuberentes関連もついに失効し始めています。取り直す気持ちはあまりないです。

執筆

大学院の夏学期と秋学期の間をぬい、既刊の改訂版を出せました。昨年までは、中長期的に詳しくなりたいものを実践・検証を踏まえて体系的に整理し直すというモチベーションで本を書いてきました。しかし、改定だけでも当該期間の土日をほぼすべて費やしたので、やり方を考え直さないと未知の分野に踏み出せないと課題に思っています。組織的な知見はないが、確実に投資したい領域として体系化したい、イネーブルメントもしたいという文脈の中で取り組めるとよいですがそれは奇跡ですね。

技術書典13で『Google Cloud Platformで学ぶTerraform 』基礎編・実践編の第2版を出します #技術書典

技術書

Platform Engineerへの闘争🐸

リストの中で読み終わった・読んでる本。

登壇

無登壇

OSS

いろいろ助けてもらいました。目の前の課題解決を急ぐ上では、活用させてもらうのが局所解です。たとえそうでも、立てられているissueのサポートをしたり、よりよい形で提供できるなら自分で作ったりしたいですね。悲しくなります。

総括

転職と大学院生生活が同時に始まる中、果たしてやっていけるのかという不安から始まった1年でした。両立という観点では、振り返りでも書いたとおり、今年はなんとかなったものの来年以降はこのままでは厳しいですね。エンジニアとしては、触れるタイミングが来るとはと思っていなかった認証サービス開発に触れられたのは幸運でした。

プラットフォームエンジニアの文脈では、年末に人と話していると自分は特定の形のプラットフォームを作りたいというわけではなく、「どういうフェーズであれ、なにかを実現したいときにソフトウェアを変更し続けられるよう、アーキテクチャ・技術的に妥当な判断をトレードオフを加味してし続けられる、それを実現する技術力もある」ようでありたいと思っていることがわかりました。また、事業の成長に必要なことはやるという大前提のもと(あるいはそれと関係なく)で、エンジニアとして好きなこと・嫌いなことは何なのかが見えてきた年でした。強み・弱みや伸ばしたいところ・克服したいこともその辺りに関係していそうなので、プライベートOKRに盛り込んでいきます。

2023年

1年単位で目標と立てることは自分にとって大きな意味をもたなかったので近年はやっていない(方向性を持ち、3ヶ月単位の計測可能な目標を定め、振り返り、方向性に問題があれば修正してつぎの3ヶ月単位の目標立てることが有意義)です。それでも敢えて掲げたいのは、1年後振り返ったときにこれはやりきった、これはワシ(自分が一定以上貢献したと自分で感じられる限りワシら)が育てたと思えるものが一昨年以上に大きくなっていることです。あと、言語化したくないことでも、外に出すべき・出さないべきは別として、した方がよいというのは指針として持っておきたいです。

四半期ごとの個人OKR振り返りです。

2022年7〜9月は、なるべく好きと思うっぽいことに多く触れ、元気をやっていくことをメインテーマに据えていました。

振り返り対象のOKRは2022年4〜6月ふりかえりと7〜9月OKR 〜何にワクワクし、没頭するのか思い出す〜で立てています。

OKRの振り返り

Objective 1: ワイワイする 〜何に没頭し、ワクワクするのか思い出す〜

KR1 これからの授業の基礎固め 【できた】

夏学期CS 6250 Computer Networksが終わると、CS 6340 Software Analysis and Testingがはじまりそれ以降C++必須になります。読み書きしたことないので、最低限授業で必要とされる項目を理解しつつ慣れていきます。

C++完全理解したにすら到達してないものの、授業の課題はエディタが補完してくれる範囲でなんとかなるものでした。これからの授業準備という観点では、授業や課題+αで書き慣れたいとは思います。

何より課題とLLVMを楽しく感じる(授業が楽しいわけでは断じてない)のは大きな収穫です。

また、安易に答えだけを求めず、手間ひまかけて自分の頭で考え理解する時間をぜんぜんとってなかったことを実感できたのもよかったです。

時間的にはしばらく会社員やめようかと思うことが頻繁にあるくらい厳しいですが、よろしく元気にやっていこうと思います。

KR2 認証認可完全理解()する 【できなかった】

SREと言いながら、最近はSREと聞いて想起されることは何もやらずに認証基盤を開発しています。エンジニアとしてどこかのタイミングでしっかり携わりたいと思っていたドメインなので、今後のプロジェクト配属変更によらず手を動かそうとおもいます。

本は途中まで、Goでの実装はなしという感じでほとんど進捗しませんでした。幸いガラッと配属が変わることなく継続的にドメインに関われてはいます。業務上もっとも楽しみを感じている部分のひとつなので、リベンジ方法は検討します。

KR3 好きっぽいものに触れる 【できた】

技術書典!Go!分散システム!

技術書典については、新刊こそ出すことはできなかったものの、夏学期と秋学期の間の土日のほとんどを使って改訂版を出せました。

https://toshi0607.com/event/tbf13/

オフラインイベントに関しては、来場者数単純比較でかつてほどの盛り上がりを感じることはできませんでした。それでも、自分が詳しくなりたい技術に関する実験を行い、体系的に整理し、何度も推敲し、装丁やお金の計算をしながらさまざまな販売チャネルを検討する総合的な体験は依然として有意義です。授業のテーマと身近な技術をじっくり整理できたらいいんですけどね。アウトプットを磨き上げていくための手段はそれに限らず本業、複業などさまざま形式やリターン、時間など構成要素がいろいろあります。その中での執筆のハードルの高さを改めて感じました。

Go関連の読書もよかったです。ポジティブにあれこれ実験したい(けどまだできない)ことが出てきて、夢中になりうるものが何かを考え直すよい機会になりました。

Objective 2: TBD 【できた】

コロナおさまったり、元気になってから考える。たぶん釣りデビューしたい

後に「アクティブに休む」を設定していろいろ活動しました。釣りデビューしたり、数年ぶりに飛行機に乗ったり、リフレッシュする機会を多く持てたと思います。個別の内容はログセクションに書きます。

総評

過去に没頭し、ワクワクしていたものの一部を思い出せた気がします。試してみたい分野がポコポコと出てきたり、大学院の授業の中で新しい分野との出会いがあるのもとてもよいです。一方で、あれこれ気になるからこそ

  • 発散させすぎず四半期スパンではフォーカスすること
  • 気になる分野をプラットフォームエンジニアロードマップに反映すること
  • 自分が目指していたものに、今の感じで近づけるのか
  • 近づけていないなら、今のやり方やその延長線上に生きがいはあるのか

あたりを改めて考えてみるとよさそうです。

ログ

今QのOKRとしては追ってないものの、記録しておきたいことのコーナーです。

インタビュー

大学院関連でインタビューいただきました。最近は受験相談などは乗ってないですが、挑戦する人の背中を押せたら嬉しいです。

NOT A HOTEL

昨年僕が「NOT A HOTEL」を始めた本当の理由を読んで、建物かっこいい!面白そう!けどシェア購入でもなかなか厳しい!と思って遠くから眺めていました。そしたらなんとNOT A HOTELが「1日単位」で買えるようになりますということで、急に距離が近づきました。しかも単に日単位で宿泊できる、というのではなく、47年間毎年1日(固定)どこかのNOT A HOTELに宿泊できるメンバーシップNFTという形式での登場で、即家庭内会議の上購入を決定しました。

旅行場所のランダム性、もしどうしてもいけない日になってしまった場合の流動性、いざ家を建てるとなったときの場所の決めづらさと多拠点生活の足がかりとしての役割、「すべての人にNOT A HOTELを届ける」というミッションにぶつけたNFTというハウのエモさなど、心を揺さぶりました。宿泊日は偶然妻の誕生日になり、毎年誕生日に旅行して祝うハッピーな感じになりそうです。

まだどの程度人気が出るか読めない中、ホワイトリスト入りして確実に購入すべく訪れた宮崎では心洗われました。飛行機だったり、はじめての駅に降り立つ瞬間の空気だったり、ここ2、3年ですっかり薄れてしまっていた感覚だけに、鮮烈に景色が焼き付いています。

イベントにも継続的にお邪魔しています。

なんもわからんをやっていく。

アニメ・映画

  • 機動戦士ガンダムSEED
  • 機動戦士ガンダムSEED DESTINY(途中)
  • 機動戦士ガンダム 水星の魔女(途中)
  • 幽遊白書(途中)
  • キングダム シーズン4
  • メイドインアビス 烈日の黄金郷
  • キングダム2 遥かなる大地へ
  • ソー ラブ&サンダー

最初の言葉の定義で折れそうになりました。それでも、新しめのバージョンで追加概念が出てそちらを使って書くべきみたいな性質を強めに感じるので、作法系を学んでいこうと思います。

紙で買って読まずに売ってしまったものの、完全に今読むべき本と思ったので読んでます。自分が「青春」と読んで追い求めているものに言葉を与えてくれそう。

ゲーム

ゼノブレイド3

世界のあり方を問い、自身の存在意義を模索していく登場人物たちに胸打たれました。めっちゃよかった。

おつあり後も、全ヒーロー覚醒クエストや「アイオニオン最強」クエストをしっかりやりこみ、エキスパンションパスのコンテンツ更新を待っていたところ、ゼノブレイド1と2の割引クーポンが届いてしまいうっかり手を滑らせました。プレイ時間の確保は未定です。3が1と2の存在を前提に繰り広げられただけに気になっています。

サウナ

「なんの変哲もない平日夜にドーミーイン(系列を含む)でととのって泊まり、翌朝何食わぬ顔で帰って仕事する」をやりました。噂に違わず御宿野乃浅草よかったです。

グランピング施設内の貸し切りサウナもよかったです。大衆サウナは正直周囲のマナーが厳しい施設もあるので、それから解放される意義はけっこう大きいです。

技術書典打ち上げ恒例、サウナデビューの地巡礼。

平日夕方でめっちゃ混んでました。総合的に考えて首都圏大型お気に入りサウナを愛でたい気持ちになりました。

アクティビティ

宮崎訪問を含め、夏をやっていました。土日が学業で埋まっても隔月くらいでは自然を感じたいです。尾瀬行く予定が雨で行けなかったのが残念なので、いつかリベンジしたいです。

グルメ

ラーメンとしておいしかったものの、家系ラーメンが食べたい口のときは駅反対側の武蔵家がよさそう

技術書典打ち上げ

喫煙可、店員マスク無し、おしぼり臭いで厳しかった

うな重開拓重要課題

この形のマンゴーの調理方法を学びました

嫁氏のチキン南蛮のほうがだいぶ好きです

伊勢海老必ず食べる気持ちで行ったら9〜3月のみとのことでした

よかったまた行きたいです

制しました。また行くときはご飯半分で

今後の話

Objective 1: 前進する

KR1 OS入門準備

11月末に現在受講しているCS 6340: Software Analysisが終わらせられそうなので、3学期連続で履修する予定のOS関連の予習をする。関連書籍に目を通せたらOK。

KR2 実験を楽しむ

Cloud Runで運用するGoアプリケーション周辺でいろいろ試したいことがあるので、アウトプットを気にしすぎず遊ぶ。本業、学業、複業があってなお触れたらとてもよい。アドベントカレンダーかZenn記事にできたら最高。

  • CUE <-> proto <-> OpenAPI
  • clean arch
  • Cloud Deploy - Cloud Run
  • runn
  • Spanner database/sql
  • Terraform provider + アプリケーションのリソース管理
  • TerraformとCUEをつなぐなにか

KR3 プラットフォームエンジニア談義

目指すべきプラットフォームエンジニアとはなんだったのか、整理してドキュメントにする。

  • なにをつくりたい
  • 許容できる/できない
  • フェーズ
  • だれがどういう状態になってほしい
  • 成果のはかりかた
  • 必要なスキル

Objective 2: 甲殻類

KR1 すさみ町立エビとカニの水族館訪問

KR2 伊勢海老

KR3 冬をやる

技術書典13に『Google Cloud Platformで学ぶTerraform』の基礎編と実践編の第2版をもって出展します!

  • オフライン開催
    • 会期:2022/09/11 (日)
    • 会場:池袋サンシャインシティ 展示ホールD(文化会館ビル2F)
  • オンライン開催
    • 会期:2022/09/10 (土) 〜 2022/09/25(日)
    • 会場:技術書典オンラインマーケット

最後にオフライン会場で出展したのは、2019年の技術書典7。2年ぶりのオフライン会場めちゃくちゃ楽しみにです!

「か10」にいます。

販売チャネルとラインナップ

今回第2版を出す2冊は印刷します!初紙本化!技術書典8以降も継続的に出展し、新刊をお届けしてきました。しかし、オンラインマーケットのみ参加ということで、紙本印刷はすべて見送ってきました。

技術書典13ではつぎのラインナップ、部数、価格を予定しています。電子版は継続販売しますが、紙本は期間中のみなのでご注意ください。価格設定も異なります。

技術書典オフライン開催

池袋サンシャインシティで2022/09/11 (日)に開催されるオフラインイベントでは、3種類の本がご購入いただきます。オンラインの価格据え置き+αで、紙本もついてくるというお得な感じになっています。

  • 『Google Cloud Platformで学ぶTerraform 〜基礎編〜 第2版』
    • 紙本 + 電子版(PDF、EPUB)のQRコードカード: 1000円 (先着100名)
    • 電子版(PDF、EPUB)のQRコードカード: 1000円 (先着100名)
  • 『Google Cloud Platformで学ぶTerraform 〜実践編〜 第2版』
    • 紙本 + 電子版(PDF、EPUB)のQRコードカード: 1000円 (先着80名)
    • 電子版(PDF、EPUB)のQRコードカード: 1000円 (先着20名)
  • 『Knativeソースコードリーディング入門』
    • 紙本 + 電子版(PDF、EPUB)のQRコードカード: 500円 (先着xx名)
    • 電子版(PDF、EPUB)のQRコードカード: 500円 (先着xx名)

上記すべて売り切れた場合でも、オンラインで出品している商品の現金購入、かんたん後払いを受け付けます。

技術書典オンライン開催

技術書典オンラインマーケット自体は常設です。そのため、2022/08/29時点で、電子版はすべてご購入いただけます。

2022/09/10 (土) 〜 2022/09/25(日)期間中は、紙本もご注文いただけるようになる予定です。技術書典の「あとから印刷」を利用するため、紙本がお手元に届くのは期間後です。

BOOTH

2022/08/29時点で、電子版はすべてご購入いただけます。

GCPで学ぶTerraformの基礎編・実践編については、オフラインイベントで在庫が発生した場合のみ紙本も販売します。

GCPで学ぶTerraform 基礎編・実践編 第2版紹介

『Google Cloud Platformで学ぶTerraform 〜基礎編〜 第2版』

(以前書いた紹介文より)

僕は、マイクロサービスを開発するためのプラットフォームを開発・運用するチームで2020年から働き始めました。それ以前の仕事は、バックエンドエンジニアとしてのマイクロサービス開発です。プラットフォームチームが開発したTerraformモジュールに設定を渡し、GCPやKubernetesのリソースを作成していました。

いざそのモジュールを作成したり、エラーのデバッグをする立場になってみると何もわかりません。つぎのような疑問がわきました。
・モジュールとは何か
・複数のリソースから構成されるアーキテクチャはどう組み立てるのか
・なぜ Terraform の状態と実際のクラウドリソースの状態はずれるのか

Terraformの概念や個々のリソースの使い方、GCPを利用したサンプルのモジュールはたくさんあります。Terraformに関する書籍もあります。
しかし、Terraformの具体的な説明に登場するクラウドは、ほとんどがAWSです。クラウドアーキテクチャの設計経験も多くはない著者にとって、AWS ベースで説明された内容をGCPに置き換えながら学ぶのはとても大変でした。そこで、この本を書くことに決めました。

AWSからGCPへの翻訳をせず、クラウドの設計やTerraformをGCPを通じて学べる本。半年前の僕が欲しかった本です。この本を通じ、Terraform をより身近に感じる人が増えたら幸いです。

正誤表・増補改訂情報はこちらのページで公開しています。

https://toshi0607.com/event/learning-terraform-with-gcp-basic-edition-update/

登場するほとんどのサンプルコードも、GitHub上で公開しています。

toshi0607/Learning-Terraform-with-GCP

目次です。

第1章 はじめに

第2章 Terraform の概要
2.1 Terraformの意義
2.2 Terraformのアーキテクチャ
2.3 まとめ

第3章 環境構築
3.1 GCPアカウント
3.2 GCPプロジェクト
3.3 GoogleCloudSDK
3.4 tfenv
3.5 vscode-terraform
3.6 まとめ

第4章 リソースとterraformコマンド
4.1 リソース
4.2 terraformコマンド
 init
 plan
 apply
 destroy
4.3 ライフサイクル
 create_before_destroy
 prevent_destroy
 ignore_changes
4.4 まとめ

第5章 Configurationの書き方
5.1 関数
 join
 length
 contains
 values
 file
 その他の関数
5.2 変数
 variable
 output
 locals
 データソース
5.3 ループ
 count
 for_each
 for
 dynamic
5.4 条件式
5.5 バージョンの明示
5.6 モジュール
 子モジュールの定義
 ルートモジュールの定義
5.7 まとめ

第6章 ステート管理
6.1 ステートの構造
6.2 リモートバックエンド
6.3 管理単位
 ワークスペース
 バックエンド
6.4 参照
6.5 ズレと直し方
 定義あり、ステートあり、リソースあり
 定義あり、ステートあり、リソースなし
 定義あり、ステートなし、リソースあり
 定義あり、ステートなし、リソースなし
 定義なし、ステートあり、リソースあり
 定義なし、ステートあり、リソースなし
 定義なし、ステートなし、リソースあり
 定義なし、ステートなし、リソースなし
6.6 リファクタリング
 moved
terraform state mv
6.7 まとめ
[コラム]リソースの種類の変更

あとがき

『Google Cloud Platformで学ぶTerraform 〜実践編〜 第2版』

基礎編の続きです。基礎編の内容理解を前提とし、モジュールの設計、リント、バリデーション、テスト、CI/CDなどのより実践的な内容をお届けします。

正誤表・増補改訂情報はこちらのページで公開しています。

https://toshi0607.com/event/learning-terraform-with-gcp-practical-edition-update/

登場するほとんどのサンプルコードも、GitHub上で公開予定です。

toshi0607/Learning-Terraform-with-GCP
toshi0607/GKE-Microservices-Terraform-project-template
目次です。

第1章 はじめに

第2章 環境構築
2.1 GCPアカウント
2.2 GCPプロジェクト
2.3 Google Cloud SDK
2.4 tfenv
2.5 Hashi CorpTerraform
2.6 まとめ

第3章 2層アーキテクチャ
3.1 アーキテクチャの概要
3.2 アーキテクチャの詳細
3.3 Terraform化
3.4 安全な変更
3.5 まとめ

第4章 アーキテクチャの全体像
4.1 アーキテクチャの概要
4.2 Terraformモジュール
4.3 まとめ

第5章 Projectモジュール
5.1 モジュールの機能
5.2 組織の作成
5.3 モジュールの開発
5.4 まとめ
[コラム]GCPプロジェクトのクオータ緩和申請

第6章 Clusterモジュール
6.1 モジュールの機能
6.2 モジュールの開発
6.3 まとめ
[コラム]モジュールのパス
[コラム]モジュールの埋め込みとコンポジション

第7章 Microservicesモジュール
7.1 モジュールの機能
7.2 モジュールの開発
7.3 まとめ

第8章 リントとバリデーション
8.1 terraform fmt
8.2 terraform validate
8.3 TFLint
8.4 Conftest
8.5 まとめ

第9章 テスト
9.1 Terratest
9.2 Projectモジュール
9.3 Microservicesモジュール
9.4 まとめ
[コラム]テストの磨き込み

第10章
10.1 Cloud Build
10.2 事前準備
権限付与
Step実行用のコンテナイメージ
CloudBuildとGitHubの連携
10.3 ソースコードと変更差分の取得
10.4 Terraformの検証‧実行
10.5 モジュールのテスト
10.6 まとめ
あとがき

四半期ごとの個人OKR振り返りです。

2022年4〜6月は、学業・複業をいい感じに本業に活かすをメインテーマに据えていました。

振り返り対象のOKRは2022年1〜3月ふりかえりと4〜6月OKR 〜圧倒的逆輸入〜で立てています。

OKRの振り返り

Objective 1: 圧倒的逆輸入

KR1 学業から本業へ 【微妙】

特に弱いネットワーク分野の授業を受けている状態で関連業務をキャッチアップしたら、効率化できたり深く理解したりできるか試します。

基礎固めが進捗し、大学院の授業と実務のつながりは実感できました。読もうと思ってずっと読めていなかった本も読み終わって授業の準備を兼ねさせたり、ネットワーク関連の授業や宿題を通じてGCPのネットワーク関連の理解も多少深まったを感じます。

一方で、理解の定着という意味でのProfessional Cloud Network Engineer受験や、実務関連のアウトプットまでは至らずという感じでした。

KR2 複業から本業へ 【中止】

機会的にまだ不確実過ぎるので、後で詳細化します。

本業以外でデータ基盤っぽいお話に取り組めるかと思ったものの、そうはならなかったのと各方面いろいろ問題が発生したので新しくKRを設けることもなくやめました。そんな四半期があってもよいですそれもまた人生。

 メモ

  • 夏学期 5/16〜8/5 CS 6250 Computer Networks
  • 秋学期 8/23〜12/17 CS 6340 Software Analysis and Testing
  • 2022年7〜9月にC++入門する。夏学期と秋学期の間

Objective 2: ワクワクを型化する

KR1 ワクワクリストが継続的に人生を豊かにするものになるしくみを考える 【微妙】

  • ✅映画3、裸眼視力1.5、グランピング、グルメ3、新サウナ1、
  • 週3時間以上ワクワクリストの実行、メンテ、振り返り、しくみ作りにあてる

隙あらばワクワクリストは意識したものの、諸々の問題でそれどころではありませんでした。来期はやること減らして臨みます。

個別コンテンツはログセクションでまとめるとして、月1くらいのペースで自然にしっかり触れられるようにカレンダーブロックしようと思います。それもできないと感じたら定常的にやっていることを何か削ります。

KR2 家関連のドメイン知識を集める 【できた】

  • ✅次回引っ越しで建てた家に引っ越す場合、どのタイミングで何が必要か理解する
  • 正直不動産を読み漁る

正直不動産を読み漁るのはもちろん、最高に上がる家を建てるにあたりいろいろ情報を集めました。YouTubeやInstagramもよかったです。家自体よりも、今後どういう家族構成にしていきたいか、どこに住むのかを決めるの難しいなと思います。

こういう話聞きたいです。

子供を持たない選択をしたこと。

KR3 また歌うのが楽しいと思えるようになる 【できた寄りの微妙】

改まって声を出そうとすると、歌に限らず喉をしめてしまいかすれてしまうのでそれをなんとかしたいです。

かつてギター・ボーカルをやってるときにボイトレに通うも、最終的に余計に喉をきつく締めるようになり辛くなったのでいったん止めることにしました。ボイトレ範疇なのか、医学的ななにかなのかアプローチは不明なので、情報収集からはじめます。治りきらなくても、症状が改善する傾向にある状態になればよしとします。

医学的な何かではなく、ボイトレの範疇で快方に向かうというのはわかりました。息漏れ、喉じめなどで出てくる動画のうち、息漏れしない発声にする系のトレーニングでなんとかなりそう。

【ボイトレ】喉締め声を1発で改善!正しくチェストボイスを出す方法【ボーカリスト】【ボイストレーニング】【カラオケ】

近年比マシに感じる日が出てきました。続けないとすぐ戻るので、生活リズムを整えた上で10分確保してやっていきます。

ログ

今QのOKRとしては追ってないものの、記録しておきたいことのコーナーです。

ICL手術

失敗談。レーシックと違って目を削らなくてもいいので、なにかあったらやり直せることが売りのICL手術。目にレンズ埋め込むやつです。なにかあったのでやり直しました。

4月頭に手術し、1週間弱後から左目が見えなくなりました。レンズを異物とみなしてしまって膜がはり、切開洗浄やステロイド点眼では治らず、一度レンズを取り外す手術をしました。右目だけにレンズが入った状態で視力差(+ 片目はよく見えるので眼鏡かけるわけにもいかない)による頭痛を経て、5月末に再手術しました。また何かあるのが不安で、手術後しばらく朝起きるのも怖かったです。現在は視力的には両目ともよく見えるようになったものの、左目の違和感はそれなりにあります。

これ自体が感情的にも生活的にも壊滅的だし、その他ショックな出来事や大変な出来事が公私で続き、4〜6月は人生でもっとも盛り下がった四半期のひとつでした。来期は上げていこう。

眼科のスタンスはこんな感じでした。

  • 目が見えなくなったときの対応は、切開洗浄やステロイド点眼がだめだったときの取り外し手術(時間外)まで2日くらいとかなり早く誠実だった
  • 20〜30人に1人くらいなる(炎症が出る人がいることは聞いていたが、数字は炎症が出てから言われた、当該眼科での実績で一般的傾向とは聞いてない)けど原因はわからない(究明しようとしたり、レンズのメーカー変えたりする気なさそう)
  • 手術何度もされる方も大変だろうけど、する方も大変って患者に平気で言う
  • 現在の左目の違和感の話はとりあってくれない

事前に調べる感じでは、こういう反応の話ぜんぜん聞かなかったのでこれから受ける方はこういうケースもあるということは認識してください。自分が手術を受けたのは、ICL手術で検索するとよく出てくるところではなく、近所の眼科で月数回ICL手術で検索するとよく出てくる執刀医がきてくれる眼科でした。

アニメ・映画

  • ドクター・ストレンジ マルチバース
  • シン・ウルトラマン
  • トップガン マーヴェリック
  • トップガン
  • AKIRA
  • Fight Club
  • 新機動戦記ガンダムW Endless Waltz 特別篇
  • 新機動戦記ガンダムW
  • 機動戦士ガンダムSEED(途中)
  • 幽遊白書(途中)
  • キングダム(途中)

敵覆面だからこそみたいなのはあるかもしれないですが、トップガン マーヴェリックはエモ過ぎてエモかったです。立地的にレイトショー観て帰って風呂入っていつもどおりの時間に寝るというのができるのでやっていきます。

新規開拓サウナ

目の手術起因で3ヶ月中2ヶ月サウナに行けなかったことで、サウナに入ることや、定期的に数時間PCが触れない空間にいることの重要性を改めて噛み締めました。また行けるようになったので開拓していきます。直近のコロナ急増は気になるので様子見つつ。

アクティビティ

ワクワクリストよりグランピング。マネージド感強すぎるかもしれないですがよかった

わろた

ミスチルちょうど30周年の日に、はじめてミスチルライブ観に行った東京ドームでお祝いできてよかった

グルメ

ヤウメイめっちゃおいしかった

トリトンの安定感

BEAST

東京たらこスパゲティ期待を遥かにこえておいしかった

すし処 若はガチ

授業

複業

昨年末から取り組んでいたオブザーバビリティの話からSLI/SLOにつなげるところまでたどりつけてよかったです。

  • マイクロサービスのダッシュボード(オーバービュー)作成
  • トレースIDでマイクロサービス(複数言語)間のリクエストのトレースをつないでDatadogのAPMで一貫した方法で調査できるようにする + Sentryにも同一トレースIDが付与されるようにする
  • マイクロサービス毎のSentryのアラートルール標準設定と週次で棚卸しをやっていくための調査、ドキュメンテーション、説明
  • マイクロサービス毎にSLI/SLOを決めるためのワークショップ(を今後新サービスつくるときにやるイメージをもってもらえるようなヒアリング。今回は仮で自分が決めてフィードバックもらう形にしました)
  • SLI/SLO概論ドキュメンテーション、サービス毎の運用ドキュメントテンプレート作り + 既存マイクロサービス分作成
  • 決めたSLI/SLOベースでモニタリングするためのDatadogモニターの設定
  • ロードマップ整理サポート

機能開発が大変でも、開発したサービスを自律的に運用しなければ持続的な価値提供はできないので、各チームの話を聞いたりしながら進めました。きっと今後続けたり、合わないと感じた部分をそれぞれ変えていってもらうほうが大事と思います。限られた時間ながらよい経験をさせていただきました。

今後の話

4〜6月のダメージがあまりに大きく、回復に時間がかかりそうです。できる限りワイワイします。

Objective 1: ワイワイする 〜何に没頭し、ワクワクするのか思い出す〜

KR1 これからの授業の基礎固め

夏学期CS 6250 Computer Networksが終わると、CS 6340 Software Analysis and Testingがはじまりそれ以降C++必須になります。読み書きしたことないので、最低限授業で必要とされる項目を理解しつつ慣れていきます。

KR2 認証認可完全理解()する

SREと言いながら、最近はSREと聞いて想起されることは何もやらずに認証基盤を開発しています。エンジニアとしてどこかのタイミングでしっかり携わりたいと思っていたドメインなので、今後のプロジェクト配属変更によらず手を動かそうとおもいます。

KR3 好きっぽいものに触れる

技術書典!Go!分散システム!

Objective 2: TBD

コロナおさまったり、元気になってから考える。たぶん釣りデビューしたい

四半期ごとの個人OKR振り返りです。

2022年1〜3月は、転職、大学院授業開始、複業継続という三つ巴の戦いが始まる中で、壊れずに生きるというものでした。

振り返り対象のOKRは2021年10〜12月ふりかえりと2022年1〜3月OKR 〜壊れずに生きる〜で立てています。

OKRの振り返り

Objective 1: プラットフォームインフラ未学習分野の底上げとベストプラクティスの実装修行

転職と大学院の授業の最初の授業が重なる2022年1〜3月は、生きるだけで精一杯かもしれません。そのため、Objective 1は端的に言うと「生きる」です。

本業における事業価値の最大化を中心に据え、学業、複業がよいバランスで継続的によい影響を与え合うあり方を見つける。KRでは、本業と複業の業務OKRや大学院の成績基準を満たすのに必要な補助的内容を便宜的におく。

総括すると、特定条件下で三兎を追うことは不可能ではありませんでした。しかし、少なくとも持続可能な感じではなく、一部何かが崩れる(体調を崩す、モチベーションが下がる、コントロールできないものが増えるなど)と厳しいなぁという感じでした。

時間的なキャップや何もしない日を強制的に持つなど、余白を作る積極的な努力が必要そうです。

KR1 データベース理解の見取り図をつくる 【できた】

Cloud Spannerで戦っていける体になりたいです。マイクロサービスの開発・運用で利用していたものの、そもそもデータベース概論から弱いので、足腰鍛えます。

本業では、Cloud SQLのCloud Spanner移行に取り組んでいます。どんな問題でもこい!という状態からはほど遠いですが、見取り図という意味では構築され始めたという感じです。

  • 従来のRDBから変わっていないDBの一般原則(もしくはその枠内で運用できるようにSpannerが備えたもの)
  • New DB的なものに向き合う覚悟
  • 運用上ないと困るツール群、エコシステム
  • 移行上計画していなかったら困ることや、ないと困るツール
  • パフォーマンスチューニングするときにないと困る基礎知識、実験環境

など、上記の本も含めて学びを得ました。4〜6月も業務上移行は続けたり、複業文脈でデータ基盤構築関わるかどうかという話もあるので継続テーマとしてやっていく予定です。

KR2 マイクロサービスのオブザーバビリティの見取り図をつくる 【できた】

マイクロサービス基盤開発において、2022年1〜3月はマイクロサービスの死活監視の概要がわかるダッシュボードと、開発・運用のためのログ、トレーシング、(メトリクス、)エラーレポートが関連付けられている状態にします。その前提として、オブザーバビリティ関連の代表的論点を整理し、ロードマップをつくり、今回の取り組みの位置づけやつぎに取り組むべき内容を提示できる状態にします。(複業自体のOKRを優先し、無理そうならそちらに集中する)

複業の中でおいたOKRはメンバーの助けを借りつつ一通り構築し終えました。紹介するとこんなのです。

  • O1: 単一のリクエストIDでマイクロサービスのメトリクスを関連付けて自由自在に調査できるようにする
  • KR1: 各サービスの稼働状況がひと目でわかるようにする
  • KR2: リクエストIDでログをマイクロサービス横断でフィルタリングできるようにする
  • KR3: エラーレポートからリクエストIDが取り出せるようにする
  • KR4(option): 単一のリクエストがどのマイクロサービスでどれだけ時間を要したか分析できるようにする

設計・実装経験の幅を広げる意味で、本業と異なるフェーズの組織でテーマを持って取り組むのは継続したいです。そのときに、テーマに関連する代表的な著書だったり、体系的な情報のインプットを関連付けられるのはさらによいと感じます。一方で、テーマの粒度が一人で速くいくなのか、みんなで遠くいくなのかで広さ・深さはけっこう変わりそうです。コントロールできる・できないにかかわらず、どちらのタイプなのかで自身の期待を調整しようと思います。

KR3 大学院授業の週・月次の学習サイクルをつくり、主要な授業に備える 【できた】

  • ✅CS 6310の履修登録に成功する
  • ✅OSまわりの授業の前提条件を調べ、不足を補う計画を立てる
  • ✅春・夏学期の履修登録に成功する

大学院での最初の授業がはじまりました。履修登録や特に受けたい授業をどう進めるかなどの懸念が払拭できつつあります。

最初にとった授業は、Software Architecture and Designです。おそらく初耳みたいな内容はなく、そこまで重くない風のグループワークがあり、中間・期末試験はないということで4月末までの春学期で履修しています。卒業要件が10の授業をB以上で修了することなので、10以上積極的な興味がある授業がある中で敢えてとらなくてよかったかもなとは思っています。

5月末〜夏学期はネットワークの授業を履修します。楽しみ!!!前年までと異なり、夏・秋学期の履修登録を同じタイミングで行うのから夏学期は3月、秋学期は4月というのに変更されました。

今後履修する授業と順番を考え、履修要件と準備したほうがよさそうな内容を整理しました。

OS系授業の準備

OS/コンピュータアーキテクチャ、分散システムを主軸に学んでいく中で、特にC/C++とOS/コンピュータアーキテクチャの基礎はまとめてインプットする時間が必要そうです。

Objective 2

壊れない。目下最大の健康リスクに対処しつつ、よい人生を歩んでいきます。

KR1: ワクワクリスト作成 【できた】

以前作成したものがなぜかなくなったので、再度まとめて目に見えるところにおいておきます。今QのO2 KR1のミラコスタと石川ののどぐろは、このワクワクリストからOKRに引っ張ってきたものです。達成することで生の実感を得ることができました。いつかやってみたいと思ったことでも忙殺されると自分の人生の外においてしまうし、それをやるタイミングが勝手にやって来るものでもありません。流れに委ねるべきは委ねつつも、可視化し、意識して組み込むのも継続してやっていこうと思います。

一部残っていたものの、再構築しました!

ワクワクリスト

こういう欲望をある程度抑えながら人生を進めていると、いつの間にかその欲望がなかったことになっているので可視化は意義深かったです。また、時間が急にできたときに書き留めていないと思い出せません。重要でないから忘れているというわけでもない気がします。

消費系が多く、TODOリストにチェックが増えていったらそれはよい人生なのか?とか思うところはあります。いまのところは、極力早いうちにする旅は心のアセット的な経験になりうるだろうだったり、とはいえなにか生み出したい・残したいみたいな気持ちだったりがあります。可視化は第一歩としてとてもよかったので、どう向き合うかは考えていきたいです。

ちょっと時間があればできること(映画観る、予約して美味しいもの食べる)はやる。計画が必要なものはObjectiveに組み込む。ワクワクしそうとちょっとでも思ったことはリストに追加する。

KR2: お金まわりを整理する 【できた】

持株会制度がなくなるのと、新卒の会社の企業年金をiDeCoに移さずここまできてしまった(!)ので手続きします。個別株積立投資と投信は続けているものの、NISAはノータッチなので、もしiDeCoと合わせていい感じに手続きできたらやってしまいます。また、いろいろなサービスの料金プランの見直しや解約を進めているのでその続きをします。

  • ✅iDeCo手続きする
  • ✅NISA手続きする
  • ✅使ってないクレカ解約
  • ✅確定申告

ついでに、金融機関コード0001である以外何もメリットがないメインバンクを移行しました。

KR3: 目か頭痛どうにかする 【できた】

現在一日の生産性を圧倒的に下げる三大要因が花粉症、頭痛、眼精疲労(?)です。花粉症については、今Qに舌下免疫療法(アレルゲン免疫療法のひとつ)に取り組みはじめました。3〜5年かかりそうなので、病院とオンライン診療を併用しつつ様子を見ていきます。頭痛については、気圧が上がるときも下がるときも年々厳しくなっているので、緩和させるもしくは快方に向かわせる一手を打ちたいです。乱視や近視と左右の大きな視力差に起因する目周辺の不快感や頭痛もけっこうしんどいです。

頭痛と眼精疲労は相互に影響している部分もそうでない部分もありそうなので、どこにどういう形で相談すると全体として前進するか調べ、日常生活への影響を考慮し着手できる緩和策に着手します。

  • ✅相談先探す
  • ✅目のメンテする

普段眼鏡をかけるようにしたら頭痛も眼精疲労も体感1/3くらいになりました。

もともと左右の視力差がけっこうあった(0.06と0.6)のに、眼鏡をかけるのが億劫で裸眼で暮らしていました。リモートワークが始まってからPCを見る時間がいっそう長くなり、ダメージの蓄積が加速していたようです。眼鏡をかけたのに加え、ユンケルの服用や、寝る前に温めたアイマスクを乗せるようにして労りはじめました。その結果、だいぶ疲れが残りにくくなりました。

さらに、気圧の急降下・急上昇時病欠をとらないと厳しい程度に酷かった頭痛も意図せずかなり収まりました。気圧は頭痛の原因というより、蓄積された疲労を健在化させるトリガーのようなものだったかもしれません。完全雰囲気なので、様子を見て相談しようと思います。社内では医師に気軽に相談できるため、頭痛外来の存在や、偏頭痛治療薬の進歩の話を聞けました。

眼精疲労や頭痛がある程度治まった中で挑戦したいのは、ICL手術です。眼鏡をかけずして左右高水準で同じように見えている状態を維持したいというのは、かねてからの希望でした。多少費用がかさんでも、レーシックのように角膜を削らない分、合わなかったらとりやめのできるというのが決め手です。眼精疲労や頭痛が酷い状態で臨むと問題の切り分けができないなぁとなんとなく気乗りしていなかったのですが、ついにタイミングが来ました。4月上旬に手術します。

ログ

今QのOKRとしては追ってないものの、記録しておきたいことのコーナーです。

Meety

普段接することが少ない方々とお話できました。2対多だとインタラクティブに話すの難しいかったです。

個人OKR運用をサポートします!というトピックで出ていたOKRのTwitterコミュニティを作ってみました。メンバーまったく増えません!!!

アニメ・映画

  • スパイダーマン ノー・ウェイ・ホーム
  • 鬼滅の刃 無限列車編
  • 鬼滅の刃 遊郭編
  • 絶対無敵ライジンオー
  • 魔法騎士レイアース
  • 機動武闘伝Gガンダム
  • 機動戦士Vガンダム

絶対無敵ライジンオーを最後に、勇者シリーズとエルドランシリーズを全部見ました。要した期間は、リモートワークがはじまってからランチしつつの2年間です。変形・合体ロボットは自分にとって「かっこいいと感じるもの」の原点っぽいので、リアルタイムに観てなかったものを含めて全部見れてよかったです。

映画館が近い割に、映画館には全然行けませんでした。

受けてる授業の基礎をざっと振り返ろうとして読んでみました。英語でがっつり学ぼうとしている内容を日本語で読むの効率悪いのかもなと思いました。UMLまわりの日本語訳対応関係わかりづらい感じがします。

いつも本で気持ちが穏やかになるので楽しみです。

サウナ

今四半期は新規開拓なしで、ひたすら同じサウナに通っていました。毎週行けてるので満足です。

ほとんどの時間を家で過ごすので、衣食住を整えて日常の気分を上げることはとても大事に感じます。ワクワクリストにあった「食器とコップそろえる」だったり、だいぶ古くなった家電を入れ替えたりしていました。

あと、持ち家がほしいというよりこの家に住みたくなりました。今のマンションもかなり気に入ってるので、情報を集めてちょっと考えます。

 花粉症治療

昨年12月にはじめた舌下免疫療法は、早くも成果が出始めました。少なくとも、薬を服用しても症状が厳しすぎて1日休んでしまう日は皆無です。

今後の話

O1では、余白を確保しつつ、学業・複業のテーマをもう少し本業に寄せたらどうなるかを見ていきます。O2では、気になりはじめた家の情報を集めたり、のど絞め声出ない問題を解消したり、ワクワクリストを進める中でどうにかアクティビティやコンテンツ、食などもアウトプットに繋げられないか考えたりしてみます。

Objective 1: 圧倒的逆輸入

KR1 学業から本業へ

特に弱いネットワーク分野の授業を受けている状態で関連業務をキャッチアップしたら、効率化できたり深く理解したりできるか試します。

KR2 複業から本業へ

機会的にまだ不確実過ぎるので、後で詳細化します。

 メモ

  • 夏学期 5/16〜8/5
  • 秋学期 8/23〜12/17
  • 2022年7〜9月にC++入門する。夏学期と秋学期の間

Objective 2: ワクワクを型化する

KR1 ワクワクリストが継続的に人生を豊かにするものになるしくみを考える

  • 映画3、裸眼視力1.5、グランピング、グルメ3、新サウナ1、
  • 週3時間以上ワクワクリストの実行、メンテ、振り返り、しくみ作りにあてる

KR2 家関連のドメイン知識を集める

  • 次回引っ越しで建てた家に引っ越す場合、どのタイミングで何が必要か理解する
  • 正直不動産を読み漁る

KR3 また歌うのが楽しいと思えるようになる

改まって声を出そうとすると、歌に限らず喉をしめてしまいかすれてしまうのでそれをなんとかしたいです。

かつてギター・ボーカルをやってるときにボイトレに通うも、最終的に余計に喉をきつく締めるようになり辛くなったのでいったん止めることにしました。ボイトレ範疇なのか、医学的ななにかなのかアプローチは不明なので、情報収集からはじめます。治りきらなくても、症状が改善する傾向にある状態になればよしとします。

Ubie victory

2022年1月、Ubieにソフトウェアエンジニア (Site Reliability)として入社しました。入社して1ヶ月が経った今、Ubieに入社したきっかけや意気込みを書こうと思います。

マイクロサービス開発者からマイクロサービスプラットフォーム開発者へ

2018年9月、新しいお金のあり方を実現すべくリリース前のメルペイに入社しました。

freeeでの闘争を終え、メルペイで闘争します

はじめてのGo、GCP、Kubernetesなど、個々の技術のキャッチアップはもちろん、マイクロサービスの新規設計・仕様調整やテックリードとしての意思決定・チームマネジメントなど、精一杯背伸びする毎日でした。

テックリードとしての闘争

2020年1月、メルカリのMicroservices platformチームに異動しました。メルペイでのマイクロサービス開発経験を活かし、メルカリグループ全体でマイクロサービスをより開発しやすくしたいという思いからです。

1つの施策の影響範囲が数百ものマイクロサービスに及ぶ、とてもやりがいの大きい経験の連続でした。

また、在籍期間中は、海外やプロポーザルの必要な大規模なカンファレンスでの登壇、憧れのServerlessDays Tokyo/Fukuoksでのワークショップ開催、雑誌への寄稿や単著の商業誌発売など、はじめて尽くしでした。

自分だけでは手が届かないかもしれない挑戦のすべてを力強く後押ししてくれた組織、文化、驚くほど働きやすく従業員思いな制度、たくさんの強く優しい同僚には感謝してもしきれません。

とりわけプラットフォームエンジニアリングやそれを実装するチームは大好きで、何年も働いていくつもりでした。

人生を問う

2020年から2021年にかけ、業務上はメルペイからメルカリへの異動があった一方、日常生活はコロナ禍で激変しました。

リモート前提の勤務になり、住む場所も「会社に通勤しないのなら、日本のどこに住みたいか?」とこれまでと違った前提で考えました。現在の志向性においては足立区が最強という結論に達し、充実したサウナ生活を送っています。

エンジニアとしてキャリアの中で相対的に経験の浅いインフラ・SRE分野での修行的意味合いで取り組んでいる複業も、生活スタイルの変化が後押ししてくれた部分が多かったです。

複業SREとして広げる課題解決の幅と深さ。期待値以上の成果を上げるまでに何をしたか

さらに、「働かなくてもよいとしたら何がしたいか?」という問いに対して出てきた答えは「コンピューターサイエンスが学びたい」でした。働くのをやめなくても挑戦できることを知り、オンラインで3年半かけて学んでいくことにしました。

文系学部卒からGeorgia Techコンピューターサイエンス修士課程への闘争

大学院に出願するにあたって、志望理由書を書きました。必要とされる項目を書き上げるには、過去に学部で学んだことから現在に至るまでの学問・キャリア上の振り返りや、将来に思いを馳せることも不可避です。

キャリア上の損得勘定抜きで、単純にコンピューターの仕組みを学びたいというのが本音です。しかし、誰に強いられるものでもなく好んでプラットフォームエンジニアリングを行っているので、大学院ではコンピューターアーキテクチャー、OS、分散システム、クラウドコンピューティングの実装などを学ぶComputing Systemsを専攻し、ゆくゆくはGCP、AWS、Azureなどのクラウドそのものの中身を開発・運用できるエンジニアになりたい。そこに嘘はないし、この先転職するとしたらそういう会社だと思っていました。

では、クラウドを開発・運用できるようになった先に待っていること、それらを通じて自分が成し遂げたいものは一体なんなのでしょうか?自分が技術力を向上させてキャリアを積んだり、会社に貢献した結果、社会になにが残せるでしょうか?

日々クラウドを利用したさまざまなサービスが生み出され、人々の生活を支える基盤のひとつになっています。これに携わるのは、想像するだけでもワクワクします。問題解決する人が自律的に活動するためのプラットフォームを作るというのは、エンジニアになる前から持ち続けている明確な意志です。

一方で、クラウドの中の方含めいろいろな方とお話する中で、関わりたい事業領域はかなり限られていることに気づきました。特に、あらゆる人生にとってクリティカルな健康・医療領域です。歳を重ねるにつれて自身や家族の健康・医療に対する関心は高まり、コロナの猛威が世界の人々に与えた影響の甚大さが拍車をかけました。

新たな闘争の場としてのUbie

健康・医療といっても、エンジニアとしてどのような関わり方ができるのでしょうか。事業ドメインの土地勘があまりなかったので、以前GCP関連で助けてもらったUbie SREの@sakajunqualityMeetyで話を聞いてみることにしました。

システム的には馴染み深いもので、プラットフォームエンジニアとして貢献できることがありそうでした。他にも、@nantani4にシンガポール事業の話を聞いたり、元同僚の@syu_creamに組織・文化について聞いたり、@empitsu88に学業との両立について聞いたりしました。

それと同時に、Ubieの事業・組織関連のnote記事やメンバーによるおびただしい数の入社エントリーを読み漁ったり、共同代表エンジニアの@quvo_ubieによるdevchat.fmを聞いたりしました。

Ubie Discovery カルチャーガイドに明文化された驚くほど鮮明な文化はさることながら、直接聞いた話や情報発信の姿勢そのものに狂気を感じました。

自分もユーザー(患者)として家から触れるサービスであるユビーAI受診相談は、妻の健康に大きな影響を与えました。これまで、「疲労」や「ストレス」に起因するのではないか以上の情報が得られず、ネクストアクションがとれず苦しんでいた症状に関連する病気の名前がわかりました。さらに、直接関係ないと思っていた別の症状とも重なったり、診てくれる近所の病院も提示してくれたりしたため、つぎの一歩を踏み出すことができました。医療機関の外で決まってしまう受診タイミングやマッチングへのアプローチは新鮮でした。

選考過程でも事業について話を聞き、患者のみならず身近な診療所や医療機関、さらには製薬企業も視野に入れて医療の全体最適を実現する構想に興奮を覚えました。

テクノロジーで人々を適切な医療に案内するというミッションを実現するための事業、戦略やそれらを推進するための組織と組織制度4本柱(ホラクラシー、スクラム、OKR、評価制度)は緻密で、みんなでより大きなことを成し遂げられそうです。

実際入社してみて感じたギャップは、想像以上にオンボーディングが手厚かったことくらいです。それだけ一人ひとりが事業の経営者たり、組織を運営し、文化を体現する難易度が高いということでまだまだ修行が必要そうです。しかし、それを乗り越えればもっともっともっと楽しくなる、夢中になるという確信があります。

ホラクラシーの特性上、プラットフォーム作りとそれをユーザーとして利用しプロダクト開発するのを行ったり来たりしやすい点も魅力的です。

まだまだ話は尽きませんが、ご興味を持っていただけた方はぜひMeetyでお話させてください!

そしてオマケの例のリストです!

プラットフォームエンジニア2年目の2021年を振り返ります。2020年にマイクロサービスのプラットフォームの開発・運用に携わり始めてから、丸2年が経過しました。2021年は、本業ではインフラからアプリケーションまで影響範囲の広い大きめのプロジェクトを担当しました。それに加え、複業ではSREに挑戦して修行しました。

2020年

駆け出しプラットフォームエンジニア1年目

2021年

2年目にやったこと

本業では、主につぎのプロジェクトに携わりました。

  • Workload Identity導入・移行
  • CIのセキュリティ強化
  • Cloud SQL IAM database authentication検証
  • GCPとTerraform本配布

Workload Identity導入・移行

クラスタ上のサービスアカウントキーを撲滅すべく、GKEのWorkload Identityを有効化し、クラスタ上の全サービスを移行するプロジェクトです。

Google Cloud Platformで学ぶTerraform 〜実践編〜を書くときに、動作検証やTerraformモジュールのクラスタ側・マイクロサービス側の実装を通じて雰囲気は把握しているつもりでした。しかし、想像よりはるかにいろいろありました。

テストクラスタ上のテンプレートマイクロサービスサービスを使った各ユースケースを検証や社内外で仕様・制約調査しながら、移行計画を含むDesign docを書いて議論スタートです。クラスタ上のほとんどのサービスがGCPにアクセスするため、移行の対象範囲はほぼ全マイクロサービスです。アクセスするにあたってApplication default credentials(ADC)を適切に利用しているかを確認するため、Sourcegraphを利用し、数百マイクロサービス分のKuberetesのマニフェストとアプリケーションの実装内容の調査を進めました。その中で、サービスアカウントキーをADC外で活用して署名しているユースケースがいくつか見つかったため、ライブラリを管理しているチームに更新を依頼したり、アプリケーションの実装の変更手順をドキュメント化したりして移行に備えました。

導入を開始するにあたっては、各組織のエンジニア向けの全体集会で背景などをプレゼンしたり、ドキュメントを整備したりしました。初期段階で移行してくれる参加チームを募り、ベータリリースステータスでフィードバックを集め、Terraformの実装、ドキュメントなどに反映します。GAさせた後は、移行に必要な作業の重さでグループ分けをして期限を定め、移行サポート専用のSlackチャンネルでサポートしながら進めていきました。

今回の導入・移行は、一括で一様に設定変更のPRを大量に作成して完結するものでなく、ほとんどのチームの多大な協力を必要としました。すでに社内で構築された仕組みで効率よく調査できた部分や、現在進行系で整備されてるしくみで今後より低コストで移行できるようになっていきそうな部分もあります。今後もプラットフォーム全体に影響ある機能の導入やそのための移行をすることはあるので、移行しやすさや技術選定が可逆的か不可逆的かなどを意識してやっていこうと思います。

CIのセキュリティ強化

これも移行を伴うものです。従来のものを検討漏れなく段階的に廃止していく難しさや、(やりづらくても)問題発生時の切り戻しをいかに実現性高く準備すべきか、できる限りの移行自動化などに学びがありました。

Cloud SQL IAM authentication検証

Cloud SQL IAM データベース認証の検証と導入手順のドキュメント準備を行いました。比較的新しい機能において、どのスコープで導入すべきか、導入と見送りに線を引く基準はなにか、見送るにしてもどういう条件が揃えば導入したいか、そのロードマップ(揃わなかった条件はいつか満たされるのか)の情報をどう得るかというところに学びがありました。

GCPとTerraform本配布

開発者がマイクロサービスを開発するにあたり、多くの必要なリソースはTerraformモジュールで作成されます。しかし、各チーム固有のリソースは書いてもらわないといけないため、それを少しでも楽にしてもらうべく2020年に2冊の本を書きました。

私がマイクロサービス開発をし始めたとき、Terraformのplanの見方や書き方がよくわからなかったり、Terraformの本はたいていAWSベースで書かれていたりで、GCPもそれほど詳しくない中キャッチアップしづらいという問題意識がありました。それを踏まえて書いたので、社内のオンボーディング資料にすべく配布しました。効果はある程度測定したかったのでGoogleフォームで申し込みをしてもらったところ、述べ130人弱のメンバーに受け取ってもらえました。

チームメンバーから「なんとなく触ってた会社のTerraform moduleがちゃんとわかるようになった。CIが出してくれる反映差分もできるようになった」というおすすめを頂いて、読んでみたいと思いました。

というメッセージ付きで申し込んでくださった方もいて、書いてよかった、配ってよかったなぁと思います。業務経験は最大限活かしつつも、外に出せる程度に簡略化・抽象化して書いたので、今後も活用していきます。

複業

2021年は「旗を立てる」をキーワードに複業に取り組みました。

旗を立てる2021年

エンジニアとしてのキャリアの中では、開発基盤やインフラに携わった期間は相対的に短めです。闘い抜く技術力を高めるためにも、本業以外でもそれらの業務に携わりたいと考えるようになりました。技術発信やその他の研鑽ではなく、業務という形式にこだわったのは、座学に偏りがちな私自身の性格を踏まえてのことです。

具体的には、2組織でつぎの業務に携わりました。

  • kustomizeの導入
  • kubernetes-external-secretsの導入
  • インフラの防災訓練
  • マイクロサービス化検討サポート
  • gRPCのprotoと生成コード管理基盤整備
  • マイクロサービスとインフラ課題整理とOKR決め
  • オブザーバビリティ整備
  • セキュリティ脆弱性対応

詳細はOffersMagazineに寄稿する形でまとめています。

複業SREとして広げる課題解決の幅と深さ。期待値以上の成果を上げるまでに何をしたか

業務時間の大半を過ごす組織への貢献最大化を主眼に置きつつも、組織に依存しない形で自分が何者かを定義し、目指す方向に歩みを進めていくことのよさを感じた1年でした。

キャッチアップとアウトプット

業務とは別に、プライベートOKRで四半期毎に身につけたいことを決めて取り組みました。キャッチアップすべきことは無限にあるので、「この四半期はこれ以外はやらない」をはっきりさせる意味合いが強いです。

OKRは、各記事でなぜそれが達成したいのかや、どの程度達成したのかなどの振り返りと合わせてまとめています。

2021年は、大学院でコンピューターサイエンスを学ぶための出願準備が多めでした。noteで振り返ったり、計画を立てたりしながら進めています。

出願の動機(本音)は、「もしいま働かなくてもいいとしたら、コンピューターサイエンスをしっかり勉強してみたい」です。しかし、いざ履修したい科目を挙げていくと、現在のプラットフォームエンジニアリングに深く関わる分散システムの理論と実装、クラウドコンピューティングの実装、OS、コンパイラなど、低レイヤーの理解を一歩深めるものが多かったです。OKRで目標に据えるのはもちろん、プラットフォームエンジニアのキャリア上も重要なものとして位置づけていくことになるでしょう。

資格

2021年は1つだけ取得しました。

GCPのネットワークとセキュリティは、資格も活用して体系的に論点をおさえておきたいと思っています。

執筆

年末にGoの本が技術評論社さんから出版されました。

自分が担当した分については、以前ソフトウェアデザインに寄稿したものを更新したのみです。技術書典でも新刊を出せないのが続いており、少しさびしいです。

技術書

チームの人のおすすめリスト(2021年2020年)を読んだりしながら、自分なりに読書リストを作って進めています。意識的にOKRに関連させるようにもしています。これら以外は読まないというわけでもないですが、読むのが速くないので特に大事なものに絞る必要があります。

Platform Engineerへの闘争🐸

リストの中で読み終わった本。

登壇

Open Policy Agent Rego Knowledge Sharing Meetupで久々に登壇しました。

2022年

2022年は、Ubieという会社にSREとして転職します。インフラまわりの技術スタックで共通していることもあれば、SREとプラットフォームチームの役割分担、組織(事業特性)毎にSREが別、プラットフォームチームが領域毎に別だったなど、メルカリの組織と性質・フェーズが異なるので、より広い役割が求められるでしょう。これまで経験のないことも、素早くキャッチアップして貢献していこうと思います。

四半期ごとの個人OKR振り返りです。

2021年10〜12月は、プラットフォームインフラ未学習分野の底上げとベストプラクティスの実装修行に取り組むという内容でした。

振り返り対象のOKRは2021年7〜9月ふりかえりと10〜12月OKR 〜ネットワークとマイクロサービス化〜で立てています。

OKRの振り返り

Objective 1: プラットフォームインフラ未学習分野の底上げとベストプラクティスの実装修行

Key Result 1 【できた】

Kubernetesのセキュリティまわりの業務比率高めなので概観する。

合格しました。

最初に受けた試験では試験官へのデスクトップシェアが機能せず、指示のままにブラウザの再設定やPCの再起動をしたら試験環境にアクセスできなくなりました。別日程で再予約するなど、時間消費が厳しかったです。

試験の準備は、UdemyのKubernetes CKS 2021 Complete Course - Theory - Practice
を見てから、KodeCloudのCKSコースで練習しました。

aquasecurity/trivyをたくさん実行した結果、実行しないといけなくなってしまったタイミングでシュッと実行できてよかったです。

Key Result 2 【できなかった】

ネットワーク関連の話題が頭に残るようになってきたので、GCP上でのネットワーク関連実務とアプリケーションレイヤーでの見え方を意識しつつ概観する。

基礎からわかるTCP/IPネットワークコンピューティング入門を読むだけで終わりました。Google Cloud Certified Professional Cloud Network Engineer Guideの発売日が2022年に延期になったのもありますが、KR3関連で空前絶後のチャンスが訪れたため、そちらに振り切ることにしました。

大学院の授業でネットワーク関連のものを履修する予定があるので、関連付けられるものはそのタイミングでやろうと思います。

Key Result 3 【微妙】

組織としての知見はあるが、自身の経験が薄い部分のチャンスをものにする。

OKRを立てた時点では、複業でマイクロサービス化支援に携われるかどうかわからない状態でした。しかし、想像以上に広いスコープでプロジェクトを任せていただいたので、モノリスからマイクロサービスへも読みつつ、マイクロサービス基盤立ち上げに全集中しました。その結果、技術書典12にサークル申し込みしたものの進捗ゼロです(KR3の自己評価を【微妙】にした理由)。

SHEさんでの複業SREの取り組みは、SHEさんの業務に携わるきっかけとなったOffersさんのOffersMagagineに寄稿する形でまとめています。

年初に立てた今年1年の目標の振り返りそのものにもなっています。
https://toshi0607.com/general/start-parallel-works-in-2021/

四半期のプライベートOKRエンジニアとして目指す方向性と別に1年単位のテーマを持つことで、期待を遥かに上回るよい機会や出会いに恵まれました。2022年からは大学院の授業もはじまり、またこれまでとは異なるあり方で臨んでいかざるを得なさそうです。その中でも、業務、エンジニアとして目指す方向性、純粋な興味の交点を見つけて爆進できたらなと思っています。

Objective 2: 持続可能な感じの人生にする

Key Result 1 【できた】

旅をする(やってみたいことリストより)

  • ミラコスタ泊まる
  • 石川でのどぐろ食べる
  • ume, yamazoe泊まる

すべて達成できました。特に、ミラコスタに宿泊するのは長年の夢だったので感慨深いです。

お金だけではどうにもならない夢もある一方で、お金(と時間)だけでなんとかなるものは積極的に計画に組み込んでいこうと改めて思いました。

以前作ったワクワクリスト(いつかやってみたいワクワクすることリスト)がなぜかどこかに行ってしまったので改めて作ろうと思います。

Key Result 2 【できた】

ジョギングか散歩の再開

8〜9月頃にバーンアウトっぽい状態になってしまい、けっこう厳しい状態でした。それを踏まえ、産業医面談を受けたりしながら取り組んだもののひとつです。木曜日・日曜日の筋トレは腹筋を割るための取り組み以来ずっと継続しているので、有酸素運動ができて朝日も浴びられるジョギングに火曜日・土曜日の朝に取り組んでいます。

Key Result 3 【微妙】

お楽しみコンテンツ

  • ゼルダの伝説 時のオカリナ
  • ゼルダ無双エキスパンション・パス第二弾
  • 葬送のフリーレン (6)
  • ✅ キングダム(prime video)
  • ✅ 勇者指令ダグオン
  • ✅ 勇者指令ダグオン 水晶の瞳の少年
  • [WIP] 絶対無敵ライジンオー
  • ✅ カードキャプターさくら さくらカード編

アニメはご飯を食べながらでも進んでいきますが、ゲームやマンガはそうはいきません。能動的に楽しむコンテンツに時間を割けない、割く気分にならない、割く気力が起きないのは、他の条件がそろうと燃え尽き状態になるというのは学んだはずです。一方で、サウナや下で書くOKR関連のMeetyのように、カレンダーで枠をおさえた楽しみの時間は相当あったのでよしとしましょう。Objective 1を大事にするのと同じように、Objective 2の枠や「何もしない」枠を明示的におさえるのを来年はより意識できるとよさそうです。

ログ

今QのOKRとしては追ってないものの、記録しておきたいことのコーナーです。

大学院

3〜7月頃にかけてとりくんだ大学院受験の結果が出ました。

「来春」が本当に文字とおり4月頃だと勘違いしていましたが、12月にはオリエンテーションと手続きを済ませ、1月には授業が始まるというスケジュールだったので、OKR観点ではノーマークで大打撃でした。

中学受験にはじまり大学受験、国家公務員試験、新卒就活など、重要な節目で選択したいものの第一候補には力及ばずすべて祈られる人生を歩んできました。結果的に選択した場所でその機会を最大限活かせるよう努力してきたものの、どういう形であれ筆頭候補に無事たどりつけたのは感慨深いです。

受験のまとめや、履修計画はnoteでまとめています。

転職

Ubieでやっていきます!記事は入社後に別途。

OKRを決めた時点では選考中だったので、選考後の過ごし方は考慮しているような、していないようなどっちつかずの状態でした。今回のOKRでは、進学、転職、複業がOKRにおよぼす影響があまりに大きかったので、途中でガッツリ見直せるとよかったのかもしれません。

Meety

前QにはじめたMeetyはトピックのバラエティを広げ、時間を見つけていろいろな方とお話しています。

トピック毎の累計マッチはつぎのとおりです。

個人OKRのトピックについては、Meety後もDMやGoogle docでフィードバックしたり、Google Meetで振り返りの壁打ち相手になったり、もはや趣味です。キャリア壁打ちでは、大学院受験相談が増えています。今後いっそうUbie文脈でお話する機会が増えていくと思いますが、どれもいい感じに続けていけたらと思います。

アニメ・映画

勇者シリーズは昨年2月にリモートが始まった頃に見始めついにすべて見終わり、グリッドマンはオリジナルの原点世代なのでエモすぎて卒倒しました。変形・合体ロボットは昔から変わらず好きです。映画はアイの歌声を聴かせてが特に響きました。とりあえず武功を挙げて中華統一していく予定です。

ソフトウェアデザイン(技術評論社)での連載をもとに、章も増え大幅にパワーアップした本が順次発売されています!最近はメモ程度のものでも技術記事を書いてないので寂しさを感じています。

OKR関連以外で読んだもの

個人OKRサポートのMeetyがコーチングっぽいなと思ったので、読んでみました。普段の業務でマネージャーとの1on1で感じる「これはコーチングの文脈でそうすることがよさそうなので、そういう風に問いかけてくれてるんだろうな」みたいなものもいろいろ書いてありました。tips的なものをそのまま適用しようとは思いませんが、伴走者としてのスタンスなど参考にできるものは取り入れていこうと思います。

新卒営業のときのパワポ作りが苦手過ぎて地獄だったり、視覚的に伝えたいことを表現したり整理したりするのがうまくできません。なにかヒントになることはないかと読んでみました。モノをシンプルに表現するのと、概念を具体化するのとでは差異がありそう(自分の中では区別できてもなかった)なものの、線の引き方にはじまり、点の配置で表現できるバリエーションや、モノとモノの関係の表現など、自分が難しく感じる視覚的表現が小さな構成要素の積み重ねとして鮮やかに説明されていたのが印象的でした。

上記以外では、Audibleを再開しました。1度だけ3ヶ月休会できる制度があったので、それを利用して筋トレ中はPodcastで英語リスニングに全振りしていました。またいろいろな本を聞いてみようと思います。

DIE WITH ZEROにしても、FIREにしても、資産形成どこまでやったら「撤退」して大丈夫なのか決める本として捉えました。インデックス投資なりなんなりで資産を積み上げていくことに躍起になることもあるとして、生涯それは必要なのか?もしフルタイム労働が好きでなく無理に取り組んでいる場合、どこまでがんばればいいのか?それを考えるために、どの程度貯まれば労働を減らすなり、完全に資産運用に委ねるなりできるのかを仮定を置きながら具体的に計算するという考えは持ち合わせていませんでした。FIREは、もっと極端に一発当てて完全仕事放棄みたいな話かと思っていましたが、意外と堅実な話でした。

宗教の考えに触れつつ、心の平安にプラスなマインドセットなり行動習慣なりを持つという類書との顕著な差異は見いだせませんでした。

英語

前Qから継続しています。大学院の授業の効率を考えると、今後もリスニング重視で鍛えていきたいです。

  • ELSA Speak: 発音矯正自体よりも、正しい発音を知り耳をよくする
  • Mikan: TOEFL 3800英単語を朝・夜に100単語ずつ復習継続
  • Podcast: Scientific AmericanのシャドーイングとNHK Worldを寝る前に聴く

サウナ

Meetyのトピックにもあるように、足立区に引っ越したのは上野、草加、錦糸町、入谷、三ノ輪、両国すべての名サウナに30分以内でアクセスできるからです。今四半期は、有給消化も活用して積極的に普段と異なるサウナに足を運びました。

  • 草加健康センター
  • サウナセンター
  • 舞浜ユーラシア
  • サウナ・アダムアンドイブ
  • ホテルゆ華
  • 金春湯
  • SaunaLab Nagoya
  • ume, yamazoe
  • THE SPA 西新井
  • サウナ&カプセルホテル 北欧

今年も一年間毎週(だいたい)月曜日の夜はサウナで過ごしました。大学院の志望理由書の内容の大半をひねり出したのもサウナです。スマホもパソコンも思考の中断もない時間を大事に、来年もまた歩んでいこうと思います。

今後の話

転職と大学院の授業の最初の授業が重なる2022年1〜3月は、生きるだけで精一杯かもしれません。そのため、Objective 1は端的に言うと「生きる」です。

Objective 1

本業における事業価値の最大化を中心に据え、学業、複業がよいバランスで継続的によい影響を与え合うあり方を見つける。KRでは、本業と複業の業務OKRや大学院の成績基準を満たすのに必要な補助的内容を便宜的におく。

KR1 データベース理解の見取り図をつくる

Cloud Spannerで戦っていける体になりたいです。マイクロサービスの開発・運用で利用していたものの、そもそもデータベース概論から弱いので、足腰鍛えます。

KR2 マイクロサービスのオブザーバビリティの見取り図をつくる

マイクロサービス基盤開発において、2022年1〜3月はマイクロサービスの死活監視の概要がわかるダッシュボードと、開発・運用のためのログ、トレーシング、(メトリクス、)エラーレポートが関連付けられている状態にします。その前提として、オブザーバビリティ関連の代表的論点を整理し、ロードマップをつくり、今回の取り組みの位置づけやつぎに取り組むべき内容を提示できる状態にします。(複業自体のOKRを優先し、無理そうならそちらに集中する)

KR3 大学院授業の週・月次の学習サイクルをつくり、主要な授業に備える

  • CS 6310の履修登録に成功する
  • OSまわりの授業の前提条件を調べ、不足を補う計画を立てる
  • 春・夏学期の履修登録に成功する

1/6から履修登録、1/10から最初の授業がはじまります。

Georgia Tech OMSCSの入学準備と履修計画

最初はCS 6310: Software Architecture and Designを履修予定です。春学期は5/7まで続くため、この四半期では1学期まるっと経験することはできません。一方で、3月末に夏・秋学期の履修登録期間がはじまるため、済ませておきたい下調べや早い者勝ちの部分はきっちりおさえたいです。

Objective 2

壊れない。目下最大の健康リスクに対処しつつ、よい人生を歩んでいきます。

KR1: ワクワクリスト

以前作成したものがなぜかなくなったので、再度まとめて目に見えるところにおいておきます。今QのO2 KR1のミラコスタと石川ののどぐろは、このワクワクリストからOKRに引っ張ってきたものです。達成することで生の実感を得ることができました。いつかやってみたいと思ったことでも忙殺されると自分の人生の外においてしまうし、それをやるタイミングが勝手にやって来るものでもありません。流れに委ねるべきは委ねつつも、可視化し、意識して組み込むのも継続してやっていこうと思います。

KR2: お金周りを整理する

  • iDeCo手続きする
  • NISA手続きする
  • 使ってないクレカ解約
  • 確定申告

持株会制度がなくなるのと、新卒の会社の企業年金をiDeCoに移さずここまできてしまった(!)ので手続きします。個別株積立投資と投信は続けているものの、NISAはノータッチなので、もしiDeCoと合わせていい感じに手続きできたらやってしまいます。また、いろいろなサービスの料金プランの見直しや解約を進めているのでその続きをします。

KR3: 目か頭痛どうにかする

  • 相談先探す
  • 目のメンテする

現在一日の生産性を圧倒的に下げる三大要因が花粉症、頭痛、眼精疲労(?)です。花粉症については、今Qに舌下免疫療法(アレルゲン免疫療法のひとつ)に取り組みはじめました。3〜5年かかりそうなので、病院とオンライン診療を併用しつつ様子を見ていきます。頭痛については、気圧が上がるときも下がるときも年々厳しくなっているので、緩和させるもしくは快方に向かわせる一手を打ちたいです。乱視や近視と左右の大きな視力差に起因する目周辺の不快感や頭痛もけっこうしんどいです。

頭痛と眼精疲労は相互に影響している部分もそうでない部分もありそうなので、どこにどういう形で相談すると全体として前進するか調べ、日常生活への影響を考慮し着手できる緩和策に着手します。

四半期ごとの個人OKR振り返りです。

2021年7〜9月は、ジョージア工科大学大学院のコンピューターサイエンスコースの出願期限が伸びたのを受け、後悔ない状態で出願するのが目標でした。

振り返り対象の個人OKRはこの記事2021年4〜6月ふりかえりと7〜9月OKR 〜大学院出願2と夏休み〜で立てています。

OKRの振り返り

Objective Georgia Tech OMSCSに出願する

Key Result 1 【できた】

Build a Modern Computer from First Principles: Nand to Tetrisの修了

それぞれ無事終了しました。

Part 1では論理ゲートにはじまり、加算器、ALU、RAM、CPUを作り、Part 2ではJavaをめちゃくちゃ簡略化した言語Jackを題材に、それをVMコードに変換するcompiler、VMコードをアセンブリ言語に変換するVM translator、JackでOS機能をいじるライブラリを書くという内容を扱っていました。Jackでミニゲームを開発するのも含まれていて、入門にはうってつけでした。

この本の翻訳元がテキスト(授業も作者同じ)なのでご存じの方も多いかもしれません。

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

積んでいるこっちもやろうと思います。

Go言語でつくるインタプリタ

Key Result 2 【できた】

出願書類を仕上げる

締切の8/10よりも少し早めの7/24に出願を終えました。

合否結果はメールで10/15までに順次届くそうです。ただ、当初8/31までに開始される予定だったのが9/22に延期(実際にはじまったのは9/16)されたり、Redditを眺める限りけっこうな割合が待ってそうです。受かったらめでたいし、だめならCSのオンライン授業を積みまして3月に再挑戦するだけなので、気にしすぎず気長に待つことにします。

ログ

OKRとしては追ってないものの、記録しておきたいことのコーナーです。

ゲーム

ゼルダのスカイウォードソードを終えました。ブレスオブザワイルドからゼルダをはじめた勢としてどんな感じになるかなぁ…と思っていましたが、ゼルダシリーズの系譜の原点としてクリアしたら寂しくなる程度に楽しかったです。マスターソードとの出会い特によかった。

新刊発売が楽しみな本が増えて本当によかったです。

何書いてるかさっぱりわかりませんでした。

Twitter的なフィードやWebクローラー、チャットなどの典型的なシステムを要件に合わせいかにスケールするように設計するべきかを学べる本。典型チューニンポイントや代表的アルゴリズム、事例文献へリンクも豊富でかなり面白かったです。具体的なクラウド、言語、ライブラリなどでどう実現できるかを考えるとなお面白いです。

Linuxの基礎があるか?と言われてLinuxの基礎がなにかわからなかったので読んで見ました。自分の「シェルスクリプトが書けない」は個々のコマンドもそうですが、Linuxの基礎を学んだことがないというのも多く含んでいることがわかったのでよかったです。

「ネットワーク系をがっつり見ているわけではないが、インフラを見る上でネットワークは不可避。しかし、目の前の小さなタスク単体ではなかなか知識・経験が積み重なっていく感じがしない」という問題意識があり入門することにしました。体系的、分量少なめ、図多めはなかなかなじめない分野にうってつけでした。

LinuxのNetwork NamespaceをつかってTCP/IPを学ぶというコンセプトでめちゃくちゃよかったです。OSI参照モデルやTCP/IPの図で各層の役割を説明されるだけでははかなか頭に残りませんでしたが、ip、tcpdump、iptables、ping、dig、ncなどを叩きながら説明されるとだいぶ実感がわきました。

Audibleでどこまで洋技術書頭に残るか試しています。

みんなやっとるな!

初版との差分のみ読みました。

アニメ

リモートワークになってから幼稚園ぶりにみはじめた勇者シリーズも、残すところ勇者指令ダグオンのみになりました。中でも一番好きだったマイトガインは、変形・合体ロボット好きの原点なので心揺さぶられるものがあります。中古DVDも高騰している作品しか残っていなかったり、prime videoにない作品が見たかったりでバンダイチャンネルを契約しました。

雑談1on1

楽しかったので継続したいです。

これまで取り組んだ個人OKR一覧とMeetyでの1on1

あまり肩肘はりたくないものの、コーチング系の本を読んだらどうなるか試してみたいです。

新 コーチングが人を活かす

大学院やサウナなど、順次トピックを増やしていこうと思っています。

英語

短期戦モード(TOEFLで大学院出願に必要なスコアを確保する)から長期戦モードになったので、1日にやることを決めて継続しています。

  • ELSA Speak: 発音矯正自体よりも、正しい発音を知り耳をよくする
  • Mikan: TOEFL 3800英単語を朝・夜に100単語ずつ復習継続
  • Podcast: Scientific AmericanのシャドーイングとNHK Worldを寝る前に聴く

アクティビティ

精神的にけっこう参ってしまったので、2回目のワクチンを終えてしばらくから自然に触れるようにしてました。あとマリトッツォけっこう食べました。

今後の話

Objective 1

プラットフォームインフラ未学習分野の底上げとベストプラクティスの実装修行

KR2を重視し、KR3は次四半期も継続する前提。

Key Result 1

Kubernetesのセキュリティまわりの業務比率高めなので概観する。

昨年買ったCKSの受験期限が12月上旬というのが大きいです。

Key Result 2

ネットワーク関連の話題が頭に残るようになってきたので、GCP上でのネットワーク関連実務とアプリケーションレイヤーでの見え方を意識しつつ概観する。

Key Result 3

組織としての知見はあるが、自身の経験が薄い部分のチャンスをものにする。

  • 技術書典12(2022年1月22〜30日)の新刊章立て、検証(Cloud Run + マイクロサービス)

Objective 2

持続可能な感じの人生にする

Key Result 1

旅をする(やってみたいことリストより)

  • ミラコスタ泊まる
  • 石川でのどぐろ食べる
  • ume, yamazoe泊まる

ミラコスタは1つの夢なので、お金払って叶う夢は時期を定めて叶えていきたいです。

石川はふるさと納税の宿の期限を1年伸ばしてもらっているのでそろそろいこうと思います。

ume, yamazoeはクラウドファンディングのチケットの期限切れてる気がするけれど果たして…

Key Result 2

ジョギングか散歩の再開

有酸素運動の習慣がないと厳しそうです。

Key Result 3

お楽しみコンテンツ

ゼルダ35周年ということでマリオの3Dコレクションのように、過去3作品コレクションがSwitchで出ると思っていました。なんとそうではなく、Switchオンラインで64系ソフトも楽しめるようになるとのことで課金していこうと思います。ムジュラの仮面も追加されるとのこと。僕は64買ってもらえなかった勢なので思い入れはないですが、ゼルダファンの時のオカリナとムジュラの仮面への強い思いはひしひしと感じるのでとても楽しみです。

四半期ごとの個人OKR振り返りです。

2021年4〜6月は、ジョージア工科大学大学院のコンピューターサイエンスコースに出願するのが唯一の目標でした。

振り返り対象の個人OKRはこの記事2021年1〜3月ふりかえりと4〜6月OKR 〜大学院出願夏の陣〜で立てています。

OKRの振り返り

Objective Georgia Tech OMSCSに出願する

Key Result 1 【できた】

TOEFL 100点

  • 5月 90点
  • 6月 100点

「できた」に矛盾するようですが、5月に94点をとってから6月にもう一度受けたものの振るわず。そこから再度受験して100点超えを目指すのはいったんなしにしました。

調べるかぎり90点台で受かるのと、KR3(コンピューターサイエンス系のコースを修了する)を当初設定した目標より積みましたほうがよさそうだったので、そちらに時間を割きました。

ただ、出願準備文脈でなんとかなったにしても、英語力自体の向上は働く上でも気持ち的にもいろいろ思うところがあります。TOEFLの試験は長くつらいので二度と受けたくはないですが、やるならやるで100点以上とってからやめたいです。折に触れて個人OKRに盛り込んだり、試験勉強をやめても続けていることがあるので、より細かい話はnoteに書いたりすると思います。

Key Result 2 【できた】

出願書類の準備

  • 4月
    • 履歴書
    • 志望理由書初稿
    • 推薦書依頼
    • 成績・卒業証明書申請
  • 5月
    • 履歴書ブラッシュアップ
    • 志望理由書ブラッシュアップ
  • 6月 資格系入力

出願書類をひととおり準備したり、推薦状を依頼したりしました。

志望理由書と履歴に関する文書(Personal statement、Background essay)は、ひととおり書いてから添削サービスに出しました。Grammarlyなどのツールである程度直してから出してもそこそこ直されるし、変更すべき理由もちゃんと書かれていてよかったです。ただ、事実の伝わり方はそこまで変わらないように感じます。それでも添削サービスを利用したモチベーションは、受験プロセスでとれるオプションをとってみる、きっと将来MBAもとる!とか言い出すと思うのでどこまで期待できるものか見ておくくらいの位置づけでした。Background essayと別に提出するレジュメは、内容を入力すると適当に体裁を整えられるWebサービスを活用しました。

出願に必要なGPAは3(推奨3.2)とそこまで高くないし、日本の大学で+-のない成績だとWESなどの評価機関を経てだいたいは上がると思います。どの程度上がるか試すべくWESのツールを使ってみたら壊れてる(意図的かも)し、問い合わせの返答が究極に鬱陶しかったので、換算はせず大学から取り寄せた成績・卒業証明書をそのまま提出することにしました。

推薦状はこれまでにお世話になった/なっている3人のマネージャーに依頼しました。快く引き受けていただいて感謝しかないです。

書類系の準備過程の詳細は、ひと段落してからnoteに書くと思います。

Key Result 3 【できた】

Data Structures and Algorithms

4つあるうちの3つまで終わらせられたらいいなと思っていましたが、終わらせないとヤバそうだったので全部終わらせました。4/16にGeorgia techから、上記コースとプログラミング系の2コースを終わらせたら学部相当のCSの基本知識があるとみなす旨が明言されたためです。

Georgia TechのOMSCSは、オンキャンパスでのコースと異なり、すべてオンラインで実施されるため他の大学院のコースでは考えられないような高い合格率で寛大に生徒を受け入れています。しかし、それは学部でCSを修めた人に対する話です。IT、システム、数学など関連するような学部でなければ、職業経験やCS授業(大学の授業 > 越えられない壁 > オンラインのコース)の履修状況に鑑み個別に判断されます。そのため、CS学部卒でない人はコミュニティカレッジ(OaktonFoothillなど)やブリッジプログラム(NYUなど)に通った上で単位を取得し、授業を担当してもらった教授に推薦状をもらうのが王道とされてきました(主観)。ただ、地理的・金銭的・時間的に厳しい人も多く、有名なCouerseraのコースでなんとかする迂回策(けっこう不安)で凌ぐのもよくある作戦でした(主観)。この状況に一石を投じたのが前述の発表です。3コースすべて終えたら受かるというものではないものの、終わらせるのに越したことはないでしょう。

プログラミング系のコースは、別大学のコースでPythonとJavaを含むものを3月に受講していたので、Data Structures and Algorithmsを最優先に取り組みました。

そして6月にまだ進められそうだったので、離散数学のコースも終えました。

当初は7/1出願締切の前提で進めていましたが、今年から8/10締切に変更があったのと、Data Structures and Algorithmsも思ったより早く終わったのでさらに受講することにしました。

3コースが明言される前に、CS基礎で受講すべきものとして挙がっていたのはつぎの科目です。

  • Discrete math
  • Linear algebra
  • Calculus
  • Programming (Object-oriented, Java, Python)
  • Data structures & Algorithms
  • Computer Organization

これらのうち、数学系は線形代数と微積は大学で必修だった(かつ良い成績でもなかった)ため、いま足すなら離散数学だろうという判断です。7月いっぱいかける予定がこれも6月中に終わったので、出願までに残りのComputer Organization関連のコースを受講しようと思います。

そういうわけで、例年通りなら出願し終わっているはずが、出願締切が変わったので8/10までは引き続き受験生です。

最近は落ち着いてきましたが、TOEFLの勉強中やData Structures and Algorithmsを受けきるまでは、それなりのプレッシャーがあり体力的にも精神的にかなりもきびしかったです。しかし、喉元を過ぎてしまったのでだいたいしんどさは忘れました。

現在の準備状況で出願しても悔いはない程度に準備はしたので、残り期間は授業を楽しみつつ進められたらなと思います。

今後の話

残りのCS授業を進めて出願を完了し、あとは夏休みします。

Objective Georgia Tech OMSCSに出願する

Key Result 1

Build a Modern Computer from First Principles: Nand to Tetrisの修了

Computer Organization系の位置づけにぴったりな、論理ゲートにはじまりひととおり機能するコンピューターを作ろうというコースです。出願までにPart1 (ハードウェア編)を終わらせ、仮想マシン、コンパイラー、OSなどの入門としてそのままPart2 (ソフトウェア編)を受講しようと思います。

https://www.coursera.org/lecture/build-a-computer/unit-0-2-from-nand-to-hack-Y1MVe

Key Result 2

出願書類を仕上げる

書類自体は直したい部分はないものの、入力したもののうち各資格や勤務先の説明など、少し丁寧にしておきたいところがあります。それらを書き直して提出!

合格発表は8月中旬から9月下旬にかけて審査が終わった順です。

その他

出願後はKR1の続きをしつつ、ちょっと休もうかなと思います。CKS、英語、複業に戻る、喉の治療、ピアノなど集中して取り組みたいことはあるものの、仕込みにとどめます。ゼルダのスカイウォードソードも楽しみです。

出願が終わる頃には2回目のワクチン+2週間も終えることになるので、ちょっとした旅行もいいかもしれません。