Otomatik bir yazılım sistemi oluşturmak, özel CPU yapılandırmasına, belleğe, depolamaya ve diğer kaynaklara sahip birden çok sunucunun uzun yıllar boyunca kurulması anlamına geliyordu. Daha sonra, bu sistemleri yönetmek için bir yönetici ekibi oluşturuldu. Ardından geliştirme ekibi altyapıyı devraldı ve sunucuları birbirine bağlayan süreçler oluşturmaya başladı.
Bu süreç karmaşık olabilir çünkü ortak bir amaç için birlikte çalışan birçok farklı grubu içerir. Bu çıkar çatışmaları daha sonra bir sorun olabilir.
Ayrıca oldukça maliyetli olabilir. Bu, bordronuzda yöneticilerin olmasını gerektirir. Sürekli çalışan sunucular kullanılmamasına rağmen kaynak tüketir.
Zaman içinde en iyi performansı sürdürmek için, sunucu kaynaklarını otomatik olarak ölçeklendiren bir otomatik ölçeklendirme çözümüne ihtiyacınız vardır.
Bulut platformunun bir avantajı vardır: sunucu kümesi kurulumuna ihtiyaç duymadan uçtan uca bir mimari oluşturmanıza olanak tanır. Yönetim açısından bakıldığında, sürdürülecek hiçbir şey yoktur.
Bu, başlangıçlar ve projelerin minimum uygulanabilir ürün (MVP) aşamaları için uygun maliyetli bir seçenektir. Gelecekteki üretim yüklerini ve kullanıcı etkinliğini tahmin etmek zorsa, iyi bir başlangıç noktasıdır. Küme sunucularının yapılandırmasını belirlemenin zor olabileceği yer burasıdır.
Sunucusuz bulut hizmetleri aracılığıyla süreçlerin otomasyonu, sunucusuz mimariyi öne çıkaran şeydir. Hizmetleri birbirine bağlar ve geleneksel küme sunucularına benzer sonuçlar üretir.
Bu, yalnızca yerel AWS hizmetlerini kullanarak böyle bir mimari oluşturmaya bir örnektir.
Hizmetlerin Sunucusuz Akışını Alma
Bazı somut varlıkların altyapısının çeşitli verilerini ve resimlerini (veya fotoğraflarını) toplamak için bir platform oluşturmak istediğinizi hayal edin (bu, herhangi bir üretim veya hizmet varlığı olabilir).
- Gelecekteki analitiği mümkün kılmak için, önce gelen verilerin alınması gerekir.
- İş kurallarını uyguladıktan sonra, bir arka uç prosedürü, hesaplanan çıktıları ilişkisel bir veritabanında normalleştirilmiş bilgiler olarak kaydeder.
- Normalleştirilmiş temiz verileri görüntüleyen bir uygulama ön ucu, kullanıcıların sonuçları görüntülemesine olanak tanır.
Mimarinin hangi bileşenleri içerebileceğini inceleyelim.
AWS S3 Kovaları
Kaynak: aws.amazon.com
Amazon S3 klasörleri, dosyaları veya resimleri AWS bulutunda depolamanın harika bir yoludur. S3 kovasındaki depolamanın fiyatı oldukça düşük. Dahası, bir S3 klasör yaşam döngüsü politikasının tanıtılması bu fiyatı daha da düşürür.
Böyle bir politika, eski dosyaları otomatik olarak arşiv veya derin arşiv erişimi gibi farklı S3 grup sınıflarına taşıyacaktır. Sınıflar, erişim süresine göre de farklılık gösterir, ancak eski veriler için bu daha az sorun olacaktır. Standart operasyon ihtiyaçlarından daha çok acil bir durumda arşivlenen verilere ulaşmaya hizmet eder.
- Verilerinizi alt klasörler halinde düzenleyebilirsiniz.
- Uygun izin kısıtlamalarını ayarlamanız gerekir.
- Tanımlanmalarını kolaylaştırmak ve dinamik S3 grup politikaları içinde olası kullanımları için gruplara etiketler ekleyin.
- Paket, tasarımı gereği sunucusuzdur. Bu sadece verileriniz için bir depolama alanıdır.
Bir S3 klasörü, tasarımı gereği sunucusuzdur. Bu sadece verileriniz için bir depolama alanıdır.
AWS Athena Veritabanı
Kaynak: aws.amazon.com
Athena, bir AWS temel veri gölü oluşturmayı kolaylaştırır. Verilerini depolamak için bir S3 kovası kullanan sunucuları olmayan bir veritabanıdır. Veri organizasyonu, parke veya virgülle ayrılmış değer (CSV) dosyaları gibi yapılandırılmış dosya biçimleriyle sağlanır. S3 kovası dosyaları tutar ve işlemler veritabanından verileri seçtiğinde Athena bunlara başvurur.
Athena’nın aksi takdirde standart olarak kabul edilen çeşitli işlevleri, örneğin güncelleme bildirimlerini desteklemediğini unutmayın. Bu yüzden Athena’ya çok basit bir seçenek olarak bakmanız gerekiyor.
Ancak, indeksleme ve bölümlemeyi destekler. Ayrıca, altyapıya yeni kovalar eklemek kadar karmaşık olduğundan yatay olarak da çok kolay bir şekilde ölçeklenebilir. Basit ama işlevsel veri gölü oluşturma için bu, çoğu durumda yine de yeterli olabilir.
İyi performans için, gelecekteki kullanıma odaklanarak en iyi veri tasarımını seçmek çok önemlidir. Verileri nasıl seçmek istediğiniz konusunda çok net olmanız önemlidir. Tabloları daha sonra zaten var olduktan ve çok sayıda veriyle doldurulduktan sonra yeniden oluşturmak zordur.
Athena DB harika bir seçimdir ve zaman içinde yatay olarak kolayca ölçeklenebilen basit ve değişmez bir veri havuzu oluşturmak istiyorsanız hedefiniz için çok uygundur.
AWS Aurora Veritabanı
Kaynak: aws.amazon.com
Athena DB, işlenmemiş verileri depolamada çok başarılıdır. Sonuçta, gelecekteki yeniden kullanımını en üst düzeye çıkarmak için orijinal içeriğinizi bu şekilde saklamak istersiniz. Ancak, bir ön uç uygulamaya seçili sonuçları sağlamak yavaştır.
Yürütmesi kolay kurulum açısından en iyi seçeneklerden biri, sunucusuz modda çalışan Aurora veritabanıdır.
Aurora, temel bir veri tabanından uzaktır. AWS’deki en gelişmiş yerel ilişkisel veritabanı çözümlerinden biridir. Ayrıca, her sürümde gelişen oldukça karmaşık bir yerel ilişkisel veritabanı çözümüdür.
Aurora benzersizdir çünkü sunucusuz modda çalışabilir ve bu da onu diğer ilişkisel hizmetlerden farklı kılar. Mod şu şekilde çalışır:
- Aurora kümesini yapılandırmak için AWS konsolunu kullanın. Standart CPU ve RAM seviyelerinin yanı sıra otomatik ölçeklendirme işlevselliğinin maksimum aralığını belirtmeniz gerekecektir. Bu, Aurora kümesinin dinamik olarak ekleyebileceği veya kaldırabileceği performansı etkileyecektir. AWS, veritabanının mevcut kullanımına bağlı olarak ölçeği büyütmeye veya küçültmeye karar verir.
- Aurora kümesi, kullanıcı veya işlem gerçek bir istek başlatmadıkça başlamayacaktır. Örneğin, programlanmış toplu işlem başladığında. Veya uygulama, bir veritabanından veri almak için bir arka uç API çağrısı gerçekleştirirse. Talep işlemleri tamamlandıktan sonra veri tabanı otomatik olarak açılacak ve önceden belirlenen süre kadar aktif kalacaktır.
- Aurora kümesi, veritabanında daha fazla iş yoksa otomatik olarak kapanacaktır.
Bir kez daha vurgulamak için sunucusuz Aurora DB, yalnızca gerçek iş yapması gerektiğinde çalışır. Otomatik olarak başlatılan küme, herhangi bir iş yapmıyorsa tekrar kapanacaktır. Gerçek iş, boş zamanınız değil, ödediğiniz şeydir.
Sunucusuz Aurora, tamamen AWS tarafından yönetilir ve bir yönetici gerektirmez.
AWS Yükseltme
Amplify, JavaScript ve React kitaplıklarıyla yapılan ön uç uygulamalarının hızlı dağıtımı için sunucusuz bir platform sunar. Küme sunucuları kurmaya gerek yoktur. Kodu doğrudan dağıtmak için AWS konsolunu kullanın veya otomatik bir DevOps ardışık düzeni kullanın.
Veritabanlarında saklanan verilere ulaşmak için arka uç API’leri arayabilirsiniz. Bu çağrılar, ön uç uygulamadaki gerçek verilere erişmenizi sağlar. Arka uçtaki performansın ana optimizasyonu ekip tarafından yapılmalıdır. Doğrudan API çağrıları içinde etkili seçim ifadeleri tasarlarsanız, kullanıcı arabiriminde yavaş yanıt olasılığını daha da azaltabilirsiniz.
AWS Adım İşlevleri
Kaynak: aws.amazon.com
Bir sistemin tüm ana bileşenleri sunucusuz olsa bile, bu tamamen sunucusuz bir mimariyi garanti etmez. Bu, yalnızca bileşenler arasındaki tüm toplu işlemlerin sunucusuz olması durumunda mümkündür.
AWS Step işlevleri, AWS bulutunda en iyi çözümü sağlar. AWS Lambda işlevlerinin bağlantılı bir listesi, adım işlevini oluşturur. Bu işlevler, net başlangıç ve bitiş durumlarına sahip bir akış şeması oluşturur. Genellikle Python veya Node JS dillerinde yazılan bir lambda işlevi, ihtiyaç duyulan her şeyi işleyen yürütülebilir bir kod parçasıdır.
Aşağıda, bir adım işlevini nasıl yürütebileceğinize bir örnek verilmiştir:
Bu sunucusuz akışın önemli bir dezavantajı vardır: her lambda işlevi maksimum olarak yalnızca 15 dakika çalışabilir. Bu nedenle, akışı daha küçük lambda işlevlerine bölmek, bunu daha az sorunlu hale getirebilir.
Birden fazla lambda işlevini aynı anda tek bir adımda çağırmak mümkündür; bu, temelde aynı anda yürütülen birden çok lambda ile bir adımı paralel hale getirmek anlamına gelir. Devam etmeden önce tüm paralel lambda işlemlerinin bitmesini bekleyin. Ardından, bir sonraki lambda işlemeye geçin.
Son sözler
Sunucusuz mimari, tüm sistem ortamını kapsayan bir bulut platformu oluşturmak için benzersiz bir fırsat sunar. Bu platform yatay olarak ölçeklenebilir ve bunu yaparken düşük işletme maliyetlerine sahiptir.
Bütçe kısıtlı projeler için mükemmel bir çözümdür. Tipik olarak hiç kimsenin üretim yükünün gerçekliğini bilmediği durumlarda mükemmel bir keşif seçeneğidir. Bu, özellikle tüm kullanıcıları başarıyla dahil ettikten sonra önemlidir. Proje ekiplerinin sistemin nasıl çalıştığına dair genel bir fikir edinmeleri mümkündür. Tüm bu avantajlara sahip olabilirsiniz ve yine de tavizleri kabul etmenize gerek yoktur.
Bu kapsam, özellikle yüksek CPU kullanımı içeren durumlar olmak üzere tüm durumlar için yeterli olmayacaktır. Ancak AWS bulutu, sunucusuz kullanım durumları açısından sürekli olarak gelişmektedir. Bir sonraki AWS bulut projeniz için sunucusuz seçeneğe karar vermeden önce kapsamlı bir araştırma yapmak genellikle iyi bir fikirdir.
Ardından, modern uygulamalar için en iyi sunucusuz veritabanlarına göz atın.