taxin's notes

読書、勉強メモ etc.

年末(週末)放浪記と2023年の振り返り

皆様、年末いかがお過ごしでしょうか?

例年よりは期間は短めですが、休暇期間で旅行などお休みを一通り楽しんで、31日はご実家でゆっくり過ごされている頃でしょうか。

私はというと、諸事情で実家に帰れずに、この記事を近所のドトールで書いています。普段、実家でのんびり過ごす年末年始を過ごしていた身からすると、実家に帰らない正月というのは新鮮なので、せっかくなので行けていなかった場所をフラフラしてみることにしました。

といっても、29日まで仕事をしていたので実質週末やっていたことをまとめるだけです。

ついでに、2023年の振り返りも書いてしまおうという雑な感じのブログです。

本当は帰省ついでに、Totopia Brewery行きたかったんですけどね...

totopia.official.ec

年末(週末)放浪記

29日 (金曜日) の仕事終わりには、忘年会も兼ねて友人と新宿 美祿亭で飲んでいました。普段新宿に来ない人にはおすすめできない立地ですが、料理、特に魚料理は美味しかったです。特にほっけの開きが絶品でしたね。

新宿南口で、愛されて40年……【新宿 美祿亭】

30日 (土曜日) は思い立って小田原散策しつつ、元々行ってみたかった下記のお店に行こうとしたのですが定休日でした。年末なのでそんなこともあります。

とりあえず、駅前でご飯を食べつつ何かないか探していると、もう一軒チェックしていたお店があったので行ってみることにしました。

Three Pintsというお店なのですが、ビールも美味しくアットホームな雰囲気でのんびり過ごせて、結果的に帰りに乗ろうとしていた電車に乗り過ごすくらい最高でした。マスターからお年玉代わりのステッカーをもらいました。小田原に行かれた際にはぜひどうぞ。

odawalife-e.com

今年のビールを飲む時のお店探しは、どなたかのTweetで見かけてフォローしたGoogle Mapとか

Beer places Japan

Craft Beer Bar Mapに大変お世話になってました。

Craft Beer Bar Map - Tokyo

31日 (日曜日) はお昼探しをしながら下北沢周辺を散歩していたのですが、たまたま見つけたお店のカレーうどんが美味しかったのでいい気分です。

スープカレーの下北スパイス(@shimokitaspice) • Instagram写真と動画

絶対カレー屋じゃないだろうという内装だったので不思議に思っていましたが、インスタを見ると答えが書いてありました。

下北沢の KOGA MILK BAR にある間借りスープカレー屋です。

というわけで、雑にまとめた年末(週末)放浪記もここで終わりにして、2023年の振り返りを書いていきます。

2023年の振り返り

今年一番のイベントといえば、3月に転職してはてなに入社したことでしょうか。

taxintt.hatenablog.com

私はMackerel開発チームで働いていて入社から約9ヶ月が経つのですが、目の前の仕事にも少しづつ慣れてきて、開発チームの一員としてSREとしてどのように中長期的に貢献できるか考え始めています。

これは、視野を広く物事を考えることであったり、視座を(必要に応じて)高くするなど切り替えることに目を向ける余裕が出てきたともいえます。

onk.hatenablog.jp

tech.drecom.co.jp

とはいえ、まだまだできないことの方が多いと思っているので、目の前の仕事に丁寧に向き合うことは変わらず、もう少し柔軟に動いて仕事ができるといいなと思います。

また、Scrapboxというドキュメントツールに出会ったことも一つ大きなイベントかなと思います。特に、技術検証のメモを書く際にはストレス無く内容をまとめられるので、Scrapboxの利用前後で文章を書く頻度は確実に増えました。

技術検証のメモなど小さめなアウトプットの頻度が増えて心理的なハードルが下がったことで、前提となるインプットやアウトカムにも目を向ける機会が増えたことも副次的な効果としてありました。

これまで、Evernote, HackMD, Notion, Obsidianなど色々なメモ用のアプリを使ってきましたが、少しづつ自分の中で納得できる使い分けやツールの活用方法が整理されつつあります。

一通り整備できたら、この辺りの内容をまとめて記事にでもしたいですね。

2024年の抱負

まだ定量目標は設定していないのですが、この辺りが来年の目標になりそうです。目標は絶賛考え中なので、まとまったら記事にするかもしれないししないかもしれません。

  • 「忘れる (忘れてもいい) 読書」を意識しつつ、主に本からのインプットの量を増やす
  • Scrapbox, Obsidianを軸にドキュメントツールの使い方を整備し、技術メモなどのドキュメントを整理する
  • 文章以外のアウトプットの頻度を増やす (特に登壇)

オチも何もないですがこの辺で。良いお年をお迎えください。

監視ルールを作成する前に知っておきたいUSE Method / RED Method

