Slide 1

Slide 1 text

エンタープライズBPMプラット フォームにおけるO11y Dress Code株式会社 / Product & Technology 蒲生 廣人 1

Slide 2

Slide 2 text

© Dress Code Inc . All rights reserved. 自己紹介 ● 業務 ○ プロダクトエンジニア/SRE ○ IT(情シス)領域のプロダクトを中心に開発 ● 経歴 ○ 2017年~ 美容医療クリニックの口コミサイト開発 ○ 2021年~ レバテックのSREチーム立ち上げ ○ 2024年~ Dress Codeのプロダクト開発 ● 趣味 ○ 🐈、⚽、🎸 gamonges(@gamonges_eng) 2

Slide 3

Slide 3 text

© Dress Code Inc . All rights reserved. 3 Agenda 1. 対象プロダクトとBPMプラットフォームの紹介 2. なぜ011yが必要なのか 3. 計装アプローチ 4. 実装例の紹介 5. 学びとまとめ

Slide 4

Slide 4 text

© Dress Code Inc . All rights reserved. 4 本日のゴール ● 計装を始める上で、最初に整理するべきもの ● 試行錯誤中のところ の実践例を持って帰ってもらって ぜひディスカッションや計装の実践に結びつけてもらえれば

Slide 5

Slide 5 text

© Dress Code Inc . All rights reserved. 対象プロダクトと BPMプラットフォームの紹介 5

Slide 6

Slide 6 text

© Dress Code Inc . All rights reserved. DRESS CODE 全体像 HR Force RCT Force GA Force PJ Force Architecture Platform CG Force SaaS管理 デバイス 調達とストア IDとアクセス セキュリティとモバイル 倉庫と配送 メンバー 組織と配置 労務コア 給与計算 勤怠 福利厚生 サーベイ 業務契約者コア ATS 入社前事前調査 面談管理 リファラル推進 役職と職務内容管理 オファーレターとサイン 拠点 備品 車両 選考ステップ最適化 タレントプール プロジェクト 予算統制 リソース スケジュール 有効人員と作業量 個人情報 リスクとインシデント管理 コンプライアンス 監査 ベンダー管理 IT Force ※Recruiting ※General Affairs ※Project ※Corporate Governance 施設ファシリティ 安否確認 郵便物 社内イベント 株主総会 3 other Products 契約と支払い お知らせと通知 ユーザーとアカウント ビジネスモデルスタジオ 分析とレポート ワークフローと自動化 ルールとポリシー 権限と役割 業務オペレーションエンジン 卓越し標準化されたUI/UXa People Graph(CoreDB) 6

Slide 7

Slide 7 text

© Dress Code Inc . All rights reserved.

Slide 8

Slide 8 text

© Dress Code Inc . All rights reserved. 従業員スマホ画面 情シス管理画面

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

© Dress Code Inc . All rights reserved. BPMプラットフォーム 🤔BPMとは? ● ビジネスプロセス・マネジメント(ビジネスプロセス管理)の略称 ○ BPMN(ビジネスプロセス モデル&ノーテーション)という国際標準 (ISO19510)の業務フローとBPMS(ビジネスプロセス・マネジメントシステム) というITツールを使って行うビジネスプロセス改革・改善のPDCAサイクルが回る 管理のこと ● 「人が行っている業務を標準化しリアルタイムで見えるようにすること」 ● 「業務が見えることで具体的な対策がすぐに実施できること」 ● 「蓄積された業務データから課題を発見し改善し続けること」 10

Slide 11

Slide 11 text

© Dress Code Inc . All rights reserved. ピザ屋さんの例

Slide 12

Slide 12 text

© Dress Code Inc . All rights reserved. BPMプラットフォーム Business Operation Engine/業務オペレーションエンジン(※以後、BOE) ● 誰でも簡単に業務を実行できるようにする共通機構 ● 業務プロセスを構築、自動化、アウトソースすることが可能 ● ワークフロー、申請、承認、タスクなどの機能がある 12 BOEの責務 ● 業務フローの定義とフロー管理 ● トークンによる進行制御

Slide 13

Slide 13 text

© Dress Code Inc . All rights reserved. BOEの簡単な概念図

Slide 14

Slide 14 text

© Dress Code Inc . All rights reserved. BOEの簡単な概念図

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

© Dress Code Inc . All rights reserved. なぜO11yが必要なのか 16

Slide 17

Slide 17 text

