この記事は、CYBOZU SUMMER BLOG FES '25の記事です。
kintone 新機能開発チームでプロダクトエンジニアをしているぶっちーです。
入社して以来、kintone というプロダクトの新機能開発をメインでおこなってきましたが、2025 年 3 月からは、障害対応や調査など、運用業務も担当するようになりました。
本記事では、新しく運用業務を担当するにあたって行ったことをお話しします。
背景
実際に行った取り組みを紹介するにあたって、背景をお話しします。
サイボウズでは自社クラウド「cybozu.com」上でクラウド製品を稼働させ、ユーザーにサービスを届けています。このクラウド基盤ですが、元々は VM 基盤をベースとしたアーキテクチャを採用しており、運用を担当する専門の部署が管理をしていました。ただ、事業拡大に伴い発生した課題を解決するために Kubernetes ベースのアーキテクチャに刷新を行っています。また、アーキテクチャの刷新に伴いサービスの運用権限を製品の開発チームに渡せるようになりました。その結果、開発チーム側に製品の運用を担当するチームが発足され、私もそのメンバーの一人となりました。
上記の通り、これまで製品の運用面は専門の部署が担っていたため、私は運用面の知識は豊富とは言えませんでした。また、プロダクト開発でも VM ベースのアーキテクチャ上での開発をしていたため、Kubernetes の知識も豊富ではなく、実運用した経験はありませんでした。しかし、業務でそれらの知識が必要になったため、いくつかの取り組みを経て獲得していきました。ここから、実際に取り組んだことを時系列順で紹介します。
やったこと 1:知識の習得
まずは、自分が何をわかっていて、何がわかっていないのかの把握と、わかっていないことの理解に努めました。新しいチームの発足にあたって、マネージャーによる運用業務に関するオンボーディングがありました。詳しくは以下の資料で紹介されています。
kintone開発組織のDevOpsへの移り変わりと実践 - Speaker Deck
このオンボーディングを通して、これから始まる業務においてどんな知識が必要なのかの全体像を理解することができました。その後は、個人で公式ドキュメントや社内で用意されているドキュメントを用いて足りない知識を習得しました。具体的には以下のような知識です。
- Kubernetes の基礎知識
- ログ、メトリクス、オブザーバビリティの基礎知識
- 調査時に用いる MySQL コマンド等
自社で開発しているクラウド基盤上での運用ということもあり、社内にドキュメントが豊富にあるため、比率的にはそれらの情報を参照することが多かったです。
Kubernetes の基礎知識に関しては、以下の自社の資料は初学者向けにおすすめです。
また、基礎知識の他にも「オンコール」業務のための準備や知識の獲得も行いました。
オンコールとは、勤務時間外を含めて緊急対応が必要なインシデントに対応できるように、対応者や担当時間を決めておく仕組みです。
https://www.pagerduty.co.jp/blog/practitioners-share-how-they-remove-the-fear-of-on-call/
オンコールの準備としては以下のことを行いました。
- 障害対応訓練
- 過去の kintone の障害のまとめから発生理由の傾向、復旧手順を整理
- 実際にオンコール業務をされている他部署の先輩からお話しを聞く
特に、「障害対応訓練」と「先輩からお話を聞く」に関しては、不安を減らすという面で良かったなと思います。実際にオンコール対応をするケースをシミュレーションして、どのように動くことになりそうか想定しました。
やったこと 2:手を動かして、Kubernetes やツールに慣れる
知識を習得した後は実際に手を動かして、さらに理解を深めました。具体的には、Kubernetes をローカルで動かしてみたり、ログやメトリクスのツールを実際に触って、どのように調査を行うかを学習しました。
Kubernetes に関しては、minikube を用いてローカルで Kubernetes クラスタを立ち上げて、実際にコマンドを実行したり、設定を書き換えてクラスタがどのように変化するかなど、知識として習得したものを実際に動かしながらさらに理解を深めました。意識したことは、Kubernetes の概念とそれを操作するコマンドを紐づけることです。
minikube の公式ドキュメントには Tutorials ページがあり、豊富なチュートリアル資料が揃っています。個人的には Kubernetes 101 のページの内容を一通りやるだけでもかなり Kubernetes に対する解像度が上がりました。
ログやメトリクスに関するツールは、開発環境用のログ基盤を用いて操作方法を学習しました。
kintone では Grafana を使用してメトリクスやログの確認を行います。確認する際に意識していた観点は以下の通りです。
- どのようなメトリクスを Grafana 上で確認できるか
- どんなログが出力されているか
- ログにはどんなフィールドが含まれているか
- あるリクエストに起因するログを見るにはどのように絞り込むと良いか
上記の観点を意識しながら、実際に開発環境で kintone を操作して、Grafana 上でメトリクスやログを確認する、といったことを繰り返し行いました。
このように Kubernetes クラスタを実際に動かしたり、ログ・メトリクスツールを触ってみて、頭で理解することと、実際に操作できることは別物だなと改めて感じました。知識を習得した段階である程度わかったつもりでいたのですが、実際に Kubernetes クラスタを動かしてみると理解が甘かった部分が出てきたりしました。ツールに関しては、操作方法は事前にある程度慣れてないと、いざ対応するとなった時に、素早く見たいログを見つけることが難しかったと思います。実際に、ローカルや開発環境で手を動かしてみて良かったです。
やったこと 3:他社事例を見る
ここまでで、自社の運用体制であったり、環境、ツールなどの理解を深めることができました。最後に、他社に目を向けることで自分たちのチームのやり方を客観視したり、世の中ではどんな問題が発生しているのかを把握しました。
他社の運用業務を担当しているチームの情報は、カンファレンスの登壇資料や企業のテックブログの情報を参考にさせていただきました。運用業務に関する知識や自分のチームの理解を深めた後に他社の情報を得ることで、自社との差分が見えたり、チームのスコープの違いが見えて、具体的な視点で情報を収集することができました。
実際に私が読んで勉強になった資料をいくつか紹介します。
- どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025 - Speaker Deck
- SREの前に - Speaker Deck
- 一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself - Speaker Deck
他にも、今後自分たちの製品でも起こりうるかもしれない障害について学習するために他社の事例に目を通しました。どういった種類の障害が起きたのか、復旧までの過程、再発防止策など、幅広い観点で情報を収集しました。実際に他社の事例にも目を通すことで、本当に幅広い原因で障害が発生していて、身が引き締まる思いでした。
また、Kubernetes 上での運用を始める上で、他社の Kubernetes 上で動く製品の例は参考になりました。
実際に業務をやってみて
これらの準備を経て現在、無事運用業務に携わっています。最初は初めての業務ということもあり少し不安もありましたが、無事スタートすることができました。ここ最近は安定した基盤のおかげもあり、大きなトラブルはなく業務を行えています。また、運用開始後は定期的にチームで振り返りを実施することで、より安定した状態を作れています。
実際に業務を行ってみて、以下の点を事前に準備しておくと業務がやりやすくなると感じました。
- Kubernetes クラスタの操作方法やログ・メトリクスツールの使い方の理解
- どんなメトリクスを確認できるのかの把握
- 障害につながりやすい操作の把握
これらを準備できていると、実際に問題が起きた時に何の情報を見ると良いか、その情報はどこで、どのように見れるかを短い時間で判断できます。そのおかげで、問題の原因の特定に集中することができます。
また、運用業務に携わり始めたもののその業務範囲はまだまだ限定的です。世の中のベストプラクティスとされているものにも少しずつ取り組んでいけると理想的だと思います。
他にも、新機能開発の業務にも良い効果を生み出していきたいです。少しずつですが、これまでより豊富になったインフラの知識を活かして、機能について考えたり、調査タスクもスムーズに行えるようになってきている感覚があります。正直まだ、成果にはつながっていないですが、手応えは少しずつ感じているので形にしていきたいです。
まとめ
今回は、運用業務未経験の状態から実際に業務に携わるにあたってどんな風に学習を進めたのかについて紹介しました。知識の習得、手を動かす、他社事例を見るの順番で学習を進めることで、一歩ずつ確実に知識を習得することができたと思います。
業務を始める前は不安な面もありました。ただ実際に学習を進めて、業務を開始した結果、不安の正体は「知らないこと」だったのかなと感じています。一つずつ知ることで、不安を少しずつ解消していくことができました。
ここで紹介したこと以外にも、チームとして取り組んだ活動もあります。よければ以下の資料にも目を通していただけると幸いです。
さらに kintone をより良いプロダクトに成長させるために、引き続き頑張っていきたいと思います。