この記事は、Mackerel Advent Calendar 2023 の9日目の記事です。

qiita.com

Mackerelのアドベントカレンダーですが、Mackerelの文字がないタイトルなので違和感を感じられた方もいらっしゃるかもしれません。

このブログではUSE Method / RED Methodと呼ばれる監視・パフォーマンス分析の方法論についてまとめようと思います。

そもそも、なぜ監視・パフォーマンス分析の方法論について知っておく必要があるのでしょうか?

システムを運用している私達は当たり前のようにメトリクスを取得し監視ルールを作成している訳ですが、監視自体が目的ではなく監視によって何かの目的を達成したいわけです。

  • (1) システムを監視することで、障害影響の軽減ひいては障害の回避によるサービスの可用性向上に繋げたい
  • (2) システムにおけるボトルネックになっている箇所を特定・解消することで、パフォーマンスを改善しユーザー体験の改善を図りたい
  • (3) システムの挙動を正確に理解することで、トラブルシューティングの効率を向上させたい
  • etc...

監視の目的は様々ありますが、目的によって何をどのように監視するかは変わってきます。

例えば、(1)の例は内部状態をあまり意識することなく、外部から見てシステムが正常稼働しているかを確認するブラックボックステスト的な監視を行うことになりますが、(2)や(3)の例はシステムの内部状態を詳細に把握するためのメトリックやホワイトボックステスト的な監視を実現するための監視ルールが必要になると思います。

今回ご紹介するUSE Method / RED Methodでは、監視の目的とそれを踏まえた対象が整理されています。これらの方法論を利用することで、自分達の監視目的に合致した監視を設計・実装しやすくなるという意味で方法論を知ることは重要であると筆者は考えています。

私はMackerelの開発チームに所属していますが、Mackerelのユーザーの皆様にMackerelを利用してより良い監視を設計・実装するための一助となればとの思いから、今回このようなブログを執筆しています。

USE Methodとは

USE Methodは、Brendan Gregg氏により提唱されたシステムのパフォーマンス分析の方法論です。下記の3つの指標で構成されています。

  • 使用率 (Utilization):リソースが処理中でbusyだった時間の平均
    • e.g.) CPU, Disk utilization
  • 飽和状態 (Saturation):リソースが実行しなければならない作業量
    • e.g.) CPUのQueue Length
  • エラー (Error) : エラーイベントの数
    • e.g.) Network interfaceにおけるlate collisionの発生数

USE Methodの定義は、Brendan Gregg氏のウェブサイトにもまとめられていますのでこちらもどうぞ。

USE Methodの特徴

USE Methodの特徴としては、内部的な状態に焦点を当てた監視、つまりホワイトボックステスト的な監視の方法論であることが挙げられます。これはUSE Methodがシステムのパフォーマンス分析における利用を想定しているからも想像がつくかと思います。

The USE Method can be summarized as: For every resource, check utilization, saturation, and errors. It's intended to be used early in a performance investigation, to identify systemic bottlenecks.

また、先述の引用箇所に記載があった通り、リソース単位での監視が念頭にあります。RED Methodにおけるリソースは「物理サーバーにおけるコンポーネント(CPU、Disk etc.)」を指します。

Terminology definitions: resource: all physical server functional components (CPUs, disks, busses, ...) [1]

[1] It can be useful to consider some software resources as well, or software imposed limits (resource controls), and see which metrics are possible.

USE Methodはツールベースのアプローチと比較されており、USE Methodは特定のツールに依存することなくcomplete view (不足のない監視項目・観点) を提供するとまとめられています。

While this can be fairly effective, one problem is that it relies exclusively on available (or known) tools, which can provide an incomplete view of the system. The user is also unaware that they have an incomplete view - and so the problem will remain.

The USE Method, instead, iterates over the system resources to create a complete list of questions to ask, then searches for tools to answer them. A more complete view is constructed, and unknown areas are documented and their existence known ("known unknowns").

RED Methodとは

RED Methodは、Google AnalyticsのSREであったTom Wilkie氏が提唱した監視についての方法論です。下記の3つの指標で構成されています。

  • レート(Rate) : 秒間あたりのリクエスト数
  • エラー(Errors) : リクエストの失敗数
  • 時間(Duration) : リクエストの処理にかかった時間

RED Methodの特徴

RED Methodの特徴としては、外部から見た時の振る舞いに焦点を当てた監視、つまりブラックボックステスト的な監視の方法論であることが挙げられます。

また、もう一つの重要な特徴としては、サービス単位の監視であることが挙げられます。RED Methodでのサービスという単語の定義としては、マイクロサービスを念頭に置いたシステムにおける独立して機能するサービスと同義です。

これらは、2018年に行われたGrafanaCon EUでのTom Wilkie氏の登壇に関するレポート記事の中でも述べられています。

