2023年は、これからまさにプラットフォームエンジニアリングを行っていく組織にICとして転職し、プラットフォーム立ち上げの様々な課題に立ち向かいました。

メンバー構成やプロジェクトのフェーズ、解決すべき課題を踏まえて大きく立ち回りを変えているのでずっとプラットフォームエンジニアリングにICとして取り組んでいたわけではありません。それでも昨年末に掲げた「ワシ(自分が一定以上貢献したと自分で感じられる限りワシら)が育てたと思えるものが一昨年以上に大きくなっていること」を達成できた1年でした。

過去分

2023年

4年目にやったこと

4年目は以下のような活動に取り組みました。コンテキストがあってはじめてつながる話なので、ちぐはぐに感じる部分もあるかもしれません。今はまだコンテキストを語るタイミングではないので、場を改めてそのあたりのお話や体外的な発信をしていけたらと思います。

  • 一人目プラットフォームエンジニアとしての活動
  • アーキテクトとしての意思決定
  • 基盤プロジェクトのマネジメント
  • Goバックエンドサービスの技術選定とテンプレート実装
  • アプリケーションリポジトリのCI
  • KubernetesリソースのCD
  • proto管理

一人目プラットフォームエンジニアとしての活動

アーキテクトと兼務しながら一人目のプラットフォームエンジニアとして活動を始めました。

最初の1週間で行ったのはプラットフォームエンジニアリングを行うチームのビジョン・ミッション・バリューのドキュメント化です。アプリケーションプラットフォームの必要性が高まっていた時期に入社したこともあり、その背景となる課題感が書かれたドキュメント、それまでのエンジニアリング観点の振り返り、取り組むプロジェクトの1〜2年のイメージを共有してもらった上で、目指したいプラットフォームを定義しました。プラットフォームエンジニアリングと関連の深い既存の取り組みやチーム、スコープとなるシステムコンポーネントも合わせて整理しています。1年後に目指したい状態という別ドキュメントで、より詳細なロードマップを描いています。

プラットフォーム構築に向けて動き始めたものの、歴史的経緯を踏まえて生み出そうとしていたdedicated SREとの棲み分けや、embedded SREやイネーブルメント機能をもつ役割との分担はプロジェクトを進める中でまだやるべきでないと感じました。そのため、現状プラットフォームとそれらの枠割を分けずにアプリケーションが動く基盤を作る部分にフォーカスしています。コンポーネントにもよりますが、開発者の生産性が上がるようなインフラが抽象化されたプラットフォームにはなっていません。一通り開発フローを通してから、理想像への方向性の組織的な合意や文化形成をやりながら、課題感が大きい部分の優先度付をした上で開発体験を上げていきたいと考えています。

基盤プロジェクトのマネジメント

プラットフォームエンジニアリングを推進するICとして活動をはじめたものの、メンバー構成やプロジェクトの状況を踏まえ、インフラ構築含めたプロジェクトマネジメントのロールに費やす比率が大きくなりました。プロジェクト全体のマイルストーンを踏まえ、直近数ヶ月のフォーカス整理、メンバーのアサイン、各アプリケーション開発チームなどステークホルダーとの調整、横断的な課題解決など、プラットフォームのコンポーネント実装と並行してプロジェクトを推進しています。ピープルマネジメントはやっていません。

プロジェクトのリードのロールを担う上で、プロジェクトマネジメント的性質をもつのはよくあることと思いますが、よくあるプロジェクトマネジメントとプロダクトマネジメントの違いとして挙げられる「プロジェクトがQCDを考慮していかに終わらせるものであるかに対し、プロダクトマネジメントは継続的によくするものである」というのを強く感じた1年でした。もちろんプロダクトマネジメントもQCDは意識しますし、プロジェクトマネジメントも継続的な改善はするのでしょう。しかし、思考の性質として収束と発散は相容れず、プロジェクト思考が強いとロードマップを描いて発展させていく心境にはなりづらいです。今年はプロジェクトマネジメントにより重きを置いていこうと思います。

SREやインフラの道を歩んできたわけではないので、インフラ構築に重きを置くフェーズでリードしづらいという課題感もあります。まわりのメンバーの力を最大限借りて日々生きています。何かしらの課題は究極的には腕力で何とかできる状態でありたいですが、課題へのアプローチはhowの可能性を提示する、明らかに異なる可能性を閉じる、寝かせるべき課題だと意思決定する、詳しい人に巡り合わせる、期間を調整する、他の負荷を減らす、アサインを調整するなどいろいろとあるので、課題解決を前進させるためのアクションをとれるリードであろうと思います。

アーキテクトとしての意思決定

プロジェクトの技術的意思決定を行うアーキテクトを兼務しています。インフラやアプリケーションプラットフォームに閉じずに議論し、design doc、decision record、ガイドラインを書いたり、レビューしたり、実装したりしています。やりたかった仕事のひとつなのでやりがいはあるものの、力不足は否めません。現在は立場上、特にインフラ(とスキーマ、Goのテンプレートやミドルウェアなどインフラとアプリケーションの接点)観点でよりよい意思決定ができるよう意見する必要があると思っています。意思決定技術要素すべてにハンズオンでの経験がある状態を目指すのは難しいにしても、議論する上で決定を後押しするか待ったをかけるかはできるように、意思決定の汎用作法を身につける(可逆・不可逆意思決定かどうかの判断、情報の前提をそろえるなど)、ソフトウェアエンジニアリングやコンピュータサイエンスの常識・論点のカバレッジを高める、特定要素の解像度を高めるのをやっていきます。コンポーネントレベルの解像度を上げるにあたっては、大体頭に入っていて即座に議論できるもの、コードや設定を見たり調べればわかるもの、設計ドキュメントを見ても基礎がなっておらずよくわからないものを分けるところから取り組む必要があります。

Goバックエンドサービスの技術選定とテンプレート実装

