Serverless Altyapı ile Multi-tenant SaaS Platformlar

Serverless

Çok katmanlı bir Yazılım-as-a-Service (SaaS) platformu, geleneksel sunucuları yönetme yükü olmadan karmaşık bir girişimdir.Sistemin veya kurulmuş bir ekip mevcut bir uygulamanızı modernize etmek, sunucusuz bileşenleri ile nasıl bir araya gelmenin, uzun vadeli başarı için önemli olduğunu anlamak.

Bu makale, sunucusuz altyapıdaki çoklu-tancı SaaS platformlarını inşa etmek için kapsamlı, üretim odaklı bir kılavuz sunar.Ana kavramları inceleyeceğiz, her anahtar bileşen için uygulama ayrıntılarına ayırıp, ticari-offları tartışmalısınız, sağlam, güvenli ve maliyet-malzemeli bir çözüm.

Serverless Altyapı Nedir?

Serverless altyapı, bulut sağlayıcının dinamik olarak sunucu atamayı ve sunucuların tedarikini yöneteceği bir bulut-komputing execution modelidir. Uygulama kodu, sağlayıcı tarafından yapılan stateless hesaplar konteynerlerinde çalışır ve tamamen yönetilebilir.

Bir sunucusuz mimaride, artık düzenleme, ya da ölçek sunucu örnekleri yoktur. Bunun yerine, uygulamanızı tetiklemelisiniz (örneğin, HTTP istekleri, veritabanı değişiklikleri, dosya yüklemeleri). Sağlayıcı otomatik olarak hesaplama kaynakları ölçeklendirir - genellikle sıfıra kadar - taleplere dayanarak. sadece milisaniyelerde veya alt-saniyelerdeki değişiklikleri veya alt-saniyelerdeki değişiklikleri ölçdüğünüz olayları tanımlayın.

Hesap ötesinde, sunucusuz ekosistem API'ler için yönetilen hizmetleri içerir (API Gateway), veritabanı (Amazon Aurora Serverless, DynamoDB, Firebase Firestore), doğrulama (Amazon Cognito, Firebase Auth), ve mesajlaşma (SQS, SNS, EventBridge). Bu hizmetler neredeyse tüm altyapı yönetimi dengelemeyi ortadan kaldırmak için tamamen yönetilen bir geri dönüş oluşturur.

Neden Serverless Multi-Tenant SaaS için Doğal Bir Fit

Multi-tenant SaaS platformları tek bir uygulama örneğinden birçok müşteriye hizmet eder.Her bir kiracının verileri izole edilmelidir ve platform, onant mimarilerin bu gereksinimleri birkaç şekilde ele alması gerekir:

Multi-Tenant SaaS Mimarinizi Tasarlamak

İyi bir şekilde seçilmiş bir çok katmanlı SaaS platformu sunucusuz veri izolasyonu, kimlik doğrulama, yönlendirme ve faturalandırmayı ele almalıdır. Aşağıdaki alt bölümler her tasarım boyutunu kırıyor.

Tenant Data Isolation Strategies

