AWS Türkçe Blog

10. Doğum günün kutlu olsun, DynamoDB! 🎉🎂🎁

Orijinal makale: Link (Sébastien Stormacq)

18 Ocak 2012’de Jeff ve Werner, her ölçekte tek basamaklı milisaniyelik performans için tam olarak yönetilen esnek bir NoSQL veritabanı hizmeti olan Amazon DynamoDB’nin genel kullanıma sunulduğunu duyurdu.

Son 10 yılda yüz binlerce müşteri DynamoDB‘yi benimsedi. DynamoDB düzenli olarak yeni performans ve ölçeklenebilirlik zirvelerine ulaşıyor. Örneğin, Haziran 2021’deki son Prime Day satışları sırasında tek haneli milisaniye performansını korurken 66 saatin üzerinde trilyonlarca isteği ele aldı ve saniyede 89,2 milyon istekle zirveye ulaştı. Disney+ içeriği, meta verileri ve her gün milyarlarca izleyici eylemini almak için DynamoDB’yi kullanıyor. Pandeminin neden olduğu benzeri görülmemiş talepler sırasında bile DynamoDB, dünyanın dört bir yanından birçok müşteriye, çalışma şeklini değiştirmek zorunda kaldığından, sanal olarak tanışmaya ve iş yürütmeye ihtiyaç duyan müşterilere yardımcı oldu. Örneğin, 2020’nin başlarında hepimiz görüntülü görüşme yapmaya başladığımızda Zoom, günlük toplantı katılımcılarını 10 milyondan 300 milyona ölçekleyebildi.

Bu özel yıl dönümünde, 1 Mart’ta Twitch’te benzersiz bir çevrimiçi etkinlik için bize katılın. Bu yazının sonunda size bunun hakkında daha fazla bilgi vereceğim. Ancak bu olaydan bahsetmeden önce, bu hizmetin doğuşunu ve 10 yıl önceki orijinal lansmandan bu yana eklediğimiz ana yetenekleri tekrar düşünmek için bu fırsatı değerlendirelim.

DynamoDB’nin Arkasındaki Tarih
DynamoDB‘nin hikayesi 10 yıl önce piyasaya sürülmeden çok önce başladı. 2004’teki tatil alışveriş sezonunda Amazon’un e-ticaret platformunda bir dizi kesintiyle başladı. O zamanlar Amazon, monolitik bir mimariden mikroservislere geçiyordu. Tasarım ilkesi, durum bilgisi olan her mikroservisin kendi veri deposunu kullanması ve bir mikroservisin verilerine herkese açık bir API aracılığıyla erişmek için diğer servislerin gerekli olmasıydı (ve hala da öyle). Doğrudan veritabanı erişimi artık bir seçenek değildi. O zamanlar çoğu mikroservis, üçüncü taraf bir satıcı tarafından sağlanan ilişkisel bir veritabanı kullanıyordu. 2004 yılının tatil sezonundaki trafik hacmi göz önüne alındığında veritabanı sisteminde hata ayıklaması ve yeniden üretilmesi zor bazı kilitlenmeler yaşandı. Yalnızca birincil anahtarlarla sorgulama gibi basit kullanım kalıpları kullanmamıza rağmen, e-ticaret platformu ilişkisel veritabanlarının sınırlarını zorluyordu. Bu kullanım kalıpları ilişkisel bir veritabanının karmaşıklığını gerektirmez.

Amazon ve AWS’te bir kesinti meydana geldikten sonra sorunun temel nedenini belgelemek, sorunu nasıl düzelttiğimizi açıklamak ve tekrarlanmasını önlemek için yaptığımız değişiklikleri ayrıntılandırmak için Hata Düzeltme (Correction of Error – COE) adlı bir süreç başlatırız. Bu veritabanı sorunu için COE sırasında Swaminathan (Swami) Sivasubramanian (şu anda AWS’te veritabanı, analitik ve ML organizasyonunun Başkan Yardımcısı) adlı genç, belki de saf, 20 yaşında bir stajyer şu soruyu sordu: Bunun için neden ilişkisel bir veritabanı kullanıyoruz? Bu iş yükleri SQL karmaşıklık düzeyine ve işlem garantilerine ihtiyaç duymuyor.“