バックエンドのサーバーをGoで書き始めるということで、DBアクセスのあるサーバーを書くにあたり必要な各種ライブラリの選定、テンプレート実装、ローカル開発のためのMakefile、CIを準備しました。connectrpc/connect-gosqlc-dev/sqlcmatryer/moqの導入が特徴的です。ライブラリの好みは個人それぞれだとは思いますが、ある程度公式やGoogleが出しているガイドやコミュニティで一般的なものも念頭にときながら、組織がおかれたエンジニアリング・ビジネス状況やアーキテクチャを踏まえてpros/consを比較し妥当な落し所を見つけるのがアーキテクトの醍醐味と感じる場面がありました。これもコンテキストなしには語りづらい部分と思います。

バックエンドエンジニアとしてGoの経験があったので取り組んだものの、アーキテクトとしてなのか、プラットフォームエンジニアとしてなのか、まわりから見たらどういう位置づけで準備されたかわかりづらいものだったのかなと思います。個別のサービスでないテンプレートやミドルウェアはプラットフォーム的なチームが継続的にメンテできるとよいですが、インフラとしてのアプリケーションプラットフォームにかなりのパワーが必要な中でどう関わっていくかは悩みどころです。

Proto管理

サービス間通信にConnect(フロント -> バックエンド)とgRPC(バックエンド)を採用したので、protoファイルや生成コードを管理するしくみ、CI、ガイドラインを整備しました。生成コード管理にはBuf Schema Registry(BSR、Proプラン)を採用し、CIはBuf CLIを主軸に構築しています。続々と機能追加されて便利になっていくBSRの恩恵を受ける一方で、一部の利用言語でbufbuild/protovalidateとBSRのプライベートなインスタンスのかみ合わせがよくないなど、いろいろと踏んでいます。Bufべったりなので、ConnectのCNCF寄贈など、エコシステムの安定化とさらなる発展を祈っています。

アプリケーションリポジトリのCI

歴史的経緯を踏まえ、複数サービスとスキーマをモノレポ管理しています。組織における理想的なリポジトリ構成が見てない中でモノレポ用ツールで最適化するのは時期尚早と判断し、GitHub Actionsのcomposite actionとサービス毎のトリガーファイルで構成しています。サービス追加時に言語を選択することで適切なcomposite actionを利用するトリガー用のworkflowを作成し、サービス固有で必要な処理は各サービスが追加するという立て付けです。サービス数が増えても破綻しない形で、8割のユースケースをカバーする標準と必要に応じてカスタマイズできる状態をシンプルに実現しています。高速化やコスト最適化、セキュリティ観点での改善など、かなり伸びしろがあります。

KubernetesリソースのCD

GKE上で稼働するアプリケーションのデプロイは、GitOpsを徹底すべくArgo CDとArgo CD Image Updaterを採用しました。1サービス内でサーバー以外にも補助的な各種ワーカーを管理したり、ワークロード間の整合性を保った状態でスキーママイグレーションを行ったり、テストや非機能要件に基づいて環境毎に異なるデプロイ戦略をサポートしたりするためにいろいろ工夫して実装しているところです。各サービス要件に応じて柔軟に実装してほしい一方で、コンテナの作成方法など一定の制約を設けないと標準化も難しくなります。柔軟性を認めて生まれる維持コストに見合うメリットが大して得られないこともあるので、「8割のユースケースをカバーする標準と必要に応じてカスタマイズできる状態」を実現するためのさじ加減や制約(妥協)、利用者から見えづらい(見せてはいけない)部分の実装の複雑さとやりきる腕力は、その時点・状況・情報で考えられたベストな設計と時間の経過とともに浮き彫りになる後悔と改善を繰り返して高めていかねばと思います。

複業

学業の負荷増大により、細々と続けていた複業もお休みさせていただいています。お休み前はCloudflare Workersのログ整備などをやっていました。

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

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

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

学業

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

Georgia Tech OMSCS 2年目総括

残り半分、このまま分散システムやコンパイラ、クラウドコンピューティングの内部実装(クラウドという、自分が考える最も価値あるプラットフォームの一つを開発する仕事につながるもの)を学んで深めるもよし、セキュリティを学んでプラットフォームにアドするもよし、NLPやAIなど自分にとって未知の分野で新しい出会いを求めるもよしです。そう書く字面はキラキラしてますが、心身ともにギリギリなのでよい生活習慣、学習スタイルを確立すべくこの一年を過ごします。

資格

ついにCKSも失効し、Kubernetes系、Google Cloud系の資格はすべて失効しました。資格形式でキャッチアップするのが妥当な技術に触れるときは検討します。

執筆

前職の技術ブログを2つ書いたくらいで、ほとんど書いていません。

社内では、design docやdecision recordをたくさん書きました。今年は対外的に発信できることも増えると思います。

技術書

Platform Engineerへの闘争🐸

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

授業で触れる講義・論文や予習用の書物以外の技術書に触れる時間をほとんど確保できていません。それらの情報の咀嚼方法もよくないように感じています。2023年10〜12月ふりかえりと2024年1〜3月OKR 〜諦めよく、よいリズムで生きる〜で1〜3月のOKRに掲げているように学び方を学び直すのもこのタイミングで再投資します。その結果、もう少し流行りや目の前の課題を解決する情報に触れられるようになるとよいですね。

登壇

無登壇。今年はします。

OSS

総括

学業も含め、かなり自分のキャパシティをこえたチャレンジングな一年でした。それでも、特に関心の強いプラットフォームエンジニアリングの分野で、様々な困難を乗り越え自分たちが生み出したと言えるような基盤が動き始めていることは本望です。組織の技術的意思決定を推進するアーキテクトとして、振り返ってみればよりよい選択ができた可能性があるという意味で悔しい思いを繰り返して前進できていることも救いです。各項目で書いているような力不足や開発体験まで手が回っていないことなど課題も多いですが、立場・役割に育てられて得たものも大きいです。

2024年

今年は、プロジェクトを成功させた上で、プラットフォームを利用する社内のエンジニアにとってよい開発体験を持てる状態を目指します。プラットフォームを利用したSoftware Development Life Cycle上の各要素で参照するドキュメントがあり、標準的なサービスは滞りなく開発でき、標準から外れる場合も相談先が明確で、開発上の課題感があってもそれを表明する場があり、課題感の大きいものはおよその改善タイミングがわかるロードマップが示されている状態をもって開発体験がよいとします。