Veri izolasyonu, çok katmanlı bir sistemdeki en önemli mimari karardır. Üç ortak desen vardır, her biri farklı ticaretle:

  1. [FONT=0]Shared Database, Shared Schema (Onant ID sütunu ile): [Döneticileri aynı veritabanı tablolarını paylaşıyorlar.Her bir satır, onant tanımlayıcı tanımlayıcı tanımlayıcı tanımlayıcı (örneğin,00 $) içerir.Bu, en pahalı-toaktif bir yaklaşımdır, ancak üst düzey güvenlik birimleriyle ilgili titiz uygulama gerektirir.
  2. [FONT:0]Shared Database, ayrı Schemas: Her bir kiracı kendi şemasını tek bir veritabanı içinde alır. Bu, veritabanı yönetimi düşük tutmakta iken daha iyi mantıksal izolasyon sağlar. Amazon Aurora Serverless, şema-per-tenant destekler ve bağımsız ölçeklendirme sağlar.
  3. [FONT:0]Database Per Tenant:[Dönetici: 0,4|Dönetici:0)Database Per Tenant:[Dönetici:0)[Dönetici:0)[Dönetici: En güçlü izolasyonu sunar - birçok kiracının düşük kullanımları varsa maliyet daha yüksek olabilir.

Seçiminiz, kiracılarınızın güvenlik gereksinimlerine, bütçeye ve operasyonel olgunluğa bağlıdır. Birçok startups paylaşılan atabase yaklaşımıyla başlar ve büyümeleri olarak per-tenant veritabanlarına göç eder.

Kimlik ve Yetki

Kullanıcı ve onant ile bağlantı kurmalı bir sistemdeki kullanıcı kimlik doğrulaması, Amazon Cognito veya Auth0 gibi merkezileştirilmiş bir kimlik sağlayıcı kullanır. Cognito ile, kullanıcı veya gruplarının onants ile ilişkilendirebilmeleri gerekir. JWTs (JSON Web Hediyeleri) tarafından yayınlanan bir özel iddiayı IdP olarak belirtilmiş ve veri politikalarına sahip olmak için doğrulanabilir.

İzin için, JWT'den gelen onant kimlike dayalı olarak veri erişimi kontrol (RBAC) yerine, uygulama kodunızda bir otobüs varsa, 10.A.'dan gelen bir kullanıcının Tenant A erişim verilerinin onant B'ye ait olmadığının tespit edilmesi için özel bir orta dikkat edin.

Tenant Routing ve Onboarding

Bir istek geldiğinde, platform hangi onant'ın ait olduğunu tanımlamalıdır. Common yaklaşımlar şunları içerir:

Onboarding sırasında, kaynakları dinamik olarak sağlamanız gerekir. Bir sunucusuz işlev, örneğin yeni Aurora Serverless veritabanı oluşturmak veya yeni kiracının yapılandırması ile DynamoDB masasını güncellemeniz gerekir.

SaaS için Serverless Bileşenleri Uygulama

Şimdi, kullanacağınız anahtar sunucusuz bileşenleri inceleyelim ve onları çok fazla bebek için nasıl yapılandırabilirsiniz.

API Gateway: The Front Door

Amazon API Gateway (veya Azure API Yönetimi) tüm müşteri talepleri için giriş noktası olarak hareket eder. Kimlik doğrulama, throttling ve talep aşağılama Lambda işlevleri için.For multi-tenancy, configure API Gateway to:

AWS Lambda: The Compute Heart

Lambda işlevleri işinizi mantığınızı uygular. Çok katmanlı bir sistemde, her bir çalışma, onant ID, kullanıcı kimliği ve diğer ilgili iddialar içeren bir bağlam nesne alır.

Veritabanı Hizmetleri: Tenant Data

Veritabanı seçiminiz doğrudan izolasyonu, performansı ve maliyeti etkiler. İki sunucusuz veritabanı seçenekleri öne çıkıyor:

Hangi veritabanı seçerseniz seçin, on düzey üst düzey bir throttling to prevent a gürültülü onant from ezici paylaşılan kaynaklardan.Use DynamoDB'sDANFLT:10} per table or apply Amazon RDS Proxy for connection pooling in relationshipal databases.

Kimlik ve Access Management

Amazon Cognito Kullanıcı Havuzları, kullanıcı kayıtlarını, girişini ve MFA'yı çok katmanlı uygulamalar için yönetmek için basit hale getiriyor:

Firebase Authentication, onant-specific projelerle benzer yetenekler sunuyor.For corporate SaaS, consider Auth0'sULLFLT:0) yerleşik çok-tananlı destek).

Queueing ve Event-Driven Desenleri

Serverless SaaS platformları genellikle bir senkronizasyona ihtiyaç duyar - örneğin, e-posta gönderme, işleme raporları gönderme veya onant düzenleme. Amazon SQS (Simple Queue Service) veya SNS to de çift bileşenleri için. Her mesaj, işlem kuyruğunun verileri üzerinde hareket etmeden önce onant izinleri doğrulaması gerekir.

Meydanlar ve Mitigation Strategies

Serversız multi-tenant mimariler, çöküntü olmadan değildir.Onlara proaktif olarak üretim hazırlığı için gereklidir.

Soğuk Başlangıç Latency

Lambda işlevi yakın zamanda gerçekleşmediğinde, bir sonraki çağrı gecikmeyi yaşayabilir ( soğuk başlangıç). Bu, düşük gecikme gerektiren onant-oku API'leri için sorunlu olabilir. Mitigations şunları içerir:

Satışcı Lock-InIn

DynamoDB, Cognito ve Lambda belirli bir bulut sağlayıcına sizi bağlar. kilitleme riskini azaltmak:

Debugging ve Observability

Serverless fonksiyonlar ephemeral, geleneksel debugging aletleri etkisiz hale getirmektir: Invest in:

Throttling ve kötüye kullanım

Bir kiracı, DynamoDB global endekslerini onant bölüm anahtarları ile kullanarak potansiyel olarak tüketebilir ve yaz kapasite sınırlarına göre uygun olarak kullanım kotalarını da uygulamalıdır.In database access, implement onant-specific kapasite limitleri using DynamoDB global indexler with onant partition keys and read/write kapasite limitleri. Lambda functions also use kotaları using use costs operations.

Üretim için en iyi uygulamalar -Grade Serverless SaaS

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Sunucusuz altyapıdaki çok katmanlı bir SaaS platformu inşa etmek, otomatik ölçeklendirme, maliyet verimliliği ve operasyonel yük sağlayan pragmatik bir seçimdir.Veri izolasyon stratejinizi dikkatlice tasarlayarak, API Gateway, Lambda ve sunucusuz veritabanı gibi onant-aware doğrulamayı uygulayın, tek bir kodbaseden yüzlerce veya binlerce kiracıya hizmet eden bir üretim-okuyucu platformu oluşturabilirsiniz.

Herhangi bir mimari ile olduğu gibi, anahtar kasıtlı ticaret yapmaktır. Basit kiracı izolasyonla başlayın, bir gün gözlemlenebilirlik ve IaC'ye yatırım yapmak ve yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaş yavaşlama, kullanım tabanlı faturalama, ve çok-bölge dağıtımları gibi özellikleri ekleyin. Doğru temelle, sunucusuz, bulutun altyapısını ele alırken, onantlara değer vermeye odaklanmanızı sağlar.

Daha fazla okuma için, [[DÜŞÜNÜ:0)AWS SaaS Fabrikası[DÜT:1) kaynakları ve [[ŞUYGÜN:2)AWS Well-Architected SaaS[[DÜDÜDÜye Olmayanlar İçin[DÜye Olmayanlar İçin 3 ).