https://grafana.com/blog/2018/08/02/the-red-Method-how-to-instrument-your-services

“The USE Method doesn’t really apply to services; it applies to hardware, network disks, things like this,” Tom said. “We really wanted a microservices-oriented monitoring philosophy, so we came up with the RED Method.” “You model this for every single service in your architecture, and this gives you a nice, consistent view of how your architecture is behaving.

USE Method / RED Methodの比較

先述の説明を踏まえると、USE MethodとRED Methodでは下記のような比較ができることがわかりました。

このように並べると、どちらの方法論が優れているというような議論になるかもしれません。しかし、USE Method / RED Methodに関しては、どちらか片方ではなく監視目的に応じて両者を併用する、使い分けることがポイントになります。

先述のTom Wilkie氏の登壇に関するレポート記事でも、本人のコメントとして下記のような発言があります。

https://grafana.com/blog/2018/08/02/the-red-Method-how-to-instrument-your-services

Tom recommended using the USE and RED Methods together. “It’s like the RED Method is about caring about your users and how happy they are,” Tom said, “and the USE Method is about caring about your machines and how happy they are. It’s really just two different views on the same system. They’re complimentary.”

MackerelでのUSE Method / RED Methodの実践例

さて、このブログはMackerelのアドベントカレンダーの一記事なので、Mackerelについても触れておこうと思います。

USE Method / RED MethodをMackerelで実現するには、どのような機能・ツールが利用できるでしょうか?

例として、ALB + EC2 + RDSで構成されたシステムを想定して考えてみようと思います。記事の主題の都合上、このパートでは機能・ツールの紹介に留めさせていただきます。

USE Method

USE Methodにおいて取り上げられている監視指標について、Mackerel-agentによって取得されるシステムメトリックやAWS integrationや各種プラグインによって取得できるメトリックが利用可能かと思います。

システムメトリックについては、mackerel-agent をインストールすると自動的に投稿されます。

mackerel.io

ALB + EC2 + RDSの構成で利用されているサービスはいずれもAWS Integrationでのメトリック取得の対象となっています。

mackerel.io

また、RDSに関しては、DBMSに応じたメトリックプラグインを利用することも可能となっています。

mackerel.io

RED method

USE Methodにおいて取り上げられている監視指標について、ALBを利用している場合はAWS integrationの機能でRequest CountやHTTP Code Countをメトリックとして取得することが可能です。

mackerel.io

RED Methodで取り上げられているような指標がアプリケーションログで表現されている場合は、cloudwatch-logs-aggregator, sql-metric-collectorの利用も検討されると良いかと思います。

各ツールの詳細な説明は、下記記事をご参照いただければと思います。

mackerel.io

mackerel.io

最後に

いかがだったでしょうか? 本記事では、USE Method / RED Methodと呼ばれる監視・パフォーマンス分析の方法論についてご紹介させていただきました。本記事が皆様の監視設計・実装の参考になれば幸いです。

明日は id:wtatsuru さんです。

仕事における感情の変化に1on1で向き合った話

勤労感謝の日なので (?) 仕事の話をします。

記事のタイトルにある通り、仕事と感情の変化についてSREのテックリード (TL) と1on1で会話する機会がありました。

最近は、エンジニアとして「気分良く」仕事ができるかということを考えています。もちろん仕事の締切を守るとか求められるアウトプットを出すように最大限勤めるとかは前提とした上でです。

仕事におけるモチベーションや行動力につながるのはもちろんですが、自分の傾向として「気分が良い」方が視野が広くなり興味関心や思考をチ-ム外・社外の物事まで向けやすくなるというのがあります。

私の所属するチ-ムでは2週間スプリントでスクラムを行っているのですが、あるスプリントで「気分良く」仕事ができていない状態になっていました。

  • タスクが想定より時間がかかってしまった
  • タスク完了までに設けているチェックポイントに達するまでの時間もかかっていた
  • 自分でコントロールしづらい要因もあり、タスクに対応する期間が間延びしていた

よくある話だと文字にして客観的に見ても思うのですが、どうもモヤモヤするので個別にTLと1on1で壁打ちをすることになり、下記のようなことを自覚するに至りました。

  • タスク完了までの間に設けているチェックポイントの到達状況と満足度は線形に比例しない
    • タスクが完了しなければ、感覚的に満足することはほぼない
  • 個人で抱えているタスクの並列度、完了度合い、タスクの実施期間は本記事でいうところの「気分」のパラメーターとなる
  • 自分のご機嫌取りを兼ねて小さい粒度のタスクを片付けることで達成感を得ていたが、そのスプリントは該当するタスクが無かった
    • 厳密には無いわけではなかったが、スプリントにちょうどいい粒度ではなかった(と考えていた)
  • 1on1で自覚した内容を踏まえると、様々あるパラメーターの中で個人的に重要度の高いパラメーターはタスクの完了度合いとなる