社内的な開発体験向上が最優先ですが、対外的にも胸を張って「これが俺たちのプラットフォームだ」と言っていけるような状態にもしたいです。同じような課題を抱える組織のエンジニアに対しても発信する過程で置かれた状況や課題感を体系的に整理し、フィードバックが得られやすいようにすることで、さらによいプラットフォームに育てていくのが目的です。

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

2023年10〜12月は、唯一の必修に備え、最高の家に一歩踏み出すのをメインテーマに位置づけていました。

振り返り対象のOKRは2023年7〜9月ふりかえりと2023年10〜12月OKR 〜唯一の必修に備え、最高の家に一歩踏み出す〜で設定しています。

OKRの振り返り

Objective 1: 春学期の授業に耐えられる状況をつくる 【微妙】

春学期は唯一全専攻必修のCS6515 Introduction to Graduate Algorithmsを履修予定です。授業のレビューやSlackでのやりとりを見る限り、グループで協力した上で提出する課題が似たような内容でも採点する人による評価のばらつきが大きいようです。受けるための準備をします。

履修した授業数が多いほど履修登録が早めに割り当てられるのですが、秋学期登録時に自分の番がきたときには登録できる状態でした。気を抜くと履修登録できない可能性もありますが、そのときはそのときで別の授業を検討します。

問題解決力を鍛える!アルゴリズムとデータ構造

CS6515は履修登録できませんでした。授業の履修完了数が多いほど履修登録期間が早くなるのですが、自分の番が回ってくる頃にはすでに履修登録待ち行列(履修登録期間中に撤回する人がいれば順番が回ってくるかもしれない)が数百人で、別の科目を登録しました。春学期は卒業タイミングが重なり履修者が増えるのでしょうか。秋学期にとれたらとるか、最終履修科目の場合は優先登録ができるのでそれまで待ちます。

代わりに履修するのはこちらの授業です。

OMSCSでもっともタフな授業のひとつで、かなりの負荷が予想されます。一方で、授業の評価は最も高いので張り切っていこうと思います。現在はこちらの授業の予習中で、授業開始の1/8までできる限り進めようと思います。

Objective 2: 引っ越し準備と学業の両立を模索する 【できた】

土日以外に発生する休日を利用し、時間がかかったり準備が必要なものを進める。

KR1: おおたかの森を歩く 【できた】

引っ越し有力候補なので、歩きにいきます。諸々のタイミングを考えると学生期間中は動きづらいですが、早く場所を決めて一時的に住んでみるなり、家を建てるのを本格準備するなり、進めていきます。

歩いてきました。

夫婦ともにリモート主体の働き方をしているとはいえ、東京へのアクセスは重視したいため流山が引越先最有力候補になりました。歩いた感じの街や人の雰囲気や施設、公園など、申し分ありません。

今住んでいる賃貸の契約期間を考慮して来年か再来年の春までには本格的に移住を進めようと考えていたのですが、ハウスメーカー、営業マン、土地のとても良いめぐり合わせがあり、土地・建物の契約を済ませました。とてもワクワクするライフイベントなので、noteの方で記録を残しながら進めていきたいです。

以下のKRはほぼ備忘です。

KR2: ハロウィンディズニー期間のホーンテッドマンションに行く 【できた】

国民の義務。そしてユーラシアで整う。

義務を果たしました。

KR3: 牡蠣 【できなかった】

行ってみたい

電話予約必須、近くの日付厳しそう、Google Mapの口コミなどでひよりました。また気が向いたら行きます。

KR4: クリスマスランチ 【できた】

ブラッスリーリーヌさんのランチからのクリスマスケーキ受け取りがめちゃくちゃよかったので今年もそうします。その前にクリスマスケーキ予約。

ととのいました。引っ越してもアクセスがよいので通い続けます。

KR5: 金沢準備 【できた】

年始に行くべく調整する

寿司と金沢カレーとプライベートサウナで優勝予定です。

ログ

アニメ・映画

  • 呪術廻戦 懐玉・玉折/渋谷事変
  • るろうに剣心
  • 葬送のフリーレン(途中)
  • 機動戦士ガンダム(途中)
  • Dr. STONE 第3期
  • 薬屋のひとりごと(途中)
  • 天元突破グレンラガン(途中)
  • 機動戦艦ナデシコ(途中)
  • ゴジラ-1.0
  • バーフバリ

ゲーム

新規サウナ

買い物

最強でした!

グルメ

今後の話

2023年はかつてないほど生活に余白がなく、過酷な一年でした。公私共に締め切り事が多く、心身のバランスを崩し気味です。やるべきことを見極める(できる限り減らす)、やるべきことを効率よくやるという観点で思うところがある一方で、最近では入眠時の状況、仕事開始前や仕事・学業外の精神状態の整え方に課題を感じます。

Objective 1: 諦めよく、よいリズムで生きる

Objective 1では、生活習慣を改善します。

KR1: 23:00に仕事を諦める

ポケモンスリープが出た頃は、カビゴンとともに入眠していました。しかし、いつしか「寝かしつけ」後の活動量も増え、一体感が失われました。体力回復のために睡眠量はそこまで削ってないものの、同じ時間寝るなら夜に寝ます。どうしてもその日のうちに解決したいことも多いですが、23:00に翌日のタスク整理をして潔く諦めるスタイルに変えます。

KR2: 8:30〜9:00に外を散歩する

朝何も気力がわかず、仕事を無理やり始めるまでスマホを眺める時間が増えています。負荷が小さくかつ朝日を定期的に浴びられる習慣に置き換え、スッキリした頭で前日の心残りを解消できるようにします。

KR3: 13:30〜13:40に瞑想する

昼休み15分間はエアロバイクの時間なのですが、ランチ時間帯は思い詰めがちでぼーっとスマホを眺めて終わってしまうこともあります。ここもよい習慣で上書きします。

Objective 2: よいフォームで学ぶ

