Rivettのプロダクト開発におけるマイクロサービスアーキテクチャの採用経験と実践知見を共有します。
なぜマイクロサービスを選択したか
複数のプロダクト(美容DX、教育AI、介護AI)を並行開発する中で、共通基盤の再利用性とチーム間の独立性を両立させる必要がありました。マイクロサービスアーキテクチャにより、各チームが独立してデプロイ・スケーリングできる体制を構築しています。
実装のポイント
サービス間通信にはgRPCを採用し、イベント駆動アーキテクチャにはApache Kafkaを使用しています。各サービスはKubernetes上にデプロイされ、オートスケーリングとセルフヒーリングを実現しています。
得られた教訓
分散トレーシングとログ集約の重要性を痛感しました。OpenTelemetryとGrafana Stackの導入により、サービス間の依存関係の可視化と障害原因の特定が格段に容易になりました。