アジャイル開発を委託するとき、開発体制がどうなっているか分からない担当者もいるでしょう。本記事では、アジャイル開発の代表格であるスクラム開発をもとに、アジャイル開発体制を構築する役割を解説します。サイクルの手順や注意点も紹介するので、ぜひ参考にしてください。
SREとは?
まずは、SREの概要と、SREが提唱された背景について解説します。
SREの概要
SREとは、Site Reliability Engineeringの略語で、日本語では「サイト信頼性エンジニアリング」と訳されます。SREは、システムの信頼性向上を目的とした開発手法で、ツールによって管理や監視、課題解決などを自動化します。これまで手作業で行ってきたタスクを自動化することで、システムの品質を安定化させます。
※参考:サイト信頼性エンジニアリング(SRE)|Google Cloud
SRE提唱の背景
SREは、2004年にGoogleによって提唱されました。近年では、システムのバージョンアップや機能追加などが頻繁に行われており、開発のスピードと品質の信頼性を保つことの両立が求められています。SREの導入により、プロダクトの開発から運用までの過程を自動化できるため、開発スピードと信頼性を両立させることが可能です。
SREが重要な理由
次に、SREが重要とされる理由を詳しく解説します。
従来はウォーターフォール型開発が主流だった
従来のプロダクト開発では、ウォーターフォール型開発が一般的でした。ウォーターフォール型開発では、システムの仕様や要件を決めてから設計に取りかかるため、事前に全体のスケジュールを確定しやすいというメリットがあります。一方で、開発期間が半年や1年など長期間になりやすく、運用準備や開発に時間がかかる点はデメリットといえます。
アジャイル型開発へのシフトが進んでいる
アジャイル型開発とは、1~2週間程度の短いスパンで開発を繰り返す手法です。リリース後も仕様変更や機能追加に応じて何度もリリースするため、その都度ユーザーの需要に応えやすいといったメリットがあります。近年では、短期間で開発するアジャイル型開発を取り入れる企業が増えてきており、スピーディな開発を実現するために、SREが重要視されています。
SREの原則
SREの原則は主に3つあります。1つ目は、本番の稼働環境にシステムを配置した際にパフォーマンスを観測し、モニタリングをすることです。2つ目は、システムの信頼性を保つために、頻繁かつ小規模な変更の実装を繰り返すことです。3つ目として、信頼性を向上させるために、問題を自動的に解決できる環境を構築することも重要とされています。
SRE・DevOpsの違い
次に、SREと混同しやすい単語であるDevOpsの概要と、両者の違いについて解説します。
DevOpsとは?
DevOpsとは「Development and Operations」の略語です。開発(Development)、運用(Operations)を組み合わせた言葉のとおり、開発・運用を一体化させることで、システム開発のスピード向上を図る考え方を指します。DevOpsはシステムの自動化や最適化に取り組み、迅速なサービス提供を実現する点においてSREと共通しています。
SREとDevOpsの違い
SREは、システムの開発・運用スピードをアップさせ、サイトの信頼性を高めるものです。一方、DevOpsは開発と運用の一体化を目指すことを指します。DevOpsの概念のなかの具体的な実装方法として、SREが存在しているといえるでしょう。
SREで用いられる指標
SREで用いられる指標は、主に3つあります。それぞれ詳しく解説します。
SLI
SLI とは「Service Level Indicator」の略語で、サービスレベル指標を指します。サービスレベル指標とは、サーバーの稼働率などのサービス品質を判断するための指標のことです。SLIは、システムを実装した際の実測値を表すもので、後述するSLOを下回った場合に改善が必要であると判断されます。
SLO
SLOとは「Service Level Objective」の略語で、サービスレベル目標を指します。サービスレベル目標とは、自社におけるサービスレベルの目標値のことです。システム開発においては、スピードと信頼性のどちらかを優先させなくてはいけない場面もあります。その際の判断基準となるのがSLOです。SLOはSLIの目標値となるため、慎重に設定する必要があります。
SLA
SLAとは「Service Level Agreement」の略語で、サービスレベル契約を指します。サービスレベル契約とは、システム開発を行う企業と顧客との間における、サービスレベルに関する合意のことです。システムの信頼性を保つための指標であるSLAを達成できない場合、追加サポートや返金などの対応が求められます。
SREで実現できること
SREで実現できることは、主に3つあります。それぞれについて詳しく解説します。
システム運用の安定・効率化
SREを導入すると、システム運用における作業を自動化できるため、システムの安定化を図れます。また、手作業によるミスや漏れがなくなると、システムのエラーや不具合が起こりにくくなり、作業の効率化やスピード向上も期待できるでしょう。作業の効率化が進めば、空いたリソースを運用改善に当てることができ、さらなる業務効率化につなげられます。
タスクの属人化防止
開発にかかる運用を自動化することで、運用タスクの内容や手順が明確になり、誰でもタスクを行えるようになります。タスクの属人化を解消できれば、社内で業務を横展開することも可能で、リソースの有効活用につながるでしょう。
スピード・アジリティの向上
SREの導入で業務効率化が実現されると、開発スピードが向上します。開発スピードの向上は、課題に対しての対応力の速度を意味するアジリティの向上にも役立つため、リリースまでの期間短縮につながるでしょう。また、SREによって開発チームの手間が減ると、余ったリソースを品質向上のために割くこともできます。
SREにおける業務範囲
SREの業務範囲には、以下のようなものがあります。
・インシデント(セキュリティ対策)対応や変更管理などの運用タスク
・新機能の開発や、苦情対応のサポート
・インシデントの振り返りと開発におけるライフサイクルの改善
また、SREでは上記のインシデント対応を自動化することも重視しています。問題が発生した際、ただ解決するだけでなく、システム改善を同時に行うことでさらなる業務効率化を目指します。
SREで求められるスキル
SREに求められるスキルとして、システム運用の知識が挙げられます。JavaやRubyなどのプログラミング言語のほか、データベース言語、OSに関する知識も必要です。また、SREは運用を自動化することが主要な業務の1つであるため、自動化のコーディングスキルは必須といえます。
ほかにも、開発チームと運用チームをつなぐためのコミュニケーションスキルや、サイバー攻撃、情報漏洩などのリスクに対処するためのセキュリティ知識があると、なおよいでしょう。
SREにおけるオブザーバビリティ
SREでは、システムのオブザーバビリティを重視しています。SREにおけるオブザーバビリティについて解説します。
オブザーバビリティとは?
オブザーバビリティとは、観測する(Observe)と、能力(Ability)を組み合わせた言葉で、日本語では「可観測性」と訳されます。可観測性とは、システムのトラブルに関して、どこで何が、なぜ起こったのかを把握する仕組みや指標のことです。複雑なシステムを可視化することで、エラーが発生したことを探知するだけでなく、原因を見つけることも可能となります。
SREのオブザーバビリティ
SREのオブザーバビリティでは、以下の情報を収集できます。
・メトリクス:システムのパフォーマンスや状態を示す定量的なデータ
・ログ:タイムスタンプ付きの情報を生成することで、特定のトラブルに関する一連の流れを把握する
・トレース:ID、名前、時間で構成された特定の関数におけるコードパスの観察結果
SREにおけるモニタリング
SREにおいてモニタリングは不可欠です。SREにおけるモニタリングについて解説します。
モニタリングとは?
モニタリングとは、事前に定義された指標を観察・監視するプロセスのことです。コンピューターに信号やデータを送信し、反応を確認して状況を把握します。モニタリングを行うことは、問題の早期発見とスムーズな対応につながります。
SREのモニタリング対象
SREでモニタリング対象となるのは以下の4つです。
・レイテンシ:リクエストに応答するまでの遅延時間
・トラフィック:特定のサービスに同時にアクセスするユーザーの数
・エラー:システムやアプリケーションが想定通りに実行・配信されない状態
・飽和:システムやアプリケーションのリアルタイムの容量
まとめ
SREは、スピードと信頼性の両立を実現できるプロダクト開発の1つの方法です。アジャイル型開発が注目されるようになった近年では、SREを導入するメリットは大きいといえます。自社のプロダクト開発・運用を安定させたいとお考えなら、ぜひSREの導入を検討してみてはいかがでしょうか。
株式会社SunAsteriskでは、企業のWebシステムやモバイルアプリ開発を支援しています。日本・ベトナム合わせて1,000名のエンジニアを保有しているため、どのような開発にも柔軟な対応が可能です。システム開発でお悩みの企業の方は、ぜひ一度ご相談ください。
サイト信頼性エンジニアリング(SRE)を取り入れた開発をご提案します。SREのご相談やお見積りのご依頼は、お気軽にお問い合わせください。
Sun*のサイト信頼性エンジニアリング(SRE)に関するソリューションやこれまでの開発実績をまとめた資料のダウンロードはこちらから。