仕事に勢いのあるフェーズで、週20〜30時間をコンスタントに費やすキャパシティはないなとつくづく感じています。2023年の学業を振り返ったときに、内容を説明可能な状態で整理して覚えること、実装上省ける苦しみは省くことに課題感がありました。Objective 2では、それらの課題感へのアプローチを通じて、費やす時間を減らしてなおかつ学んだ実感があるように変えていきます。

KR1: 情報整理時のTODOを決める

KR2: 生成AIを活かす

論文の内容把握、概念の説明、課題実装のバグ探し、設計の壁打ちなど、ChatGPTをはじめとする生成AI由来のツールは学業においても必須になりました。よりそれらの力を活かしきれてない、より意図した解答を引き出せると感じることも多いため、プロンプトを中心に活用方法を改善します。

  • 何で学ぶべきか調べる
  • 2024春学期の授業で実践する

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

2023年6〜9月は、落ち着いて生きるのをメインテーマに位置づけていました。

振り返り対象のOKRは2023年4〜6月ふりかえりと2023年7〜9月OKR 〜落ち着いて生きる〜で設定しています。

OKRの振り返り

Objective 1: 落ち着いて生きる

公私ともども崩れているリズムを取り戻します。

KR1: 秋学期の授業に耐えられる状況をつくる 【できた】

秋学期にはCS 6210 Advanced Operating Systemsです。内容も時間的な負荷も楽ではない授業ですが、卒業要件的に落とせないので死守します。

週あたりの平均負荷が18時間弱というコースレビューサイトの数値は過去の履修授業の実績からそこそこ信頼できます。課題が難しいプロジェクトに取り組む時期はそれを大きく超えるのも予想でき、個人的に働きながら週に割ける時間を超えます。そのため、平均を超える負荷が予想される週の負荷を極力下げるというのが趣旨です。

9月半ばに始まった秋学期授業は、週30〜40時間費やす状態になっています。余裕はないですが、今のところなんとか脱落することなく履修しています。夏学期の授業は公私で折り合いがどうしてもつけれらず、半分過ぎたタイミングで履修を撤回することになってしまいました。1学期分卒業延期も、今後受ける授業の卒業要件的にも、繰り返すわけにはいきません。それらを踏まえ勤務スタイルで多大な配慮を受け、かろうじてまわるようになってきました。

今後受ける予定の授業を考えると、授業レビューの統計的に週平均負荷が減るわけではないし、馴染み深くないトピックを学ぶので、慣れて速く深くこなせるようになっていくわけでもなさそうです。腰を据えて時間を割いて学ぶのが王道に感じますが、以下は意識すると多少落ち着ける気がしています。

  • 提出課題やテストのスケジュールは履修前に大体把握してすべてカレンダーに入れ、学期中の土日に絶対予定を入れない。
  • 学期終わりで気が抜けている時期でも、学期中に予定を入れようとしない。特に学期初週末くらいは大丈夫かもと気を抜くと、ウォームアップの体で締切がタイトだが分量のある課題があったりする。
  • 課題やテストが比較的前半に寄せられがちなので、課題が公開されたらまずすべてを投げ出して説明を読み全体の分量を把握する(できたらここも履修前にインターネッツ情報で把握する)のをやると、気持ち的には多少楽で耐えられる。
  • トピックにあまりに馴染みがなければ、少なくとも学部相当の知識は求められるので学期間に気を抜かずに予習する。

KR2: CUEに慣れる 【できなかった】

思った以上に話題に出る中で今の習熟度では意思決定に支障がでるので、メリットと制約が自分の中で腑に落ちた状態で並べられるようになる状態にします。

  • ✅ Kubernetes tutotial
  • Go
  • Protobuf
  • HCL
  • 事例整理(できたら公開記事。できなかったらNotionのメモでOK)

学期間でそこそこ時間がとれると思っていたら、秋学期授業の準備で手一杯でした。業務で必要な調査は業務でやるし、仕事は目標達成に向けて進捗します。しかし、かつてのような土日が明けたら素振り・自主練を経て手を動かすのが速くなったり、打ち手が増えている感覚がないのはやや寂しいですね。そういう短期的なバフや焦燥感から距離をおき、中長期を戦い抜く足腰を鍛える建前で入学したので、あと2年徹底修行やむなしです。

K3: 筋トレ復活 【微妙】

腰回りの不調で控えていた自宅筋トレを復活します。最低の負荷、週2ペースでやっていく。

一度は復活したものの、不調を感じ直近2週間はまた控えています。継続的に外を歩く程度の余白がほしい。

Objective 2: 最高の夏をやる 【できた】

ワクワクリストより、野生のヤシガニに会いに行きます。宮古島の予定でしたが、車運転しなくても大丈夫な西表島で実現予定です。

確実に会えるとも限らないので、期待値低めです。

学期間を狙って完全な計画・準備を行いましたが、ちょうど台風が直撃しおあずけになりました。旅行に行くはずだった日は好きなお寿司屋さんを訪れ、翌日は急遽大磯プリンスホテルに泊まることになりました。前から行きたかったTHERMAL SPA S.WAVEのサウナやインフィニティプールでととのったり、ついでに江ノ島に行ったりして楽しみました。

それ以上に、だいぶ久しぶりにお盆に帰省できたのがよかったです。奈良を家族で満喫する、大阪を欲望のままに散歩する、京都で情緒ある生活とは何かを教えてもらうなど、最高の夏をやれました。夕方奈良散歩は本当に気持ちいいので、引っ越しの有力候補のひとつです。京都の情緒もよく、東京に出やすいのもプラスですね。

KR2: うなぎ開拓 【できた】

南千住のうなぎ尾花行きたいです。予約できないかつなくなったら終わりなので作戦か根性が必要。

めちゃくちゃよかったです!ごはんの予定も電車移動で遠出すると学期中はやや危ういですが、学期間はなんとかなるので狙いを定めて開拓したいです。Googleマップで近所のお店を探して「行ってみたい」を増やし、行った気になるのが趣味です。

ログ

