本番環境で障害が発生した場合、深夜に誰が緊急対応と復旧を担当しますか?

Christa B.Eng.
Christa B.Eng.
Young tech entrepreneur, recently launched an AI-powered SaaS.

これについては、「オンコール」という専門用語があります。担当者が当番になると、起き上がって対応しなければなりません。

病院の当直医を想像してみてください。私たちエンジニアはシフト表を組みます。例えば、今週は私が担当で、来週は田中さんが担当といった具合です。当番期間中、私の携帯電話には特別なソフトウェアがインストールされるか、会社から専用の電話が支給されます。オンラインサービスに問題が発生した場合(例えば、ウェブサイトが開かない、ユーザーがログインできない、決済が失敗するなど)、監視システムが自動的にそれを検知し、すぐに私に電話をかけたり、アラートを発したりします。そのアラート音は通常、非常に耳障りで、深い眠りから確実に叩き起こされます。

電話がかかってきたら、すぐにベッドから飛び起きて、PCを開き、問題の切り分けを始めなければなりません。

具体的に誰が修正するのか?いくつかのケースがあります:

  1. 開発エンジニア自身: これが最も一般的なケースです。「コードを書いた者が責任を持つ」という考え方で、自分で書いたプログラムであれば、どこで問題が発生する可能性があるかを最もよく知っているからです。そのため、多くの企業では開発チームのメンバーが交代でオンコールを担当します。
  2. 運用/SREエンジニア: 大企業の中には、オンラインシステムの安定稼働を専門に担当するチームがあり、彼らは「運用エンジニア」または「SRE(サイト信頼性エンジニア)」と呼ばれます。彼らの主要な仕事は、サービスを24時間365日中断させないことであり、深夜の火消しは彼らの「本業」の一つです。しかし、彼らであっても、もしそれが特定のビジネスコードのバグだと判明すれば、最終的にはそのコードを書いた開発エンジニアを呼び出して一緒に解決します。
  3. 「上級戦力」: もし当番のエンジニアが対応しきれないほど問題が深刻な場合、彼/彼女は「応援」を呼ぶ必要があります。より経験豊富なエンジニア、アーキテクト、さらには技術担当役員(CTO)まで、布団から引っ張り出されるかもしれません。皆で緊急会議を開き、オンラインで協力して対応します。
  4. スタートアップ企業の社長/CTO: 非常に小規模なスタートアップ企業では、人手が足りないため、深夜にバグ修正を行うのは創業者自身や技術担当役員(CTO)である可能性があります。結局のところ、会社は自分のものであり、サービスが停止すれば誰よりも心を痛めるからです。

全体の流れはだいたいこうです:

  • 「ピーピーピー!」 アラートが鳴り響く。
  • 寝ぼけ眼で電話を取り、ロボットが「〇〇サービスがダウンしました」と読み上げるのを聞く。
  • ベッドから飛び起き、PCの前に駆けつける。
  • 各種システムにログインし、監視画面やログを確認する。探偵のように手がかりを探し、問題の根本原因を特定する。
  • 問題が見つかったら、「応急処置」を始める。時にはサービスを再起動するだけで済むこともあれば(PCを再起動するのと同じように)、リリースしたばかりの新しいバージョンのコードを直前の安定版に戻す(これを「ロールバック」と呼びます)こともあります。また、緊急でバグ修正のコードを書く必要がある場合もあります。
  • 問題が解決した後も、すぐに眠ることはできません。サービスが本当に安定したことを確認するために、しばらく様子を見る必要があります。
  • 最後に、「インシデントレポート」を作成し、夜が明けてからチーム全員に、昨夜何が起こり、どう解決し、今後どうすれば防げるかを説明します。

ですから、もしあなたが深夜3時にあるウェブサイトがダウンしているのを見たけれど、10分後には復旧していたとしたら、それはおそらく、あるエンジニアが布団からPCの前まで死闘を繰り広げた直後だったのでしょう。これは確かにITエンジニアの仕事の一部であり、大変ではありますが、責任でもあります。