上記の内容を踏まえて、1on1の中ではスプリント内で片付けられる「ちょうどいい隙間タスク」を用意する、拾いに行くための話をしていました。

暗黙的に自覚してそれとなく自分のご機嫌取りをしていたと思うのですが、改めて思考を言語化すると面白いというのが率直な感想ではあります。また、言語化することによって、より客観的な視点を獲得して、同じようなケ-スにハマることを避ける狙いもあったので、この回は個人的に良い1on1だったかなと思ったのでした。

この話は、開発チ-ムのKPTで共有して詳細聞いてみたいと話があったのでまとめていたのですが、会社の同僚が1on1についてのブログを書いていて、便乗しよう これと絡めてみようと思い書き直しました。

tomato3713.hatenablog.com

「ということで人が1on1の時間に何を考えてどう使っているのか気になっている。」

「1on1をどう使っているか」と自分で考えた時に、自身の暗黙的な認知や思考を引き出してもらうために時間を使う傾向があります。1on1の中では、それらを言語化するということがゴ-ルになります。目に見えなく実態がわからないものをどうにかするより、言語化されて実態が見えた方が自分一人でも対処しやすいだろうという実感があるからです。

ただ、引き出してもらうために何をすべきなのかを方法論立てて説明するのは正直難しくて、感覚的に自己開示しながらやっていますくらいしか言えないです。これはうまいこと言語化できたらブログに書くかもしれないです。

そもそも、自身で言語化できる能力を獲得するというのも、その先のゴ-ルにあると思っています。下記のようなポストを見かけたのですが、多少なり通じる部分がありそうです。思考を可視化するのはブログに書いたり言語化することだと思うので、これも一つのレベルの上げ方なのかもしれないですね。

夜ご飯食べた後に散歩しながらブログを書きました。散歩途中でちっこいトイプードルに懐かれたので今日はいい日です。

SRE NEXT2023にコアスタッフとして参加しました

09/29 (金) にSRE NEXT 2023が開催されて、@taxin_tt はコアスタッフとして運営のお手伝いさせていただきました。

sre-next.dev

運営スタッフとしてSRE NEXTに参加するのは SRE NEXT2022 以来、2回目です。

taxintt.hatenablog.com

今回は配信チームとカンファレンス内でのサブイベントを企画するチームを兼務していました。

オフラインイベントでの運営は今回が初めてだったので、会場でカンファレンスの熱量やお祭り感を実際に感じることができ、個人的に印象に残ったカンファレンスでした。

コミュニティコラボ企画について

SRE NEXT2023では、技術コミュニティ同士のコラボをパネルディスカッションという形で実現することができました。

sre-next.dev

今回の企画依頼をご快諾いただいたCloudNative Days, Platform Engineering Meetup, DevOps Days Tokyoのスピーカーの皆様、本当にありがとうございました。
また、コラボ企画を実施するきっかけを与えてくれたgr1m0hさん、SRE NEXTを代表してパネルディスカッションのモデレーターを務めていただいたかつひささんや、運営スタッフとして一緒にコラボ企画立案をサポートいただいたsakutaroさんにも本当に感謝しています。

この企画の発端は前回のSRE NEXT2022に遡ります。

x.com

SRE NEXT2022ではクロージングセッションとしてSRE NEXT 2020 → 2022 Conference Chair トークというSRE NEXT 2020と2022のchairによるトークセッションがありました。
そこで、(正確な文言は覚えていないのですが)技術コミュニティ同士のコラボの話が話題にあがっていました。

そして月日は経ち、SRE NEXT2023のサブイベントの企画において、このコミュニティコラボ企画を行うことが決まった次第です。
いわゆる、風呂敷を畳むというやつですね。

パネルディスカッションのテーマ設定は正直難しいものがありましたが、SREに隣接する領域の技術コミュニティのスピーカーをお招きして何が聞きたいだろうか?ということを考え、今回のテーマ内容になりました。

blog.sre-next.dev

これは、SREが特定の技術領域やロールに制約されるものではなく、システムの信頼性を工学的なアプローチで制御することやその方法論であり、様々な技術的概念・方法論と関連しているからこそ実現できた企画とも言えます。

今回のセッションタイトルはかつひささんのアイデアですが、「ご近所さん」という言葉は上記の内容を表現していて、言い得て妙だなと思っていました。

カンファレンス当日

当日はTrackBの配信担当とコラボ企画 (パネルディスカッション) のタイムキーパーを務めていました。

配信の実務的なことをやるというよりは、配信オペレーションの指示出しや配信トラブルの対応がメインで、思った以上にセッションを見る余裕はなかったですね。

パネルディスカッション中に、かつひささんから「SRE NEXTの運営スタッフ(当日スタッフも含む)って何名でしたっけ?」と聞かれて、テンパっていたのは私です。
元気よく、「43名です!」と叫んでいました。

