明けましておめでとうございます。2019年は2匹の猫を家族に迎え入れ、安らぎとは何かを教えてもらった1年でした。
仕事では2018年9月に転職してから開発に取り組んでいたメルペイが世に出たりしました。その中でKubernetesなどに出会い、いろいろあって2020年はメルカリのMicroservices Platformチームに移って基盤の開発・運用に取り組みます。
リンクはない目次
- OKRの振り返り
- 習慣目標の振り返り
- 2020年の話
- 2019年アーカイブ
OKRの振り返り
2019年の振り返り
2019年10〜12月の振り返り
KR毎に3段階で達成度を判定し、それぞれ所感を書いていきます。
- できた
- 微妙
- できなかった
Objective 1
O1: プラットフォームエンジニアへの闘争
Key Result 1 【できた】
DIY Serverlessプラットフォームを構築する
- ServerlessDays Tokyo
- ServerlessDays Fukuoka
- CLI
- server -> functionのミドルウェア
ServerlessDays TokyoとFukuokaでFaaSプラットフォームを作るワークショップを担当する過程で作りました。
ServerlessDays Tokyo 2019でWorkshop 03「Knativeで作るDIY FaaS」を担当しました #serverlessdays
https://github.com/toshi0607/build-your-own-platform-with-knative
HTTPリクエストを受けて処理するのが主なユースケースです。既存のKubernetesでFaaSを利用したいのはイベントハンドリングだと思うので、その観点ではだいぶ未熟です。
CLIはkubectlのプラグイン形式で公式の手続き的なコマンドを追加し、ミドルウェアは薄いのを書くつもりでした。しかし、CLIについてはtriggermesh/tmで、ミドルウェアはopenfaas/faasで実験用途には十分だったので自作しませんでした。
本格的に検討するときには①イベントハンドリング②ミドルウェア③CLIの優先度で深掘ろうと思います。
ワークショップは社内でもやってみました。福岡でも感じましたが、FaaSやサーバーレスに興味がある人よりは、普段Kubernetesを触ってるエンジニア(アプリケーションでもプラットフォームでも)に対してKnativeを触ってもらうといろいろ議論したり有意義なのかなぁと思いました。
Knativeに限らず勉強会のノリでやっていけるとよさそうです。
Key Result 2 【微妙】
Kubernetesの知識を網羅的・原理的に理解する
- CKA取得
- 何かコントローラー作る
- what-happens-when-k8sを図を書きながら説明できるようになる
CKAについては、11月半ばに2020年1〜3月に回しすることにしてCKADを受験しました。10、11月は平日毎朝30分~1時間『Kubernetes完全ガイド』を読み直す時間とり、(いろいろ落ち着いた)12月の半ばからdgkanatsios/CKAD-exercisesをGKEのクラスタ上で3周やってみました。
12月28日に受験して合格しました。
CKAD受かってたー!🐳🐳🐳来期はCKAがんばろう🐸😺 pic.twitter.com/jaEjIWsNbd
— かえる氏の闘争🐸😺 (@toshi0607) December 29, 2019
コントローラーは未着手です。この振り返り記事が終わったら『実践入門Kubernetes カスタムコントローラへの道』で入門はしたいです。
what-happens-when-k8sの説明については必要があったのでホワイトボードで図を書きながら説明する必要にかられてやりました。
特にネットワーク周りが弱かったので次四半期の課題です。
Key Result 3: プラットフォームを支えるOSSにコントリビューションする 【微妙】
機能 > テスト > リントツールでわかるもの > 設定ファイル > ドキュメント・コメント
https://github.com/syndbg/goenv/pull/105
https://github.com/syndbg/goenv/pull/104
https://github.com/GoogleCloudPlatform/functions-framework-go
https://github.com/GoogleCloudPlatform/functions-framework-go/pull/14
https://github.com/syndbg/goenv/pull/103
https://github.com/syndbg/goenv/pull/102
https://github.com/syndbg/goenv/pull/101
https://github.com/dapr/dapr/pull/631
https://github.com/gcpug/handy-spanner/pull/1
何もやっていないわけではないですが機能なりテストないでコントリビューションしたかったです。tektonで割り当てられているissuesを解決するコードを書くところから…
Objective 2: ゆとりある心で秋〜冬を感じる
KR1: 心があたたまる食べ物を食べる 【できた】
鍋パする
しました!
KR2: 季節のイベントに参加する
- ディズニーハロウィン
- 温泉
- もみじ、山
ディズニーはハロウィンに間に合わなかったのでクリスマスに行きました。
温泉は昨年のふるさと納税で長野へ。大学のゼミで訪れた小布施にも久しぶりに行ってきました。
奥多摩にもみじ狩に行ったらあまり紅葉が進んでない日もありました。
KR3: やりたこと、いきたいことリストをつくりワクワクする 【できた】
やってみました!OKRに家庭の時間を入れるようにしたものの、3ヶ月単位で考えると計画的にやらないと実現できないことを含めることが難しいと感じました。その一方で生きてるうちにやってみたいことって何なんだろう?と思ったのが取り組んだきっかけです。
- カッパドキアで気球に乗る
- シャウエンを歩く
- ピラミッドを見る
- ミラコスタに泊まる
- 開発者のプラットフォームを開発する
- クラウドを開発する
- このOSSと言えばtoshi0607みたいなのを開発する
- 仕事でOSSを開発する
- OSS開発が仕事になる会社で働く
- クリスマス島でカニの大群を見る
- 久石譲のSummerをピアノで弾く
- 腹筋を割る
- 宮古島で野生のヤシガニに遭遇する
- 技術書典の本を底本にしない単著の技術書を出す
- オライリーの本を監訳する
- 湯らっくすで整う
- ロックマンX系の曲演奏する
- また歌うのが楽しいと思えるようになる
- 低温調理できるようにする
- 大きめの甲殻類を飼育する
- 本場でノドグロを食べる
- パラグライダーする
- 燻製料理を生産できるようにする
- サグラダファミリアを見る
- 古民家に泊まる
- 宿坊に泊まる
- マカオタワーのバンジージャンプする
- 砂漠をラクダでゆく
- オーロラを見る
- フィンランドでサウナに入って湖に飛び込む
- 弘前公園の花筏を見る
- 裸眼で視力1.5
- ニュルンベルクのクリスマスマーケットに行く
- スイスの登山鉄道に乗る
- サントリーニ島に行く
- イグアスの滝を見る
- モアイ像を見る
- 船旅をする
- ガンジス川を見る
- ペトラ遺跡を見る
- クアッカワラビーと写真を撮る
- 氷に糸垂らして魚釣る
- ザリガニ捕まえる
- 毎年スノボする
海外旅行、仕事、趣味などいろいろですね。準備した上で良いタイミングにめぐり合えないと実現できなさそうなものや、時間をとってお金を払えばOKなものもあります。
基本は今後のOKRに盛り込みつつ、このTODOリストみたいなやつひたすらチェックつけていったら本当に人生よかったって言える?とか人生の進捗を考えていこうと思います。
OKR総括
今四半期の最大の焦点は7〜9月の振り返りで書いたこの部分でした。
プラットフォームの運用・構築・開発、利用サポートができるエンジニアになりたい思いが強まったので、個人OKRもそれに寄せていきたいです。人と話して目の前の技術スタックに活きる順番ではまずKubernetesの使い方・動作原理を理解してより低レイヤーに降りていくのが現実的そうでした。本業として実現できるように頑張る。
本業として実現できるように頑張る。頑張ってもらいつつ頑張った結果、2020年から(最終的に)メルペイからメルカリのMicroservices Platformチームに移ることになりました。
大きなチャレンジになりますが、早く一人前のYAML Engineerになれるようキャッチアップしつつ頑張ります。
習慣目標の振り返り
習慣という意味では、7〜9月の予定が厳しい時期にスマホゲームを(クロノ・トリガー以外)全部アンインストールしました。その結果、歩いてる時間にPodcastを聴く習慣が身につきました。来年は仕事では基本的に英語コミュニケーションになるのでよかったっぽいです。
2019年の目標
本(執筆): 2冊/年
技術書典が2回あったので2冊出しました。初版が不完全燃焼でも、Knativeの歩き方のように第2版で大幅アップデートして手に取ってくださった方に届けられ、自分の知識もアップデートできるうちは有効に思います。
- 『Knativeの歩き方 KubernetesからServerlessを訪ねて 第2版 #技術書典』
- 『Knativeソースコードリーディング入門 Knativeで学ぶKubernetesのカスタムリソースとカスタムコントローラー #技術書典』
CFP: 4ヶ月に1回出してみる
- CloudNative Days Tokyo(登壇)
- Serverlessconf New York City '19
- ServerlessDays Melbourne 2019(登壇)
- ServerlessDays Fukuoka(登壇)
今年は年間を通じてプロポーザルが必要なカンファレンスに挑戦するようになりました。Serverlessconf New York City以外は幸い採択され、登壇の機会をいただきました。おすすめなカンファレンス用プロポーザルの書き方を読んで審査員の方々の気持ちを考えたり、社内の強くて親切な方にプロポーザルを添削していただいたり手厚いサポートあっての登壇でした。
業務未経験で駆け出したエンジニアの5年後 〜目標管理の変遷と個人OKR〜にも書いたのですが、個人活動のアウトプットにおいていかにフィードバックをもらうかは注力すべきポイントなので今後も意識して継続していきたいです。アンケートとるのもいろんな人からたくさん声をいただく上でとても有効な手段の1つだと思います。お願いして時間をいただいてヒアリングしたりバイネームで臨むのが僕にとっては後の活動への影響が大きかったです。
OSS: 1PR/月
新しく作ったには2リポジトリです。
https://github.com/toshi0607/build-your-own-platform-with-knative
https://github.com/toshi0607/jctl
自分が作ったもの以外へのOSS PRは前年比だいぶ習慣にはなったものの、7〜9月の振り返りに書いたこれに尽きます。
自分な好きなOSSに対しリリースノートに載るようなインパクトのあるコントリビューションがしたいという思いを強めました。
1〜3月
https://github.com/syndbg/goenv/pull/71
https://github.com/cncf/wg-serverless/pull/74
https://github.com/syndbg/goenv/pull/68
https://github.com/jamiehannaford/what-happens-when-k8s/pull/18
https://github.com/syndbg/goenv/pull/66
https://github.com/syndbg/goenv/pull/65
https://github.com/serverless/serverless/pull/5726
https://github.com/syndbg/goenv/pull/64
4〜6月
https://github.com/ahmetb/cloud-run-faq/pull/22
https://github.com/syndbg/goenv/pull/86
https://github.com/syndbg/goenv/pull/84
https://github.com/knative/docs/pull/1373
https://github.com/syndbg/goenv/pull/83
https://github.com/syndbg/goenv/pull/78
https://github.com/syndbg/goenv/pull/73
https://github.com/knative/docs/pull/1147
7〜9月
https://github.com/mercari/wrench/pull/7
https://github.com/mercari/wrench/pull/5
https://github.com/mercari/wrench/pull/4
https://github.com/mercari/wrench/pull/3
https://github.com/mercari/go-emv-code/pull/8
https://github.com/mercari/go-emv-code/pull/7
https://github.com/virtual-kubelet/virtual-kubelet/pull/774
https://github.com/syndbg/goenv/pull/97
https://github.com/google/ko/pull/89
https://github.com/knative/client/pull/412
https://github.com/knative/pkg/pull/646
https://github.com/ijin/serverlessdays-tokyo/pull/16
https://github.com/k1LoW/tbls/pull/137
https://github.com/kedacore/keda/pull/343
https://github.com/GoogleCloudPlatform/cloud-run-button/pull/82
https://github.com/google/kf/pull/659
https://github.com/google/go-cmdtest/pull/1
https://github.com/syndbg/goenv/pull/95
https://github.com/kedacore/keda/pull/323
https://github.com/syndbg/goenv/pull/94
https://github.com/deislabs/osiris/pull/37
https://github.com/kedacore/keda/pull/323
https://github.com/syndbg/goenv/pull/88
https://github.com/syndbg/goenv/pull/86
https://github.com/kubernetes-sigs/kubebuilder/pull/967
https://github.com/knative/client/pull/388
https://github.com/knative/eventing-contrib/pull/557
https://github.com/knative/eventing/pull/1732
https://github.com/syndbg/goenv/pull/91
https://github.com/syndbg/goenv/pull/90
10〜12月
https://github.com/syndbg/goenv/pull/105
https://github.com/syndbg/goenv/pull/104
https://github.com/GoogleCloudPlatform/functions-framework-go
https://github.com/GoogleCloudPlatform/functions-framework-go/pull/14
https://github.com/syndbg/goenv/pull/103
https://github.com/syndbg/goenv/pull/102
https://github.com/syndbg/goenv/pull/101
https://github.com/dapr/dapr/pull/631
https://github.com/gcpug/handy-spanner/pull/1
ひとまとまりのソースコード公開: 1リポジトリ/月
技術書(読む): 30分/日
(2019年10〜12月分)
CKA/CKAD受験にあたり読み直しました。2019年はこの本でKubernetesに入門し、結果的にKubernetesを中核技術とするチームに移ることになりました。僕の2019年を象徴する本になりました。
CKADにちょうどよい本でした。Kubernetesでアプリケーションを開発するエンジニアのKuberentesリソース入門に最適です。
今読んでいてCKA向けに感じます。admin視点で各コンポーネントの入門に最適そうです。
その他本(読む): 30分/日
(2019年10〜12月分)
OKRの登壇をするにあたり読み直しました。各社のユースケースが載っていて実感がわきやすく、OKR登場の歴史がわかりやすいです。巻末のチェックリストだけでも読む価値があると思います。
OKRの登壇をするにあたり読みました。Measure What Matters比コンパクトにまとまっていて読みやすく、入門に最適です。個人でやる場合はこれ1冊読むだけで十分そうでした。
サンプル部分だけ読みました。上で紹介した2冊と別の情報が得られそうになかったので続きは読みませんでした。
筋トレしながらオーディオブックを聞くようになりました。日本語でも聞いた後に覚えてるかと言われると怪しいので、英語のリスニングって母国語でない以上のハードルがあることに気づきました。
ふぁーーーこれやーーーって本に出会いがっつり感想書く: 1回/3ヶ月
今四半期は読み直しが多く新しい出会いを強く感じることはありませんでした。
読んで強い影響を受けた本2冊(Kubernetes完全ガイドとMeasure What Matters)に必要に駆られて立ち返ったのは偶然ではないはずです。必死に生きて課題にぶつかり、先人の知恵に感謝しつつ本を読むことを継続していけたらと思います。
ピアノ晒す: 1回/月
1度も触らず。やりたいことリストに久石譲さんのSummerをピアノで弾くのとロックマンX系の曲をやるが入ってるので再開します。
筋トレ: 1回/週
週1品川健康センター通いを継続できました。12月半ばにリングフィットを導入したので、22時までに帰宅する日はやろうと思います。
たくさんの腹を見てきた。毎週サウナに通い、おっさんたちの腹を見る。何年にもわたって蓄積された脂肪、重機の如し。5年後、10年後のキャリアは想像がつかないが、腹の未来ははっきりとわかる。この輪に腹の未来を託すんや pic.twitter.com/WHtlU31YRD
— かえる氏の闘争🐸😺 (@toshi0607) December 15, 2019
腹の未来が気になるので、とりあえず割ります。
2020年の話
2020年はプラットフォームを開発・運用するチームで働くにあたって、必要な実力をつけて成果を出したいというのが本分です。
グループ内の異動とはいえ、これまではプラットフォームの利用者だったので転職以上に仕事への影響は大きいと思います。
そのため、これまで開発上でバンクエンドエンジニアとして感じてきた課題やインフラ面での難しさは念頭に起きつつ、Kubernetesを起点にレイヤーを下ってキャッチアップするのは大前提です。
具体的にどういう部分で知識・経験不足を感じるかがわからないだけに四半期単位くらいでOKRを定め確実に身につけていくサイクルはより重要です。今の段階で確実に厳しそうに感じる部分を盛り込んで直近3ヶ月のOKRを考えます。
あとは業務上得たよい知見でもって大きなカンファレンスで登壇したいという気持ちがあります。入門や概念説明系の登壇も裾野を広げる観点では意味があると思いますが、結局現実世界でどんな課題を解決したのかに対して去年何も応えられなかったのが僕はいたたまれませんでした。
習慣目標はいったん無くして、やっぱり欲しくなったら復活させます。英語も必要そうであれば何かしら足します。
OSS系は掲げるだけではやらないので、土日の一定時間をカレンダーで抑えてみようと思います。
Objective 1
プラットフォーム開発の基礎力向上
※働きはじめて特に厳しそうな分野が見つかれば変更してフォーカスする
Key Result 1
CKAを取得2020年3月までに取得する
- kubernetes-the-hard-wayをやる
- dgkanatsios/CKAD-exercises的なのを見つけて繰り返しやる
Key Result 2
サービスメッシュ、LBなどの動作の仕組みをKubernetesの文脈で説明できる
- 『Istio Up and Runnning』読む
- 技術書典8でKnativeに利用できるGatewayコンポーネントの話を書く
Key Result 3
CloudNativeを実現するOSSを開発する(3PR以上)
- issueを閉じる
- テスト足す
- 機能足す
Objective 2
生きてる実感を得て心をワクワクさせる
Key Result 1
嫁氏とゆったりした時間を過ごす
- スターウォーズを観る
- 低温調理できるようにする(from ワクワクリスト)
Key Result 2
趣味と闘争する
- スノボする(from ワクワクリスト)
- 腹筋を割る(from ワクワクリスト)
- 土日のうち1時間をピアノに充てる(from ワクワクリスト)
Key Result 3
ワクワクリストを整理する
- 優先度
- 何をしたら実現できるか
- 費用
- 期間
2019年アーカイブ
登壇
やってみたかった海外登壇やServerless Meetup Tokyo、Serverless Days(Conf)への登壇が果たせてよかったです。大テーマが同じワークショップ3時間*2をやってみるのも、それを社内向けに展開してみるのもよい試みでした。業務との距離が近いテーマであればあるほどフィードバックに現実味がある一方で、多少距離があるのも技術的な出会いや別の視点を提供する場として有意義に感じました。
自分のKRと紐づけてアウトプットする場としては登壇でも執筆でもなんでもいいと思うものの、一種のお祭り感や人との交流がある点で無理なく続けていけたらと思います。
2019/12/13・14 ServerlessDays Fukuoka 2019
Microsoft Ignite The Tour 2019 Tokyo
2019/10/21・22 ServerlessDays Tokyo 2019
2019/9/19 Serverless Meetup Tokyo #14
2019/8/29 ServerlessDays Melbourne 2019
2019/7/22 CloudNative Days Tokyo 2019
2019/7/7 エンジニア銭湯#2
2019/6/14 mercari.go #8
2019/3/6 Serverless Meetup Tokyo #11
Kubernetes・Serverlessとの出会いと、Knative入門 @logmi
執筆
寄稿
技術書典での活動を継続しつつ、初めて雑誌寄稿する機会をいただきました。
- 『ソフトウェアデザイン 2019年12月号』寄稿「GoアプリをワンコマンドでKubernetes Jobとして実行しよう」
ソフトウェアデザイン12月に寄稿しました!めっちゃサーバーレス特集ですが僕の記事は「GoアプリをワンコマンドでKubernetes Jobとして実行しよう」ですw pic.twitter.com/RB21zyMCYs
— かえる氏の闘争🐸😺 (@toshi0607) November 18, 2019
本
- 『Knativeの歩き方 KubernetesからServerlessを訪ねて 第2版 #技術書典』
- 『Knativeソースコードリーディング入門 Knativeで学ぶKubernetesのカスタムリソースとカスタムコントローラー #技術書典』
記事
- Knative = Kubernetes Networking++の全訳
- 「Knativeで実現するKubernetes上のサーバーレスアーキテクチャ」の文字起こし #CNTD2019
- 指定したパスのGoプロジェクトをターミナルからGoLandで起動する
- Serverless is a Doctrine, not a Technology の全訳
- googleapis/google-cloud-goライブラリを使って署名付きURLを発行する
- Cloud Run on GKEに覗くKnative
- Build serverless application on top of Kubernetes #sdmel19
- 英語記事も初でした
OSS
https://github.com/toshi0607/build-your-own-platform-with-knative
https://github.com/toshi0607/jctl
https://github.com/jamiehannaford/what-happens-when-k8s/tree/master/ja-jp
https://github.com/toshi0607/pse
2コメント