2021年のふりかえり 5大ニュース & 2022年の3大目標

2021年のふりかえりをします。切り口としては時系列や分類(私生活、本業、コミュニティ活動)を考えましたが、印象の強い順に5大ニュースを紹介することにします。

2021年のふりかえり

1. CloudNative Daysの運営に参加した

圧倒的No.1です。CICD2021、CNDT2021の実行委員として活動しました。 Dreamkastと呼ばれる配信プラットフォームのインフラ担当として、このあたりの技術に触れています。

きっかけやイベントごとのふりかえりは過去記事をご参照ください。

ngoktanio.hatenablog.com ngoktanio.hatenablog.com

本業で(CloudNativeに限らず)開発も運用もしていない私にとって、実運用を通じて得られる経験は大きな価値があります。 技術書を読むだけでは成し得ない質、量、スピードで成長していると実感します。 まあ、過去の自分比でしかなく、当初は今頃もっとできるようになっていると期待していたのですが。

スキルアップ以上に大きかったのは、家庭と仕事以外の居場所ができたことです。 第3(それ以上)のコミュニティに属するススメはよく目にするのではないでしょうか。 私は『まんがでわかる LIFE SHIFT』で知ったつもりでしたが、今ぱらぱらと読み直してみたらちょっと違いました。 f:id:ngoktanio:20211231135535j:plain

昔から体力がなく、今ではうつ病を抱えている私には、業務時間外にコミュニティ活動をすることは負担になりそうと不安はありました。 しかし、仕事がうまくいかずに精神的に苦しんでいるときに、気分を切り替えて過ごせる場がある利点がはるかに上回りました。

2. 乃木坂46のライブ(オンライン)に参加した

妻の影響で乃木ヲタになってから5-6年が経ちました。 今も8th YEAR BIRTHDAY LIVEのDVDをみながらこの記事を書いています。

コロナ禍でライブがオンライン化し、昨年のまいやん卒コンで初めて乃木坂46のライブに参加しました。 今年はなんと・・・

日程 タイトル
2/23 9th YEAR BIRTHDAY LIVE
5/8 9th YEAR BIRTHDAY LIVE 〜4期生ライブ〜
5/9 9th YEAR BIRTHDAY LIVE 〜3期生ライブ〜
8/21 真夏の全国ツアー2021 福岡
8/22 真夏の全国ツアー2021 福岡
11/20 真夏の全国ツアー2021 FINAL!
11/21 真夏の全国ツアー2021 FINAL!
12/14 生田絵梨花 卒業コンサート
12/15 生田絵梨花 卒業コンサート

9回!

また、11月には東京国立博物館で開催された春夏秋冬展覧会に行ってきました。 シルバーウイーク中日の平日に行ったところ、博物館は休館で春夏秋冬のみやっていました。 「ここにいるのはみんな乃木ヲタか!」とウキウキしていました。

nogizaka-fourseasons.jp

今年は自身のキャリアに向き合う時間を多くとりました。 なかなか決心できず「きっかけ」と「Against」を繰り返し聴いて背中を押してもらいました。

そんな「きっかけ」が、このあと紅白歌合戦で披露されます。楽しみです。

3. 社外登壇をはじめた

年初に目標として掲げていた社外登壇をしました。

speakerdeck.com speakerdeck.com speakerdeck.com

登壇のふりかえりはこちらです。 ngoktanio.hatenablog.com ngoktanio.hatenablog.com

