10年もののアプリケーションを運用・開発するアプリケーションエンジニアのDatadog活用術
by
miyamu
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
「10年もののアプリケーション」を運用・開発する アプリケーションエンジニアの Datadog 活用術 💪 マネーフォワードビジネスカンパニーERP開発本部・福岡第一開発部 Technical Lead 宮村 紅葉 / Miyamura Koyo
Slide 2
Slide 2 text
プロダクトの特徴 - バックエンドは Ruby on Rails で開発 - 10年以上の歴史を持つプロダクト - 現在でも活発に開発・運用中 - ユーザー数・導入社数も多い https://biz.moneyforward.com/expense/
Slide 3
Slide 3 text
自己紹介
Slide 4
Slide 4 text
- miyamu / 宮村紅葉 - @KoyoMiyamura (X) - koyo-miyamura (GitHub) - 推しのプログラミング言語 - Elixir - 出身 - 熊本 - 経歴 - 2019年4月 面白法人カヤックに新卒入社 - 2021年9月 マネーフォワード福岡拠点ガーディアングループ (CRE) - 2024年12月 クラウド経費テックリード 自己紹介
Slide 5
Slide 5 text
プロダクト紹介
Slide 6
Slide 6 text
運用・開発に携わっているプロダクト①「マネーフォワードクラウド 経費精算」 使った瞬間、経費精算されていたら、 入力ミスや規程違反が起きなかったら、 わたしたちは本来の業務に集中でき、 ワークスタイルはもっと豊かになるはずです。 マネーフォワード クラウド経費は、 ペーパーレス、キャッシュレス、オートメーション を軸に、 企業の生産性向上と ガバナンス強化を同時に実現します。 使った瞬間、経費精算されている未来を目指して 経費精算は、自走する。
Slide 7
Slide 7 text
運用・開発に携わっているプロダクト②「マネーフォワードクラウド 債務支払」 受領請求書の作業が圧倒的に楽になるソリューション オンラインチェックで完了できる 承認ワークフロー 会計ソフト 請求費用の分析 担当者 上長 経理 API/CSV 取引先への振込 請求書受領・申請 承認 支払処理・管理 事前・各種申請 支払依頼申請 紙の請求書を 受領・データ化 電子請求書を アップロード 請求書のデータ化・ワークフロー・会計処理まで一元管理! 煩雑な紙の請求書処理をなくし、オンラインで完結することで、経理部の生産性が大きく向上できるサービスです。
Slide 8
Slide 8 text
プロダクトの特徴 - バックエンドは Ruby on Rails で開発 - 10年以上の歴史を持つプロダクト - 現在でも活発に開発・運用中 - ユーザー数・導入社数も多い https://biz.moneyforward.com/expense/ つまり多機能な Datadog は便利!(笑)
Slide 9
Slide 9 text
活用事例紹介
Slide 10
Slide 10 text
運用編
Slide 11
Slide 11 text
運用編① 🤔 システムアラートを検知して通知したい
Slide 12
Slide 12 text
💪 Monitors (terraform で管理) 運用編①
Slide 13
Slide 13 text
運用編① 💪 専用の Slack チャンネルに通知!
Slide 14
Slide 14 text
運用編② 🤔 システムメトリクスを一覧でみたい
Slide 15
Slide 15 text
運用編② 💪 Dashboard で一覧化! -> 定期チェック
Slide 16
Slide 16 text
開発編
Slide 17
Slide 17 text
開発編① 🤔 要件定義時に非機能要件を考慮したい -> 現状はどうなっている?
Slide 18
Slide 18 text
開発編① 💪 Traces でリクエスト数・パフォーマンスをチェック
Slide 19
Slide 19 text
開発編② 🤔 パフォーマンスチューニングしたい -> 現状のパフォーマンスは?
Slide 20
Slide 20 text
開発編② 💪 Traces -> Span で N+1や不要な処理を特定
Slide 21
Slide 21 text
開発編② 💪 カスタムトレースも定義可能 def create custom_trace { HogeService.execute! } end private def custom_trace(&) custom_tags = { params: params, data: data } Datadog::Tracing.trace(trace_name, tags: custom_tags, &) end
Slide 22
Slide 22 text
私自身の活用事例
Slide 23
Slide 23 text
私自身の活用事例① 🤔 このエンドポイントってもう使われてないんだっけ ...?
Slide 24
Slide 24 text
私自身の活用事例① 💪 APM → Service -> rack.request でコントローラ名を検索! -> 0件であれば未使用
Slide 25
Slide 25 text
私自身の活用事例② 🤔 Ruby アップデートで DEPRECATION WARNING が 出ていないかを調査したい
Slide 26
Slide 26 text
私自身の活用事例② 💪 Log Explorer で一括で検索! 約8年開発されている Rails 製プロダクトを Ruby 3 にバージョンアップするために keyword parameters is deprecated を「網羅的に」検知する方法
Slide 27
Slide 27 text
まとめ
Slide 28
Slide 28 text
まとめ - 10年ものの SaaS アプリケーションでよく使っている機能を紹介しました - 多機能で長く運用しているプロダクトの需要を網羅的に満たしてくれること が Datadog の魅力 - 事例も多くて嬉しい(マネーフォワードは英語化しているので英語の記事の多さも魅力) - マネーフォワードは全社的に Datadog を使っているので、大規模なアプリケーションを Datadog でやり たい人はぜひ!
Slide 29
Slide 29 text
LT イベントやります https://moneyforward.connpass.com/event/352407/
Slide 30
Slide 30 text
LT イベントやります https://moneyforward.connpass.com/event/352407/