「SRE」と「DevOps」の“端的な違い”とは? SREチームの実態に迫る:SREとDevOpsの違い【前編】
SREとDevOpsの役割の理解は、両チームの連携に必要だ。一見すると同様の役割を担うように思える2つの分野は、実際には何が違い、両チームはそれぞれどのような業務を実施するのか。具体例を交えて解説する。
適切な連携体制の下でSRE(サイト信頼性エンジニアリング)チームとDevOps(開発と運用の融合)チームが連携することで、アプリケーションのセキュリティや耐障害性、開発効率が向上する可能性がある。ただし、両者の連携がうまく取れない場合、運用と開発に支障を来す恐れがある。
アプリケーションの提供にはさまざまな課題を伴う。SREチームとDevOpsチームが協力し、責任を共有することは、そうした課題解決の近道だ。両チームの連携はアプリケーションユーザーのニーズを満たすとともに、効果的なアプリケーション管理とインシデント対応を実現し、企業の危機を防ぐことにつながる。では、SREチームとDevOpsチームはそれぞれどのような業務を分担し、どう協業すればよいのか。まずはSREとDevOpsの境界線はどこにあるのかを解説しよう。
SREとDevOpsの違いは?
併せて読みたいお薦め記事
さまざまなアプリケーション運用開発手法
一般的にSREチームとDevOpsチームは、本番環境の運用を担当するか、開発工程を担当するかで異なる。SREチームがソフトウェアをデプロイ(展開)した後の運用とメンテナンスを担うのに対し、DevOpsチームは開発とデプロイに注力する。
サービスレベル契約(SLA)も両者を区分する重要な要素だ。SREチームはアプリケーションの可用性と性能の維持に、DevOpsチームは開発とデプロイに焦点を置く。後者は通常、顧客SLAの対象外だ。
経歴面でも違いがある。SREチームのメンバーは、上級システム管理者や運用エンジニアとしての経験を持つことがよくある。DevOpsチームのメンバーはたいていの場合、ソフトウェア開発やソフトウェアテストの経験者だ。
文書化への取り組み方も異なる。技術文書の作成と管理はSREチームの文化に欠かせない要素であり、SREエンジニアの業務の一部だ。DevOpsチームはSREチームほど文書化を重視しない文化がある。ただし企業の知見の保存、開発者のオンボーディング(新人の受け入れから戦力化までのプロセス)の改善、開発者の集中力維持のため、徐々に改善が進んでいる。
SREとは?
SREチームの役割
SRE担当者(サイト信頼性エンジニア)は、本番環境のシステムとサービスの高可用性、信頼性、耐障害性を確保する役割を担う。管理対象には、オンプレミスシステムとクラウドサービスに加え、両者を併用するハイブリッドクラウドが含まれる。
ハイブリッドクラウドやマルチクラウド(複数クラウドサービスの併用)におけるパフォーマンスのチューニングと最適化は、SREチームの担当分野だ。デプロイ、スケーリング、監視などの作業を自動化して作業を効率化するには、自動化ツールや一元管理ツールが不可欠だ。
SREチームは担当領域におけるSLAの定義と維持も実施する。SLA違反が発生した場合、ユーザー企業に対して技術面と運用面のサポートも提供する。
災害復旧計画の設計、テスト、実装もSREの責務である。災害時の対処を確実に実行するため、SREチームは主体的に計画の実地訓練をする。災害復旧計画が形骸化しないように、継続的に改善することが大切だ。
システムの効率性と耐障害性を高めるため、SREチームはプロセス、ツール、インフラを継続的に改善しなければならない。適切な監視ツールとプロセスをそろえ、システムのパフォーマンスを分析してボトルネックを解消することで、継続的な改善が可能になる。
SREは現在注目の分野だ。そのため、SREチームは最新のIT動向と新興技術を追跡し、それらが自社のSREに適するかどうかを評価することが重要だ。
SREチームの主要業務
SREチームはシステムのアップタイム(システムの稼働可能な時間)の維持と信頼性向上に注力する。具体的な業務例は以下の通りだ。
- システムの状態を監視、運用やカスタマーエクスペリエンス(CX:顧客体験)に影響が出る前に問題を特定する
- 定期的なサイト監視とそれに伴う作業の自動化によって、生産性向上、人的ミスの削減、戦略的業務への時間確保を実現する
- 迅速なインシデントの解決と再発防止のために、ツールと手順書を整備する
SREチームが解決する問題
SREチームはシステム停止による損失をもたらすような大規模な問題に対処する。以下に、SREチームが取り組む主な問題を挙げる。
- サービス停止
- モニタリングやアラート、インシデント対応のためのツールと手順書を活用し、サービス停止による影響を軽減する。
- スケーラビリティ(拡張性)の課題
- システムの運用に影響を与える負荷の増加に対処するために、専門知識が必要になる。
- 応答遅延
- ボトルネックの解消、ソースコード最適化、キャッシュの実装といった取り組みで応答時間を改善する。
SREのためのツール
SRE用のツールはサイトの信頼性監視と作業自動化に重点を置く。代表的なツールは以下の通りだ。
- Prometheus
- オープンソースのリアルタイム監視ツール。
- メトリクス(指標)の追跡と理解を支援し、システムの信頼性確保に貢献する。
- Grafana
- オープンソースのデータ可視化ツール。
- 多様なデータソースと連携可能で、データの傾向や潜在的問題の把握を支援する。
- Kubernetes
- コンテナオーケストレーションツール。
- アプリケーションのスケーラビリティと効率性を高める自動化を実現する。
次回はDevOpsチームの役割、SREチームとDevOpsチームの理想的な協業体制について解説する。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.