自社でプロダクト開発を検討している企業の担当者のなかには、SREチームの編成を考えている人もいるのではないでしょうか。しかし、従来のインフラエンジニアとの違いが分かりづらく、人材の育成方法も含めて疑問に思っている人も多いかもしれません。
本記事では、SREとインフラエンジニアの違いや、SREに必要なスキルなどを解説します。自社のシステムを安定して運用したいと考えているなら、ぜひ参考にしてください。
SREとは?
まずは、SREの意味や、SREが求められている理由を解説します。
SREの意味
SREとは、運用エンジニアリングの手法の1つです。英語ではSite Reliability Engineering、日本語に訳すと「サイト信頼性エンジニアリング」となります。SREは、Googleが2004年に提唱したもので、システムの信頼性や可用性を高めることを目的としています。SRE導入によって、開発の速さと信頼性を両立させることが可能です。
※参考:サイト信頼性エンジニアリング(SRE)|Google Cloud
SREが求められる背景
SREが求められるようになった背景には、プロダクト開発の方法が、ウォーターフォール型開発からアジャイル型開発へのシフトがあります。ウォーターフォール型開発とは、事前にプロダクトの要件と仕様を決定した上で開発を進める手法です。上流工程から下流工程へと順番に開発を進めることが特徴です。
一方、アジャイル型開発とは、短いスパンの開発とリリースを繰り返しながら、徐々に改善していく手法です。ITの変化が激しい近年では、スピードと柔軟性を両立できるアジャイル型開発が主流になりつつあります。スピードを維持しながら信頼性も確保できるSREは、アジャイル型開発との相性がよいことから、SREの重要性も高まっています。
SREとDevOpsの違い
SREと類似する言葉に、DevOpsがあります。先述のとおり、SREはプロダクトの信頼性向上とスピードアップを目指す手法です。一方のDevOpsは、開発と運用を連携させることで、開発におけるダウンタイムを無くすという概念です。SREは、DevOpsを実現するための具体的な実装方法であるといえます。
SREで用いられる指標
SREで用いられる指標は主に以下の3つです。
・SLI(サービスレベル指標):サービスの動作や品質を測定するための定量的指標
・SLO(サービスレベル目標):サービスの信頼性に対する目標値
・SLA(サービスレベル契約):サービスの信頼性とレベルに関する顧客との合意・約束ごと
SRE・インフラエンジニアの違い
次に、SREとインフラエンジニアリングの違いを解説します。
業務範囲
SREとインフラエンジニアでは、業務範囲が異なります。SREがプロダクト開発の信頼性を高める作業全般を行うことに対し、インフラエンジニアは、システムの基盤を確立するインフラのみを行うことが特徴です。SREの業務には、開発や運用のほかに組織や文化の醸成なども含まれることが多く、SREの方がより幅広い業務範囲を担うといえます。
スキルセット
SREとインフラエンジニアでは、必要なスキルも異なります。SREは、プロダクトを開発するための幅広い知識やスキルが必要です。SREの業務範囲は多岐にわたるため、技術力の深さはもちろん、広さも求められます。インフラエンジニアは、ITインフラに関する知見とスキルがあれば業務を行えることから、SREの方がより多くのスキルが必要であるといえます。
方法論の有無
SREはGoogleが提唱した手法であり、「Site Reliability Engineering」という本によって具体的な方法論が示されています。SREは企業や組織に関わらず、考え方や使用する用語が共通していることが特徴です。一方、インフラエンジニアは企業や組織によって方法論が異なります。使用する用語や開発の進め方も企業ごとに異なる点が、SREとの違いです。
SREの主な業務範囲
先述のとおり、SREの業務範囲は幅広いです。SREの主な3つの業務範囲について解説します。
障害・トラブルの対策
SREの主要な業務の1つに、障害やトラブルの対策があります。プロダクトのリリース前にエラーやバグへの対処を行うことで、障害の発生を防ぎます。対処の具体的な方法としては、修正パッチやサーキットブレーカーの準備などがあるでしょう。障害対策を事前に行うことで、システムの安定稼働を実現しやすくなります。
システム・クラウドの安定稼働
システム・クラウドを安定的に稼働させるためには、サーバーのネットワーク構築や運用、保守に取り組むことも必要です。ミドルウェアのパフォーマンスを向上させることも、SREの業務に含まれることがあります。SREは、インフラエンジニア領域と重複する部分に加え、プロダクトの開発・運用・障害対策など、幅広い業務に対応します。
システムの自動化
SREの大きな仕事の1つとして、システムを自動化させることが挙げられます。これまで手動で行っていた業務を自動化することは、開発スピードと信頼性のバランスを取ることにつながります。
自動化の対象となるものは、ログ収集や分析、モニタリング、運用プロセス実行、障害対策などです。システムの自動化には、ミスを防ぐほか、業務効率化によってコア業務のリソースを確保できることなど、複数のメリットがあります。
SREに必要なスキルセット
SREにおけるスキルセットは幅広く、どれもマスターしておきたいものです。SREに求められるスキルセットを3つ解説します。
ITインフラの知見
SREはシステム運用を行うため、ITインフラの知識が必須です。特に近年では、AWSやAzureなどのクラウドインフラが普及しつつあるため、クラウドインフラ環境の設計や構築のスキルを持っているとよいでしょう。たとえば、IaaS・PaaS・SaaSなどの基礎知識、オンプレミスからクラウドに移行する手法、監視やセキュリティ対策のスキルなどが挙げられます。
アプリケーション開発・保守・運用スキル
SREは、アプリケーションの開発や保守、テスト、運用などのスキルも必須です。たとえば、Linux OS・PHP・MySQL・Pythonなどの開発技術や、アジャイル開発・DevOpsといった開発手法のスキルが挙げられます。また、監視やパフォーマンス向上、障害対応、セキュリティ対策などの運用スキルも求められます。
セキュリティの知識
セキュリティとは、不正アクセスや侵入などを予防し、システムを守るための対策を指します。SREの業務にはセキュリティ対策も含まれており、システムの脆弱性やリスクへの知見、リスクに対応するスキルが必要です。また、暗号化や認証、ログ管理、アクセス制御といった、対策の種類に関する知識や技術があることも重要です。
インフラエンジニアからSREへのキャリアパス
前述のとおり、SREはインフラエンジニアと比較して、より多くの知識や技術力が求められます。インフラエンジニアの業務はSREの業務に含まれていることから、まずはインフラエンジニアとしての経験を積み、SREへとステップアップしていくことも1つの方法です。インフラエンジニアからSREにステップアップするためには、インフラの構築・運用のスキルから学び、その後、アプリケーション開発や運用に関するスキルを習得することが必要です。
SREに役立つ資格
SREとして働く際に役立つ、2つの資格について解説します。
AWS認定
AWS認定とは、AWSのスキルがあることを証明できるベンダー資格です。習得する内容によって、FOUNDATIONAL、ASSOCIATE、PROFESSIONAL、SPECIALTYの4つのレベルに分けられています。AWS認定をSREの業務に役立てるためには、ロールベースの認定である、ASSOCIATE以上を持っていることが望ましいといわれています。
Cisco Certified DevNet Associate認定
Cisco Certified DevNet Associate認定は、アメリカの開発会社であるシスコのプラットフォーム上における、開発・運用スキルを証明できる資格です。
取得するためには、シスコプラットフォーム上でのデザインや、ソフトウェア開発などの基礎能力が求められます。未経験者からベテランまで受験可能な、5つの認定レベルが設けられていることが特徴です。
会社がSREを推進する手順
まずは、社内のソフトウェアエンジニアなどを集めて、SREのチームを編成しましょう。次に、SLI・SLO・SLAといった指標をそれぞれ設定します。
SREの大きな目標は、プロダクトの開発スピードを上げることと、信頼性を高めることです。プログラムを書いて自動化を推進し、手作業による工数を減らしましょう。運用が開始してからは、リリースと問題点の改善を繰り返し行います。
まとめ
SREとインフラエンジニアの違いについて解説しました。インフラエンジニアはITインフラの設計や構築などの業務を行い、SREは、インフラエンジニア領域を含めたプロダクト開発全般の業務を行います。これからSREを育成する場合、自社のインフラエンジニアをSREへとステップアップさせることも、1つの方法といえるでしょう。
株式会社SunAsteriskでは、プラットフォームやアプリケーションの開発支援を行っています。1,000名以上のエンジニアを保有しているため、企業ごとに最適なご提案が可能です。社内でプロダクト開発ができる人材がいないとお悩みなら、まずは一度ご相談ください。
サイト信頼性エンジニアリング(SRE)を取り入れた開発をご提案します。SREのご相談やお見積りのご依頼は、お気軽にお問い合わせください。
Sun*のサイト信頼性エンジニアリング(SRE)に関するソリューションやこれまでの開発実績をまとめた資料のダウンロードはこちらから。