2021年12月17日

Tryg社がPrismaを活用してデータを民主化した方法

Tryg社は、「360」データブローカープラットフォームのおかげで、手動で環境を構成することによって発生するオーバーヘッドを排除し、開発サイクルを加速させ、大幅な時間を節約しました。Prismaは、異なるデータソースからの数十億件のレコードを民主化することを可能にした重要なテクノロジーでした。

How Tryg has leveraged Prisma to democratize data

Trygは、北欧地域最大の損害保険会社の一つであり、個人、商業、法人市場向けに幅広い保険を提供し、年間100万件以上の請求を処理しています。

多くの企業と同様に、Tryg社もよりデータ中心になる必要性に直面し、データのサイロ化の苦痛と戦っていました。

Tryg社は、さまざまな国にまたがるさまざまなデータソースを持っていました。Tryg社のデータソースのデータモデルは、数十年にわたって構築され、同じ概念の定義が異なるため、再利用できませんでした。これが多くの修正、回避策、妥協につながりました。

これらのソースの1つからデータを統合するには、Tryg社がデータを調和させる必要がありましたが、これは時間と手間がかかり、エラーが発生しやすい作業です。最終的な目標は、SQLやエンティティ関係図に精通していない人を含め、誰もがデータを利用できるようにすることでした。

Tryg社がデータの民主化を達成することを可能にした主要なテクノロジーの1つがPrismaです。

Tryg 360によるデータの民主化

データの民主化を達成するには、独自のプラットフォームの実装が必要でした。そのため、Tryg社はTryg 360と呼ばれるデータブローカープラットフォームを実装し、本番環境で立ち上げました。

Tryg 360により、開発者はボタンをクリックするだけで環境を立ち上げることができました。これにより、必要なアプリケーションが呼び出され、リアルタイムでデータを視覚化し、アプリケーションのURLを他のユーザーと共有するなどが行えました。これは、すべての開発者の夢を実現するのに役立ちました。つまり、バックエンドのセットアップをすべて管理したり、環境のロードに長い待ち時間を費やしたりする代わりに、価値を付加するコードの作成に集中できるようになりました。

Tryg 360 technology overview

これを実現するために、Tryg社はデータベースクライアントと開発者が対話するGraphQL APIを自動生成するPrismaを採用しました。

generator APIは、prisma generateコマンドの実行時に作成されるアセットを決定します。

PrismaクライアントとGraphQL APIの自動生成は、Tryg社にとって不可欠です。なぜなら、彼らは大量のデータを含む非常に複雑なモデルを持っているからです。いくつかのスキーマファイルは1万行の長さで、100万文字を超えています!

Prismaクライアントを生成した後、Tryg社はPal.jsを使用して、システムの他の開発者やユーザーが対話するGraphQL APIを自動生成します。これは、GraphQLリゾルバーの手動コーディングを自動化するため、彼らにとって重要です。Pal.jsは、Prismaスキーマに基づいてGraphQL CRUDリゾルバーの生成を可能にするジェネレーターです。

「Prismaは私たちにとって大きな技術的イネーブラーです」

アルトゥール・ムロゾウスキー、 データエンジニア Tryg

Prismaによる自動化

Tryg社のインフラストラクチャのセットアップは、CI経由で完全な環境をデプロイするためにいくつかのステップが必要となるため、比較的複雑です。プロセスには、異なるシステムやデータベースからデータをロードし、それを正規モデルに変換し、単一のデータベースにロードすることが含まれます。

Tryg社には、新しい環境のデプロイに関して次の要件がありました。

  • スキーマに基づいてデータベースを自動生成する
  • スキーマに基づいてPrisma Client APIを自動生成する
  • アプリケーション、ソース、またはアプリケーションの組み合わせをデプロイする
  • ワンクリックで実行する

「Prismaを使用したセットアップにより、すべてをコードから生成し、開発者が非常に迅速に反復処理できるようにすることができました。」

ラッセ・アベルセン、 DevOpsエンジニア Tryg

Tryg 360 technology overview

環境をデプロイするために必要なリソースは、Helmチャートで定義されています。Kubernetesは、必要なリソースのプロビジョニングを処理します。リソースのプロビジョニングに関与するステップには、以下が含まれます。

  • 変換なしで、異なるソースから生データをライブストリーミングします。これにより、環境が作成されたときに開発者がライブデータで作業できるようになります。
  • Time-Aware MirrorMakerをデプロイします。これは、いつでも異なるデータソースとパイプラインからデータを正しく同期する役割を担います。これは、Apache KafkaのMirrorMakerの実装です。
  • すべてのソースからデータをロードするのではなく、必要なデータをロードするためにローカルKafkaクラスターをデプロイします。
  • 特定の環境に必要なアプリケーションをデプロイします。
  • デプロイされたアプリケーションによるデータ変換と、Cockroachデータベースへのデータのロード
  • 特定のCockroachデータベースにアクセスするPrismaを使用してアプリをデプロイします。
  • Prismaスキーマに基づいてリゾルバーと型定義を自動生成します。

CockroachDBはPostgreSQLワイヤプロトコルと互換性があるため、PrismaがCockroachDBの完全なサポートを提供していなくても、Prisma ClientはCockroachDBと通信できます。

Prismaにより、Tryg社はデータベースクライアントとGraphQL APIを迅速に生成し、迅速な反復処理、単一のスキーマによるデータソースの統合、システムとユーザーのデータアクセスを簡素化することに成功しました。

Tryg社とPrismaのビジョン

Tryg社は、別々のデータソースを統合された場所に統合し、開発チームがデータにアクセスできるようにする複雑なプロセスを自動化することにより、当社のPrisma Data Platformのビジョンと完全に一致するアプローチを開拓しました。

Prismaの目標は、Facebook、Twitter、Airbnbのような企業が自社向けに構築してきたApplication Data Platformのコンセプトを民主化することです。データアクセスを柔軟、安全、かつ容易にスケーラブルに保つことで、あらゆる規模の開発チームと組織が最新の開発ワークフローを採用できるようにしたいと考えています。

Prisma Enterpriseに関する当社の計画の詳細をご覧ください。

結論

Prismaは、Tryg社がTryg 360プラットフォームを構築する上で重要な役割を果たしました。次のステップとして、Tryg社はイベントモデリングなどの手法を検討して、ドメインモデルを洗練させ、イベントについてどのように考え、イベントがタイムラインを中心にどのように保存されるかを検討しており、私たちは彼らの旅をサポートすることを楽しみにしています!

Tryg社の講演の全編を聞いて、詳細をご覧ください。

  • 教訓
  • Time-Aware MirrorMakerの仕組み
  • Tryg & Prismaの実際のデモを見る

Prismaがチームの生産性向上にどのように役立つかについて詳しく知りたい場合は、Prisma Slackコミュニティにご参加ください。

次回の投稿をお見逃しなく!

Prismaニュースレターに登録する