Data Engineering Study #15「Reverse ETL 特集回」の登壇資料です https://forkwell.connpass.com/event/250527/
Copyright © 2022 Classi Corp. All Rights Reserved.ReverseETLでユーザーに価値を届ける基盤を実現した話 2022/08/03 Classi株式会社齋藤 和正
View Slide
Copyright © 2022 Classi Corp. All Rights Reserved.1自己紹介 名前:齋藤和正 Twitter:@St_Hakky 所属:Classi株式会社 主な業務内容:データ分析基盤のリードエンジニアと、最近はデータAI部という部の副部長をしております
Copyright © 2022 Classi Corp. All Rights Reserved.2本日の発表内容について Classiのデータエンジニアチーム (3人)【今日の話で絡む部分】社内のデータ分析基盤のジョブの実行状態の監視部分をメインで設計・実装【今日の話で絡む部分】チームリードやチーム間の連携などの仕事がメイン【今日の話で絡む部分】Dashboard機能をメインで設計・開発元々社内のデータ分析基盤だったものを、Classiのサービスの一部としてReverseETLを行い、提供するまでに至った経緯やアーキテクチャについて話します。この内容は、チームで取り組んだ内容を代表して喋ります。
Copyright © 2022 Classi Corp. All Rights Reserved.目次1. 会社紹介 2. ReverseETL実装の経緯 3. ReverseETLのアーキテクチャ 4. ユーザー影響のあるデータ基盤を意識して変えたこと 5. 今後に向けた挑戦 6. 採用 3
会社紹介 01
Copyright © 2022 Classi Corp. All Rights Reserved.Classiとは 両社のジョイントベンチャーとして2014年に設立 教育プラットフォーム「Classi(クラッシー)」の開発・運営 ● 学校向けコンサルティング・ 営業ノウハウ ● 50年近くにわたる学校支援 の実績 ● クラウド・モバイル技術 ● 30年にわたるIT事業の実績 5
Copyright © 2022 Classi Corp. All Rights Reserved.全国の高校における ClassiのシェアClassiサービス全国の導入校の推移サービス導入実績6出典(全国の高校数):文部科学省「R3年度学校基礎データ」高校生の3人に1人が利用2015年 2017年 2019年119校 509校9,491校11,377校2021年EDUCOM(小中)Classi(中高)
Copyright © 2022 Classi Corp. All Rights Reserved.7Classiのデータ基盤への取り組み https://corp.classi.jp/company/message/
Copyright © 2022 Classi Corp. All Rights Reserved.8Classiのデータ基盤への取り組み Classiでは業界的にも早い段階からデータ基盤への取り組みをチームで行っています。今日は時間の関係上話せませんが、過去に社内のデータ基盤についての取り組みを紹介したブログやスライドがあります。https://speakerdeck.com/tetsuroito/data-engineering-study-number-9-classifalsedetazu-zhi-falsebu-mihttps://tech.classi.jp/entry/2021/05/31/120000
ReverseETL実装の経緯 02
Copyright © 2022 Classi Corp. All Rights Reserved.10ReverseETL実装の経緯 最初から意図的にReverseETLにしたというよりも、「結果的にそう呼ばれているものになった」という方が正しいですが、次の3つの経緯がありました ※これはカントです③データ基盤の 安定性の向上 社内で「カント」と呼ばれているデータ基盤の状態把握を行う基盤のこと。これによりSLO/SLAを定義して運用改善していくことができるようになり、プロダクトとして提供しても問題ない品質にできたため ②ダッシュボード機能のリリース Classiのサービスの一つとして「ダッシュボード機能」という生徒の学習状態などを把握するための機能をリリースしたかったため ①社内データ基盤の活用 社内のデータ基盤は「ソクラテス」と呼ばれており、そのデータ基盤を活用し、集計を実装したほうが機能要件的にも実装コスト的にも都合が良かったため ※これはソクラテスです
Copyright © 2022 Classi Corp. All Rights Reserved.11①データ分析基盤:ソクラテスとは? AWS上で構築されているClassiのプロダクトや、Google Analytics、Salesforceなどのデータを統合的に管理するデータ分析基盤をGoogle Cloud上に構築しています
Copyright © 2022 Classi Corp. All Rights Reserved.12ダッシュボード機能とは? ● アプリケーションはAWS上で動かす● 前日までの利用状況がアプリケーション上で朝8時までに閲覧可能になっていること● 学校/学年/クラスごとで集計し、学校を横断した集計はしないシステム的な要件先生と学年・クラスごとの生徒の利用状況を可視化したダッシュボードを提供する機能
Copyright © 2022 Classi Corp. All Rights Reserved.13Classiのデータ基盤のジョブの実行状態を把握することができる基盤のこと データ分析基盤:カントとは ● Classiのデータ基盤のジョブの実行状態の収集・集約・把握・監視および実行制御を責務としたデータ基盤監視システム(カント)の構築 ● カントで集約した情報をもとに、SLA/SLOを定め、BIツールで可視化し、改善アクションを行う カントの詳細 参考:データ基盤の品質向上への取り組みhttps://tech.classi.jp/entry/2022/07/22/083000
Copyright © 2022 Classi Corp. All Rights Reserved.ReverseETL実装の経緯まとめ 14社内のデータ基盤の利便性及び品質向上の取り組みにより、 ユーザー提供に十分な基盤になったことや、開発リソースなどを考慮して 逆に書き戻しに行くアーキテクチャにしようと意思決定した
ReverseETLのアーキテクチャ 03
Copyright © 2022 Classi Corp. All Rights Reserved.アーキテクチャ:全体感16参考:社内向けのデータ基盤から集計結果をReverse ETLしてサービスに組み込んだ話https://tech.classi.jp/entry/2022/06/21/120000
Copyright © 2022 Classi Corp. All Rights Reserved.アーキテクチャ:Forward 17AWSからGoogle Cloudへのデータ連携はAWS側はGlueでデータを収集し、Google Cloud側はComposerを中心にしてBigQuery上で変換処理を行なっています 参考:社内向けのデータ基盤から集計結果をReverse ETLしてサービスに組み込んだ話https://tech.classi.jp/entry/2022/06/21/120000AWSからGoogle Cloudへのデータ連携処理 AWS / Google Cloudを跨ぐジョブの実行状態の管理
Copyright © 2022 Classi Corp. All Rights Reserved.アーキテクチャ:Reverse 18書き戻す処理は、集計対象のデータを同じくCloud Composerを使って集計し、Step FunctionsからLambdaのジョブをキックすることで、集計データをデータベースに格納します 参考:社内向けのデータ基盤から集計結果をReverse ETLしてサービスに組み込んだ話https://tech.classi.jp/entry/2022/06/21/120000
ユーザー影響のある データ基盤を意識して変えたこと 04
Copyright © 2022 Classi Corp. All Rights Reserved.ユーザー影響のあるデータ基盤を意識して変えたこと 20社内用の処理とユーザー影響のある処理の分離 ・Google Cloudのリソースの観点では、元々datalake用のprojectと社内ユーザーが利用するprojectは分けてあった ・Cloud Composer上のワークフロー(DAG)では処理が混ざっていたので、DAGの分離とコード整理をして気軽にデプロイしていい範囲とそうでない範囲をコードベースで分けた 変化① alert基準・通知の見直し ・想定外のことがあった時には、後続の処理でalertが飛べばいいということで、alertを仕込めていなかった部分があったが、各処理ごとにalertが飛ぶようにした ・Error以外にも処理が遅れている時に気づくために遅延通知を導入した 変化③ デプロイフローの強化 ・CIでのチェックの強化 ・devからprodに上げる際の運用の明文化 変化④ データ基盤のSLO計測・改善 ・もともと取り組んでいた「カント」プロジェクトで、計測・可視化を行い、品質要件をダッシュボード機能の要件を元に基準にしている時刻・稼働率を引き上げる改善サイクルを回した 変化② 元々は社内のデータ基盤だったところからユーザー影響が出る基盤になったことで、 変えたことは次の通りです
Copyright © 2022 Classi Corp. All Rights Reserved.DevOpsで実践する内容をデータ基盤で着実に実践した 21● 「社内基盤だから」とか「データに依存するから 」という理由で怠りがちな環境の分離 などはもちろんのこと、関心の分離・SLOの計測/改善・監視/アラート設計・CI/CDの整備など、元々整えていた部分をさらに強化することで、ユーザーに価値提供を行える基盤へと 進化した ● 特に、Classiのデータエンジニアチームでは、 データ基盤のチーム開発を約2年ほど 実践しており、障害発生時のポストモーテムの実施や、開発スプリントの実践を行ってきた ReverseETLの本質は、「分析に止まらないデータによる価値提供」を行うということ システム間連携におけるサービスレベルの担保に求められることは 通常のプロダクト開発と変わらず行う必要がある
今後に向けた挑戦 05
Copyright © 2022 Classi Corp. All Rights Reserved.ユーザーに価値を提供し続けられる基盤を目指して 23今年の2月に、データAI部内のミーティングで、次のようなタイトルで発表しました
24ConfidentialModern Data Stackの個人的な解釈 ・通常のプロダクト開発における開発ナレッジと、DevOpsのようなデリバリーを継続的に行うプラクティスの成熟に伴い、データ基盤の要素技術である、データソース、連携、ワークフロー、ETL/ELT処理、AI、分析、BI、メタデータ管理、ReverseETLなどがマネージドサービスなどで育ってきているため、 データ基盤も社内ユースはもちろんのこと、プロダクトとして提供するコストが下がってきている ・「データで価値を提供するのが楽になってきている」 というコンテキストの中で 「データの価値提供の方法を捉え直す」必要が出てきた
Copyright © 2022 Classi Corp. All Rights Reserved.ReverseETLは価値提供の手段の一つに過ぎない 25データを価値としてデリバリーするコストが下がってきている中で、どのようなコンポーネントがあるのかを概念として再整理することで、今できていること、できていないことを考えることができます。ReverseETLは「 価値を提供するためのデータ基盤の要素の一つ 」に過ぎません。
Copyright © 2022 Classi Corp. All Rights Reserved.データプラットフォームチームで、価値をエンドユーザーにも向けていく方法を、データ基盤の観点で整理して、設計したのが右の図ですClassiで目指す、Modern Data Stackを踏まえた1年後のデータ基盤26ReverseETLは「ユーザーに価値をデータ基盤から届ける一つの手段」とし、これまで通りBIツールを通しての分析や、新しく機械学習を用いて新規のサービスを提供する基盤構築に力を入れています。特に、より安定的でメンテナンスしやすい基盤の構築や、アジャイルに機械学習のサービス開発を行うことができるような基盤構築やセキュリティとデータ分析の利便性のバランスに力を入れています。現在力を入れていること
採用 06
Copyright © 2022 Classi Corp. All Rights Reserved.28これからのClasiのデータ基盤や機械学習を適用したサービスを支えるエンジニアが圧倒的に足りていません!
Copyright © 2022 Classi Corp. All Rights Reserved.29データ関連職種:募集職種・社内およびプロダクトのためのデータ基盤の設計・開発・運用などを主に担当します。・今日の登壇内容のような開発などを、実際に行っていきます。・生徒の学習効率の最大化のための、レコメンドAPIの開発・運用をデータサイエンティストと連携して行います・そのほかにもClassiの新規機械学習系サービスを支える基盤の開発を行いますデータエンジニア (リーダー/メンバー) 機械学習エンジニア
Copyright © 2022 Classi Corp. All Rights Reserved.30今日の話の続きをしたい方へ:カジュアルにお話ししましょー! Classiの採用ページから応募いただいても大丈夫ですし、 まずはMeetyでカジュアルにお話しするのも大丈夫です! (もちろん、本日のイベントの詳細の部分について聞きたいなども歓迎!) Classiの採用ページ https://hrmos.co/pages/classi/jobs/0000096Meetyページ https://meety.net/matches/rnBwfmjQQBAw
ご清聴ありがとうございました