CircleCI の使命は、開発者のみなさまがより迅速にイノベーションを実現できるよう、変更を管理することです。 しかしながら、この度、CircleCI プラットフォームの信頼性がみなさまの期待を下回る事態が発生しました。 CircleCI プラットフォームはデリバリー パイプラインの心臓部。このプラットフォームが停止すればみなさまのリリース プロセスも停止に追い込まれてしまうことは、CircleCI 全メンバーが認識しています。 それにもかかわらず、この度のプラットフォーム障害によってユーザーのみなさまに多大な迷惑をお掛けしてしまったことを、この場を借りてお詫びいたします。
プラットフォーム障害の背景
この度の障害について調査した結果、CircleCI のプラットフォームやインフラの一部分のみが原因ではなく、 更新によるバグや依存関係の問題、上流プロバイダーの不安定性などのさまざまな要因が絡み合っていることがわかりました。 本年 1 月の無料プランのアップデート後、CircleCI プラットフォームの使用量と流入トラフィックがともに増加しました。 このようなプラットフォームの負担増加に対しては、モデリングを行い備えていたものの、システムの一部が耐えきれない事態に至ってしまいました。
これらのインシデントの原因について明確なパターンは確認されていません。しかし、根本的な解決には多大な時間がかかるものと想定されます。 インシデント対応計画を見直した結果、緊急事態においてチームの業務に支障が生じていることが判明したためです。 CircleCI では、「非難をしない文化」および DevOps の「開発者が運用する」という原則を全面的に採用しています。しかし、CircleCI ではシステムもチームも分散状態にあるために、メンバーどうしの連携や意見交換、問題の解決に問題が生じていました。
このような状況に至った理由として、 過去 12 か月間で CircleCI エンジニアリング チームをほぼ 2 倍に増員したことが挙げられます。 この増員は計画どおりのものであり、そのおかげで開発スピードが大きく向上しました (先週だけでも 850 回以上デプロイを行っています)。 その一方、こうしたメンバー拡大によって、直感的に得られていた知識が分散され、バラつきが出るようになったことも事実です。 そのため、CircleCI は現在、社内全員に深く広い体系的知識が行き渡るように、体制を再構築する必要性に迫られています。
CircleCI の現在の取り組み
CircleCI にとって、テクノロジーは人のためにあるものです。そのため、人間第一の方針を採用して、プラットフォームの信頼性向上の取り組みを進めています。 先週より、第一対応者 (私を含む) の特命チームを発足し、メンバーが交代で待機し問題解決にあたっています。 このチームは世界各地のメンバーで構成されており、各メンバーには問題の修正権限と、プロセスおよびテクノロジーの両面で長期的な変更を実施する権限が与えられています。 このようなチームを編成したねらいは、インシデントの確認から解決までを速やかに遂行できるエンジニアの影響力を高め、CircleCI 全体に知見を共有しやすくすることにあります。
従来、CircleCI の信頼性向上の取り組みでは、システム全体ではなく、サービス障害の要因であるとわかっている “ホットスポット” (フリート管理やマシンのプロビジョニングなど) に注力していました。 こうしたホットスポットの強化に多大な投資を行い、実際に成果を確認していました。 しかし、CircleCI という組織が成長するにつれて、問題の中心がサービスレベルの障害から、システムの大型化・分散化に伴う複雑な相互作用へと移りました。 特命チームの働きを通じて、プラットフォーム障害を可及的速やかに解消しみなさまへの影響を抑えるとともに、対応から学んだ教訓を活かしてインシデントの根本原因を解消します。
さらに、CircleCI では今後、未来志向でプラットフォームの開発および改修を進めるための投資も行います。 新規に雇用したチーフ アーキテクトを中心として、プラットフォームのスケーラビリティの向上、および長期にわたるプロダクト イノベーションに向けた開発を進めてまいります。
みなさまとの進捗状況の共有について
率直に申し上げて、もう 2 度と同じインシデントを起こさないと確約することはできません。しかし、CircleCI は、こうしたインシデントがみなさまに及ぼす影響を軽微なものに抑えるとお約束します。
長期的にはプラットフォームの安定性向上への投資を続けるとともに、短期的にはインシデントの期間の短縮に尽力します。 インシデントの期間が 1 時間を超えた場合には、status.circleci.com にてインシデント レポートを公開します。
インシデント対応の改善は、CTO である私の最優先事項です。 CircleCI は今、課題に直面しています。しかし、本記事でご紹介した対応計画と特命チームの力で、速やかな改善を実現できると確信しています。 今後とも、CircleCI をどうぞよろしくお願い申し上げます。