TOPクラウド > システム運用の信頼性向上の立役者、SREの役割(上)

クラウド

システム運用の信頼性向上の立役者、SREの役割(上)

2020/05/11

Scott Carey InfoWorld

 世の中がオンラインにシフトする中、Webサイト、クラウドアプリケーション、クラウドインフラの信頼性は、今やあらゆるビジネスにとって決定的に重要な意味を持つ。

Credit: CasarsaGuru / Getty Images

 システムやワークロードの動かし方も変わった。今では、高価な高性能サーバーを直接使うという発想はあまりない。ラックにずらりと収容されたコモディティサーバーを仮想化して利用し、サーバーの停止に伴うダウンタイムを分散型のソフトウエアアーキテクチャーで防ぐ。ハードウエアではなくソフトウエア定義インフラが主役となり、不整合や誤りが生じやすい手作業ではなく、一貫性と信頼性がある反復可能な自動化が重視されつつある。

 こうしたプログラマブルインフラの運用管理や、その上で動くワークロードの可用性を向上するための方法論が、SRE(Site Reliability Engineering)だ。また、その方法論を実践するエンジニア自体をSREと呼ぶ場合もある。SREの起源は 米Googleだ。2000年代初め、ソフトウエア開発者と運用担当者との関係を再定義することを目指した同社は、両者の仕事を組み合わせ、継続的な改良と自動化を基本として、堅牢で柔軟性のあるシステムを実現しようと考えた。

SREとは何か

 SREは、根本的には、ソフトウエアエンジニアリングの原理をインフラや運用の問題に適用するものである。スケーラビリティと信頼性に優れたシステムを実現することを大きな目標としている。

 よく目にするのは、「SREとは、ソフトウエアエンジニアに運用チームの設計を依頼した時にできあがるもの」という説明だ。Googleのエンジニアリング担当バイスプレジデントで、SREの提唱者であるBen Treynor氏の言葉である。

 SREの重要な仕事の1つは、サービスレベルの基準値を明確にすることだ。どのような状態にあればサービスが正常と言えるのか、SLO(サービスレベル目標)という形で定めることが多い。99.999%という「ファイブ9」の稼働率の追求は常に壮大な目標だ。稼働率が上がれば、開発者は新機能のローンチに向けた自由度が高まり、SREは睡眠時間が増える。開発と運用が敵対していた昔とは違って、両者が互いに恩恵を得られる。

 SREの責務には、システムのパフォーマンス、可用性、レイテンシー、効率性、モニタリング、キャパシティプランニング、緊急対応があり、信頼性に関するいくつかの重要な指標を測定に使うことが多い。

↑ページ先頭へ