Kullandığınız kadar ödeyin, kullanmadığınızda sıfıra ölçeklendirin ve sunucuları tamamen yönetmeyi bırakın — ancak ekonominin ne zaman işlemeyi durduracağını bilin.

Uygulamanız değişken trafiğe sahip — geceleri sakin, iş saatlerinde yoğun artışlar ve pazarlama kampanyalarından veya mevsimlik etkinliklerden kaynaklanan öngörülemeyen ani yükselişler. Zamanın %70'inde boş duran sunucular için ödeme yapıyorsunuz. Ya da yeni bir ürün geliştiriyorsunuz ve ürün-pazar uyumunu doğrulamadan önce altyapı tedariki, kapasite planlaması ve nöbetçi rotasyonuna yatırım yapmak istemiyorsunuz. Serverless size istek başına fiyatlandırma, otomatik ölçeklendirme ve sıfır altyapı yönetimi sunar — ancak yalnızca iş yükü özellikleri uyduğunda.
Explore more design patterns and system architectures
Mimarlarımız, bu deseni kullanarak belirli gereksinimleriniz için sistemler tasarlamanıza ve oluşturmanıza yardımcı olabilir.
İletişime GeçinSunucusuz odaklı mimari, uygulamaları tamamen yönetilen, sıfıra ölçeklenebilen işlem hizmetleri (Lambda, Cloud Functions, Vercel Functions) üzerine kurar ve bunlar yönetilen olay hizmetleri (EventBridge, SQS, Step Functions) ile bağlanır. Yama yapılacak sunucu, yeniden boyutlandırılacak küme veya planlanacak kapasite yoktur. Fonksiyonlar olaylara (HTTP istekleri, kuyruk mesajları, zamanlama tetikleyicileri, veritabanı değişiklikleri) yanıt olarak yürütülür ve sıfırdan binlerce eşzamanlı örneğe otomatik olarak ölçeklenir. Bu desen sunucusuz veritabanlarına (DynamoDB, Neon, PlanetScale), sunucusuz kuyruklara (SQS) ve sunucusuz orkestrasyona (Step Functions, Temporal Cloud) kadar uzanır.
Mimari doğası gereği olay odaklıdır. Bir API Gateway (AWS API Gateway, Vercel) HTTP isteklerini bireysel fonksiyonlara yönlendirir. Olay kaynakları (SQS kuyrukları, EventBridge kuralları, S3 bildirimleri, DynamoDB akışları) fonksiyonları eşzamansız olarak tetikler. Step Functions veya Temporal, her adımın yerleşik yeniden deneme, zaman aşımı ve hata yönetimi özelliklerine sahip bir fonksiyon olduğu çok adımlı iş akışlarını düzenler. Sunucusuz veritabanları (anahtar-değer için DynamoDB, ilişkisel veriler için Neon/PlanetScale) kapasite yönetimi olmadan depolamayı halleder. Bir strangler fig deseni, mevcut monolitlerden kademeli geçişi sağlar.
| Katman | Teknolojiler |
|---|---|
| Hesaplama | AWS Lambda, Vercel Functions (Fluid Compute), Google Cloud Functions, Cloudflare Workers |
| API | API Gateway (REST/WebSocket), Vercel, AppSync (GraphQL) |
| Orkestrasyon | AWS Step Functions, Temporal Cloud, Vercel Workflow DevKit |
| Veri | DynamoDB, Neon Postgres, PlanetScale, Upstash Redis, S3 |
| Olaylar | EventBridge, SQS, SNS, Vercel Queues |
| Gözlemlenebilirlik | CloudWatch, Datadog (sunucusuz izleme), Lumigo, X-Ray |
| Kullanılacağı Durumlar | Kaçınılacağı Durumlar |
|---|---|
| Trafik önemli boşta kalma süreleriyle değişkense (sıfıra ölçeklenme para tasarrufu sağlar) | Trafik sabit ve yüksek hacimli ise — sürekli yükte rezerve örnekler %50-70 daha ucuzdur |
| Sıfır altyapı yönetimi ve operasyonel ek yük istiyorsanız | Kalıcı bağlantılara (WebSocket sunucuları, veritabanı bağlantı havuzları) ihtiyacınız varsa — Vercel bunu yönetse de |
| Uygulama doğal olarak olay odaklı fonksiyonlara ayrışıyorsa | İş yükü istek başına 15 dakikadan fazla sürekli yürütme gerektiriyorsa |
| Bir monolitden kademeli olarak geçiş yapıyorsanız ve uç nokta başına dağıtım istiyorsanız | Ekip dağıtık sistemlere aşina değilse — sunucusuz mimari dağıtık hata ayıklama karmaşıklığı getirir |
MW, sunucusuz mimariyi dini bir karar değil, ekonomik bir karar olarak ele alır. Gerçek trafik deseniniz (teorik değil) için sunucusuz, container'lar ve rezerve örneklerin maliyetini modelleriz ve operasyonlar için mühendislik zamanı dahil toplam sahip olma maliyetini en aza indiren seçeneği öneririz. Sunucusuz mimarilerimiz, fonksiyon başına maliyet atfı (her çağrıyı tetikleyen özellikle etiketleme), P99 eşikleri aştığında uyarı veren soğuk başlangıç izleme ve sprint başına bir uç noktayı taşıyan kademeli geçiş kılavuzlarını içerir. Medya şirketleri, SaaS ürünleri ve e-ticaret platformları için monolitleri sunucusuz mimariye taşıdık — ve iki durumda, iş yükü özellikleri değiştiğinde bazı kısımları tekrar container'lara geri taşıdık.
Güvenlik, lansmandan sonra eklediğiniz bir özellik değildir. O, mimari bir özelliktir — sistem ya bunun için tasarlanmıştır ya da tasarlanmamıştır.
Serverless-first; 15 dakikayı aşan uzun süreli işlemler, kalıcı WebSocket bağlantıları gerektiren iş yükleri, ayrılmış kapasitenin daha ucuz olduğu, sürekli yüksek işlem hacimli trafiğe sahip uygulamalar ve düşük seviyeli OS veya ağ yapılandırması gerektiren sistemler için uygun değildir. MicrocosmWorks, mimari tasarım sırasında her iş yükünü bu kısıtlamalara göre değerlendirir ve serverless'ın API uç noktalarını ve olay işlemeyi yönettiği, container'ların veya VM'lerin ise kalıcı bilgi işlem gerektiren iş yüklerini çalıştırdığı hibrit yaklaşımlar önerir. Bu pragmatik yaklaşım, her bileşeni uygun olmadığı durumlarda serverless'a zorlama gibi yaygın bir hatadan kaçınır.
MicrocosmWorks, Lambda soğuk başlatmalarını kritik uç noktalar için sağlanan eşzamanlılık (provisioned concurrency), başlatma süresini azaltmak için işlev paketi optimizasyonu (function bundle optimization) ve Java iş yükleri için Lambda SnapStart'ın stratejik kullanımıyla hafifletir; bu da soğuk başlatmaları saniyelerden milisaniyelere düşürür. Uygulamaları ayrıca, gecikmeye duyarlı yolların Node.js veya Python gibi hafif çalışma zamanlarını (runtimes) minimum bağımlılıklarla kullanmasını sağlayacak şekilde mimarileriz, böylece sağlanan eşzamanlılık (provisioned concurrency) olmasa bile soğuk başlatmaları 200 ms'nin altında tutarız. Bu gecikmenin bile kabul edilemez olduğu uç noktalar için, 10 ms'nin altında yanıtlar için Lambda@Edge veya CloudFront Functions kullanırız.
MicrocosmWorks, geliştiricinin makinesinde bulut hizmetlerini üretime yakın doğrulukla taklit eden SST (Serverless Stack), LocalStack veya Serverless Framework'ün offline modu gibi araçlar kullanarak yerel geliştirme ortamları kurar. Her pull request için oluşturulan geçici bulut ortamlarına karşı çalışan entegrasyon test paketleri uyguluyoruz, böylece geliştiriciler bir staging ortamı paylaşmadan gerçek AWS hizmetlerine karşı doğrulama yapabilir. Bu ikili yaklaşım, geliştirme için hızlı yerel iterasyon döngüleri sağlarken, kod üretime ulaşmadan önce buluta özgü sorunları yakalar.
MicrocosmWorks, serverless mimarinin değişken veya yoğun traffic patterns olan uygulamalar için önemli ölçüde daha ucuz olduğunu bulmuştur —genellikle eşdeğer sürekli çalışan container deployments'tan %70-90 daha az maliyetli— ancak maliyet avantajı, aylık 10-20 milyon invocations üzerindeki sürekli throughputs'larda azalmaktadır. Architecture design aşamasında, serverless per-invocation pricing'i belirli traffic patterns'ınız için ayrılmış container capacity ile karşılaştıran maliyet projeksiyon modelleri oluşturuyoruz. Buna API Gateway charges ve data transfer fees gibi gizli maliyetler de dahildir. $10-$35/saat consulting rates ile sunulan optimization service'imiz, over-provisioned memory, aşırı function durations veya gereksiz API Gateway usage'ından kaynaklanan israfı tespit etmek için serverless billing'i düzenli olarak inceler.
MicrocosmWorks, Lambda işlevleri ile veri tabanı arasında kalıcı bir katman olarak konuşlandırılan Amazon RDS Proxy veya PgBouncer gibi bağlantı havuzu proxy'leri kullanır; bu proxy'ler, binlerce Lambda bağlantısını yönetilebilir bir gerçek veri tabanı bağlantıları havuzuna çoklar. Bağlantı havuzunun hala darboğazlar yaratacağı yüksek eşzamanlılıklı iş yükleri için sunucusuz uygulamaları DynamoDB veya diğer bağlantısız veri tabanlarını tercih edecek şekilde tasarlarız. İlişkisel veri tabanları kullanması gereken uygulamalar için, eşzamanlı Lambda çağrılarını veri tabanının bağlantı kapasitesine uyacak şekilde sınırlayan bağlantı farkındalıklı ölçeklendirme limitleri uygularız.