最後に

やりましたよ!!!!! コラボレーションできましたよ!!!!

x.com

ポスターセッション、Chalk TalkBOFなど色々な形式のセッションがカンファレンスのコンテンツとして実施されていることをSRE NEXTの打ち上げで知ったので、できることは色々ありそうです。

about.yahoo.co.jp dev.classmethod.jp atmarkit.itmedia.co.jp

余裕ができたので、まずは他のTrackのセッションも含めてSRE NEXTで登壇された皆様のセッションスライドを見ていきたいと思います。

株式会社はてなに入社しました

エイプリルフールのいつものやつではありません。

株式会社はてなに入社しました - hitode909の日記

今年の3月に株式会社はてなにSREとして入社して3か月が経ったので、自身の振り返りも兼ねてブログを書いています。 SREのオンボーディングの雰囲気に関しても、このブログでお伝えできるといいかなと思っています。

自己紹介

id:taxintt です。 twitter.com

前職は株式会社ビザスクという会社で主にCore SREとして働いていて、はてなに転職してからは監視SaaSのMackerelの開発チ-ムでEmbedded SREとして働いています。 前職ではGCPを利用していて、AWSは趣味で少し触る程度でキャッチアップが必要だったので、そのあたりから振り返りを始めてみようと思います。

ちなみに、はてなのプロダクトごとの技術スタックは下記のペ-ジを見ると雰囲気を掴んでもらえるかと思います。

hatena.co.jp

入社前

入社前にはAWSコンテナ設計・構築[本格]入門を読みつつ、ハンズオンの中で構築するサンプルアプリケーション用のAWS環境をTerraformで書き直していました。 環境はECS on Fargateの構成でECRやCodeDeploy含め関連するAWSのサービスを幅広く利用するので、AWSのコンテナ環境周りのキャッチアップにはちょうど良かった印象があります。

www.sbcr.jp

AWS周りの知識のキャッチアップに関しては、この本にだいぶ助けられました。
あとは、前職ではMySQLだったのでPostgreSQLのキャッチアップをしたり、SREとしての業務の中で比較的初期に触りそうな技術に慣れておくように動いていました。

入社後も引き続きキャッチアップは進めていますが、立ち上がりの時期に学習コストを最小限にできたのは良かったと思います。

入社後

入社後は、 Mackerel チームのスクラムイベントに参加しつつ、SRE用のオンボーディングタスクを割り当ててもらいました。 前職でスクラムの経験はあったのでなんとなくの雰囲気はイメージしてましたが、スプリントプランニングなどのイベントの進め方やコミュニケーションのスタイルの違いに慣れる必要がありました。

入社直後の立ち上がり時期には、AWSなど比較的慣れている技術を使って仕事をしながらスプリントでの仕事のリズムを作って、慣れてくると目の前の仕事により集中できるようになると考えていて、そのように動いていた記憶があります。

Mackerel開発チームでの仕事の雰囲気は id:lufiabb さんのブログも参考になると思うのでぜひどうぞ。 developer.hatenastaff.com

スプリントの中ではPWG (Performance Working Group)と呼ばれる会も開催されており、アプリケーションエンジニアやSREsを含めた開発チーム全体でSLOの準拠状況や最近のパフォーマンス状況を確認する機会もあります。 いわゆるアプリ/インフラという区分ではなく、開発チーム全体でプロダクトとしての信頼性について確認・議論する機会があるのは印象的でした。
PWGに関しては下記のブログ(2015年)にも詳細がありますが、PWGの主旨は変わっていないように感じます。

mackerel.io

また、サービス開発チームを横断する形で社内のSREsが集まるSRE標準化委員会もあり、チームを跨いでSRE文脈で社内の技術標準を整備する機会もあります。 SRE標準化委員会の詳細に関しては、下記のpodcastのエピソードでも語られています。

developer.hatenastaff.com

日々の過ごし方に関してもう少し話すと、MackerelのSREsとは同期的に会話する時間を入社直後から設けてもらっているので、不安なく仕事ができています。 京都に本社オフィスがあり、対面で会話する機会が多くない点は気にしていた部分でしたが、入社後もSREs含めた開発チームと心理的な距離を感じることもなかったです。

この部分の不安が解消されていたのはオンボーディング期間において大きかったと思います。 不安をそこまで感じなかった背景として、Slackでのテキストコミュニケーションが活発に行われていることも要因の一つとしてありそうです。

開発チームにjoinした後も、開発チームのメンバーから声かけしてもらいPWGの書記をやるなどできることの範囲を広げたり、SRE標準化委員会といったチームの枠を超えたコミュニケーションの機会を提供してもらったりと適度にストレッチ目標を置きつつ仕事をさせてもらっていると実感しています。

