はてなWebオペレーションチームのテックリード

Webオペレーションエンジニアid:y_uukiです。

最近、Webオペレーションチーム(正式にはシステムプラットフォーム部)のテックリードと名乗り、社内で活動し始めました。 テックリードについては、id:motemenはてなにおけるテックリード、そしてサービスプラットフォームチームのテックリードについて - Hatena Developer Blog に書かれています。

もともと、テックリードというロールはサービス開発チーム向けのものであり、Webオペレーションチームでは特にテックリードはアサインされていませんでした。 今回、テックリードとなったのは、ちょうどやりたいことをやろうとしたときに、何らかのロール名があったほうがやりやすかろうと思い、マネージャーに相談して名乗り始めたのが経緯です。したがって、Webオペレーションチームのテックリードとはこうであるといった定義があるわけではなく、現時点ではid:y_uukiがやりたいことをやっていくためのロールということになります。

やりたいこととやっていることを列挙すると以下のようになります。

  • 各サービスの新規アーキテクチャの相談
  • チーム内プロジェクトの立ち上げ
  • 各サービス開発チームとのコミュニケーション設計
  • Mackerelチームとの研究会

やりたいこと/やっていること

各サービスの新規アーキテクチャの相談

自分はWebシステムのアーキテクチャが好きなので、社内ソリューションアーキテクトとして活動しながら、大喜びでアーキテクチャの話をしています。 ついこの前までMackerelの時系列データベースの開発に携わっていた経験を活かし、現在はMackerelの異常検知のためのアーキテクチャや、はてなブログの独自ドメインのHTTPS化のためのアーキテクチャの設計に関わっています。

チーム内プロジェクトの立ち上げ

これまでの戦術的なシステム改善に限界を感じ始め、サービス開発の手法を取り入れながら、プロジェクトとしてシステム改善を進めようとしています。 Webオペレーションエンジニアというのは、インシデント対応や開発チームからの依頼など割り込み主体の業務になりがちです。 したがって、集中してソフトウェアを書く時間が取りづらかったり、スケジュールを設定しても割り込みにより目処が立たず塩漬けになるといったことがあります。 そこで、ソフトウェア開発のプロジェクトマネジメントの知見を取り入れ、やりたいことを戦略的に推進しようとしています。

各サービス開発チームとのコミュニケーション設計

前述のチーム内プロジェクトの立ち上げとあわせて、サービス開発チームとのコミュニケーションを見直しています。 これまでは、担当のオペレーションエンジニアがサービス開発チームに張り付き、システムを提供するというよりはどちらかというと労働力を提供するスタイルでした。 しかし、Webオペレーションチームは横串組織という構造上、サービス開発チーム以上に横のつながりを密にしなければなりません。 その一環として、これまでの各チームのSlackチャンネルにjoinして対応する方式の代わりに、各開発チームとのアダプタとなるチャンネルでコミュニケーションし、担当外のサービスの状況を把握しやすいようにしました。

今後は、状況把握だけでなく、割り込み業務を専門に引き受ける当番をつくり、割り込みによるコンテキストスイッチ回数を抑える取り組みをやっていきたいと考えています。 その一環として、Webオペレーションチームの一部で、精神と時の部屋と呼んでいる集中する時間を確保する取り組みが自主的に始まっています。

Mackerelチームとの研究会

「Mackerelのその先へ」をテーマに監視を超えた「観測」を実現するために、WebオペレーションチームとMackerelチームの研究会を始めようとしています。 これまでも、情報交換はもちろんやっていたのですが、より高度な研究開発レベルの取り組みに昇華させたいと考えています。

基盤開発へつなげる

これらの活動は、それぞれ独立してみえますが、はてなシステム*1という基盤技術を開発する取り組みにつなげようとしています。 そのために、アーキテクチャ相談をしながら、各サービスの状況を収集し、基盤開発に反映しつつ、プロジェクトマネジメントとコミュニケーション設計により、基盤開発を円滑に進められる状況を作ろうとしています。

はてなでは、運用だけでなく開発をやっていくWebオペレーションエンジニアを積極募集しています。

次回は id:aereal の番です。

*1:はてなシステムについては、今週のペパボ・はてな技術大会@福岡で発表しました。