Header background

SREとDevOps:相違点と共通点

2020年の出来事は、オンラインサービス需要の急増に対応するため、組織がクラウドネイティブ技術へ移行する傾向を加速させました。クラウドネイティブ環境は、ソフトウェア開発と運用(DevOps)の実践にスピードと俊敏性をもたらします。しかし、そのスピードと俊敏性には新たな複雑性と課題が伴い、年間1%未満のダウンタイムを維持しながらパフォーマンスと信頼性を保つ必要があります。そこでSREが重要な役割を果たします。

では、SREとDevOpsは対立するものなのでしょうか、それとも共存するものなのでしょうか。DevOpsはソフトウェア開発とデリバリーの最適化に焦点を当て、SREは運用プロセスに焦点を当てています。両者は同じ包括的な理念に基づいて実践されています。ここではそれぞれの目的を説明し、両者の相互作用について探っていきます。

DevOpsという哲学

DevOpsはSREよりも歴史が長い概念ですので、まずそちらからご説明いたします。DevOpsは特定のプロセスではなく、ソフトウェア開発とIT運用間の隔たりを埋めることを目的とした、柔軟なソフトウェア開発・提供手法の集合体です。その目標は、アジャイルプロセスを活用し、可能な限りの自動化を図り、組織ごとに分断されたチームではなくサービス指向のチームを横断的に連携させることで、より優れたソフトウェアをより迅速に開発・提供することにあります。

しかし、これは常に容易なことではありません。チームは、新しいアプリケーションを展開する過程で、慣れ親しんだ手動プロセスや断片的な解決策に固執し、サイロ化してしまう可能性があります。このような状況では、リーダーはDevOpsチームを支援し、可能な限り多くのプロセスを合理化・自動化する手法の開発と採用を推進すべきです。

DevOpsはプロセスや自動化以上のものです。共通の目標に向けてチームを連携させる考え方です。組織では、開発者と運用部門の目標を統合するために、チームビルディングが必要となることがよくあります。一般的に、開発者はより高い俊敏性で創造したいと望み、運用チームは安定性と予測可能性を維持したいと考えます。目標は、両者が協力することで必要なものを得られるという確信のもと、この文化的融合に向けてチームを連携させることです。

DevOpsの応用としてのSRE

DevOpsは、新規ソフトウェアの開発と提供を加速する実践的なアプローチとして捉えるのが最適です。SREは、ソフトウェアエンジニアリングとDevOpsの原則を活用し、アプリケーションとインフラに耐障害性を組み込むことで、リリースの可用性、パフォーマンス、スケーラビリティを向上させる、従来の運用慣行の変革です。Googleのベン・トレイナー氏が説明するように、「根本的には、ソフトウェアエンジニアに運用機能を設計するよう依頼した結果生まれるものです」。

サイト信頼性エンジニアは、以下のような中核的な実践に従うことで、DevOpsの使命を推進します:

  • ソフトウェアエンジニアリングを活用した運用課題の解決
  • サービスの可用性目標としてのサービスレベル目標(SLO)の設定と管理
  • 自動化とツールへの投資による手間のかかる作業の回避
  • 開発ライフサイクルの早期段階でのテストを促進するシフトレフトアプローチの推進

SREの現状レポート

様々な業界の450名のSREの皆様に、サイト信頼性エンジニアリング(SRE)が専門分野としてどのように進化しているかについて、率直なご意見を伺いました。本レポートでは、SREが克服すべき課題と、SREの将来像について明らかにしています。

SREとDevOpsの違いは何でしょうか?

SREがDevOpsの運用側にソフトウェアエンジニアリングの原則を適用するならば、両者に多くの共通点があることは当然でしょう。Googleが説明するように、SREとDevOpsの双方においてチームには以下のことが求められます:

  • 改善には変化が必要であることを理解する
  • 単一チームを超えた価値観を共有する
  • APIとバージョン管理された成果物を用いた「すべてをコードとして扱う」哲学の採用
  • 業務遂行において測定可能性を重要視すること
  • ソフトウェアデリバリーパイプラインを通じたベロシティの向上を目指す

SREとDevOpsの比較

SREとDevOpsは競合するものではなく、異なる領域で異なる範囲を扱うものです。DevOpsは詳細な運用方法には関与しません。一方、SREの目的はDevOpsの原則を適用し、運用プロセスを強化することにあります。

確かにDevOpsは広範な哲学であり、その原則は他の領域(例:DevSecOpsにおけるセキュリティCI/CD実現のためのソフトウェアデリバリー)にも適用可能です。しかし最も純粋な形では、ソフトウェア開発とデリバリーとの関連性がより強いと言えます。

SREは、特に運用プロセスの強化にDevOpsの原則を適用します。具体的には以下の通りです:

  • 可用性
  • レイテンシーの低減
  • 効率性
  • 変更管理の効率化
  • 堅牢な緊急対応
  • 正確なキャパシティプランニング

SRE and DevOps

SREはDevOpsをどのように支援できるのでしょうか?

すでにDevOpsの取り組みを開始している多くの組織が、運用を最適化するためにSREに注目しています。どちらの取り組みもまだ導入していない場合、DevOpsとSREの両方の実践を取り入れた戦略を策定することが、開始するためのベストプラクティスです。

これらのプラクティスを採用することは、文化の変革を伴います。成功には、経営陣のビジョンと支持、内部での議論、そしてアプリケーションの開発と提供をより統合的に支援するための管理上の調整が必要です。

Dynatraceでは、お客様と業界が高度に自動化されたAI駆動型DevOpsへと進むことを推進し、チームが日常業務を自動化し、より迅速かつリスクを抑えてイノベーションを提供できるよう支援することを使命としております。Dynatraceソフトウェアインテリジェンスプラットフォームは、組織がクラウドネイティブアプリケーションの開発・管理方法を変革するお手伝いをいたします。これにより、DevOpsチームはCI/CDパイプラインの自動化を、SREチームはテストと修復の自動化を実現できます。これにより、DevOpsチームとSREチームはソフトウェアライフサイクルの早期段階で品質問題を特定し、より多くのプロセスを自動化し、本番環境移行前のコードに耐障害性を組み込むことが可能となります。

Dynatraceのクラウド自動化がDevOpsおよびSREチームをどのように支援できるか、詳細をご覧ください。または、今すぐ無料トライアルを開始してください。

DevOpsについてさらに詳しく知りたいですか?

可観測性とAIOpsでIT運用と企業成長を効率化。DevOps入門ガイド「DevOpsの基本」eBookをご覧ください。