Rapha 致力於為全球自行車騎士重新定義舒適度、性能和風格,無論是初學者還是世界巡迴賽專業人士。了解 Prisma 如何協助 Rapha 在各種團隊和平台之間建立一致的資料 API。

摘要
Prisma 透過簡化使用者資料的存取,協助 Rapha 在網路、行動裝置和實體店面位置提供一致的使用者體驗
- Prisma 簡化了 Android 和 iOS 應用程式對其 PostgreSQL 資料的存取
- Prisma Migrate 管理並應用其開發和生產環境中的架構變更
- Prisma 協助 Rapha 保持彈性,讓他們能夠評估資料儲存選項,同時維持一致的開發人員體驗
Rapha 是一家致力於為全球自行車騎士重新定義舒適度、性能和風格的公司,無論是初學者還是世界巡迴賽專業人士。自行車騎士熱愛他們的產品以及他們對社群和運動的承諾。
除了作為運動服裝品牌外,Rapha 也是自行車社群內的資源。他們定期組織和贊助獨特的騎乘和活動,並於 2015 年創立 Rapha Cycling Club,將自行車騎士聚集在一起。同時,Rapha 基金會致力於資助非營利組織,透過支持下一代賽車手,為這項運動建立更美好的未來。
Rapha 的平台和資料基礎架構
Rapha 與其社群的互動提供了許多獨特的機會和挑戰。在全球各地的線上和 Rapha Clubhouse 提供產品和服務,有助於他們在使用者身處任何地方都能與之聯繫。這些使用者接觸點包括 Android 和 iOS 應用程式、電子商務網站以及各種網路內容,例如部落格文章。
在如此多獨特的媒介中與使用者互動的副作用是,各種系統都參與了使用者資料的管理。他們的資料基礎架構反映了這一點。
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 伺服器將 API 提供給他們的行動應用程式。
上述服務都封裝在 Docker 容器中,並部署到 Amazon Elastic Container Service。長期運行的和非同步任務被添加到 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 伺服器提供,並由其 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 Clubhouse 的使用者提供統一的個人化體驗。
不要錯過下一篇文章!
註冊 Prisma 電子報