Bu, Amazon’u veri depolarının mimarisini yeniden düşünmeye ve orijinal Dynamo veritabanını oluşturmaya yöneltti. Amaç, Amazon e-ticaret platformunun zorlu ölçeklenebilirlik ve güvenilirlik gereksinimlerini karşılamaktı. Bu ilişkisel olmayan, anahtar/değer çifti veritabanı başlangıçta alışveriş sepeti ve oturum servisi gibi Amazon e-ticaret operasyonlarının çekirdeğini oluşturan kullanım durumlarını hedef aldı.

AWS, tasarım ilkelerimizi açıklamak ve Amazon’un temel e-ticaret operasyonlarını desteklemek için bu veritabanını çalıştırmaktan öğrenilen dersleri sağlamak için üç yıl sonra, 2007’de Dynamo belgesini yayınladı. Yıllar içinde diğer şirketlerin tıpkı Amazon gibi ölçeklenebilir çözümler aradığını kanıtlayan birkaç Dynamo klonunun ortaya çıktığını gördük.

Birkaç yıl sonra Dynamo, Amazon’daki birkaç çekirdek servis ekibi tarafından benimsendi. Mühendisleri performans ve ölçeklenebilirlikten çok memnun kaldılar. Ancak, bunun neden Amazon’da daha geniş çapta benimsenmediğini anlamak için mühendislerle görüşmeye başladık. Dynamo’nun ekiplere ihtiyaç duydukları güvenilirlik, performans ve ölçeklenebilirliği sağladığını öğrendik ancak bu, sistemi çalıştırmanın operasyonel karmaşıklığını basitleştirmedi. Sistemi Amazon’un veri merkezlerinde kurmak, yapılandırmak ve işletmek için ekiplere hala ihtiyaç vardı.

O sırada AWS, Amazon SimpleDB‘yi bir NoSQL hizmeti olarak öneriyordu. Birçok ekip bir etki alanını 10 GB’ın ötesine ölçeklendirmenin zorluklarına, öngörülemeyen gecikmesine (veritabanının boyutundan ve dizinlerinden etkilenmiştir) ve nihai tutarlılık modeline rağmen SimpleDB’nin operasyonel basitliğini tercih etti.

İdeal çözümün Dynamo’nun güçlü yanlarını (ölçeklenebilirlik ve verileri almak için öngörülebilir düşük gecikme süresi) SimpleDB’nin operasyonel basitliği ile birleştireceği ve yalnızca beyan etmek için bir tabloya sahip olacağı ve sistemin düşük seviyeli karmaşıklığı şeffaf bir şekilde ele almasına izin vereceği sonucuna vardık.

Böylece DynamoDB doğdu.

DynamoDB, geliştiricileri donanım ve yazılım yönetiminin karmaşıklığından kurtarır. İşlem hacmi gereksinimlerinizi karşılamak için bölümleri ölçeklendirmenin ve verilerinizi yeniden bölümlere ayırmanın tüm karmaşıklığını ele alır. Tabloları manuel olarak yeniden bölümlendirmeye gerek kalmadan sorunsuz bir şekilde ölçeklenir ve verilerinize öngörülebilir düşük gecikme süreli erişim sağlar (tek basamaklı milisaniyeler).

AWS’te yeni bir hizmet başlattığımız an projenin sonu değildir. Aslında başlangıçtır. Son 10 yılda sürekli olarak geri bildirimlerinizi dinledik ve DynamoDB’ye yeni yetenekler kazandırdık. Yüzlerce artımlı iyileştirmeye ek olarak şunları ekledik:

