Microsoft Azure の信頼性をさらに高める

2019年7月15日 に投稿済み

Chief Technology Officer, Microsoft Azure

クラウド サービスを頼りにする度合いは、世界中の産業、組織、人の間で増大を続けています。したがって、自分が頼るクラウド ソリューションが信頼できるものであることの重要性はこれまで以上に高まっています。つまり、そのソリューションが安全で、各種国際標準と国内の法規制に準拠しており、データは秘密が守られて保護されており、根本的に頼りになると確信できることが必要です。Microsoft は、信頼できる一連のクラウド サービスを提供することをお約束しており、お客様は安心してクラウドの可能性を引き出していただけます。

この 12 か月間、Azure の中核的なコンピューティング サービスのアップタイムはグローバル クラウド インフラストラクチャ全体の平均で 99.995% でした。しかし、Azure の運用規模を考えると、アップタイムだけですべてを判断することはできません。この期間中に、お客様に影響する大きなインシデントは 3 件起きています。米国中南部リージョンでのデータセンター停止 (2018 年 9 月)、Azure Active Directory (Azure AD) Multi-Factor Authentication (MFA) チャレンジ (2018 年 11 月)、および DNS メンテナンスの問題 (2019 年 5 月) です。

54 のリージョンと数百もの常に進化するサービスで構成されているグローバルなクラウド インフラストラクチャを構築して運用することは、大きく複雑なタスクであるため、私たちはインシデントの一つ一つを重要な学習の時ととらえています。サービスの停止などのインシデントは、すべてのパブリック クラウド プロバイダーにとって難題であり、その原因には運用プロセス、アーキテクチャ設計、ハードウェアの問題、ソフトウェアの欠陥、人的要因などが複雑に関係していますが、私たちはこれらの要因がどのように揃うとサービス インシデントを引き起こすことになるかについて、理解を深めるよう常に努めています。前述の 3 件のインシデントはどれも、複数の障害の結果でしたが、その入り組んだ相互作用がなかったら、お客様に影響するような停止につながることはありませんでした。これを受けて、私たちはインシデントを緩和するためのより良い方法を作ろうとしています。そのためのステップとしては、たとえばプラットフォームの冗長性、リリース パイプライン全体の品質保証、プロセスの自動化などがあります。継続的に、リアルタイムで改善できることはクラウド サービスの大きな利点の 1 つです。リスクをすべて排除することは不可能ですが、私たちはサービスの問題の頻度と影響の両方を軽減することと同時に、お客様、パートナー、そして業界全体に対して透明であることに焦点を絞っています。

