2021年5月10日

Grover が Prisma でより速く動く方法

Grover は月額のテック製品サブスクリプションを提供しており、そのサービスの作業を多くのチームに分割しています。一部のチームは最近、Prisma を採用することで生産性が大幅に向上していることに気づきました。Prisma が Grover にどのような利益をもたらしたか、そしてあなたもどのように利益を得られるかについて読み進めてください。

How Grover Moves Faster with Prisma

ガジェットをリフレッシュする

Grover は月額のテック製品サブスクリプションを提供しています。常に最新の携帯電話、タブレット、コンピューターをフルプライスで購入する代わりに、Grover は顧客にギアをレンタルし、新しいものが登場したときにリフレッシュする方法を提供します。これは所有と使用の間の障壁を打ち破るだけでなく、より持続可能で循環的なテック製品の使用方法でもあります。

80万人以上が Grover を利用して古いテックギアを引出しの奥にしまい込まないことを選択しており、最近調達したシリーズ B 資金の 6000万ユーロ により、消費者向け電子機器サブスクリプションの数は大幅に増加すると予測されています。

チーム間でサービスを分割する

組織が成長するにつれて、製品の特定のサービスまたは領域で作業する複数の開発者チームを持つことが一般的になります。チームが分割され、独自の技術スタックと好みを持つと、データと知識がサイロ化され、コミュニケーションが困難になる可能性があります。

Grover は、チームの独立性と自主性を全体的なコラボレーションとの間でバランスを取ることができた企業の優れた例です。彼らは、独立した開発者チームがそれぞれ異なるスタックを使用しながら、そのサービスをまとまりのあるものにすることで、迅速に行動することができます。

Grover がこれで成功している主な理由は、フェデレーション GraphQL API を介してデータをまとめ、アクセス可能にしている方法によるものです。ますます、Prisma が、グリーンフィールドプロジェクトとブラウンフィールドプロジェクトの両方で、この成功の重要な要素になりつつあります。

このセットアップを詳しく見てみましょう。Grover のすべてのサービスは、フェデレーション GraphQL API を介して公開されています。これは、各チームが出力が GraphQL を介して消費可能である限り、選択したスタックで作業できることを意味します。

特に Apollo Federation の場合、Grover には複数の開発チームによって開発および保守されている 14 のユニークなサービスがあります(さらに多くのサービスが継続的に追加されています)。

チーム全体で使用されている言語には、TypeScript、Ruby、および Python が含まれます。一部のチームは TypeGraphQL を使用し、他のチームは Nexus を使用しています。

Overview of Grover's Apollo federated GraphQL API

実験を推奨

Grover では、チーム間の知識共有と同様に、実験が推奨され、報われています。チーム間のコラボレーションを通じて、Grover の開発者は重要な教訓を共有し、互いの生活を楽にする可能性のあるテクノロジーを推進することができます。

私たちは、Grover のソフトウェアエンジニアである Ricardo Almeida 氏に話を聞きました。彼は Prisma との旅と、チームがどのようにそれを推奨したかを共有してくれました。彼は 2020 年に Prisma の実験 を開始し、すぐに成功を収めました。Ricardo の Prisma への関心は、彼のチーム(Prisma を本番環境に実装)や Grover の他の人たちにもすぐに広まり、新しいプロジェクトでの Prisma の有機的な採用がますます増加しています。

「Prisma の学習曲線は低いです。TypeScript を使用したエンドツーエンドのタイプセーフと組み合わせることで、生産性が向上します。」

革新的なテクノロジーを導入し、さまざまな言語やライブラリを試すことを許可するこの自由により、Grover は顧客の要求を満たし、市場投入までの時間を短縮できます。

Prisma での成功

Prisma は、開発者が迅速に行動し、安全にコードを作成するのに役立つ 3 つのコア製品を提供しています。

  • Prisma Client - TypeScript および Node 向けのタイプセーフなデータベースアクセスクライアント。

    Prisma Client は、クエリを実行する際にタイプセーフを提供することで、Grover にデータベースアクセスへの信頼を与えます。

  • Prisma Migrate - シームレスなデータベース移行のためのツール

    データベースのイントロスペクションと移行は、Prisma Migrate を使用すると Grover にとってスムーズかつシンプルになります。特に、本番環境でデータベース構造を変更する必要がある場合。

  • Prisma Studio - ブラウザおよびデスクトップ向けの最新のデータベース GUI

    Grover の開発者は、データベース用の豊富なユーザーインターフェースの恩恵を受け、データを簡単に表示および編集できます。

Ricardo にとって、Prisma の 3 つのコア製品すべてが一体となって、優れた開発者エクスペリエンスとコード作成時の時間節約を提供しています。

「Prisma は、データベースへのアクセス、移行の実行、データの表示をすべて箱から出してすぐに利用できる、より標準化された方法を提供します。Prisma は、クエリを構築するための単一の標準化された方法を提供し、データのグループ化、結合の心配、または異なるライブラリをまとめる際の問題に直面しないことを保証します。」

Prisma を使用すると、開発者はタイプセーフなデータベースアクセスクライアントをすぐに利用できます。

データベースモデルは Prisma Schema Language で記述され、TypeScript 型はそれから自動的に生成されます。

Prisma でモデル化されたデータベースは、読み書きが簡単です。

単一のコマンドで、Prisma モデルはタイプセーフなデータベースアクセスクライアントを提供します。

Prisma は Grover のさまざまなスタックに浸透しています

Grover の実験推奨は、社内のさまざまなチームが異なるスタックを持っていることを意味します。ほとんどの場合、何らかの形で TypeScript と GraphQL の組み合わせですが、詳細は異なります。

Ricardo が Grover で Prisma を使い始めて以来、彼は他のチームと学習セッションを主催しており、開発者は Prisma が提供するタイプセーフの利点と、データベースの操作を容易にする包括的なツールを理解することができます。

魔法は通常、Grover の開発者が Prisma の製品が実際に動作しているのを見たときに起こります。

データベースイントロスペクションなどの機能は、Prisma の機能の強力な一端を垣間見せてくれます。イントロスペクションを使用すると、開発者は既存のデータベースから開始し、単一のコマンドでそれから Prisma モデルを導き出すことができます。これにより、開発者はモデルを再作成するために費やす必要があった多くの時間を節約できます。代わりに、彼らはすぐに生産的になることができます。

Prisma Migrate は、もう 1 つの強力な一端を提供します。Migrate を使用すると、いくつかのコマンドでデータベースを Prisma モデルの状態に合わせるように変更します。Migrate は CI/CD パイプラインに沿ってトリガーして、移行を本番環境で簡単に有効にすることができます。

Prisma は node モジュールをインストールできる場所ならどこでも役立つため、Grover で使用されているさまざまなスタックに完全に適合します。

Grover has 14 different services using various tech stacks

結論

一部のチームはまだ様子見していますが、Ricardo は Prisma の採用が近い将来に増加すると予測しています。

「他のチームが Prisma を使用するように移行することに非常に興味があります。なぜなら、それを使用することの利点しか見えないからです。」

Prisma は、Ricardo、彼のチーム、および Grover の他の多くのチームがデータベースを操作する際の生産性を大幅に向上させました。

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

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

Prisma ニュースレターにサインアップ