… ve daha fazlası.

Son olarak, son AWS re:Invent konferansında Amazon DynamoDB Standard-Infrequent Access’i (DynamoDB Standard-IA) duyurduk. Bu yeni DynamoDB tablo sınıfı seyrek erişilen veriler için veri depolama maliyetini %60 oranında düşürmenize olanak tanır. İdeal kullanım durumu erişim gecikmesinden ödün vermeden uzun süre saklamanız gereken ve uygulamanızın ara sıra erişmesi gereken veriler içindir. Geçmişte bu tür verilerin depolama maliyetlerini düşürmek amacıyla nadiren erişilen verileri Amazon Simple Storage Service (Amazon S3) gibi daha düşük maliyetli depolama alternatiflerine taşımak için kod yazıyordunuz. Artık DynamoDB’nin yüksek kullanılabilirliğini ve performansını korurken seyrek erişilen verileri depolamak için DynamoDB Standard-IA tablo sınıfına geçebilirsiniz.

Nasıl Başlanır
Bir geliştirici olarak DynamoDB‘yi kullanmaya başlamak için dokümanlarımızdaki Başlangıç Kılavuzu‘na başvurabilir veya AWS Kahramanlarımızdan biri olan ve The DynamoDB Book‘un yazarı Alex DeBrie tarafından yazılan mükemmel DynamoDB, Explained‘i okuyabilirsiniz. AWS Hero Jeremy Daly, DynamoDB veri modellemesine derinlemesine dalmak için “Geri kalanımız için DynamoDB Modelleme” adlı bir video kursu hazırlıyor.

Müşteriler artık DynamoDB’yi hemen hemen her sektör dikeyinde, coğrafi bölgede ve şirket boyutunda kullanıyor. DynamoDB’de nasıl yenilikler yaptığınız konusunda bizi sürekli şaşırtıyorsunuz ve yeni nesil uygulamaları oluşturmayı kolaylaştırmak için bizi DynamoDB’yi geliştirmeye devam etmeye sürekli olarak zorluyorsunuz. Sürekli gelişen ihtiyaçlarınızı karşılamak ve gelecek on yıllar boyunca yenilik yapmanızı ve ölçeklendirmenizi sağlamak için geri bildiriminizden geriye doğru çalışmaya devam edeceğiz.

DynamoDB ile On Yıllık Yenilik – Sanal Bir Etkinlik
Başta da belirttiğim gibi bu yıl dönümünü de sizlerle birlikte kutlamayı çok isteriz. En iyi uygulamaları öğrenmeniz, teknik demoları görmeniz ve canlı bir Soru-Cevap’a katılmanız için canlı bir Twitch etkinliği hazırladık. Etkinlikte iki uzun süreli müşterimizden hikayeler duyacaksınız: SmugMug CEO’su Don MacAskill ve Dropbox‘tan mühendislik liderleri. Ayrıca AWS’in blog efsanesi ve Baş Evangelist Jeff Barr ile DynamoDB’nin ürün yöneticileri ve mühendislerine sorularınızı sorma ve onlarla sohbet etme şansına sahip olacaksınız. Son olarak AWS kahramanları Alex DeBrie ve Jeremy Daly, iki derinlemesine inceleme teknik oturumuna ev sahipliği yapacak. Gündemin tamamına buradan bir göz atın.

Bu etkinlik 1 Mart’ta Twitch’te canlı olacak, bugün kayıt olabilirsiniz (AWS TR Team notu: Katılmasanız bile, kayıt yaptırırsanız sizi e-posta listemize alacağız ve etkinlik kaydı hazır olduğunda sizi uyaracağız). ABD’den ilk 1.000 kayıt yaptıran, DynamoDB kitabının ücretsiz bir dijital kopyasını alacak (bunun perakende değeri 79 ABD dolarıdır).

DynamoDB‘nin önümüzdeki 10 yılına. Şerefe 🥂.