GYAOのtsです。
我々のチームは、オールパブリッククラウドで、Microservice Architectureを採用した次期バックエンドを設計中です。
経緯
チーム全員で色々いじって分かったが、Cloud Pub/Subはkafkaの様にメッセージの順序性を保証しない(Subscriber側で対応の必要がある)ので、グランドデザインに手を加えて大きく舵を取ろうと思う。
最近はタイムボックス1週間でスプリントを回しているため、細かい方向転換が容易になってきた気がする。
前回の設計はこちら
GoogleCloudで汎用Database構築1 - グランドデザイン -
Redesign
Agent
新規に加えました。
CloudDetastoreにデータを放り込むアプリケーションを構築する。
SpringBoot + Apache Camel + kubernetes(Docker)で構築しようと思います。
Dataflow
pub/sub のsubscriberとして機能させる。
以下のjobを作成
- MetaStoreJob
- CloudDataStoreからpullしたdata(meta)を永続化層(BigQuery)に保存する。
- 様々な形式のデータが入ってくるので、DocumentDBに保存
- LogExportJob
- 購読したメッセージ(log)を永続化層(Datastore)に一時保存する。バッチモードで定期的にファイルにして、AzureMachineLearningに食わせる。
- Metaデータも定期的にMachineLearningに食わせるべく、ファイル形式でExportする。
Storage
永続化層として使用。BigQueryをマスターにする形に変更。
次回
Agentをハンズ・オンします!