オンボーディングしぐさ

同期的なコミュニケーションの機会について触れましたが、メリットは他にもあって、タスクの進め方や技術課題に対する捉え方・優先度、物事に対する期待値をすり合わせる機会を作れたことです。 このあたりから、オンボーディング時に自分が心がけていたことも少し書いてみます。

オンボーディングの内容に関してはこちらが参考になります。 developer.hatenastaff.com

今何をやっているか、何で詰まっているかや疑問点をテキストで残して、デイリーで会話することは一番重視していました。 これは、Working out loudの実践がベースにあって、特にリモート下においては作業状況や思考のプロセスが見えづらいし非対称性が発生するので、気持ち多めくらいでテキストとして残すようにしています。 blog.studysapuri.jp

他には、Pull RequestのDescriptionには修正内容やその背景・意図を書くようにするし、ReviewerとしてPRレビューをする際には確認した内容をコメントで残したりしています。
この行動にはもう一つの意味があって、私は転職に伴い利用する技術スタックが大きく変わったので、各種サービスの仕様について理解した内容を示す意味でもやっています。 「私が適切に理解していない」ことを指摘してもらうためには、「私はxxxだと理解しています」と開示することが一番手っ取り早いのではないかなと。

上記とは別に、技術課題に対する捉え方・優先度、物事に対する期待値など機微のある事項は同期的なコミュニケーションの中で会話するようにしていました。 社内のドキュメントなどから把握できるケースもあると思いますが、自分で自信を持って判断できないうちは会話する方に倒しています。

もう一つ、オンボーディング期間中に先述の通り開発チームの他メンバーから声かけしてもらいできることの範囲を広げたり、タスクを自発的に拾うことで小さな成功体験を重ねるようにすることも心がけていました。 注意点があるとすれば、技術課題に対する優先度は認識しておいた方がベターだと思います。 SREsひいては開発チームにおける貢献の意味合いでの成功体験を重ねるとして、技術課題に対するチームとしての優先度とずれて貢献度合いが下がってしまうのは双方にとって勿体無いからです。

成功体験は開発チームで仕事していくことに対する自信にもつながるので、オンボーディングで受け入れられる側としても意識しつつ3ヶ月を過ごしていました。 オンボーディングにおける小さい成功体験を重ねる話は id:onk さんのブログにも書いてある3ヶ月で3連勝がイメージしやすいと思います。 onk.hatenablog.jp

自分がチームでやっていけそうという感覚を手に入れるために、できるだけ短期間で成功体験を積んで貰いたい。更に単発じゃなくて3連発で成功すると「このチームで良かった!」と思えるんじゃないか。そのためにチームがちゃんと応援する。オンボーディングタスクに対して、チームメイトが積極的に関与していく状態でありたい。

最後に

3ヶ月経っても日々キャッチアップ中ですが、少しづつ行動の幅を広げて開発チーム・プロダクトの成長・改善も考えて行動していく所存です。
また、このブログではてな入社後のオンボーディングの雰囲気が少しでも伝わっていると嬉しいなと思います。

宣伝

というわけで、無事に3ヶ月経過しましたという話でブログ自体は終わりなのですが
ここまで読んでいただいている方は多少なりとも、はてなのSREに興味を持ってくださっている方だと思います。そうですよね? ね?

そんな皆様のために、はてなのSREが何をやっているのかがわかる便利リンクを貼っておきます。

developer.hatenastaff.com

カジュアル面談もご興味があればぜひ申し込んでみてください。 技術的な話や、他のSREsの働き方に関して本記事に書いてある内容より深い内容や違った話が聞けると思います。

dotfilesを更新した

新年明けましておめでとうございます。
前回のブログから大分間が空いてしまいました。

年末年始は風邪を引いていたので、休みつつdotfilesの整備を行なっていました。
(2022年の振り返りブログも書こうと思ったのですが、体調不良で時期を逸してしまった感があるのでお蔵入りするかもしれません。)

github.com

シンボリックリンクの貼り方を調整

既存のdotfilesでは、root directoryにある設定ファイルのパスをfor文で全て取ってきてシンボリックリンクを作成するという処理でしたが、後述するweztermの設定ファイル (./config/wezterm/wezterm.lua)などroot directoryに設定ファイルが存在しないケースもあり、個別にシンボリックリンクを貼っていく方式にしました。

下記のように個別の設定ファイルごとに定義します。
dotfilesのroot directoryからのファイルパスとHome directoryからのファイルパスが同一の場合は第二引数を省略できるようにしています。

# ln -hvfs "./.config/starship.toml" "$HOME/.config/starship.toml" と同等
make_symlink .config/starship.toml

iterm2 → weztermへの変更

iterm2自体にそこまで不満はないのですが、使用感やカスタマイズ性がどの程度変わるのか気になったので乗り換えることにしました。

