SRE(サイト信頼性エンジニアリング)と呼ばれる新しい分野を耳にしたことがありますか。Google社が提唱したSREの概念は広く受け入れられ、今では多くの企業やサービスがSREの文化や手法を取り入れています。Webサイトやネットワークを通じて提供されるアプリケーションなどが安定していつでも使い続けられるようにSREがもたらす変化とは何でしょうか。類似の活動となるDevOpsとの違いもご紹介します。
Contents
SRE(サイト信頼性エンジニアリング)とは
SRE(サイト信頼性エンジニアリング)とは、Google社が提唱したWebサイトやネットワークを通じたサービスを円滑かつ効率的に運営するために生み出された比較的新しいエンジニアの分野です。
従来型のシステム運用とソフトウェアエンジニアのスキルを組み合わせることで、高度な自動化により問題を未然に防いだり、仮に問題が起きても迅速に解決していきます。
SREが目指すのは信頼性が高く、いつでも利用者にサービスを提供できることです。
システム運用とは
システム運用とは、Webサイトやアプリなどが安定稼働できるよう継続的におこなわれる作業のことです。
システム運用は、サービス開始前の開発段階から始まります。
サービスを開発するためにはサーバーやネットワークを運用チームが立ちあげ、開発チームがサービスやアプリケーションを作成していき、晴れてリリースとなります。
サービス開始後は、システム運用チームはさまざまな課題を解決していきます。
例えば、サービス利用者の急増により負荷が増えることでサーバーが不安定になる可能性があるため、システム運用チームによる設備の増強や、サーバーダウン時に原因の分析や解決策など、今後の安定運用のために対策を練って作業する必要があります。
平日よりも土日に利用が多いなど需要に波がある場合は、現在の負荷量をモニタリングしシステムの安定性に影響ある事態が起きないか監視することもあります。
Webサイトやアプリにとって、開発終了後も、おこなわれ続けるシステム運用のプロセスがシステムの安定稼働を支えています。
DevOpsとの違い
SREと同種の活動として、近年スポットライトを浴びているのがDevOpsです。
DevOpsとはソフトウェア開発チームとシステム運用チームが協力し、Webサイトやサービスの開発期間を短縮する活動・考え方です。
SREと同様に自動化や監視の重要性を説いていますが、DevOpsの目的はアプリケーションの新規リリースやアップデートにかかる期間を短くし開発チームと運用チームの協働を図ることであり、SREが目指すサイトやサービスの信頼性向上とは目的が異なります。
SRE(サイト信頼性エンジニアリング)の導入背景
近年スマートフォンのアプリやWebサイトなど、インターネットで提供されるソフトウェア・サービス開発はますます加速しており、従来のウォーターフォール型開発モデルのように、開発前に完成するソフトウェアの全体像を完全に定義してから設計・開発・テスト、そしてリリースする直線的な工程で運用へつなげていく開発手法は時間がかかるだけでなくビジネス環境の変化に合わせて柔軟にソフトウェアの仕様を変えることが難しくなってきています。
ウォーターフォールよりも柔軟な開発モデルとして、アジャイル開発手法では短いサイクルでソフトウェア製品のアップデートを繰り返しながら開発を進めていきます。そのため、ビジネス要求の変化に対応しやすいとして近年注目されています。しかし、ソフトウェアのアップデート内容にばかり注力していると新機能が原因でサーバーダウンするなど支障が出てサービス品質の低下にもつながりかねません。
早まるリリースサイクルや大規模化するインフラに対して、高度な自動化や監視によってWebサイトやサービスの安定性・信頼性を向上させ変化するビジネス環境への迅速な適応・安定したサービスの提供を両立させたい企業のニーズによってSREが誕生し多くの企業に導入されています。
SRE(サイト信頼性エンジニアリング)の役割
SRE(サイト信頼性エンジニアリング)は、システム運用チームや開発チームとの間でどのような役割を果たし、開発会社や顧客にとってどのような意味を持つのでしょうか。3つの観点からご紹介します。
チーム間のコラボレーションの改善
多くのアプリケーション開発現場では、開発チームと運用チームが異なる目標や作業手順となっているため、時にはコミュニケーションのミスや誤解が発生したりプロジェクトの遅れが発生します。
SRE(サイト信頼性エンジニア)は開発チーム・運用チーム両方と密接に協力し、それぞれのチームの目標や作業手順を理解したうえで双方の知見を活かして両チームのコラボレーションを支援します。
例えば、開発チームがシステム運用の要件を理解し、ソフトウェアやアプリの仕様変更がシステムの安定性や拡張性にどう影響するのか理解するのをSREは助けます。逆に運用チームが開発のプロセスを理解し新機能やアップデートがどうして必要でなぜ優先されるのか理解する手助けもおこないます。
カスタマーエクスペリエンスの強化
SREはアプリやWebサービスの信頼性や安定性向上を重視しているため、問題発生を予防し、サービスに問題が起きた場合でも迅速に解決してシステムが利用できなかったり不安定になる時間を最小限にしサービス利用者の利便性や信頼を損なうことを防げます。
またSREでは、開発チームと運用チームが連携し、信頼性向上のために多くの作業を自動化し開発しようとしている新機能やアップデートが信頼性を考慮して設計・構築されているかを確認できるためバグやエラーを減らし、サービス利用者にとっては新機能を使えるだけでなく安定的に利用できることになります。
運用計画の見直し
SREは、ソフトウェア開発とシステム運用の両方を深く理解しているため、サーバーダウンなどの問題への対応方法と問題の発生を防止する方法の全体像を把握したうえで判断できます。
開発チーム・運用チームの仕事の手法を理解したうえでサーバーダウンなどの問題がもたらす収益の低下や評判への影響などの損失を適切に見積もれるため、ユーザーへの悪影響を最小限にするために人員配置や問題解決の優先順位を助言できます。加えて問題を未然に防ぐため必要となる監視体制や運用プロセスを見直すことでシステム全体の信頼性を向上していきます。
SRE(サイト信頼性エンジニアリング)の定義指標
ビジネスの分野では目標達成や業績を計るためにKPIやKGIと呼ばれる指標を耳にされたことがあるかもしれません。
SREでも、測定した指標をもとに改善すべき箇所を特定するなど指標が重要な役割を担っています。サービスやシステムのさまざまな指標を測定し、時間の経過とともに追跡し改善の判断に使用します。本記事では、3つの指標をご紹介します。
SLI(サービスレベル指標)
SLIとは「Service Level Indicator」の略で、Webサービスやアプリなどシステムの性能と信頼性を測定するために使用される指標です。
例えば、Webサイトのページが表示される速さ、どのくらいの頻度でエラーが起こるか、などを測定しシステムの現在の性能を知り、時間とともに進歩を追跡していきます。
SLO(サービスレベル目標)
SLOとは「Service Level Objective」の略で、Webサイトやアプリなどのシステムが発揮すべき性能や信頼性を具体化した数値目標です。
例えば、「サイトに訪れたユーザーの99%に対してページの表示時間が2秒未満」などとSLOに記載され、前項のSLI(サービスレベル指標)を使ってSLOの目標に対しての達成度を追跡します。
SLA(サービスレベル契約)
SLAとは「Service Level Agreement」の略で、システム提供会社と提供を依頼したクライアントの間で交わされる文書で、「サービスレベル契約」とも呼ばれます。
例えば、ショッピングサイトの作成・運用を依頼した場合、サイトがダウンしていては商品が売れずビジネスの機会損失が発生してしまうため、「365日24時間のうち99.99%以上はサイトが稼働」など、システムに期待する性能を数値化して取り決めをおこない、一定水準を下回った場合に損失を保証するなどの契約が見られます。
SRE(サイト信頼性エンジニアリング)の将来性
企業にとって、顧客のニーズを満たすことが重要であり、近年ではWebサイトやアプリなどインターネットを通じて提供されるシステムが顧客へのサービス提供に欠かせない物となっています。
一方でシステムはより複雑になり、信頼性や安定を確保し、性能を向上しながら新たなサービスや新機能を提供するために高度な専門性を持ったSRE(サイト信頼性エンジニアリング)の需要は高まる一方です。
SREは急速に発展している分野であり、最先端の技術に携わりソフトウェア開発や運用の複雑で困難な問題に取り組める職種となっています。
まとめ
SRE(サイト信頼性エンジニアリング)を見てきました。
- SREはDevOpsよりもサイトやサービスの信頼性向上に焦点を当てます。
- SREは開発チームと運用チームの橋渡しとなりユーザーにとって快適で信頼できるシステムを提供します。
- SREではSLA契約のもとにSLOを目標としてSLIを計測、改善していきます。
SREの職務や活動は、ソフトウェア製品開発とシステム運用の新たな風潮でありながら多くのシステムやサービスにとって普遍的なニーズがあるため今後もツールや手法が発展していく分野です。
システムの開発だけでなく高品質なサービスの提供に興味がある方はSREの手法や考え方を学んでみてはいかがでしょうか。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!