Kubernetes Novice Tokyoでは、登壇した(#8)ことによって次の登壇(#15)の声がかかる、よい循環ができてうれしかったです。

4. ふりかえりに出会った

前述のとおり、本業では開発も運用もしていません。となると当然(?)スクラムもしていません。 それでも漠然と「ふりかえりした方がいいのでは」と感じていました。そんなときに『ふりかえりガイドブック』を見つけました。

www.shoeisha.co.jp

「ふりかえりカタログ」も参考にしながらいくつか試してみました。

  • KPT
  • KPTA
  • YWT
  • Fun / Done / Learn
  • アクションのフォローアップ

speakerdeck.com

私自身はふりかえりに魅入られたもののチームで効果的にやるにはまだまだという状況です。 最近はこのあたりで知見を得ようとしています。

hurikaeri.booth.pm retrospective.connpass.com

5. 初めて転職活動した

新卒入社すること10年、初めて転職活動をしました。めちゃくちゃおもしろそうな企業を見つけたからです。 体力やタイミングの問題で、その1社を落ちたところで転職活動は中断しています。

職務経歴書を書くのはとても難しいですね。何をどうアピールしていいかわかりません。 社内システムやセキュリティを担当してきたのもあって「これ、書いてええんやろか」状態です。 また、先輩から「自己肯定感低そうだよね」と言われるぐらいな感じで自身の強みを挙げるのに難儀しています。

転職活動するにせよ、しないにせよ、経験とスキルの棚卸しや成長戦略の検討はしていこうと思います。

d.potato4d.me forkwell.connpass.com

番外編. 健康年齢が若返った

昨年から健康診断の結果をもとに健康年齢が算出されるようになりました。 昨年は46才(乃木坂46!)と実年齢より一回り上でした・・・今年は33.9才(実年齢 -0.1才)まで若返りました。やった!

2022年の目標

1. 自分のためにアウトプットを続ける

今年のアウトプットは以下のとおりです。

ふりかえると「社外登壇するからには行動変容を起こしたい」と息巻いてしまいがちでした。 それを目指すのは変わりませんが、成功の判断基準とするのは自分にはまだ早いと考え直しました。 アウトプット(の過程)を通じて知識の整理、定着化ができる実感はできたので、まずはそれを続けるところから。

自分でコントロールできる、計測できる指標を設定します。

  • 社外登壇 6回
  • Zenn 12記事

登壇はこのあたりを目指したいです。

  • CloudNative Days
  • Kubernetes Meetup Tokyo
  • Kubernetes Novice Tokyo(依頼があれば)
  • JAWS何かしら
  • ふりかえりカンファレンス

2. 健康を維持する

うつ病ですし、精神的には健康でないのですが・・・

一時期91kgあった体重は86kgまで落ちました。今年は82kgを切ることを目指します。 他によい指標はあるでしょうか。

3. 基礎の再構築をする

「エンジニアに○○は必要か」議論はよくありますよね。 「再」構築と強がってみましたが、○○に当てはまる基礎はたいてい一度習得したこともありません。

定量指標は思いついていません。AtCoderの色やレート?

決めているのはLinux Foundation Certified System Administrator (LFCS)に合格することぐらいです。

他には簡単な(簡単とは言ってない)CNIプラグインCSIドライバーを書いてみたいです。

docs.google.com

Kubernetes Novice Tokyo #15 で登壇しました

これはふりかえり Advent Calendar 2021 11日目の記事です。 ふりかえり Advent Calendar 2021

12/7に開催されたKubernetes Novice Tokyo #15で「最小権限を目指して」という発表をしました。 過去回のアンケートで「セキュリティ」の話を聞きたいとリクエストがあったようで、今回は4セッションすべてセキュリティの話でした。

speakerdeck.com

私は2月のKubernetes Novice Tokyo #8で自称Cloud Native Security ArchitectとしてLTをしました。 それが縁で今回登壇依頼をいただいたようで、たいへん光栄です。

speakerdeck.com

前置きはここまでとして、ふりかえりをしていきます。

ひとりふりかえりでは、Kubernetes Meetup Tokyo #47 で登壇しました同様、タイムラインとKPTを混ぜたような手法を採用しました。 細かく触れるとキリがないので、1つに絞ってYWT(やったこと、わかったこと、次にやること)で紹介していきます。

やったこと: 早めにフィードバックを得る

セキュリティの話をリクエストされたわけですが、Kubernetes Novice Tokyoの想定参加者 = Kubernetes初学者は何を期待しているのだろうかと頭を悩ませました。 コンテナセキュリティといえば、NIST SP 800-190は外せない風潮があり、実際そうだと思います。 しかし、初学者がNIST SP 800-190からセキュリティをはじめるべきかというと違う気がしました。

もっと身近で、すぐに試せることを伝えたいと考え、Notionにいろいろ書き出しました。 ボツ案は話の本筋ではなく長くなるため最後に記載しておきます。

社内で実施している『Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド』輪読会で構想を話したところ「どれか1つだけで時間使い切りそう」と意見がありました。初期に客観的なフィードバックが得られてよかったです。

昨日、以下の記事を読みました。「フィードフォワード」と呼ぶみたいですね。

president.jp

テーマを1つに絞った後はスライドをつくりはじめるのではなく、手書きで大雑把にスライドの下書きをしました。 これは学生時代に教わったコツで、PCを使っていると細部を気にしすぎてしまうため、まずはアナログスライドでストーリー構成、ラフデザイン、時間配分をチェックすべし。 自分自身の気付きではありますが、これも早めにフィードバックを得る一例ではないでしょうか。

わかったこと

フィードフォワードとアナログスライドの効果として「作り込みすぎ」「深堀りしすぎ」を回避できました。

次にやること

アナログスライド作成時点で頭の中に発表イメージはできているのですが、リハーサルをしてみると想定通りにはいきません。 言葉が出てきません。変な間がある、ゆっくりすぎる。本番は適度にゆっくり話せた気がしますが、リハーサルは倍ぐらいゆっくりでした。

早めに資料作成をしてリハーサルに時間をかけたいです。また、リハーサルを録画して構成や話し方の見直しに活用しようと思います。

おわりに

今年は登壇納めとなりました。来年も続けるべく、ふりかえりをして改善していきたいです。

今回もmiroを使いました。miro最高。もうmiroがない生活は考えられません。 ふりかえり

ボツ案

  • シフトレフト
    • 要件定義、設計フェーズからセキュリティを考える
    • 構成変更を容易にする
      • テストを書いておく
      • 塩漬けにしない、こまめにアップデート、脆弱性対応
    • 全許可から許可する範囲を絞るアプローチはたいへん
      • NetworkPolicyは初期にやった方がいい
  • 最小特権の原則
    • 非rootユーザーでプロセスを実行する
    • セキュリティプロファイル
      • seccomp
      • AppArmor
    • 軽量VM
      • Firecracker
      • gVisor
    • 期待しているアップデート
  • Attach Surfaceを減らす
    • コンテナ最適化OS
      • Bottlerocket
      • Container-Optimezed OS
    • ベースイメージ
      • alpine
      • distroless
    • イメージを小さくする
      • dockerslim

Kubernetes Meetup Tokyo #47 で登壇しました

11/25に開催されたKubernetes Meetup Tokyo #47で「security-profiles-operatorをさわってみた」というLTをしました。2月のKubernetes Novice Tokyo #8以来の社外登壇です。

speakerdeck.com

12/7のKubernetes Novice Tokyo #15でセキュリティをテーマに話すことになっており、ネタ集めとして『Hacking Kubernetes』を流し読みしていたところ、security-profiles-operatorを知りました。

www.oreilly.com

Kubernetesによるseccompサポートはv1.19でGAとなりました。しかし、当時からその活用方法には疑問がありました。 LTで触れたように開発者はNodeに変更を加える権限を持っていないケースはそれなりにあるでしょう。すると、seccompプロファイルを有効化できず、当然Podに適用することもできません。 この疑念を解消する仕組みがkubernetes-sigs下で開発されていることを知ってワクワクしました。

その頃、社内で実施している『Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド』輪読会でseccompやAppArmorの節を読んでおり、security-profiles-operatorを紹介しました。

「Contributionチャンス!」とけしかけられましたが、そこまでは・・・と、LTで紹介することにしました。

book.mynavi.jp

正直、Kubernetes Meetup Tokyoで私なんかが発表して大丈夫だろうかという心配がありました。Kubernetesの本番運用も、Kubernetes上で稼働するアプリケーションの運用もしていない私が何を伝えられるのかと。実際、ローカル環境で試してみましたという紹介ですし。

本人に伝えそびれたのですが、私は@superbrothersさんと@Ladicleさんのファンです。Kubernetes Meetup Tokyo自体もすごい人が登壇する場所と思っており、恐れ多い気持ちがありました。

それでも登壇しようと踏み切れたのは、私も実行委員として関わっていたCloudNative Days Tokyo 2021における@mochizuki875さんの言葉があったからです。

ずっと目標にしていたんですよ、ここに出ることを。夢に見るぐらいだったんですよ。

event.cloudnativedays.jp

勝手ながら背中を押してもらった気分です。

反省点はありますが、登壇してよかったです。 つい先ほど一人でふりかえりをしました。その内容を載せておきます。

f:id:ngoktanio:20211127180034j:plain

次はKubernetes Novice Tokyo #15で15分ほど話します。今回の改善点を反映するには少々時間が足りない気がしますが、参加者のためになる発表を目指します。ぜひご参加ください。

k8s-novice-jp.connpass.com

CNDT2021に運営として参加したので非公式かつ自身にフォーカスしてふりかえる

CloudNative Days Tokyo 2021(CNDT2021)に運営として参加しました。

前回のCI/CD Conference 2021 by CloudNative Days(CICD2021)から継続して、Dreamkastチームの一員としてインフラまわりを担当しました。 「Dreamkast? なんだそれ? 気になるぞ」という方はDreamkastチームの先輩方の発表をご覧ください。

event.cloudnativedays.jp

speakerdeck.com

やったこと

CICD2021前にPrometheusとLokiを入れました。入れるところまでで時間切れでした。 CNDT2021に向けてはGrafanaダッシュボードを作成しました。公開されているものを使うケース、自前で用意するケースのどちらもありました。 もともと想定していたダッシュボードは一通り完成したかと思います。

Podのメトリクス取得に随分手こずってしまいました。で、こんな記事も書きました。 zenn.dev

そういえば、CICD2021後の最初の作業は開発用EKSクラスターの作成でした。「CloudFormationなんもわからん」という状態から教わりながらやりました。最近も少しCloudFormationを触りました。

本番前最後の週末に「AWS IVSとMediaLiveのメトリクスがあるとうれしい」となりました。IVSとMediaLive用のGrafanaダッシュボードは公開されていなさそうということで、CloudWatchダッシュボードを作成することになりました。CloudWatchダッシュボードを触るのは初めてでしたが、その日のうちに実現方法が固まり、翌日には完成しました(うろ覚え)。

ふと思いついてcloudnativedaysjp/dreamkast-infraのコミットログを見てみました。

$ git log --author 'Naoki Oketani' --since '2021/09/04' --oneline
7763b910 Update manifests/app/dreamkast/overlays/production/main/hpa.yaml
36e67370 prd: reduce the number of HPA replicas
a3ce2561 prd: bump grafana from 8.1.6 to 8.2.3 to fix CVE-2021-41174
a0590757 dev: bump grafana from 8.1.6 to 8.2.3 to fix CVE-2021-41174
193d183c attach AWSElementalMediaLiveFullAccess to Node
544170cd prd: grafana as statefulset and add manually managed dashboards
5d3097bf dev: set datasource parameter
cfbbafbe dev: add "AWS CloudWatch Synthetics" grafana dashboard
4a0e235f dev: add "Contour - HTTPProxy" grafana dashboard
720e8d4d dev: add manually managed grafana dashboards
4ba5c2a8 dev: grafana as statefulset
b89f3d58 dev: fix a invalid value of grafana-dashboards-default
0f9b6f67 set legendFormat of counter metrics
4f2c1768 dev: create Kubernetes Pod dashboard
6b2c9cad prd: update grafana from 8.1.5 to 8.1.6
8aded34e dev: update grafana from 8.1.5 to 8.1.6
19be1639 add service-monitor for kubelet (cAdvisor)

17コミットありました。コミットがすべてではないとはいえ、思ったより少ない・・・?

イベント当日は両日とも本業を済ませた後、リモート待機してGrafana/CloudWatchダッシュボードやTwitterを見たり、kubectlで色々調べたりしていました。

わかったこと

CICD2021では、体力不足や持病により準備期間は1ヶ月ほど空白期間があった、イベント当日は途中でお布団内待機に切り替えた、といった有様でした。 CNDT2021では、準備期間もイベント当日も安定して稼働できたと思います。ウォーキングの甲斐もあって体力がついてきましたかね。

技術面は広さも深さもまだまだだなーと感じています。 メトリクスとログを取っているもののうまく活用できませんでした。予測できない、事後的にも説明できない事象がいくつかあったように思います。

あれ、クロージングセッションで何か告知があったような?

次にやること

はい、2022年3月にObservability Conferenceやります。

私はObservabilityチーム(新設)とDreamkastチームを兼任予定です。 Railsで実装されているdreamkastもやってみたいですが、Observabilityとdreamkast-infraで手一杯ですかね。

クロージングセッション(うろ覚え)で「CloudNativeを掲げていますから我々自身もCloudNativeで」という発言がありました。 次は「Observabilityを掲げていますから我々自身もObservabilityもちろんやっていますよ」となるわけですね。(いい意味で)プレッシャーだな・・・

Observability ConferenceについてはCNDT2021プレイベント(冒頭で紹介したスライド)でも仮の告知があったことを覚えている方はいるでしょうか。 https://speakerdeck.com/shotakitazawa/cd-wakuhurofalsebian-qian?slide=58

Observabilityチームに限らず、運営やってみたいという方はJOBBOARDをチェックして実行委員会メンバーに連絡するなり申込フォームに登録するなりしていただけるとうれしいです!

やらないであろうこと

後ろ向きなことを書くのはいかがなものかと思いつつ、2022年3月の自分に向けて記しておきます。

イベント当日は現場組とリモート組でDiscordをつないでいました。現場の会話を聞くに、幼少から超絶機械音痴の私(なぜ、この業界にいるのか?)はまったく役に立たないどころか足手まといになること間違いなしと強く感じました。現場は頭数も必要でしょうからこんな表明をするのも心苦しいところはありますが「自分よ、変な色気を出して現場に行こうと思うなよ」

機械音痴を抜きにしても過敏性腸症候群を抱える身としてはしんどい気がします。

おわりに

個人のふりかえりのポエムチックな部分を書いてみました。

Grafanaダッシュボードを作るうえでハマったことなど技術的な話は後日Zennに投稿予定です。 Observability Conferenceまで引っ張るネタでもないので。

CICD2021のふりかえりも貼っておきます。

ngoktanio.hatenablog.com

それではまた。少し休んでアーカイブ視聴するぞ!

CKA更新時のトラブル

Certified Kubernetes Administrator(以下、CKA)の失効時期となったため、更新しました。 受験前、受験後にそれぞれトラブルが1つずつ発生しました。どのように対応したか備忘録として残しておきます。

受験前: My Portalから試験サイトへの導線が消えた

事象

CKA購入後、My Portalでシステム要件チェックや日程予約をします。おそらく、初めて受験する場合は My Learning タブ内にコースが表示されます。 更新時は資格を保有している状態だからか Course Completed タブ内に表示され、View Certification をクリックすればよいです。 Take Exam リンクをクリックすると試験サイトに遷移します。

f:id:ngoktanio:20211024184610p:plain

試験1時間前に仕事を切り上げて My Portal を見てみると、困ったことに Course Completed タブが消えていました(翌日には復旧)。

f:id:ngoktanio:20211024185044p:plain

どうやって試験を受けたらよいのか?

解決

試験数日前から毎日リマインダーが送られてきます。そこに記載がありました。

Launching Exam:

At the time of your scheduled Exam reservation, login to My Portal and click on the Take Exam link. You may also use your Linux Foundation ID (LFID) to log into https://www.examslocal.com/linuxfoundation to start your exam. Go to “My Exams” and select the exam you wish to start.

教訓

当時のスレッド

受験後: Credlyからメールが来ず、失効した

事象

日付 事象
10/13 受験
10/14 格通知受信
10/21 失効!?
10/22 サポートチケット起票、解決

失効予定の1週間前に合格しましたが、一時的に失効状態になりました。

結果通知メールには次のように記載されています。

Digital Badges and Certification Verification Tool

We have partnered with Credly platform to provide you with a digital version of your credentials. You will receive a separate email, within 7 days, containing instructions on how to claim your digital badge from www.credly.com. Further details of our Certification Badges are available here.

You can also point employers or clients to the Certification Verification Tool to market your Certification. You will need to provide the Certificate ID Number and the Last Name exactly as they appear on your Certificate, including any special characters or hyphens.

しかし、7日待ってもCredlyからメールは届きませんでした。10/20にサイトでもEXPIREDと表示されるようになりました。

www.credly.com

10/21にはLinux Foundationから "Certified Kubernetes Administrator (CKA) Certificate Expired" というメールが届きました。

  • CredlyでEXPIREDと表記されるようになった
  • Linux Foundationから失効通知された
  • Verification Tool では "Status: Active" のままだった

解決

サポートチケットを起票しました。

My Portal 右下に Need Help? Contact Support とありますが、ここからはFAQに到達するまでで解決に至りませんでした。 どう探したか忘れましたが

  1. Contact Us-Support - Linux Foundation - Training にアクセスする
  2. Contact Customer Support の SUBMIT TICKET をクリックする
  3. Verification Tool Question を選択する
  4. フォームに質問を記載する

I haven't received an email from Credly and Credly show my CKA as expired

My old CKA expired on 2021/10/21.

I retook CKA on 10/13 and received the email below from training-noreply@linuxfoundation.org. on 10/14.

Even though 7 days passed, I haven't received an email from Credly and Credly shows my CKA as expired.

https://www.credly.com/badges/a60071dd-cfaf-49d5-baef-ce73153571f2

The verification tool shows "Status: Active", but I also received an email "Certified Kubernetes Administrator (CKA) Certificate Expired" from noreply@mail.linuxfoundation.org.

I'd like to renew my CKA correctly. Thanks in advance.

Date: 2021/10/14 17:36 (JST).

Subject: Your Exam Results for the CKA Exam

以下、結果通知メール本文を引用

起票後20分ほどで Your 'CKA: Certified Kubernetes Administrator' badge has been updated というメールが届きました。

当時のスレッド

おわりに

無事、CKAを更新できました。

と言いたいところですが、My PortalのCertificates of CompletionにCKAが表示されていません。 メールでもCertificatesをもらっていません。まあ、いいか。

CI/CD Conference 2021 に運営として参加しました

CI/CD Conference 2021 by CloudNative Days に運営として参加しました。

CloudNative Days 実行委員になったきっかけ

3月に開催されたCloudNative Days Spring 2021 ONLINEの終了後、@_inductor_氏が実行委員を募集するツイートをしていました。悩ましいところではありましたが、やりたいと意思表示しました。

何が悩ましかったのか。

  1. うつ病を患っており、業務外の活動をする余裕はないのではないか
  2. 長らくコードを書いていない、たいして技術力のない自分に何かできることはあるのか

私はうつ病により、2018年7月から2020年6月まで2年間休職しました。その途中からKubernetes公式ドキュメント翻訳のレビュアーとして活動をしていましたが、復職してまもなく仕事優先のため離脱しました。 そうした経緯もあって、業務外の活動は控えるべき、やるとしてもレビュアーに戻るべきではないかと考えました。

後者の技術面については、業務でKubernetesAWSのセキュリティ対策を立案、推進していますが、開発や運用をしているわけではありません。手を動かせる自信がありませんでした。しかし、自信がないからやらないのではなく、チャレンジすることで技術力を飛躍的にのばそうと決断しました。

CI/CD Conference 2021 までにやったこと

CloudNative Days 実行委員はいくつかのチームに分かれており、私は配信プラットフォーム開発チームに入りました。 インフラを担当し、PrometheusやLokiを入れました。

その過程でやはり悩んでいたことが現実化しました。心身の調子が安定せず、毎日取り組む時期もあれば、1ヶ月何もしない時期もありました。稼働不足と技術力不足のため、当初やりたかったGrafanaダッシュボード作成まで完遂できませんでした。

CI/CD Conference 2021 当日

私が待機したところで何かできるのだろうかと思いつつも休暇を取得しました。最初のセッションがはじまる頃にはドキドキワクワクしていました。 大きなトラブルはなく配信がはじまり、セッションを聴こうとしましたが、何もしていないのにめちゃくちゃ疲れていて集中できませんでした。 アーカイブ視聴したいと思います。

CloudNative Days Tokyo 2021 に向けて

11月にはCloudNative Days Tokyo 2021が開催されます。主にインフラ面でバリバリ貢献していきたいです。また、2 daysの本番に向けて体力もつけたいです。