アニメ・映画

  • 鋼の錬金術師
  • 機動戦士ガンダム 鉄血のオルフェンズ
  • コードギアス 反逆のルルーシュ
  • コードギアス 反逆のルルーシュ R2
  • 呪術廻戦 懐玉・玉折/渋谷事変(途中)
  • るろうに剣心
  • 葬送のフリーレン(途中)
  • 君たちはどう生きるか
  • キングダム 運命の炎
  • ザ・ロック
  • フォレスト・ガンプ
  • コーダ あいのうた

新規サウナ

買い物

アクティビティ

グルメ

今後の話

Objective 1: 春学期の授業に耐えられる状況をつくる

春学期は唯一全専攻必修のCS6515 Introduction to Graduate Algorithmsを履修予定です。授業のレビューやSlackでのやりとりを見る限り、グループで協力した上で提出する課題が似たような内容でも採点する人による評価のばらつきが大きいようです。受けるための準備をします。

履修した授業数が多いほど履修登録が早めに割り当てられるのですが、秋学期登録時に自分の番がきたときには登録できる状態でした。気を抜くと履修登録できない可能性もありますが、そのときはそのときで別の授業を検討します。

Objective 2: 引っ越し準備と学業の両立を模索する

土日以外に発生する休日を利用し、時間がかかったり準備が必要なものを進める。

KR1: おおたかの森を歩く

引っ越し有力候補なので、歩きにいきます。諸々のタイミングを考えると学生期間中は動きづらいですが、早く場所を決めて一時的に住んでみるなり、家を建てるのを本格準備するなり、進めていきます。

以下のKRはほぼ備忘です。

KR2: ハロウィンディズニー期間のホーンテッドマンションに行く

国民の義務。そしてユーラシアで整う。

KR3: 牡蠣

行ってみたい

KR4: クリスマスランチ

ブラッスリーリーヌさんのランチからのクリスマスケーキ受け取りがめちゃくちゃよかったので今年もそうします。その前にクリスマスケーキ予約。

KR5: 金沢準備

年始に行くべく調整する

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

2023年4〜6月は、プラットフォームエンジニアリングをやっていく上で足固めメインテーマに位置づけていました。

振り返り対象のOKRは2023年1〜3月ふりかえりと2023年4〜6月OKR 〜開発しやすさを探求するための土台づくり〜で設定しています。

OKRの振り返り

Objective 1: 開発しやすさを探求する土台をつくる

KR1: 課題探索の枠作り 【できなかった】

課題っぽい領域はありつつも手段ありきで課題探ししないように知識整理します。

プライベートOKRではないですが、この四半期で最初に解くべき課題の選定、問題領域と取り組みの可視化、成果の計測手法の合意、ロードマップ初稿が見えているとよさそうなのでそのための土台として位置づけられるとよさそうです。

転職を踏まえ、半年後を見据えてプラットフォームエンジニアリングをやっていく想定で立てた計画でした。しかし、前提が大きく変わり即座に着手することになったので、OKRを見直すこともなく爆進しました。

プラットフォームエンジニアリングに関する所信表明後、Software Development Life Cycleの手前から設計・実装を進めています。ある程度スケールすることを願いながら、proto管理、CI、Goで開発するためのテンプレートやガイドライン準備を進めています。

否応なく個別技術領域のベストプラクティスドキュメント、本などを読みながら進めていくことになるので、改めてより抽象的なプラクティスや思考の枠組み、よりよいドキュメンテーションのあり方は整理したいと感じました。

KR2: AIとの共生 【微妙】

ChatGPT系ツールは学業はもちろん、業務でも避けて通れない道です。春学期・夏学期を通じて何をどう活用するかのスタンスを確立し、業務上利用するツールを決めます。

  • 試行錯誤のメモを残す
  • ツールごとのユースケースとよりよい使い方収集

ツールの一覧Notionページは作りました。その後は、ハイレベルなプロンプトを駆使したり、理論的背景を調べたりすることもなく、ChatGPT、GitHub CopilotおよびそのGoLandプラグイン、NotionAIの恩恵をひたすら受けるだけでツールやユースケースが広がらないまま終わってしまいました。

ただ、学業や業務で規約やルールに反しない範囲で明らかなメリットは得ているので、改めてまとめることなく利用継続しようと思います。8月以降の授業で多くの論文を読むことになるので、あまり期待した成果を得られなかった(気がする)ChatPDFはリベンジします。

Objective 2: 明らかに大事なものを死守する 【できた】

いろいろあるとは思いますが、何があってもやりたいことはやるということで!

  • NOT A HOTELに泊まる
  • ゼルダの伝説 ティアーズ オブ ザ キングダムをやる
  • ホテルマウント富士に泊まる
  • 家を建てる場所(地域粒度)を決める

よい思い出ができたり、つぎに進めるための情報が集まったりしてよかったです。

何も決めないとふと時間ができたときにそのときの思考範囲内で過ごしてしまったり、何かをするための時間確保もせずただObjective と学業のノルマ消化に充ててしまいます。見込みが薄くても3ヶ月に1度くらいはワクワクリストに立ち返ろうと思いました。

学業

5月頭にCS 6200 Graduate Introduction to Operating Systems​を履修し終えました。OSそれ自体の理解が進んだはもちろん、OS設計のアナロジーはいたるところにあふれていて、設計思想の飲み込み具合が高まる気がします。

転職活動、新型コロナ罹患、慣れないC言語などが重なり履修撤回も考えましたが、なんとか成績的にもよい形で終えることができてよかったです。

一方で、夏学期に履修登録したCS 6290 High-Performance Computer Architectureは不本意ながら中間試験後しばらくして履修撤回することにしました。

卒業が1学期分延びてしまうことになりますが、秋学期は今から準備しながらやりきれたらと思います。

坐骨神経痛

昨年末のぎっくり腰のような症状の根本治療のため接骨院に通い始めていましたが、5月上旬に坐骨神経痛がひどくなり30分以上座れない状態になりました。整形外科でレントゲンをとってもらった結果、ヘルニアではないとのことで安心したものの、接骨院で電気とマッサージ治療を地道に受けつつ1日立ちっぱなしで仕事する期間が半月以上続いたのでなかなか厳しかったです。

