見出し画像

SREを”見える化する”APM活用!可観測性と信頼性の強化を加速

日本アイ・ビー・エムの小石川です。

新年明けましておめでとうございます!
本年もよろしくお願いいたします。

さて、2024年最後の記事で述べたように、2025年最初の記事はSRE(Site Reliability Engineering):サイト信頼性エンジニアリングとAPMについての記事です。


皆様はSREの役割をご存じですか?

システムの可用性や信頼性、スケーラビリティの維持、サービス中断を最小限にするソフトウェア・エンジニアリング・アプローチのことです。この役割を適切に果たすためには、「可観測性(Observability)」の考え方が重要です。

今回は「SRE:サイト信頼性エンジニアリングの概要」「APM」が組み合わさることのメリットをお話しします。


ではさっそく記事に入りましょう!
この記事は、5分で読めます。


SREの概要を把握する

まずはSREの概要を把握していきます。

すでに記載しているDevOpsと似ているところもありますが、SREとDevOpsは目的が違うため、その相違点を理解していきましょう。

SREの基本的な概念

SREではシステムの可用性、パフォーマンス、効率性、キャパシティ管理を維持し、向上させることが役割となっています。

ポイントとなるのは4つの項目です。

1.モニタリングと可観測性の確保
問題の早期検知と迅速な対応をするために、モニタリングツールやAPMによる可観測性の確保を行います。

2.インシデントへの対応
システム障害が発生した場合に、即座にトラブルシューティングを行います。

3.パフォーマンスの最適化
システムのボトルネックを特定し、効率的なリソース利用を目指しています。

4.自動化
手作業の運用を自動化し、エラーを減らすことで、エンジニアの負担を軽減します。

SREは「システムの安全性を維持しながら、素早い変更を可能にする」方法論といえるでしょう。

SREとDevOpsの違いはどこ?

ここまでの内容で、おや?と思う人もいるでしょう。これはDevOpsと似ている、あるいは同じじゃないの?

確かにSREもDevOpsも、開発と運用を連携させていますし、モニタリングを活用して、効率性やパフォーマンス改善なども行っています。

共通点が多い2点ですが、目的が違っていることに注目しましょう。


SREの目的:システムの信頼性を高める
DevOpsの目的:開発と運用の業務効率化と作業時間の短縮


SREが安定運用や自動化、可観測性によるシステムの信頼性に重きを置いているのに対して、DevOpsは開発と運用のチーム連携や効率化に重きを置いているという違いがあるといえるでしょう。

SREのサービス信頼性の文化と指標を理解する

SREには重要視されている文化があります。その文化を遵守することで、信頼性を積み上げていくことを可能としているのです。

また、サービスの信頼性管理のために、指標を用意しています。
基本的な内容を理解していきましょう。

重要視する3つの文化

1.エラーを許容する
エラーを完全に防ぐことはできません。完璧なシステムは存在し得ないため、エラーから学びを得て、改善する文化を持つようにします。

2.ポストモーテムの実施
ポストモーテムとはインシデンとの原因特定を行い、再発防止策を検討するプロセス、あるいはその記録のことです。
インシデントが起きた際に、責任を追及することもあるでしょう。しかしSREの文化では、純粋に再発防止策を議論します。

3.自動化ファースト
人の手ではヒューマンエラーが発生する可能性が生まれます。そのため、手作業をできる限り自動化して、エンジニアが業務に集中できる環境を作ることが目的です。

これら3つの文化が、信頼性を高めるシステム運用のアプローチとなります。

SREにおける指標

サービスの信頼性を管理するために、下記の3つの指標を定義しています。この指標の内容を担保することで、信頼性を維持し、管理することができます。

1.SLI(Service Level Indicator)
システムの稼働状況を数値化した指標です。パフォーマンスを測定する具体的な指標といえます。

例えば、APIの応答時間、エラー率、成功率といった指標のことです。

2.SLO(Service Level Objective)
目標としているサービスレベルのことです。

サービスレベル目標と呼ばれており、「APIのエラー率を1%以下に抑える」「99.9%の稼働率を維持する」といった目標を定めます。

3.SLA(Service Level Agreement)

サービス提供者と利用者の間で、サービスの品質やレベルを定めた契約のことです。

認識のずれや齟齬を回避することや、トラブルが発生した時の対応について明確に定めておくことで、説明責任を果たすことができます。

SREとAPMはどこで関連する?

SREとAPMの関連について、どこで関わってくるのかを理解することが重要です。SREとDevOpsに共通項があるため、SREとAPMの関わりも似ている部分があります。

この2つの関わりについて理解していきましょう。

APMがSREの業務にどう貢献するのか

APMを活用することによって、可観測性を高めることができます。可観測性はシステムの内部を深く理解するために非常に効果的です。

APMでは、ログやメトリクス、トレースといったデータを統合的に管理し、リアルタイム監視やボトルネック特定を支援することが可能です。

SREにとって、APMは3つの重要な役割を持っています。

1.ゴールデンシグナルの監視
2.分散トレーシングの実施
3.リアルタイムアラートの設定

これらの項目を見える化することによって、信頼性の強化を可能としているのです。

上記の3つの重要なポイントがAPMには求められています。これらをわかりやすいUIと共に提供しているのが、IBM Instana Observabilityです。

InstanaのUIの例:ゴールデンシグナルの監視

SREとAPMを掛け合わせるメリット

APMを導入し、SREと掛け合わせることで、継続的な改善サイクルに活用ができます。また、先述した、ポストモーテムという文化の中では、APMデータの活用が欠かせないといえるでしょう。

インシデントが発生した後に、SREでは原因分析が行われます。その際に、APMによって統合されたデータを分析することで、ポストモーテムが効率化されます。

原因分析と再発防止策の策定、APMと掛け合わせることで、SREはさらに効率的なサイクルを回す頃が可能となるのです。

第7回〆:SREに対して、APMを導入してシステムの信頼性を高めよう

APMは、SREにおいてシステムの可観測性を向上させることに繋がります。トラブルシューティングの効率を高めるための効率的なツールです。導入することで、問題の早期発見と解決が可能となります。

ポストモーテムにおいても、より効率的な分析結果を提供し、責任を追及するといった工程より、今後同じことが起こらないようにすることに重きを置くことができます。

定期的なレビューを行いながら、APMを活用して、システムの安定性と信頼性を高めていきましょう!


フォローしていただくと、新着記事が出た際に分かりますのでご活用ください。スキやコメント、記事についてもご意見お待ちしております。
閲覧ありがとうございます!


執筆

日本アイ・ビー・エム株式会社
テクノロジー事業本部
カスタマーサクセスマネージャー

小石川 将晃

いいなと思ったら応援しよう!

noteマネーのバナー