「攻め」のリプレース --- ナレッジワークのユーザー体験を支えるコンテンツ処理システムについて
by
Seiya Miyata
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
「攻め」のリプレース ナレッジワークのユーザー体験を支えるコンテンツ処理システムについて 2024-07-29 Encraft #16 プロダクトを支えるコアシステム 株式会社ナレッジワーク 宮田聖也
Slide 2
Slide 2 text
© Knowledge Work Inc. 自己紹介 2 2 • 宮田聖也 (@38xxer) • SWE at Knowledge Work • 2024 年 3 月入社 • Golang, Ruby が好き • 趣味:🍺🍺🍺, ⚽ (, ), 🎸, 📷
Slide 3
Slide 3 text
© Knowledge Work Inc. アジェンダ 3 3 ・ナレッジワークについて ・コアシステムである「コンテンツ処理システム (CP)」の概要 ・CP のリプレースの背景
Slide 4
Slide 4 text
© Knowledge Work Inc. 理解していただきたいポイント 4 4 ・ナレッジワークのコアシステムの概要 ・どんな課題にぶつかったか ・どう改善したか
Slide 5
Slide 5 text
© Knowledge Work Inc. プロダクト紹介 5 みんなが売れる営業になる セールスイネーブルメントクラウド セールスイネーブルメントクラウド「ナレッジワーク」 2022年リリース、資料共有・商談準備 SaaS
Slide 6
Slide 6 text
© Knowledge Work Inc. 6 ユーザー像 ・エンタープライズ企業の セールス ・主な業務は 顧客との商談、商談準備 ・商材数は膨大、新商品も続々登場 ・社内ファイル共有システム に膨大な社内資 料がある
Slide 7
Slide 7 text
© Knowledge Work Inc. セールスメンバーが感じるユーザー体験のペイン 7 7 より資料検索・資料閲覧を効率化したい これまで あるべき 見つかる 開ける 欲しい資料がすぐ見つかる ファイルが瞬時に開く 片っ端から社内システムのフォルダを開く ファイルツリーを深ぼって必要なファイルを探す、ファイル を開くのに 10秒 見つか らない 開け ない わから ない わかる
Slide 8
Slide 8 text
© Knowledge Work Inc. ナレッジワークについて 8 8 商品資料・提案資料・プレゼン動画などをアップロード 「ナレッジ」という単位で社内に共有
Slide 9
Slide 9 text
© Knowledge Work Inc. ナレッジワークについて 9 9
Slide 10
Slide 10 text
© Knowledge Work Inc. ナレッジとは 10 10 ナレッジワーク における情報共有の単位
Slide 11
Slide 11 text
© Knowledge Work Inc. ナレッジの種類 11 11 一つのナレッジには多様なコンテンツが紐づいている ナレッジ
Slide 12
Slide 12 text
© Knowledge Work Inc. それを生成するのが 12 12 コンテンツ処理システムです!
Slide 13
Slide 13 text
© Knowledge Work Inc. コンテンツ処理システム( CP) 13 13 コンテンツ処理= ナレッジに紐づくコンテンツの作成 画像・文字・動画 , … Content Processing ファイル
Slide 14
Slide 14 text
© Knowledge Work Inc. 14 14
Slide 15
Slide 15 text
© Knowledge Work Inc. 当初のコンテンツ処理システム( CP)(要点のみ抜粋) 15 15 Processor Converter Initiator Finalizer API Server Original Bucket Scanner User
Slide 16
Slide 16 text
© Knowledge Work Inc. 当初の CP(要点のみ抜粋) 16 16 Processor Converter Initiator Finalizer API Server Original Bucket Scanner User
Slide 17
Slide 17 text
© Knowledge Work Inc. 当初の CP(要点のみ抜粋) 17 17 Processor Converter Initiator Finalizer API Server Scanner ファイル形式 の判別 ファイル スキャン ファイル変換 コンテンツ 生成 終了の通知 責務が分割された多段階処理 Original Bucket
Slide 18
Slide 18 text
© Knowledge Work Inc. 18 ナレッジ閲覧用のコンテンツに加えて ユーザー体験向上に寄与するコンテンツも生成 生成されるコンテンツの例 ・一覧画面に表示するサムネイル ・PPT ファイルから生成した PDF ・PDF から抽出したテキスト ・詳細画面に表示する画像 + ・サムネイルへのホバー操作時に表示する コンテンツ ・軽量化した PDF … etc.
Slide 19
Slide 19 text
© Knowledge Work Inc. 音声・動画ファイルからのテキスト情報の抽出のような 重い処理が追加された ファイル変換、サムネイルの生成、 サムネイルへのホバー操作時に表示する コンテンツ、テキスト抽出処理 19 コンテンツ処理の要件 音声・動画ファイルからの 生成物の抽出 当初のコンテンツ 追加のコンテンツ
Slide 20
Slide 20 text
© Knowledge Work Inc. 当初の CP(要点のみ抜粋) 20 20 Processor Converter Initiator Finalizer API Server Scanner External API Original Bucket
Slide 21
Slide 21 text
© Knowledge Work Inc. 課題① - ボトルネック処理による遅延 21 21 Processor Converter Initiator Finalizer API Server Scanner External API 全コンテンツ処理の終了まで ナレッジが閲覧できない Original Bucket
Slide 22
Slide 22 text
© Knowledge Work Inc. 課題② - 複雑さの増大によるスケーラビリティ悪化 22 22 Processor Converter Initiator Finalizer API Server Scanner External API 変換の順序が 標準化されていない 条件分岐が分散している Original Bucket
Slide 23
Slide 23 text
© Knowledge Work Inc. 課題② - 複雑さの増大によるスケーラビリティ悪化 23 23 Processor Converter Initiator Finalizer API Server Scanner External API 変換の順序が 標準化されていない 条件分岐が分散している Original Bucket
Slide 24
Slide 24 text
© Knowledge Work Inc. 課題② - 複雑さの増大によるスケーラビリティ悪化 24 24 Processor Converter Initiator Finalizer API Server Scanner External API 新たな処理の追加時に 考慮するケースが多くなる Original Bucket
Slide 25
Slide 25 text
© Knowledge Work Inc. 課題③ - トレーサビリティの低さ 25 25 Processor Converter Initiator Finalizer API Server Scanner External API どこかの段階で失敗した場合 原因調査が大変 Original Bucket
Slide 26
Slide 26 text
© Knowledge Work Inc. コンテンツ処理システムを取り巻く外部環境 26 26 ナレッジはコアのドメイン 今後展開されるプロダクトでも参照される可能性が高い 2024 - 2026 年に 10 個のプロダクトを展開することが決定している ナレッジ
Slide 27
Slide 27 text
© Knowledge Work Inc. コンテンツ処理システムを取り巻く外部環境 27 27 今後展開されるプロダクトでは ドメインに応じた新たなコンテンツが必要になる可能性がある ナレッジ
Slide 28
Slide 28 text
© Knowledge Work Inc. コンテンツ処理システムを取り巻く外部環境 28 28 コンテンツ処理システムの追加開発は 複数のプロダクトチームが実行する可能性がある 開発プロセスを標準化したい ナレッジ
Slide 29
Slide 29 text
© Knowledge Work Inc. コンテンツ処理システムを取り巻く外部環境 29 29 今後、確実に複雑度を増す処理システム それに伴って追加実装の難易度は上がる ユーザー体験も悪くなる可能性がある
Slide 30
Slide 30 text
© Knowledge Work Inc. 30 30 実際に問題が発生する前にリプレース
Slide 31
Slide 31 text
© Knowledge Work Inc. 31 31 実際に問題が発生する前にリプレース 前のめりなリプレース ➡ 「攻め」のリプレース
Slide 32
Slide 32 text
© Knowledge Work Inc. 新 CP 32 32 Dispatcher Engine A DB API Server Engine C Engine B Original Bucket
Slide 33
Slide 33 text
© Knowledge Work Inc. 新 CP(要点のみ抜粋) 33 33 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B ・エンジン処理の起 動 ・処理ステータス管 理 ・終了の通知 ・広義のファイル変換処理 ・形式判別やスキャンも含む ステータス保存 Original Bucket
Slide 34
Slide 34 text
© Knowledge Work Inc. 旧システムは多段階処理だった 34 34 Processor Converter Initiator Finalizer API Server Scanner ファイル形式 の判別 ファイル スキャン ファイル変換 コンテンツ 生成 終了の通知 Original Bucket
Slide 35
Slide 35 text
© Knowledge Work Inc. 新 CP 35 35 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B 責務を分割しつつ 「エンジン」という形に抽象化 Original Bucket
Slide 36
Slide 36 text
© Knowledge Work Inc. 旧システムの課題① - ボトルネック処理による遅延 36 36 Processor Converter Initiator Finalizer API Server Cloud Storage Scanner External API 全コンテンツ処理の終了まで ナレッジが閲覧できない
Slide 37
Slide 37 text
© Knowledge Work Inc. 新 CP 37 37 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B save state Original Bucket
Slide 38
Slide 38 text
© Knowledge Work Inc. 新 CP 38 38 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B save state Original Bucket
Slide 39
Slide 39 text
© Knowledge Work Inc. 新 CP 39 39 Dispatcher Engine A DB API Server notify Original Bucket Engine C Engine B Original Bucket
Slide 40
Slide 40 text
© Knowledge Work Inc. 新 CP 40 40 Dispatcher Engine A DB API Server notify Original Bucket Engine C Engine B 早い成果物から利用可能 Original Bucket
Slide 41
Slide 41 text
© Knowledge Work Inc. 新 CP 41 41 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B Original Bucket
Slide 42
Slide 42 text
© Knowledge Work Inc. 新 CP 42 42 Dispatcher Engine A DB API Server Original Bucket notify Engine C Engine B Original Bucket
Slide 43
Slide 43 text
© Knowledge Work Inc. 新 CP 43 43 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B 一部失敗した場合も 他の成果物は利用可能 Original Bucket
Slide 44
Slide 44 text
© Knowledge Work Inc. 旧システムの課題② - 複雑さの増大によるスケーラビリティ悪化 44 44 Processor Converter Initiator Finalizer API Server Scanner External API 変換の順序が 標準化されていない 条件分岐が分散している Original Bucket
Slide 45
Slide 45 text
© Knowledge Work Inc. 新 CP 45 45 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B I/F が統一され 追加開発が 容易になった Engine D Original Bucket
Slide 46
Slide 46 text
© Knowledge Work Inc. 新 CP 46 46 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B コンテンツ処理 の順序の知識が 集約された Original Bucket
Slide 47
Slide 47 text
© Knowledge Work Inc. 旧システムの課題③ - トレーサビリティの低さ 47 47 Processor Converter Initiator Finalizer API Server Scanner External API どこかの段階で失敗した場合 原因調査が大変 Original Bucket
Slide 48
Slide 48 text
© Knowledge Work Inc. 新 CP 48 48 Dispatcher Engine A DB API Server Original Bucket Engine C Engine B 処理ステータスを DB 保存 ➡失敗時の調査が容易 Original Bucket
Slide 49
Slide 49 text
© Knowledge Work Inc. ユーザー観点ではナレッジのコンテンツの可用性が向上 開発者観点ではシステムの認知容易性・メンテナンス性が向上 直列処理 障害発生時の調査が難しい 機能追加が難しい 49 課題と解決策のまとめ 並列処理 処理ステータスが保存されている 機能追加しやすい 旧システム 新システム
Slide 50
Slide 50 text
© Knowledge Work Inc. リプレース時に議論した点 50 今後も継続的な改善を続けていきます ・Dispatcher の責務分割 ・状態管理 処理全体、個々のエンジン ・エンジンの I/F 定義 ... etc.
Slide 51
Slide 51 text
© Knowledge Work Inc. リプレース時に議論した点 51 今後も継続的な改善を続けていきます ・Dispatcher の責務分割 ・状態管理 処理全体、個々のエンジン ・エンジンの I/F 定義 ... etc. まず形式判別、次に スキャン... ファイル変換の後に テキスト抽出...
Slide 52
Slide 52 text
© Knowledge Work Inc. 52 カジュアル面談のご連絡、お待ちしています! 最後に ・プロダクト開発が好きだが、共通基盤シス テムにも興味があるという方 ・ユーザー体験を向上させたいという方 ・コアなシステムの議論が好きという方 …
Slide 53
Slide 53 text
© Knowledge Work Inc. Vision 人は起きている時間の半分を仕事に、 半分を余暇に使うと言われています。 余暇においては、以前より遥かに多くの喜びを 私たちは得られるようになりましたが、 それに比べて仕事の喜びは充分に得られていません。 余暇の時間に「誰かから与えられる喜び」も大切ですが、 仕事の時間に「自らできるようになる喜び」は 何にも代えがたいほどに尊いものです。 私たちは「できる喜び」をお互いに届けあえる機会が 毎日訪れる社会の実現に貢献します できる喜びが巡る日々を届ける Deliver the joy of enablement 53