筋トレストップに加え、ラジオ体操やエアロバイクもできなかったので、筋肉の衰えがすごいです。やっと平常時くらいに戻ったので、最低負荷から復帰しようと思います。

ログ

アニメ・映画

  • 機動戦士ガンダム 水星の魔女
  • 機動戦士ガンダムAGE
  • ガンダム Gのレコンギスタ
  • Dr.STONE 第3期
  • 鬼滅の刃 刀鍛冶の里編
  • SSSS.GRIDMAN(復習)
  • SSSS.DYNAZENON(復習)
  • 鋼の錬金術師(途中)
  • グリッドマン ユニバース(計4回)
  • ザ・スーパーマリオブラザーズ・ムービー

グリッドマン ユニバースは人生初2回以上映画館で観た作品となりました。変形・合体ロボットのクオリティも高いので、集めます。

グリッドマンワールドも楽しんできました。

新規サウナ

ホテルマウント富士、電車と高速バスを乗り継いで訪れた甲斐がありました。

買い物

実際飾ってるだけなのでちょっとウケます。

アクティビティ

グルメ

天ぷらもおいしかったです。

今まで食べた外食の中で2番目においしかったです。めちゃくちゃおいしい。

今後の話

Objective 1: 落ち着いて生きる

公私ともども崩れているリズムを取り戻します。

KR1: 秋学期の授業に耐えられる状況をつくる

秋学期にはCS 6210 Advanced Operating Systemsです。内容も時間的な負荷も楽ではない授業ですが、卒業要件的に落とせないので死守します。

週あたりの平均負荷が18時間弱というコースレビューサイトの数値は過去の履修授業の実績からそこそこ信頼できます。課題が難しいプロジェクトに取り組む時期はそれを大きく超えるのも予想でき、個人的に働きながら週に割ける時間を超えます。そのため、平均を超える負荷が予想される週の負荷を極力下げるというのが趣旨です。

KR2: CUEに慣れる

思った以上に話題に出る中で今の習熟度では意思決定に支障がでるので、メリットと制約が自分の中で腑に落ちた状態で並べられるようになる状態にします。

  • Kubernetes tutotial
  • Go
  • Protobuf
  • HCL
  • 事例整理(できたら公開記事。できなかったらNotionのメモでOK)

K3: 筋トレ復活

腰回りの不調で控えていた自宅筋トレを復活します。最低の負荷、週2ペースでやっていく。

Objective 2: 最高の夏をやる

KR1: ヤシガニに会いに行く

ワクワクリストより、野生のヤシガニに会いに行きます。宮古島の予定でしたが、車運転しなくても大丈夫な西表島で実現予定です。

確実に会えるとも限らないので、期待値低めです。

KR2: うなぎ開拓

南千住のうなぎ尾花行きたいです。予約できないかつなくなったら終わりなので作戦か根性が必要。

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

2023年1〜3月は、授業の負荷がかなり上がる前提で無理せずそれに集中するというのをメインテーマに据えていました。

振り返り対象のOKRは2022年10〜12月ふりかえりと2023年1〜3月OKR 〜プラスアルファで何かやろうとしない〜で設定しています。

OKRの振り返り

Objective 1: 週20時間負荷授業のペースをつかむ 【できた】

履修するCS 6200: Introduction to Operating Systemsの難易度、週平均負荷に鑑み、ついていけたら万々歳です。これまでは授業+αのなにかを設定してきましたが、他は考えずこれに集中という割り切りをやってみようと思います。

3月末時点ではだいぶ余裕ある状態になりました。しかし、3月が転職前のお休みだからなんとか逃げ切った感が強いです。

最初の提出課題期間と転職活動の大詰め、コロナ罹患、あまりに不慣れなC言語Linuxプログラミングが重なってしまい、履修を諦め計画を立て直すかどうかの瀬戸際でした。提出締め切り2時間前に意図せぬ挙動の原因を理解し、なんとか間に合わせました。

反省としては、馴染みの薄い概念の理解というよりもプログラミングの基礎がなっとらんのでそこを立て直す必要がありました。現在は、開発環境を見直しながら2つ目の課題を提出し終わり、最後の課題に取り組んでいるところです。

授業、課題、定期試験など、学業に費やした時間は、1月が21時間、2月が135時間、3月が98時間でした。3ヶ月でならせば週平均負荷20時間くらいになりますが、一定時間を仕事と両立するのが無理になります。なんとか平均よりもMAXを下げられるようにしないとなと思います。

良かった点としては、ChatGPT、ChatPDF、Notion AIなどの登場で学習効率も深度も爆上がりした(たぶん。少なくとも短期〜中期では)ことです。提出課題のコードを書いてもらってそれを提出するみたいなことはできませんが、つぎの用途で活用しました。

  • 授業の要約
  • 定期試験用のサンプル質問集の回答づくり(授業で説明されるのと違う言葉や角度で書かれた文章を読む)
  • 論文に対する繰り返し質問
  • 設計の壁打ち

以前は理解しきれずにそんなもんかと思って妥協して暗記していたような部分を繰り返し質問できるのがとてもありがたく、当社比深く学べていそうです。理解度を維持+αした状態で授業にかける時間を減らし、課題にかける時間を増やせています。このスタイルが他の授業でも通用したり、コンピュータサイエンスそのものへの理解が深まったりすれば、今年分だけでなくいまだ仕事と両立できるイメージがまったくわいていない来年以降の授業を履修する希望も見えてくるかもしれません。使いこなしたいですね。

読んだ本は、当初KRで掲げていたコンピュータの構成と設計 MIPS Edition 第6版ではスコープが少し異なる(つぎに受ける授業にはよさそう)ので、つぎの本の必要な部分を読むことにしました。

授業とは別角度の説明を読んたり、授業では省略される文脈を補完してくれる文章を読んだりするのは理解の助けになります。

なんでこんな問題がわからんのやと落ち込むことがけっこうありましたが、初見何もわからんみたいな課題が今振り返ってみるとわかっていたり、一生縁がなさそうだった鈍器(Linuxプログラミングインタフェース)にめちゃくちゃ助けられたり、OSの設計的アナロジーをいろいろなところで感じたりと、ちょっとはたくましくなれたかもしれません。見ている断面は限られているにせよ、積み重ねられている感覚は大事にしながら引き続きがんばっていこうと思います。