© Dress Code Inc . All rights reserved. なぜ011yが必要なのか ● BOEの知見がないと障害調査が難しい ○ 内部のアーキテクチャとDB構造が複雑 ○ フローの状態を追うには深い理解が必要 ● BOEとドメインの切り分け ○ 業務パッケージの中で問題が起きたときに プラットフォーム側かドメイン側かで問題を切り分ける必要がある ● 技術的エラーと業務的エラーのギャップ ○ HTTPステータスコードのエラー=業務的エラー ではない 17

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

© Dress Code Inc . All rights reserved. 計装アプローチ 19

Slide 20

Slide 20 text

© Dress Code Inc . All rights reserved. 計装アプローチの整理 ● ドメインイベントをトレースする ● 計装の優先順位づけ ● プラットフォームとドメインの計装を分ける 20

Slide 21

Slide 21 text

© Dress Code Inc . All rights reserved. ドメインイベントをトレースする 💯 API処理ごとの指標 ● 各エンドポイント単位のHTTPステータスやレイテンシの計測 ○ 顧客の業務がどこまで進んだのか どの段階の業務フローに信頼性の課題があるのか が、業務が複数のエンドポイントに跨っている時に分かりづらい ● システムの振る舞いがドメインのルールに沿っているのか ○ ドメインモデリングされたルールに沿った振る舞い、計算結果を出しているかは HTTPステータスなどからは把握しづらい 技術的なエラーと、業務的なエラーは必ずしも繋がらない 21

Slide 22

Slide 22 text

© Dress Code Inc . All rights reserved. ドメインイベントをトレースする 💡 ドメインイベント ● 「ビジネスドメイン上で発生した重要な出来事を表すメッセージ」 ○ システム内の状態の変化(=集約の状態の変化)を表現するもの 22 🎯 理想 ● システム上で業務の成否がどうなっているか分かる ● システム内の状態の変化が適切なのかが分かる。 ● インシデント調査が、エンドポイントのステータスではなく ユーザー影響ベースで進められる

Slide 23

Slide 23 text

© Dress Code Inc . All rights reserved. ドメインイベントの整理 💡 表現している業務 🎯 業務の流れ ● デバイスの所在確認のプロセス ● 棚卸しレポート ● 棚卸し対象のデバイスをリストアップ ● デバイスを付与している従業員、責任者に棚卸しを依頼 ● 各デバイスの所有者がレポートを提出 ● 情シス担当者がレポートをレビュー 23

Slide 24

Slide 24 text

© Dress Code Inc . All rights reserved.

Slide 25

Slide 25 text

© Dress Code Inc . All rights reserved. 計装の優先順位づけ 💡 複雑度×調査頻度 25 アーキテクチャやデータ構造の複雑さ ● 内部実装の詳細知識が必要 ● データの関連が複雑 実際に障害調査で見る頻度 ● 障害が起きたときに見る頻度 ● 調査の起点になる頻度 ● 問い合わせの多さ 複雑度 調査頻度 🎯 判断基準:複雑度が高く、調査頻度も高い箇所を優先的に計装する

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

© Dress Code Inc . All rights reserved. 改善:スパン属性を明確に分類 プラットフォーム属性(BOE側) ● パッケージ種別 ● パッケージID ● パッケージstatus ● 各ステップのstatus ● 各タスクのstatus ● アサイン担当者(personId) プレフィックス: business_context.*, operation.* ドメイン属性(業務側) ● セルフレポート内容 ● 棚卸し結果 ● デバイス情報 ● 業務固有のステータス プレフィックス: domain.* または業務名プレフィックス

Slide 29

Slide 29 text

© Dress Code Inc . All rights reserved. 実装例の紹介 29

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

© Dress Code Inc . All rights reserved. プラットフォーム側の計装コード 31

Slide 32

Slide 32 text

© Dress Code Inc . All rights reserved. プラットフォーム側の計装コード 32

Slide 33

Slide 33 text

© Dress Code Inc . All rights reserved. ドメイン側の計装コード 33

Slide 34

Slide 34 text

© Dress Code Inc . All rights reserved. スパンの詳細画面

Slide 35

Slide 35 text

© Dress Code Inc . All rights reserved. 検索画面

Slide 36

Slide 36 text

© Dress Code Inc . All rights reserved. 学びとまとめ 36

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

© Dress Code Inc . All rights reserved. 技術ブログやってます https://zenn.dev/p/dress_code ご清聴ありがとうございました 39 採用してます https://herp.careers/v1/dresscode/