2021年1月27日

Prisma 如何幫助 Rapha 管理其移動應用程式資料

Rapha 致力於為全球騎行者(無論是初學者還是世界巡迴賽專業選手)重新定義舒適度、效能和風格。瞭解 Prisma 如何幫助 Rapha 在不同團隊和平臺之間構建一致的資料 API。

How Prisma Helps Rapha Manage Their Mobile Application Data

摘要

Prisma 透過簡化使用者資料訪問,幫助 Rapha 在網站、移動裝置和實體店面提供一致的使用者體驗

  • Prisma 簡化了其 Android 和 iOS 應用程式對 PostgreSQL 資料的訪問
  • Prisma Migrate 管理並應用其開發和生產環境中的模式更改
  • Prisma 幫助 Rapha 保持靈活性,使他們能夠在評估資料儲存選項的同時保持一致的開發者體驗

Rapha 致力於為全球騎行者(無論是初學者還是世界巡迴賽專業選手)重新定義舒適度、效能和風格。騎行者熱愛他們的產品,以及他們對社群和這項運動的承諾。

除了作為運動服品牌,Rapha 還是騎行社群的重要資源。他們定期組織和贊助獨特的騎行和賽事,並於 2015 年成立了 Rapha 騎行俱樂部,旨在將騎行者聚集在一起。與此同時,Rapha 基金會致力於資助非營利組織,透過支援下一代賽車手來幫助這項運動建設更美好的未來。

Rapha 的平臺和資料基礎設施

Rapha 與社群的互動帶來了許多獨特的機會和挑戰。在全球範圍內的線上和 Rapha 俱樂部會所提供產品和服務,幫助他們與使用者無論身在何處都能建立聯絡。這些使用者接觸點包括 Android 和 iOS 應用程式、電子商務網站以及各種網路內容,如部落格文章。

以如此多獨特媒介與使用者互動的一個副作用是,多種系統參與到使用者資料的管理中。他們的資料基礎設施反映了這一點。

Rapha's data architecture

Rapha 的網路團隊主要透過以下方式滿足其資料需求:

  • SAP Hybris 和 Commerce Cloud:管理其電子商務網站資料,包括與購買相關的使用者資訊

與此同時,Rapha 的移動團隊使用的技術棧包括:

  • PostgreSQL:託管在 Amazon RDS 上的主要資料庫
  • Prisma 2:適用於 Node.js 和 TypeScript 的下一代 ORM
  • Nexus Schema:用於生成 GraphQL API 的 TypeScript 和 JavaScript 型別定義
  • Apollo Server:用於提供生成 API 的 GraphQL 伺服器
  • Contentful:團隊用於處理部落格文章和其他內容的 API 驅動型內容管理解決方案

Rapha 使用 Prisma 來開發和管理其移動應用程式所依賴的資料 API。

團隊的大部分資料儲存在 Amazon RDS 上執行的 PostgreSQL 資料庫中。他們不直接與資料庫互動,而是使用 Prisma 來構建和管理作為其資料 API 基礎的模式。然後他們可以使用 Apollo Server 將 API 提供給他們的移動應用程式。

上述服務都打包成 Docker 容器,並部署到 Amazon 的彈性容器服務。長時間執行和非同步任務被新增到 Amazon 的 SQS 訊息佇列服務中,並由 Amazon Lambda 函式消費。Rapha 依賴 Cloudflare 在邊緣加速全球使用者的訪問。

Rapha 對其資料層的需求

Rapha 希望獲得工具來幫助其移動團隊快速安全地開發針對資料庫的應用程式。作為一支同時支援 iOS 和 Android 應用程式的小團隊,他們希望能夠以有組織的方式輕鬆開發和部署模式更改。這意味著同步後端資料庫與移動應用程式互動的 GraphQL API 之間的更改。

除此之外,他們還希望獲得更多的控制權和靈活性,以便隨著需求的變化在未來進行更改。無論是出於選擇還是必要性遷移到新技術,Rapha 都希望能夠保持與其資料的穩定介面,無論由誰負責管理和提供資料。

Rapha 評估了 Prisma,將其作為構建資料 API 來解決這兩個問題的一種方式。

Prisma 如何幫助抽象 Rapha 的資料基礎設施

Rapha 的移動團隊使用 Prisma 來幫助他們為其 PostgreSQL 資料開發 GraphQL API。然後,此 API 由 Apollo Server 提供,並被其 iOS 和 Android 應用程式使用。

透過 Prisma,團隊可以透過修改 Prisma 模式檔案來修改其資料結構。模式檔案是其資料模型結構的單一真實來源。它用於更新底層資料庫中的表,並允許團隊輕鬆地將更改構建到 API 中。

透過將 Prisma 與其 GraphQL API 結合,Rapha 能夠抽象資料來源並使其易於每個平臺訪問。Prisma 負責管理 API 層和資料庫之間的更改。同時,從 Prisma 模式建立的 GraphQL API 為其應用程式提供了一個統一的介面。Prisma 的型別安全有助於使 API 的更新更容易、更安全地實現。它們共同使團隊能夠演進其資料模型以響應不斷變化的需求。

管理遷移

隨著 Rapha 移動應用程式的發展,必須仔細管理資料庫模式的更改,以確保 API 和應用程式版本保持相容。Prisma 提供了工具來安全地將更改部署到其開發和生產環境。

由於 Prisma 在模式檔案中定義了應用程式和資料庫的資料結構,因此資料模型的更改是集中管理的。Prisma Migrate 可用於檢測模式檔案的更改並生成 SQL 遷移檔案。

這些檔案可以儲存在版本控制中,並針對資料庫執行以轉換其資料結構。當需要部署模式更改時,團隊可以使用 Prisma Migrate 作為 CI/CD 管道的一部分自動將更改應用到資料庫,或者他們可以手動對資料庫執行生成的 SQL 指令碼。

為未來構建

Prisma 對 Rapha 的 PostgreSQL 資料庫的抽象,幫助他們為未來可能擁有額外資料來源的情況做準備。雖然他們當前的 Prisma 配置僅管理單個數據庫的模式,但它為未來的額外更改提供了框架。

在未來幾年,Rapha 預計隨著他們提供新服務和整合跨平臺體驗,他們的資料 API 將會增長。Prisma 將使他們能夠選擇適合每個服務需求的資料庫,同時最大限度地減少對其開發者體驗的影響。這在選擇新服務的資料庫以及重新評估當前所依賴的資料庫是否仍然是最佳選擇時非常重要。

結論

Rapha 的移動和網路平臺不斷發展,新的服務、產品和活動始終在不斷湧現。開發團隊能夠為他們的電子商務平臺、移動應用程式和實體 Rapha 俱樂部會所的使用者提供統一、個性化的體驗。

不要錯過下一篇文章!

訂閱 Prisma 新聞通訊

© . This site is unofficial and not affiliated with Prisma Data, Inc.