信頼性を確実にすることは、Azure のエンジニア全員の根本的な責務です。この取り組みに加えて、新しい品質エンジニアリング チームを私の CTO オフィス内に結成しました。このチームはサイト信頼性エンジニアリング (Site Reliability Engineering: SRE) チームと連携して新しいアプローチで、さらに信頼性の高いプラットフォームの提供を目指します。信頼性向上を続けていくために現在進行中のイニシアチブをいくつか紹介します。

  • 安全なデプロイ プラクティス: Azure では、変更自動化のアプローチとして安全なデプロイ プラクティスというフレームワークを採用しています。このねらいは、コードや構成の変更すべてが、所定の一連のステージを確実に通過するようにすることです。具体的には、Dev/Test、ステージング、プライベート プレビュー、ハードウェア多様性パイロットに続いて、より長い検証期間を設け、その後でリージョン ペアに幅広くロールアウトするというものです。このようにすれば、ソフトウェアの変更による悪影響のリスクが大幅に縮小されるため、このメカニズムを今後さらに拡張し、ソフトウェアによるインフラストラクチャの変更 (たとえばネットワーク制御や DNS) にも適用する予定です。
  • ストレージ アカウント レベルのフェールオーバー: 2018 年 9 月のデータセンター停止が発生したときに、多数のストレージ スタンプが物理的に損傷したため、即時シャットダウンが必要になりました。復旧までの時間よりもデータ保持を優先することが Microsoft のポリシーであるため、私たちは停止時間の延長を選びました。その間にお客様のデータをすべて、確実に復元するためです。多数のお客様から、この決定をお客様の組織自身で柔軟に行いたいというご意見をいただいていますが、これに応えてストレージ アカウント レベルでお客様がご自身でフェールオーバーを開始できる機能のプレビューを開始します。
  • 可用性ゾーンの拡張: 現在、可用性ゾーンは Azure のリージョンのうち大きい順に 10 個で提供されており、お客様の大多数にとって信頼性の選択肢が 1 つ増えることになります。大きい順に次の 10 個の Azure リージョンでも、今から 2021 年までの間に可用性ゾーンの提供を開始する予定です。
  • Project Tardigrade: 先月の Build で、Project Tardigrade についてお話ししました。この新しい Azure のサービスの名前は、ほぼ無敵といわれる微小動物クマムシ (熊虫) に由来するものです。この活動の目的は、オペレーティング システムのクラッシュにつながる可能性のあるハードウェア障害やメモリ リークを発生の前に検出することです。これで、Azure は仮想マシンを数秒間凍結してワークロードを正常なホストに移動することができます。  
  • きわめて影響の小さいメンテナンス: 私たちは、ゼロ インパクトと低インパクトの更新テクノロジに力を入れています。たとえば、ホット パッチ適用、ライブ マイグレーション、インプレース移行です。この 1 年間に、ホスト インフラストラクチャのセキュリティと信頼性を向上するパッチを数十件ほどデプロイしましたが、その多くは、お客様への影響やダウンタイムを生じることなく実装されていました。今後もこのようなテクノロジへの投資を続けて、その利点を Azure のその他のサービスにも取り入れる予定です。
  • フォールト挿入とストレス テスト: システムが障害発生時にも設計どおりに動作することの検証を可能にするには、実際にその障害を発生させるしかありません。私たちはサービスの本稼働開始前にフォールト挿入を実施することが増えており、それはサービス固有の負荷ストレスと障害に限定した小規模のこともあれば、リージョンと可用性ゾーンの規模で実施することもあり、後者ではリージョンや可用性ゾーン全体の障害の非常訓練をプライベートなカナリア リージョンで行っています。私たちの計画は、最終的にこのようなフォールト挿入サービスをお客様も利用できるようにすることです。そうすれば、同じ検証をお客様自身のアプリケーションやサービスに対しても実施できるからです。

Microsoft 社内のアーキテクチャと運用の詳細情報を今後もご紹介していきますので、ぜひご期待ください。私たちは基本的な信頼性を向上させるために前述のステップのすべてを実施していますが、Azure には高可用性、ディザスター リカバリー、およびバックアップのソリューションもあり、お客様のアプリケーションが事業継続性の要件と回復の目標を満たせるようにするためにご利用いただけます。信頼できるアプリケーションを設計する方法の詳しいガイダンスもご用意しています。これに含まれるものとしては、アーキテクチャ設計のベスト プラクティス、アプリケーション正常性の監視、障害への対応などがあります。

信じて頼りにできること、つまり信頼性は、Microsoft の信頼されるクラウドという確約の中核となる理念の 1 つであり、コンプライアンス、セキュリティ、プライバシー、透明性と併せて、これからもそのことは変わりません。これらの領域すべてにわたって、お客様の信頼を獲得し、維持する必要があることを私たちは理解しています。正しいことを述べるだけでなく、その正しいことを実際にしてみせる必要があります。信頼できる、責任ある、インクルーシブなクラウドの根底にあるのは、私たちがいかに一体となってビジネスに取り組み、テクノロジを開発し、アドボカシーとアウトリーチを発展させ、そして私たちが一員となっているコミュニティにいかに貢献するかであると Microsoft は考えています。Microsoft は、信頼できる一連のクラウド サービスを提供することをお約束しており、お客様は安心してクラウドの可能性を引き出していただけます。