Objective 2: 腰を守る習慣を身につける 【できた】

年末ぎっくり腰になり、めちゃくちゃ困りました。なんとかします。

  • KR1: ぎっくり腰の原因を特定する
  • KR2: 緩和策が持続的にとれる

整骨院に通い始めました。ラジオ体操、エアロバイクを復活させたのに加えてストレッチもやり始めました。筋トレも軽い負荷から再開しようとしています。

日本橋中央整骨院がぎっくり腰にとてもよいと教えてもらい、最初はここに通うことを検討していました。しかし、遠く通いづらかったのと、近くにも評判がよさそうな整骨院があったのでそちらにしました。地域整骨院紹介サイトはもちろん、Googleマップのクチコミもだいぶ掲載元にコントロールされている感が強く、選び辛く感じます。バキボキされなくて、相談に乗ってもらえる雰囲気があるかどうかで決めました。

KRについては、原因はわかったようなわからないような気がします。緩和策としての通院と体操、ストレッチ、その他運動は今のところよさそうです。

転職

転職活動やこれまでお世話になったみなさんに感謝したいです。4月からLegalOn Technologiesという会社でがんばります。開発をより行いやすくするための課題を把握し、それを解決するためのプラットフォームエンジニアリング(仮)をやっていきます。

辞める理由、次の会社に進む理由、転職活動中に感じたことなどいろいろありますが、機会があれば別途書こうと思います。

ログ

勉強会

コロナ禍で失われてしまっていたけれど、人生においてとても大事だったものを思い出した気がしました。

第1回Platform Engineering Meetupの物理参加がめちゃくちゃ楽しかったので、いろいろと顔を出していこうと思います。

記事

アニメ・映画

  • ベターマン
  • 機動戦士ガンダム 水星の魔女
  • 機動戦士ガンダム00
  • 劇場版 機動戦士ガンダム00 -A wakening of the Trailblazer-
  • 機動戦士ガンダムAGE(途中)
  • 鋼の錬金術師(途中)
  • ザ・ロック
  • グリッドマン ユニバース
  • BLUE GIANT
  • アントマン&ワスプ クアントマニア
  • Mr.Children GIFT for you

グリッドマン ユニバースがよすぎて、初の2回目を観に行く予定です。原作の電光超人グリッドマンをリアルタイムで見て育ち、勇者シリーズ・エルドランシリーズアニメで変形・合体ロボットに心酔し、SSSS.GRIDMANとSSSS.DYNAZENONを一昨年見てどちらも原作へのリスペクト溢れる名作だと思っている自分にとっては、この上ない作品でした。

筋トレ・エアロバイクを休んでいたのもあり、(Audible)が激減しました。復活したのでまたやっていきます。

西日本サウナの旅

3月のお休み期間を使って西日本の有名サウナを巡ってきました。

  • 熊本 湯らっくす
  • 福岡 ホテルキャビナス福岡
  • 福岡 IZBA
  • 広島 ニュージャパンEX
  • 大阪 大東洋
  • 兵庫 神戸サウナ
  • 愛知 ウェルビー名駅

小学校の担任の先生の還暦祝い兼同窓会がコロナ禍で流れてしまっていました。それがついに地元奈良で開催されるということで、ついでに精一杯サウナとグルメを楽しんできました。各地で旧友、戦友、お世話になった人々に会ってもらい、よい時間を過ごさせてもらいました。親にはちょっと心配なこともあるけれど、長生きしてほしいです。小学校の先生は、北海道に移住して広大な土地の家でカヌー作ったりして元気そうだったので、そういう生き方もよさそうです。

闘争もいいけれど、人と一緒にある程度過去を笑い飛ばしながら前を向き盃を交わせると(酒は飲めない)生きててよかった、これからも生きていこうと思えるし、心が潤うのだなと思いました。

アクティビティ

数年ぶりに長崎旅行に行きました。

サウナ

久々

買い物

めっちゃ軽いし、自分の使い方ではリソース不足になることもないしでめっちゃよい。学割で購入。

最近はいろんなところで在庫復活してるものの、Amazonで買いたかったのでよかった。もはや嫁氏専用機。

こちらは嫁氏に上げました。

my new gear...

グルメ

@北千住 MOTORA

@銀座 聖起

今後の話

Objective 1: 開発しやすさを探求する土台をつくる

KR1: 課題探索の枠作り

課題っぽい領域はありつつも手段ありきで課題探ししないように知識整理します。

プライベートOKRではないですが、この四半期で最初に解くべき課題の選定、問題領域と取り組みの可視化、成果の計測手法の合意、ロードマップ初稿が見えているとよさそうなのでそのための土台として位置づけられるとよさそうです。

KR2: AIとの共生

ChatGPT系ツールは学業はもちろん、業務でも避けて通れない道です。春学期・夏学期を通じて何をどう活用するかのスタンスを確立し、業務上利用するツールを決めます。

  • 試行錯誤のメモを残す
  • ツールごとのユースケースとよりよい使い方収集

学業を持続可能な状態にしながら、開発しやすさにも直結する分野と思うので自分なりに積み重ねられる枠を設けたいです。

Objective 2: 明らかに大事なものを死守する

いろいろあるとは思いますが、何があってもやりたいことはやるということで!

  • NOT A HOTELに泊まる
  • ゼルダの伝説 ティアーズ オブ ザ キングダムをやる
  • ホテルマウント富士に泊まる
  • 家を建てる場所(地域粒度)を決める

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

2022年10〜12月は、元々目指していたプラットフォームエンジニアまわりの話をどうしていくか考えてみるというのをメインテーマに据えていました。

振り返り対象のOKRは2022年7〜9月ふりかえりと10〜12月OKR 〜再び前進する〜で立てています。

OKRの振り返り

Objective 1: 前進する

KR1 OS入門準備 【できた】

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

