「【日経×コドモン×RevComm】サービスの安定性、信頼性を高めるDevOps/SREの取り組み」での発表資料です。 https://nikkei.connpass.com/event/292415/
コドモンSREにおけるオブザーバビリティ改善の道のり2023年09月21日日経×コドモン×RevCommサービスの安定性、信頼性を高めるDevOps/SREの取り組み
View Slide
2経歴音響エンジニア(PA)からITエンジニアに転職。SIerや派遣でのインフラ業務を数社経験後、2020年10月にコドモンにSREとして入社。妻が保育士で、保育の現場を肌で感じながら、日々プロダクトの信頼性向上を目指す。趣味は週末のランニングで、社内にランニングクラブを立ち上げたので、リレーマラソンに会社で出るのが直近の目標🏃自己紹介田中 知英 たなか ともひで
3Mission
4すべての先生に 子どもと向き合う時間と心のゆとりをこんなプロダクトを開発していますメインプロダクトは、保育・教育施設向けWebアプリケーション。保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版アプリケーション、外部サービスと連携するAPIなども開発しています。
5今日話すことオブザーバビリティとはフェーズにおける改善の取り組み今後まとめ1234
6今日話すことオブザーバビリティとはフェーズにおける改善の取り組み今後まとめ1234
7CONFIDENTIAL © 2022 CoDMON Inc. 7オブザーバビリティとは● クラウド、マイクロサービス、分散システムの普及に伴い、システムの複雑性が増している● システムで「いつ、何が、どこで起こっているのかを観測可能に保つ」考え方● オブザーバビリティのシグナルの3本柱 「メトリクス」「ログ」「トレース」参考:「Observability Whitepaper」CNCFhttps://github.com/cncf/tag-observability/blob/main/whitepaper.md
8CONFIDENTIAL © 2022 CoDMON Inc. 8オブザーバビリティとはメトリクス● システムの状態を数値化したもの○ 例: CPU使用率、メモリ使用率、レスポンスタイム、リクエスト数● 「何が」起きているかを把握するのに大きな役割を果たす● メトリクス単体で必ずしも原因が明らかになるわけではない
9CONFIDENTIAL © 2022 CoDMON Inc. 9オブザーバビリティとはログ● システムの状態をテキストで記録したもの○ 例: アプリケーションログ、アクセスログ、エラーログ● 特定の状況に至るステップを追うことができる● 障害が発生した瞬間の状態を把握することができる
10CONFIDENTIAL © 2022 CoDMON Inc. 10オブザーバビリティとはトレース● トランザクション中の処理の流れを記録したもの○ 例: リクエストの処理時間、DBへのクエリ● トランザクションの処理の流れを追うことができる
11今日話すことオブザーバビリティとはフェーズにおける改善の取り組み今後まとめ1234
122019 202320222021開始初期マイクロサービス導入開始マイクロサービス拡大現在
13サービス開始初期
14CONFIDENTIAL © 2022 CoDMON Inc. 14サービス開始初期● 開発部人数:約8名● インフラ(現SRE)人数:2名● アーキテクチャ:モノリス 体制(2019年)
15CONFIDENTIAL © 2022 CoDMON Inc. 15サービス開始初期メトリクス● CloudWatchログ● CloudWatch Logsトレース● なしその他● MSP(マネージドサービスプロバイダ)技術スタック
16CONFIDENTIAL © 2022 CoDMON Inc. 16サービス開始初期● インフラ担当としては2名いたが、セールスエンジニア的な仕事も担っておりリソースが不足● インフラ整備に対して稼働を割けない課題
17CONFIDENTIAL © 2022 CoDMON Inc. 17サービス開始初期監視はAWSサービスを活用● システムはモノリスのため、対象のリソースはそれほど多くない● 最低限のメトリクスをCloudWatchにて監視● ログの保存先としてCloudWatch Logsを利用MSPによりリソース不足を対応● MSPを利用することで、社外のリソースを活用し監視を実装
18マイクロサービス導入開始期
19CONFIDENTIAL © 2022 CoDMON Inc. 19マイクロサービス導入開始期● 開発部人数:約30名(+22名)● SRE人数:4名(+2名)● アーキテクチャ:1機能をマイクロサービス化にてリプレイス 体制(2021年)
20CONFIDENTIAL © 2022 CoDMON Inc. 20マイクロサービス導入開始期メトリクス● Datadogログ● CloudWatch Logsトレース● なしその他● PagerDuty技術スタック
21CONFIDENTIAL © 2022 CoDMON Inc. 21マイクロサービス導入開始期● システム全体の稼働状況の把握が難しい● 外形監視などのサービスレベルでの監視観点の不足● MSPが活用しきれず費用対効果が薄い課題
22CONFIDENTIAL © 2022 CoDMON Inc. 22マイクロサービス導入開始期Datadogの導入● SREメンバーが増えたことで運用改善にリソースを割ける状態に● ダッシュボードによるシステム全体のリソース状況を可視化● マルチアカウントの情報を一括で管理● PagerDutyとの連携でオンコールを実装● MSPから自社での監視運用に切り替え、コスト削減する
23マイクロサービス拡大期
24CONFIDENTIAL © 2022 CoDMON Inc. 24マイクロサービス拡大期● 開発部人数:約50名(+20名)● SRE人数:4名● アーキテクチャ:新機能やリプレイスはすべてマイクロサービス化 体制(2022年)
25CONFIDENTIAL © 2022 CoDMON Inc. 25マイクロサービス拡大期メトリクス● Datadogログ● Datadog● S3(Athena) + Redashトレース● DatadogAPMその他● PagerDuty● SlowQueryReport技術スタック
26CONFIDENTIAL © 2022 CoDMON Inc. 26マイクロサービス拡大期● ユーザー増加に伴うシステム負荷の高騰● ユーザー増加に伴う問い合わせ数や調査コストの増加● SREに依存した監視運用課題
27CONFIDENTIAL © 2022 CoDMON Inc. 27マイクロサービス拡大期Datadogの利用範囲の拡充● アプリケーションの問題の特定を容易にするため、DatadogAPMの導入● アプリケーションレベルの異常の早期検知と調査が容易に● ログ情報をDatadogに集約することで、ログのリアルタイム監視やDatadogで調査を完結できる状態に● 週次で各開発チームとDatadog見る会を開催し、システム構成の理解を高めてもらいながら、Datadogを操作することに慣れてもらう
28CONFIDENTIAL © 2022 CoDMON Inc. 28マイクロサービス拡大期Redashによるログ分析● ログの永続領域としてはS3を利用することで保持コストを下げ、Athenaを活用することでRedashでの分析を容易に● Redashをインタフェースとすることで、ビジネスサイドも分析として活用できる状態に自前でのレポートツールの作成● DB負荷の潜在的なリスク検知のため、pt-query-digestを利用し日次でのSlowQueryのレポートをSlack通知する運用を開始
29CONFIDENTIAL © 2022 CoDMON Inc. 29マイクロサービス拡大期
30現在
31CONFIDENTIAL © 2022 CoDMON Inc. 31現在● 開発部人数:約80名(+30名)● SRE人数:6名(+2名)● アーキテクチャ:新機能やリプレイスはすべてマイクロサービス化 体制(2023年)
32CONFIDENTIAL © 2022 CoDMON Inc. 32現在メトリクス● NewRelicログ● NewRelic● Fluentd + S3(Athena)トレース● NewRelicAPM● NewRelicMobileその他● PagerDuty● SlowQueryReport● AWSCostReport技術スタック
33CONFIDENTIAL © 2022 CoDMON Inc. 33現在● 開発チームが増えることでSREとのコミュニケーションコストが増加● SREが開発におけるボトルネックになってしまう● 機能やモニタリング範囲拡大による監視コストの増加課題
34CONFIDENTIAL © 2022 CoDMON Inc. 34現在DatadogからNewRelicに移行● SREがボトルネックにならず、各開発チームが自律的に動ける体制が必要● 担当のコンサルタントがつき、初期導入のオンボーディングや、導入後もTAMがついてくれるなどサポート体制が充実● SREが介在せずに開発チームが直接サポートとやりとりできるため、新しい機能の導入や改善の動きを開発チームが自律的に行える体制
35CONFIDENTIAL © 2022 CoDMON Inc. 35現在ログ管理方法の見直し● すべてのログはFluentdを利用しS3へ直接保存し、監視が必要なアプリケーションログだけNewRelicへ送信する仕組みに● ログレベルによる送信先の判断を容易にできるよう、アプリケーションログのレベルの改善を推進
36CONFIDENTIAL © 2022 CoDMON Inc. 36現在AWSコストの可視化● 何にコストがかかっているのか、どうコストが変動したのかわかりにくい● Cost and Usage ReportをS3に保持することでRedash経由で参照● 前月とのサービス毎のコスト変動や、タグを用いてサービス単位でのコストを可視化● 開発内だけではなく、ビジネス側の数字の判断材料としても利用可能に
37CONFIDENTIAL © 2022 CoDMON Inc. 37現在
38今日話すことオブザーバビリティとはフェーズにおける改善の取り組み今後まとめ1234
39CONFIDENTIAL © 2022 CoDMON Inc. 39オブザーバビリティ成熟度モデル『オブザーバビリティの成熟度モデルと 監視からオブザーバビリティへ』https://speakerdeck.com/newrelic2023/20230523-findy-newrelic-o11y1成熟度 特徴 KPI予測的積極的受動的
40CONFIDENTIAL © 2022 CoDMON Inc. 40オブザーバビリティ成熟度モデル成熟度 特徴 KPI予測的積極的受動的『オブザーバビリティの成熟度モデルと 監視からオブザーバビリティへ』https://speakerdeck.com/newrelic2023/20230523-findy-newrelic-o11y1
41今日話すことオブザーバビリティとはフェーズにおける改善の取り組み今後まとめ1234
42CONFIDENTIAL © 2022 CoDMON Inc. 42まとめ● サービスや組織の規模に適したオブザーバビリティツールを選択し、変化するニーズに対応しながら継続的に改善してきた● すべてのデータを取得・管理するのが理想的だが、比例してコストは肥大化するので、データの重要度やリアルタイム性を考慮して、コストバランスをとりながら管理することが大切と感じた● オブザーバビリティはツールの導入がゴールではなく、ツールを活用する文化の醸成を意識しながら導入を進めることで、はじめて効果がでる● 今後も日々の改善を重ねながら、サービスの信頼性を高めて行きたい
43終わりに
44コドモン採用ページ 開発ブログコドモンでは一緒に働きたい仲間を募集しています!
45ご清聴ありがとうございました!