Upgrade to Pro — share decks privately, control downloads, hide ads and more …

名刺データ化システムの前処理サービスをリプレイスしてモダナイズした

 名刺データ化システムの前処理サービスをリプレイスしてモダナイズした

■イベント


【Sansan Tech Meetup】インフラエンジニアが考えるプロダクトと組織
https://sansan.connpass.com/event/287609/

■登壇概要

タイトル:名刺データ化システムの前処理サービスをリプレイスしてモダナイズした

登壇者:技術本部 Digitization部 Infrastructureグループ 福田 隆誠





■Sansan 技術本部 採用情報

https://media.sansan-engineering.com/

SansanTech

July 20, 2023
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. - 名刺画像を「補正」する処理 - 4点切り取り補正 - 画像回転 - ホワイトニング 名刺の前処理システムの概要 Eight

    ELB ELB APIサーバ Webサーバ バッチサーバ データベース ELB ELB APIサーバ Webサーバ バッチサーバ データベース Sansan
  2. - 各工程で起きた問題の把握に手間がかかっていた - 名刺画像補正失敗の監視が複雑だった - バッチサーバーとDBで各工程の状態を管理 - 失敗時のリカバリ方法も手間がかかっていた - サーバにログインしてアプリケーションログを確認して個別に対応

    - データ化をとめずにデプロイするのに手間がかかっていた - 各サーバにログインし、アプリケーションの差し替えが必要 - Web・APIサーバはロードバランサの切り離しが必要 - EC2インスタンスのメンテナンス対応が必要だった - OSのバージョンアップ・リタイアメント対応などが必要 - インフラもコード化されていなかった - ロードバランサ等のインフラリソースの設定変更は手動 前処理システムの課題
  3. 前処理システム リプレイス後の構成 SNS + SQSでワークフローを構築 各工程の状態はDBに保存 Terraformで インフラのコード化 SQS SNS

    SNS SNS SNS 受け取りサービス オーケストレーションサービス Aurora 自動回転 • 受け取りサービス 納品サービス SQS SQS SQS ホワイトニングサービス バッチサーバ内の各工程を ECSサービスとして独立させ 動作環境にFargateを採用 1 2 3
  4. 画像補正のワークフローについて - SQSを利用し、 オーケストレーションサービスを 実装してワークフローを実現 - 基本的に番号の順に工程が進む - オーケストレーションサービスは データ状況に基づき適切な処理に

    振り分ける - 各SQSのキューの前段に SNSを配置 - 拡張性をあげるため 1: 受付 2,4,6: オーケストレーション 3: 自動切り取り 回転 どこまで進んだか保存する 5: ホワイトニング 7: 納品
  5. - デプロイ - 各サービスが疎結合になったので、個々のサービスを独立してデプロイ可能になった - 前処理システムを停止せずともデプロイ可能になった - 監視 - サービス観点の監視が簡易化された

    - 前)アプリケーション内に、都度データ化状況を通知する処理が含まれていた - 後)SQSに溜まっているキューの中で最も古いメッセージ (ApproximateAgeOfOldestMessage)を監視 - 各工程はキューに積まれるため、工程毎のキューを監視すればボトルネックの箇所を特定できる - 各工程の処理失敗検知 - アプリケーションが正しく処理できない場合、メッセージはDLQにキューイングされるため、 DLQ内のメッセージの数を監視することで、問題が発生した工程を簡単に把握できる ワークフロー実装による運⽤効率と監視能⼒の強化
  6. - EC2インスタンスの管理から解放された - 定期的に来るWindowsアップデートやメンテナンス対応も不要になった - 調査専用コンテナを用意した。このコンテナにログインして運用作業する - Amazon ECS Exec

    でコンテナにログインできるようにした - ECSサービス以外は全てTerraformで管理するようした - アプリケーション開発者もTerraformを書いて、レビューする文化にした - 設定レベルで開発者と認識合わせられるようになった - ※ ECSサービスはデプロイツールで管理 運⽤・管理コストが低いインフラを構築