近年、SREに対する注目が高まりつつあります。SREを導入すると、システムを中長期で運用する際に役立つためです。SREの導入を検討しているものの、基礎知識や具体的な導入方法を知りたい人もいるでしょう。本記事では、SREの意味や似たワードとの違いなどの基礎知識から、SREが求められる理由や導入方法までを詳しく解説します。
SREとは?
SREとは、システムの管理や運用において提唱されている概念のことです。ここでは、SREの意味と提唱された背景を解説します。
SREの意味
SREとは「Site Reliability Engineering」の略語で、日本ではサイト信頼性エンジニアリングといわれています。システムの開発や運用の領域において、Webサイトの安定的な運用のためにシステム運用する方法を指します。アプリケーションの開発者と運用者の間で隔たりができるのを防ぐために、2004年にGoogleによって提唱されました。
※参考:サイト信頼性エンジニアリング(SRE)|Google Cloud
SREが提唱された背景
SREが提唱される前は、システム運用において開発と運用が分離した状態になることが一般的でした。しかし、開発と運用が分断されると、新機能の追加やバージョンアップを行うたびに、運用時に担当者の負担が増える、問題が発生するなどのリスクが高まります。Googleはシステムの利便性と安全性の実現のために、SREを提唱しました。
SREと似たワードの違い
SREの他にも、似たワードがいくつかあります。ここでは、SREへの理解を深めるために、似たワードとの違いを解説します。
DevOpsとの違い
DevOps(デブオプス)とは、Development(開発)と、Operations(運用)を組み合わせた造語です。DevOpsは、システムの開発や運用の連携に用いられる点は共通しているものの、SREとは主な目的が異なります。DevOpsは、リリースサイクルを短縮することが主な目的です。一方のSREはDevOpsを実現するうえで、Googleによって具体的な方法として位置付けされました。
QAとの違い
QAとは「Quality Assurance」の頭文字を合わせた言葉です。直訳では、品質保証という意味を指します。QAはSREを実施するための手段の1つにすぎず、SREに内包されています。QAの主な目的は、構築したサーバーやネットワークなどが、一定の水準を満たしたパフォーマンスができているかをテストすることです。
SREが求められる理由
近年、SREの注目が高まっており、SREを導入する企業も少なくありません。DXの推進をはじめ、事業環境の激しい変化のスピードについていくためには、プロダクト開発にかかる期間を短縮する必要があります。
結果として、アジャイル開発にシフトし、品質を維持するためにはSREの導入が不可欠です。アジャイル開発とは、システムやソフトウェア開発の手法の1つで、「計画→設計→実装→テスト」の開発工程を、機能ごとに分けた小さなサイクルで繰り返す方法です。
SREの役割
SREの主な役割は、開発と運用のサポート、システムの自動化、トラブル・エラーへの対応が挙げられます。
開発・運用のサポート
SREが担っている役割の1つが、システムを安定的に運用することです。そのためには開発部でコーディングの改善策を提案し、運用時はプログラムにミスがないか、リリース時の流れに間違いがないかなどの調査を行う必要があります。SREでは、開発と運用の双方がお互いの業務に近い役割をこなすことが求められます。
システムの自動化
SREには、システムを手動から自動化へ移行させる役割があります。各部署に同一のツールを導入すると、部署ごとに異なるツールにすることで起こる問題を事前に避けられるため、スムーズな作業が可能です。また、共通のプラットフォームを持つことで、作業を効率的に進められるようになります。
トラブル・エラーの対応
SREの主な役割は、システムの監視を行いつつ、発覚した問題にも迅速に対応することです。具体的には、SLIでサービスの品質や性能を数値化し、システムが発揮できるパフォーマンスの度合いを把握することにあります。モニタリングとデータ分析を継続することで、問題の原因をつかみやすくなり改善につなげられます。
SREエンジニアとは
SREエンジニアとは、SREを専門とするエンジニアのことです。SREエンジニアに求められるスキルと資格について解説します。
SREエンジニアに必要なスキル
SREエンジニアに必要とされているスキルは以下のとおりです。
・プロダクトの開発、運用スキル
・クラウドサーバーの構築、運用スキル
・ネットワークやデータベースの知識
・セキュリティに関する知識
特に、プロダクトの開発、運用スキルはSREエンジニアの役割をはたすために欠かせないスキルです。実務経験が豊富な人ほど重宝されます。
SREエンジニアに必要な資格
SREエンジニアになるための専門の資格はありませんが、以下に挙げる資格があると実務で役立ちます。
・AWS認定
・AZ-400:Designing and Implementing Microsoft DevOps Solutions
・Cisco Certified DevNet Associate
・EXIN DevOps Professional
・Linux技術者認定試験
・Professional Cloud Architect
インフラエンジニア・クラウドエンジニアとの違い
インフラエンジニアは、サーバーやネットワークなどのシステムのインフラを構築、管理するエンジニアで、SREエンジニアとはアプローチや業務範囲、求められるスキルが異なります。クラウドエンジニアはインフラエンジニアの一種で、インフラ設計の他にもクラウド環境の構築や保守・運用も業務範囲です。SREエンジニアの役割は開発と運用を担当することです。
SREの指標
SREを導入したサービスのリスクや信頼性などの評価には、SLIやSLOなどの指標を活用します。
SLI
SLIとは「Service Level Indicator」の略語です。日本では、サービスレベル指標と訳されています。主に、サービスの動作や品質を数値化して評価するために用いられる指標です。SLIの主な例は、サーバーの稼働率やエラー率などが挙げられます。SLIは、後述するSLOの定量評価を実施する際に、目標値を満たしているかどうかを判断する際に用いられます。
SLO
SLOは「Service Level Objective」の略語で、サービスレベル目標と直訳されています。SLOは、前述したようにSLIの目標値を表す指標です。後述するSLAよりも厳しい条件で設定されることが一般的です。また、サーバー稼働率やセキュリティなどの項目別に定められる傾向があります。
SLA
SLAとは、Service Level Agreementの略語です。SLAはサービスレベル契約と直訳されており、サービスレベルについて顧客側と合意に至ったことを指します。SLOを達成できなかった場合は、契約金の減額や返金または追加のサポートを行うことも、合意内容に加えておく必要があります。
SREの導入方法
本章では、SREの導入方法を解説します。流れは、エンジニアの採用、SREの定義付け、指標の設定、結果の設定のとおりです。
SREエンジニアの採用
SREを導入する際には、SREの専門知識と実務経験が豊富なエンジニアを採用します。SREの導入を成功させるためにも、連携が取れるチームをつくることが重要です。SREエンジニアを採用する際には、開発と運用の経験が豊富な人材を選びます。運用経験が浅い場合は、開発スキルがある人材を選ぶとよいでしょう。
SREの定義
SREエンジニアの採用後は、自社に合ったSREとはどのようなものかを定義付けします。自社に適したチームをつくるためにも、課題やコスト、導入するメリットを明確にしておくことも大切です。SREに関する業務が集中しないように、自社の課題やSREを導入する目的、導入にかけられる費用などを明確にしておきましょう。
指標の設定
SREの定義後は、SREの信頼性を示すためにSLIやSLOなどの指標を設定します。SLI(サービスレベル指標)と、SLO(サービスレベル目標)の具体例は以下のとおりです。
・SLI(エラー率、可用性など)
・SLO(エラー率1%以下、可用性99.99%など)
上記のように、指標を設定する際には実現可能と考えられる数値を設定しましょう。
結果の測定
最後に、SREの指標をもとに結果を測定して振り返り、今後の課題を検討します。結果を測定する場合は、SREツールを導入した前後の数値を同じ環境下で測定して比較します。結果の測定後は課題を抽出し、改善策を提案しましょう。測定・課題抽出・改善は継続的に行うことが重要です。
まとめ
SREは、スピード感が高まるプロダクト開発を行うなかで、品質維持をするために必要です。SREの専門知識と運用実績が豊富なエンジニアを採用し、SREの導入を成功させましょう。SREの導入に必要なリソースがそろわない場合は、開発のプロに相談することも1つの方法です。
株式会社SunAsteriskは、設計から本格的な開発まですべてのプロセスをサポートできる会社です。柔軟な開発リソースを持つ上に、DXコンサルのノウハウも豊富です。SREの導入を検討している人は、ぜひご相談ください。
サイト信頼性エンジニアリング(SRE)を取り入れた開発をご提案します。SREのご相談やお見積りのご依頼は、お気軽にお問い合わせください。
Sun*のサイト信頼性エンジニアリング(SRE)に関するソリューションやこれまでの開発実績をまとめた資料のダウンロードはこちらから。