Serverless Veritabanları: Dynamodb ve Cosmos Db'ye Derin Dive
Serverless Databases: DynamoDB ve Cosmos DB'ye Derin Dive
Sunucusuz hesaplamanın yükselişi temel olarak kuruluşların nasıl inşa ve dağıtıldığını değiştirdi.Bilgece sunucu yönetimi, geliştiriciler kod yazmaya ve donanıma teslim etmekten ziyade özellikleri yazmaya odaklanabiliyorlar.Bu paradigmadaki en kritik bileşenler arasında sunucusuz veritabanı, küresel olarak hiçbir veritabanına sahip değil, ancak operasyonel olarak farklı fiyatlarda ve yüksek kullanılabilirlik sağlar.
Serverless Databases Nedir?
Serverless veritabanı, otomatik olarak altyapı görevlerini yerine getirme, ölçeklendirme, yarılama ve yedeklemeler gibi veritabanı hizmetleridir.Sistem kullanımı için kullanılan ve yayınlanan işlemlerin sayısı için otomatik olarak geçerlidir; yerine, bulut sağlayıcı bunları tamamen yönetir, yalnızca bir veritabanı son noktayı talep üzerine açın ve otomatik olarak talep üzerine kuruludur ve faturalama tüketime dayalıdır -özellikle de kullanılan depolama için sipariş edilir / yazma işlemlerinin sayısı / yazma işlemlerinin yürütülmesi anlamına gelir.
Bu model, değişken veya öngörülemeyen trafik ile ilgili uygulamalar için özellikle yararlıdır, örneğin e-ticaret flaş satışları, IoT sensörü acele, mobil geri dönüş hizmetleri ve etkinlik odaklı mimariler. Serverless databases, kapasite planlamasını ortadan kaldırır, boş maliyeti azaltır ve gecikmeli API'ler sağlayarak geliştirmeyi kolaylaştırabilir ve yeniden uygulamaktadır. ancak, aynı zamanda ticari-offları da tanıtabilirler: çok yüksek kodlamada tahmin etmek zor olabilir ve altta donanımın eksikliği, belirli performans optimizasyonlarını veya geçiş yollarını zorlaştırabilir.
Amazon DynamoDB – AWS Serverless'in Bir Pilleri
Amazon DynamoDB, Lambda, API Gateway, Step Functions ve Kinesis ile sorunsuz bir şekilde çalışan ve tüm dünyada tutarlı ve tutarlı okumalar sağlayan tam olarak yönetilen bir NoSQL anahtar değer ve belge veritabanıdır ve 2012 yılında başlatılan tüm ölçeklerde, birçok AWS sunuculu uygulama için varsayılan veritabanı haline gelmiştir, DynamoDB Flows ile tam olarak çalışır ve ikincil indeksler (GSIs)
DynamoDB'nin Anahtar Özellikleri
- [FONT=0]Flexible data modelleri:[Dönetici:[Dönetici:0)) Destekler anahtar değer (basit birincil anahtar) ve belge (orta anahtar ile birincil anahtar) şemalar. Maddeler, şemalar olmadan evrimleşmek kolay hale getirebilir.
- [FONT:0)Automatic ölçekleme:[Dönetici:[Dönetici:0)[Dönetici ölçeklendirme:[Dönetici:0)[Dönetici ölçeklendirme:[Dönetici:[Dönetici:0))) Uygulamalı, öngörülebilir iş yükleri için daha uygun maliyetlidir.
- [FONT=0] Global Tablolar: [Dönetici: 0:1] Multi-region, çok lider, olay tutarlılığı ile yeniden bir araya getirir.
- [FONT=0)DynamoDB Hızlandırıcı (DAX): ), Tek haneli milisaniyelerden mikrosaniyelere kadar geç kalmış bir önbellek.
- [FONT:0) Güvenlik:[Dönetici:[Dönetici:0) Geri kalanı (AWS KMS) ve geçişte (TLS), iyi huylu IAM politikaları, VPC uç noktaları ve AWS CloudTrail ile denetim logları için entegrasyon.
- [FONT:0]Streams ve Tetikler: DynamoDB Akışları, etkinlik odaklı mimarilere izin vermek (örneğin, Elasticsearch, update secondary indexler, trigger Lambda işlevleri).
- [FONT:0)Transactions:[Döneticiler:[Döneticiler:0) ACID işlemleri 25 ürün veya 4 MB veri için, finansal uygulamalar ve çoklu işlemler için faydalı.
Fiyatlandırma Modelleme
DynamoDB fiyatı kapasite modundadır.(0.25 GB / ay) Otomatik ayarlı ayarlamalar ayarlandığında size bilgi aktarımı için ödeme yapmak gerekir.[Dönetici:2|B][/WCUs) Bir saat boyunca birim başına ücret ödemeniz gerekir (RRUs/WRUs) ve elastikiyet için bir prim içerir.
Common Use Cases
- [FONT:0]Session state:[Dönetici:[Dönetici:0) Low-latency okur / yazmalar, web ve mobil uygulamalarda kullanıcı seanslarını depolamak için mükemmel hale getirir.
- [FONT:0)Gaming:[Dönetici:[Dönetici:0) Oyuncu profilleri, liderboards ve yüksek tutarlılık ve öngörülemeyen yük ile oyun devleti.
- [FONT:0)IoT:[Dönetici:[Dönetici:0)IoT:[Dönetici:[Dönetici: 1 ) Sensör verilerinin en büyük kısmını ikinci olarak işlemek için otomatik ölçeklendirme ile azaltmak.
- [[D:0)E-ticaret: [Dönetici: Alışveriş arabası ve işlem işlemleri tutarlılık sağlamak için kullanım için sipariş.
- [FONT:0] Hattat-aktif mikro hizmetler: [DDD: 1) Lambda ve EventBridge ile bir araya getirilen, DynamoDB birçok sunucusuz arka uçların arka kemiği oluşturur.
Sınırlar ve Tahminler
Güçlü olsa da, DynamoDB, elastik arama veya Aurora gibi bir tek boyutlu bir çözüm değildir.The 400 capabilities are limited: Yalnızca birincil anahtar (veya GSI) ve opsiyonel aralık koşulları ile ilgili olarak sorgulayabilirsiniz. Kompleks katılmak, aggregation, and full-text search require external services like Elasticsearch or Aurora.The 400 KB maximum itemsize sınırlı olabilir (bölgeler arasında güçlü bir şekilde kullanılabilir).
[0]Amazon DynamoDB resmi belgelerini ).
Azure Cosmos DB – Globally Dağıtılmış, Multi-Model Veritabanı
Microsoft Azure Cosmos DB, küresel dağıtım, elastik ölçeklendirme ve çoklu tutarlı modeller gerektiren görev için tasarlanmış tam olarak yönetilen NoSQL veritabanıdır.TelnamoDB'nin aksine Cosmos DB, küresel replikasyon ve turnkey SLA garanti eder.
Cosmos DB'nin Anahtar Özellikleri
- [FONT:0) Çok-model ve çok-API: NoSQL (document), MongoDB, Cassandra, Gremlin (graf) ve Masa API'leri. Tüm API'ler aynı temelde oturuyor - Cosmos DB motoru - bu yüzden onlar bağlantı kurabiliyorlar, indeksleme ve küresel dağıtım.
- [[Dönetici:0) Global dağıtım (dönüşüm):[Dönder:[Dönder: 1) Birkaç tıklama veya kod hattı ile verileri Azure bölgelerinin herhangi bir sayısına kopyalayabilirsiniz. Cosmos DB otomatik çatışma çözümü ile çok-bölge yazar (aktif-aktif-aktif) destekler.
- [FONT:0]İyi tanımlanmış tutarlılık düzeylerine sahip olun: Güçlü, Sınırlanmış durgunluk, Oturum, Consistent prefix ve Eventual.You can choose the level per request, recovery against consistent garanti.
- [FONT:0)Automatic indexing:[Dönetici:[Dönetici: 0) Varsayılan olarak, tüm öğe özellikleri manuel şema tanımı olmadan indekslenir. Bu, keyfi sorgular yukarı doğrulanabilir, ancak RU tüketimini azaltmak için indeksleme politikaları özelleştirebilirsiniz.
- [FONT=0)Request Birimleri (RUs): ), Cosmos DB, ikinci başına İstek Birimlerinde ölçülen birleşik bir bağlantı birimi kullanıyor. 1 RU 1 KB okuması için daha hızlı (1 RU) Okunuyor.Yazar başına 5 RU (Oku başına): Bir KB yazma başına veya veritabanına göre sipariş veriyor veya sunucusuz (autoscale) modundan sipariş veriyorsunuz.
- SLA garanti eder: 99.999% kullanılabilirliği oku, 99.999% çoklu bölge için yazıyor ve P99'da yazılacak ve aynı bölgede yazmaktadır. Güçlü tutarlılık biraz daha yüksek gecikmeli.
- [FONT:0)Değişim Feed:[Dönetici:[Dönetici:0) Süreklilik:[Dönetici:0) Süreklilik:[Dönetici:[Dönetici:0) Süreklilik, Azure Functions veya diğer işlemciler tarafından, erişilebilirlik odaklı mimariler için kullanılabilir olan öğe değişikliklerini sipariş eden kalıcı, sipariş edilen bir günlüklik süresi.
- [FONT:0)Analytical mağaza:[Dönetici:[Dönetici:0)Yapılmış sütunlu mağaza, işlemsel iş yüklerini etkilemeden büyük ölçekli analitik sorgular çalıştırmaya çalışır (Youapse Link).
Fiyatlandırma Modelleme
Cosmos DB fiyatlandırması, devre dışı bırakıldıktan (RUs) ve depolamadan kaynaklanıyor.Ayrıca konteyner başına veya veritabanına göre ayarlanabilir. Autoscale, bu aralıkta maksimum bir RU limit ve sistem ayarlandığında yaklaşık 0,25 GB / ay (similer için sıfıra kadar) depolamaya göre ölçeklenebilir.
DynamoDB ile kıyasla, Cosmos DB'nin RU modellemesi daha fazla granular ve özellikle çok modelli iş yükleri için tahmin etmek daha karmaşık olabilir. ancak, otomatik indeksleme ve en iyi tutarlı tutarlılık, özellikle de olay tutarlılığı tahammül edebilecek tüm RU'leri azaltabilir.
Common Use Cases
- [FONT:0)Enterprise SaaS uygulamaları: geo-tenant sistemleri, geo-latency erişimi ve güçlü SLAs gerektiren çok iyi sistemler.
- [FONT:0]IoT ve zaman serisi:), Küresel görüşlerle yüksek seviyeli sensör verilerini büyük ölçüde azaltın.
- [[D-ticaret platformları: [Döneticileri, alışveriş kartları, sipariş yönetimi, multi-region aktif etkin etkin etkin dağıtımlarla.
- [FONT:0)Real-time Analytics:[Dönetici:[Dönetici:[Dönetici:[Dönetici:[Dön-time Analytics:[Dön-Dönetici:[Dön-Dönetici:[Dönetici: · 1) Değişim feed ve Synapse Linki pano pano panoları ve makine öğrenme modellerini kullanmak için kullanmak.
- [FONT=0) Grafik uygulamaları: [Dönetici: 0:1] Sosyal ağlar, öneri motorları ve Gremlin API aracılığıyla bilgi grafikleri.
Sınırlar ve Tahminler
Cosmos DB'nin ekmekleri bir öğrenme eğrisi ile geliyor. RU modeli dikkatli bir planlama gerektirir: boş zamanlarda bile tahsis edilen kapasiteye ödemeniz (daha fazla sunucusuz kullanımdan) Güvenli sorgular verimli sık otomatik indeksleme için kullanılabilir, ancak kötü tasarlanmış indeksler Azure ekosistemine bağlı olabilir; diğer bulutlarla entegrasyon daha karmaşık veya daha karmaşık değildir.
[FONT:0) Azure Cosmos DB resmi belgeleri).
HeadtototoHead Karşılaştırma: DynamoDB vs. Cosmos DB
Bu iki sunucusuz veritabanı arasında seçim, mevcut bulut sağlayıcınıza, iş yük özelliklerine ve özel özellik gereksinimlerinize bağlıdır. Aşağıda temel boyutlardaki yapısal bir karşılaştırmadır.
Data Model ve API
[FONT=0]DynamoDB[DDDDynamoDB) öncelikle anahtar değer ve belgedir.PartQL (AWS SDK) ile birlikte özel bir API (SQL ile uyumlu sorgu dili) sunar.)[/FONT=FONT[D'2).Cosmos DB beş API'ler sunar: SQL (document), MongoDB, Cassandra, Gremlin (graph), ve Masa.
Global Dağıtım
Her iki destek de çokluregion replikasyonu. Dynamo-DB, Global Tables'ı olay tutarlılığı ile kullanıyor (veya sadece tek bir bölgede güçlü) Cosmos DB, güçlü bölgeler dahil olmak üzere çok sayıda tutarlılık seviyesi ile yazar. (sonrası maliyetle olsa da).
Yeterlik Modelleri
DynamoDB iki sunuyor: olaylı ve güçlü. Cosmos DB beş sunuyor: etkinlik öncesi, tutarlı bir ön ek, oturum, sıkı durgunluk ve güçlü. iyileştirici granularity, Cosmos DB'nin belirli kullanım durumlarına maliyet ve performans optimize etmesine izin veriyor (örneğin, oturum açma seviyesi çok popüler).
Sorgulama ve Indexing
DynamoDB, birincil anahtar ve seçimli bir anahtar tanımlamanızı gerektirir; bu, Cosmos DB'yi açıklayıcı sorular için daha esnek hale getirir, ancak yüksek yaz iş yükleri için RU maliyeti artırabilirsiniz. Ad-hoc sorgulama sınırlıdır. Cosmos DB otomatik olarak tüm özellikleri varsayılan olarak indeksler yapar, bu da Cosmos DB'yi açıklayıcı bir şekilde sorgular olmadan daha esnek hale getirir.
Forput and pricing Granularity
DynamoDB RCU /WCU kullanır - okuryazarlık seviyesi ve endeksli özelliklerle değişir. DynamoDB 1 KB için talep edilen 4 KB için 1 WCU'dur. – Kozmosun DB'nin 1.Soruda 1.C'nin genel olarak, 1 KB başına 5 RU'si, Cosmos DB'nin RU'nin maliyetinin tutarlılık seviyesi ve endeksli özellikleri ile değişir. DynamoDB, karmaşık sorgular ve küresel indekslemeler nedeniyle daha düşük maliyetli dağıtım için daha maliyetli olabilir.
Ekosistem Entegrasyonu Ekosistem
DynamoDB, AWS (Lambda, API Gateway, Kinesis, CloudWatch, CloudTrail, IAM) Cosmos DB doğal olarak Azure ile entegre edilir (Functions, Mantık Uygulamaları, Event Hubs, Synapse, Power BI).
SLAs and Limitations
Cosmos DB, geç kalmışlık için kapsamlı bir SLAs sunar (P99 <10 ms okur / 1 KB altında yazılır), transkript (ya da sınırsız bölme için) DynamoDB reklamlarının tek sayısal milisan geç sayısı ve % 99.999'u bölmek için geçerlilik süresine sahiptir (örneğin, 20 TB'nin konteynerine kadar resmi bir gecikmeli SLA. Cosmos DB'ye de maksimum depolama sahiptir).
Hangisini Seçecek?
- [FONT:0)Choose DynamoDB: [Dönetici'de inşa edilmişsiniz, basit bir anahtar değerli veya belge mağazasına öngörülebilir düşük gecikmeli, net bir erişim modeli (özellikle birincil anahtarla) sahip olun ve yüksek ölçekli maliyetleri düşük tutmak istiyorsanız.
- [FONT:0)Choose Cosmos DB eğer:) Çok sayıda model desteğe ihtiyacınız var (özellikle MongoDB veya Cassandra API'si geçiş için), birden fazla tutarlılık seviyesine ihtiyaç duyar, aktif olarak aktif olarak çok-bölge yazma yeteneğine ihtiyaç duyarsınız, küresel işletme uygulamaları için iyi uygun bir şekilde uygun fiyatlı, gerçek zamanlı analitik ve poliglot kalıcı mimarilere ihtiyaç duyarsınız.
[FONT=0)DynamoDB Geliştirici Kılavuzu[DFLT:1) | [[Üyetim:2)Cosmos DB Giriş).
Serverless Database için en iyi uygulamalar
Hangi veritabanı seçerseniz seçin, kanıtlanmış desenler takip ettiğiniz, ortak tuzaklardan kaçınmanıza yardımcı olacaktır:
Katılımcılık için tasarım
Hem DynamoDB hem de Cosmos DB, bölüm anahtar tasarımı kritik. Sıcak bölümler (bir yerde tek bir anahtar sınır dışı geçişli trafik) throttle throughput. Use high-cardinality keys (e.g., user ID, device ID) and consider sharding for equential identifiers.In Cosmos DB, you can partition on /partitionKey road; in DynamoDB, partition key is selected at table creation.
Yararlı Değişim Data Capture
Hem DynamoDB Streams hem de Cosmos DB Change Feed, etkinlik odaklı desenler etkinleştirir. Arama motorlarını (Elasticsearch) çoğaltmak için verileri çoğaltmak için kullanın, veri depoları ile senkronize edin veya alt akış süreçleri tetikleyin.Bu, birincil veritabanı ve çift hizmetleri yük azaltır.
Konsoloslukunuzun İhtiyaçlarını Anlayın
Serverless veritabanı, uygulamanızın kesinlikle güçlü bir tutarlılığa ihtiyaç duymadığını varsayın.Eğer olaylı kabul edilebilirse, maliyetleri azaltıp geç kalmışlığı artırabilirsiniz.For Cosmos DB için, oturum tutarlılığını birçok e-ticaret veya sosyal medya uygulamaları için kullanın - istemcinizin oturum açma garantisini güçlü bir şekilde sağlar.
Appropriate Kapasite Modunu kullanın
DynamoDB için, sabit iş yükleri için geçici kapasiteyi seçin ve öngörülemeyen artışlar için talep edilen uyarıları seçin.For Cosmos DB, autoscale ile ilgili olarak teslim edilen devir sayısı en fazla üretim iş yükleri için iyidir; sunucusuz (purban)
Backup ve Disaster Recovery için Plan
Her iki hizmet destan kurtarma (PITR) Tüm üretim veritabanları için kullanılabilir. DynamoDB yedekleme sürekli ve yeni bir masaya geri yükleme; Cosmos DB yedeklemesi sürekli veya periyodik olarak geri alınabilir. Küresel DR için, çok-bölge replikasyonu (Global Tables veya Cosmos DB multiregion yazar) ve başarısız bir plana sahiptir.
Maliyet Yönetimi
Bulut maliyet yönetim araçları ile kullanım (AWS Cost Explorer, Azure Cost Management) For DynamoDB, Cosmos DB için öngörülebilir kapasite kullanmak, sunucusuz veya otomatik olarak boş sayı için ödeme yapmaktan kaçınmayı düşünün.Rektör olmayan indeksler ve masalar kullanın.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Amazon DynamoDB ve Azure Cosmos DB gibi sunucusuz mikro hizmet için varsayılan bir seçim yapmak, işletme yükleri olmadan global ölçeklenebilir uygulamalar inşa etmek için geliştiricilere güç veren kurumsal sınıf içi destek, en uygun maliyetli uygulamalar ve poliglot'in ihtiyaç duyduğu doğru seçime bağlıdır.
[FONT:0]AWS Serverless Database Resource Hub) | [[Ücretsiz Cosmos DB Ürün Sayfa[[DÜye Olmayanlar 3 )