コンピュータの構成と設計 MIPS Edition 第6版は途中までしか読めませんでしたが、独習C++は目を通し終わり、もっとCPUの気持ちが知りたいですか?を差し込んで読み切りました。

プログラミング言語まわりでは、特定の言語に馴染みがなくてもそれが授業理解や提出課題を解く上でボトルネックになるわけではないことがわかりました。2023年がんばる必要があるのはC++よりもCですが、授業の理解促進に繋がりかつリストにあるもの中心に読み進めていこうと思います。

KR2 実験を楽しむ 【微妙】

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

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

複業関連でCloud Runのネットワークまわりに触れたり、Dialogflow CXの開発・デプロイフロー検証をしたのは、特に後者で実験的側面が強く楽しかったです。一方で、11月末には授業を終えられたにもかかわらず、元々授業を受けていた平日夜時間帯を仕事に充ててなんとかしたり、週末も思ったより時間が割けなかったりで生煮え感が強いです。

せめて記事は書きたかったので、そのリベンジとして会社技術ブログ枠を確保しました。

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

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

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

この記事のように「どのフェーズでは何を考えたい」を書こうとしたり、アーキテクチャ上のコンポーネントとソフトウェア開発プロセスをそれぞれ並べてよくある論点軸でまとめようとしたりしました。一定できたものの、どの領域にはどのプラクティスを適用したい以上のことは書けず、特定組織の課題・具体的なアーキテクチャありきやな、それはそうという気持ちになりました。1年の振り返りでも書いた「どういうフェーズであれ、なにかを実現したいときにソフトウェアを変更し続けられるよう、アーキテクチャ・技術的に妥当な判断をトレードオフを加味してし続けられる、それを実現する技術力もある」ようでありたいということなのだと思います。

一方で、それでもロードマップを描けるときは描けるのだし、リアクティブな問題解決しかありえないということもないと思います。今回は筆をおくにしても、プラクティスの収集、今回やったイシューマップの整理、それを実現するしくみの理解などは継続してやっていこうと思います。

Objective 2: 甲殻類 【できた】

KR1 すさみ町立エビとカニの水族館訪問 【できた】

感動しました。すさみ町にたどり着くのは大変でしたが、ここまでエビ・カニ特化した水族館もないと思うので、大満足です。

KR2 伊勢海老 【できた】

KR1の水族館が和歌山ということで、7月の宮崎ではシーズンではなかった伊勢海老に再挑戦しました。蒸したり天ぷらも良いですが、刺し身はアツいということがわかりました。今回は出会えませんでしたが、和歌山はセミエビもええぞというのを知りました。

KR3 冬をやる 【できた】

水炊き2回とブリしゃぶをやりました。温泉行きたいとも思いましたが、草加健康センターに行くと温泉浴が満たされるので行かなくなりました。

ログ

オカヤドカリ

7月に宮崎を訪れたとき、ペンションのオーナーに甲殻類眺めるのが好きだという話をしました。そしたら鬼の洗濯板でオカヤドカリ見れるといいね、天然記念物だから採ったらだめだけど。というのを聞いたのがオカヤドカリとの出会いでした。

その後しばらくして、オカヤドカリは飼育できることを知り衝撃を受けました。なんで天然記念物なのに変えるのかは、天然記念物に指定された経緯や沖縄返還まわりの話など諸説ありそうです。

何はともあれ、売られているので諸々準備して迎えることにしました。ワクワクリストに「大きめの甲殻類を飼育する」「あらゆる磯でヤドカリの出待ちをする」というのが入っており悲願が成就しました。

Go FAQ

いろいろと思うところがあり、Go言語のFrequently Asked Questions (FAQ)を翻訳し始めました。毎日何か実りのあるものを積み上げていきたい(筋トレ的位置づけ)のと、好き嫌いはあるにせよ設計思想に触れるなり、誰向けにどんな課題を解決するために出てきたものなのかを理解した上であーだこーだ言ってほしいという気持ちが強いです。

授業

3つ目の授業を履修し終えました。先にGeorgia Tech OMSCS 1年目総括を書いてしまったので、感想や学びもそちらに譲ります。

アニメ・映画

  • 機動戦士ガンダム 水星の魔女(途中)
  • 機動戦士ガンダムSEED DESTINY
  • 機動戦士ガンダムSEED C.E.73 STARGAZER
  • 機動戦士ガンダム00(途中)
  • チェンソーマン
  • 幽遊白書
  • シドニアの騎士
  • すずめの戸締まり
  • ブラックパンサー/ワカンダ・フォーエバー
  • THE FIRST SLAM DUNK
  • アバター:ウェイ・オブ・ウォーター

サウナ

機会あってNOT A HOTEL AOSHIMAのMASTERPIECEに宿泊しました。サウナと水風呂の温度をいじるという、稀有な体験ができました。

行きたい。

近年一番好きです。

アクティビティ

ミスチルが出るということでACIDMAN presents 「SAITAMA ROCK FESTIVAL “SAI” 2022」に行ってきました。ACIDMAN結成20周年めでたい。

和歌山訪問

和歌山訪問2

IT健保令和4年度健歩大会

買い物

お気に入りです。

猫の快適な生活に投資していく。

最近だいぶ慣れて気に入ってくれたっぽくてよかったです。

グルメ

また行きたいです。

有楽町かきだも焼肉かきだも予約権を確保できたので、どっちも行ってきます!

近年食べた料理で一番おいしかったです。他のNIPPONIA HOTELさんにも行ってみたいなと思いました。

今後の話

Objective 1: 週20時間負荷授業のペースをつかむ

履修するCS 6200: Introduction to Operating Systemsの難易度、週平均負荷に鑑み、ついていけたら万々歳です。これまでは授業+αのなにかを設定してきましたが、他は考えずこれに集中という割り切りをやってみようと思います。

Objective 2: 腰を守る習慣を身につける

年末ぎっくり腰になり、めちゃくちゃ困りました。なんとかします。

KR1: ぎっくり腰の原因を特定する

紹介してもらったよい整骨院に行ってみます。

KR2: 緩和策が持続的にとれる

よいストレッチ、筋トレを教えてもらってきます。

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

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