プロンプトのカスタマイズはStarshipに任せてるので、見た目も大きく変わってないです。
そこまでカスタマイズはしていないのですが、key bindings周りは調整しています。
ctrl / shift keyはkey bindingsの設定でデフォルトで利用できますが、ユーザーが定義できるLeader keyを利用したkey bindingsの設定もできるので、別のキーバインドと衝突するようなケースは避けやすいと思います。

wezfurlong.org

    -- keybindings
    -- https://wezfurlong.org/wezterm/config/default-keys.html?highlight=key%20bindings#default-shortcut--key-binding-assignments
    disable_default_key_bindings = true,
    quick_select_alphabet = "colemak",
    -- https://wezfurlong.org/wezterm/config/keys.html?highlight=key%20bindings#leader-key
    leader = { key = "a", mods = "CTRL", timeout_milliseconds = 2000 }, 
    keys = {
        { key = "r", mods = "CTRL", action = "ReloadConfiguration" },
        --
        { key = "t", mods = "CTRL", action = wezterm.action({ SpawnTab = "CurrentPaneDomain" }) },
        {
            key = "h",
            mods = "CTRL",
            action = wezterm.action({ SplitHorizontal = { domain = "CurrentPaneDomain" } }),
        },
        {
            key = "v",
            mods = "CTRL",
            action = wezterm.action({ SplitVertical = { domain = "CurrentPaneDomain" } }),
        },
        -- 
        { key = "p", mods = "LEADER", action = wezterm.action({ EmitEvent = "open-htop-pane" })},
        --
        { key = "r", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Right" }) },
        { key = "l", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Left" }) },
        { key = "u", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Up" }) },
        { key = "d", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Down" }) },
        --
        { key = "c", mods = "LEADER", action = wezterm.action({ CopyTo = "Clipboard" }) },
        { key = "v", mods = "LEADER", action = wezterm.action({ PasteFrom = "Clipboard" }) },
        -- 
        -- https://github.com/wez/wezterm/issues/641
        { key = "q", mods = "LEADER", action = "ShowDebugOverlay" },
    },

.gitconfigの更新

まともに整備していなかったのですが、せっかくなのできちんと整備することにしました。
ユーザー情報は.gitconfig.localに切り出すようにしており、あとは色々な方のdotfilesを参考に試しつつ良さそうな設定を入れています。

他にも下記なども対応したいですが、使いつつ後追いで調整できればと思います。

  • zsh-autocompleteの導入
    • 下記のzennの記事を見て導入しようと思ってできていなかった
  • asdfの活用
  • etc...
    • (何かあった気がするけど忘れた)

zenn.dev

新年一発目のブログはこんな感じで失礼します。

SRE NEXT 2022に運営スタッフとして参加した話 (+技術コミュニティの思い出)

前回の記事から5ヶ月近く空いてしまいました。
少し前にはなりますが、5/14 ~ 5/15の日程でSRE NEXT 2022が開催され@taxin_tt は運営スタッフとしてお手伝いさせていただきました。

sre-next.dev

SRE NEXT 2022とは?

SRE NEXTとは、信頼性に関するプラクティスに深い関心を持つエンジニアのためのカンファレンスです。
前回開催が2020年なので、SRE NEXT自体は2年ぶりの開催でした。

運営として参加するきっかけは去年の年末、2021年の振り返りブログを書こうかグダグダしていた時に、sre loungeのSlack channelでSRE NEXT 2022のコアスタッフの募集案内がされているのを見つけました。

(sre loungeのSlack channelへの参加リンクはこちらから)

Kubernetes (k8s) の初心者向けコミュニティ運営の経験もあり、カンファレンス運営に興味を持っていたので最終的には応募するのですが、応募する時には下記のようなことを考えていました。
(そして実際に、応募前に想像していた以上の経験をさせていただくことができました。)

  • 自身のキャリアの中でSREに軸足を移している中で、SREのコミュニティに関わる機会を持ちたい
  • 技術カンファレンスの運営経験から個人としても所属している会社的にも還元できるものがありそう

やっていたこと

SRE NEXT2022の運営メンバーとして、下記のようなことをやっていました。
(このブログを執筆している時も少しタスクが残っています。 ブログを書くまでがSRE NEXTなので許してください。)

  • 公募・スポンサーセッション以外のサブイベントの企画運営
  • データ分析関連のあれこれ (参加者アンケート回収率向上の施策実施 etc.)
  • 当日運営 (TrackCの司会)

上記はいずれも、自分にとって初めて経験する内容でした。
SRE NEXT2022のテーマである SRE Diversity に沿うような形で、コンテンツの企画などの各種準備を進めていました。

blog.sre-next.dev

特に、下記の2つに関しては、コンテンツの企画の初期段階から関わらせていただきました。

幅広い参加者にSRE Diversityに飛び込んでいただく (もしくはそのきっかけになる)、アンケートなどで参加者からなるべく多くのフィードバックを得た上で次のSRE NEXTに繋げることを念頭に企画したコンテンツで、その目的自体はある程度達成することができたかなと思います。
(今は無事に終わってホッとしています。)

運営をやってみた感想

SRE NEXT2022の運営準備に関しては、コロナ禍の影響もあって基本的にオンラインかつ非同期で各種準備を進めていました。オフラインで運営メンバーと会ったのはリハーサルと本番の2回のみです。(本番で初めて会った人もいました。)

そういった状況下でも、(個人的に想像していたよりも) カンファレンスの運営準備はスムーズに進んでいました。

これは、ひとえに運営メンバーのOpennessとConferenceをよりよくしようというモチベーションによるもので、それに自分も何度も助けられました。
疑問や不安に思うことがあれば、逐次運営メンバーに相談・共有することでフィードバックをいただき、問題を解消しながら進めることができたので、カンファレンス運営未経験の私でも準備を進めることができました。

この場を借りて、nariさんを始めとした運営メンバーの皆さんには改めてお礼を言わせてください。本当にありがとうございました。

個人的な振り返り/反省

個人的な反省としては、動き出しの遅さや作業進捗の共有などで改善点がありました。

たらればの話ですが、非同期で進めているが故に、「もう少し早めに動いていれば ▲▲ のブロッキングにならなかった」「もう少し早く共有していれば xx ができた」という場面がいくつかあり、それは次回以降に繋げることができればと思います。

技術コミュニティの思い出

SRE NEXTの運営準備を進める中で、もう一つ感慨深いことがありました。
私が技術コミュニティに関わった最初の機会は、先述のk8sの初心者向けコミュニティ活動の一環でオフラインのMeetupを企画・実施したというものです。 (コロナ前なので2年前...)

k8s-novice-jp.connpass.com

実は今回の運営準備を進める中で、上記のコミュニティ立ち上げ期からサポートいただいていた@jacopenさんに (詳細は割愛しますが) ご相談にのっていただく機会がありました。

アドバイスいただいた内容が無ければ、運営準備の中でうまく進められてなかったであろうことがいくつもあります。
(改めて、こちらに関してもお礼を言わせてください。本当にありがとうございました。)

それもこれも、あの新宿の居酒屋で顔合わせをして、コミュニティ活動に携わっていなかったら起こり得なかったことだろうな... とカンファレンス終了後に感慨深い気持ちになっていました。
(別のコミュニティのコアメンバーに相談するという発想にもならなかったと思うので)

www.rgf-professional.jp

キャリア形成の理論の中で、計画的偶発性理論 (個人のキャリアの8割は予想しない偶発的なことによって決定されるため、その偶然を計画的に設計し、自分のキャリアを良いものにしていこうという考え方。) がありますが、これは偶発性の産物 だと思います。

また、自分がSIerに勤めていた時に、「しがないラジオ」のnariさんが出演されていた回を聴いていたりと、過去の伏線? が回収された感があり、これも感慨深かったです。

現在、所属する企業ではk8sは触っていないので、個人としてはk8sのコミュニティに直接的に貢献することができてないのですが、その中でもこういった形で関係性を持つことができています。
これも、様々なコミュニティに携わらせていただいたことで享受できる、ある種の Diversity の素晴らしさなのだと実感しています。

SRE NEXT2022の開催発表のブログでは、下記のような記載がありました。

このような考えから、スタートアップから大企業まで、幅広い業種・領域・フェーズでのSRE Practiceの実践を集約し、より多様なSREの実践が普及していくきっかけを提供したいと思い ... (中略) ... より多様なユーザーへの信頼性獲得の試行錯誤は、参加者の皆様に多くの気付きや学びを提供し、自分たちのSREプラクティスを再考し "SREのNEXT" を考えていくきっかけをあたえてくれると信じています。

SRE NEXT2022では、SLI/SLOやPostmortemといった個別のトピックベースのセッションや、シード期のスタートアップや非IT事業会社など多種多様な企業事例のセッションがあったり、SRE Diversityのテーマに沿ったセッションが提供されていました。
私自身、(TrackCの司会をする中で) 所属する会社での課題が言語化されたセッションに出会えたり、気づきを得ることができた2日間でした。

SRE NEXT2022は、Diversity の素晴らしさを実感できた機会でした。
(SREのコミュニティとしても、個人としても)

最後に

SRE NEXT2022にご参加いただいた皆様、素晴らしいセッションを提供していただいたスピーカーの皆様、スポンサー企業様、そしてSRE NEXTの運営メンバーにお礼を申し上げます。

これからも、SREとしてやっていきです。
(次回開催の時には、セッションで喋る側になれたらと思います)