Bulut Bilişim ve Altyapı

Serverless Mimari Nedir? Google Cloud Run Ne İşe Yarar?

Serverless Mimari Nedir? Google Cloud Run Ne İşe Yarar?

Serverless Mimarinin Google Cephesi: Google Cloud Run

Sunucu kurulumu, bakımı ve modernizasyonu süreçlerini geliştirici ekiplerden alarak Google gibi teknoloji sağlayıcılarının sorumluluğuna taşıyan serverless (sunucusuz) mimari, Google’ın Cloud Run ürününde hayat buluyor. İşletmeler, Google Cloud Run aracılığıyla konteynerlerini kullandıkları kadar ödeyecekleri altyapılarda çalıştırabiliyor.

Hayal edin, e-posta pazarlaması pazarının %60’ından fazlasını elinde tutan, her yıl 100 milyon dolar artırdığınız gelirlerle 1 milyar dolarlık iş üreten bir şirketsiniz. Küçük, orta, büyük, her ölçekten yüz binlerce şirket, sizin ürettiğiniz araçları ve altyapıyı kullanarak takipçilerine ve potansiyel müşterilerine ulaşıyor.

Platformunuz aracılığıyla her gün 1 milyar e-posta gönderiliyor. 200’den fazla ülkede hizmet veriyorsunuz ve toplamda 13 milyon kayıtlı kullanıcınız var. Her ay bu toplam kullanıcı sayısının 2,4 milyonu platformunuzu ziyaret ediyor.

Bu kullanıcıların 800 binden fazlası size ödeme yapmayı çoktan kabul etmiş. Platformunuzu kullanan müşterilerin yalnızca e-posta pazarlamasıyla elde ettiği günlük sipariş adedi 1,25 milyonu buluyor. Şimdi kritik soruyu soralım: Böyle bir işin saatler, hatta dakikalar için bile olsa kesintiye uğramasını ister misiniz? 

Yanıtın “hayır” olduğunu tahmin ediyoruz. Ve evet, merak edenler için, Mailchimp’ten söz ediyoruz. E-posta pazarlaması denince akla gelen ilk markalardan biri olan Mailchimp, her gün kulak vermek zorunda olduğu müşteri taleplerinin altından, bu trafiği ve iş yükünü taşıyabilecek bir teknoloji aracılığıyla kalkıyor. Doğru bildiniz, sunucusuz mimariden söz ediyoruz. 

Bu yazımıza, şurada kısaca değindiğimiz sunucusuz (serverless) mimarinin tanımını ve avantajlarını anlatarak başlayacağız. Sonrasında serverless teknolojisinin güçlü sağlayıcılarından biri olan Google’ın Cloud Run çözümüne odaklanacağız. Cloud Run’ın avantajlarının ardından, Google’ın bir başka serverless çözümü olan App Engine ile farklarını hatırlayacağız. Hazırsanız, başlayalım.

Serverless (sunucusuz) mimari nedir?

Sunucusuz mimari, geliştiricilerin temel altyapı ihtiyaçlarını yönetmek zorunda kalmadan dijital hizmetler oluşturmasına, geliştirmesine ve çalıştırmasına olanak tanıyan bir yazılım tasarımı yaklaşımıdır. Sunucusuz mimaride geliştiriciler yalnızca kod yazmaya ve bu kodları dağıtmaya odaklanır. Bulut sağlayıcısı, uygulamaların, veritabanlarının ve depolama sistemlerinin çalışmasıyla yükümlüdür. 

Geleneksel mimaride geliştirici ekipler, sunucu donanımlarının bakımını yapmak, yazılım ve güvenlik güncellemeleriyle ilgilenmek ve arıza durumunda yedeklerini oluşturmak durumundadır. Serverless mimari ise bu işi yönetilen (managed) hizmet sağlayıcısına devreder.

Geliştiriciler, sunucusuz mimari yaklaşımını benimseyerek bu sorumlulukları üçüncü taraf bir sağlayıcıya aktarır. Öte yandan kapasite, işlem hacmi, trafik yoğunluğu ve iş yükü gibi konularla geliştirici ekipler ilgilenmez. Serverless mimari, işletmelerin dijital ortamda çalıştırdıkları hizmetlere göre ölçeklenebilir ve bu hizmetin ödemesi, “kullandığın kadar öde” yöntemiyle belirlenir.

Serverless mimarinin avantajları nelerdir? 

Adının aksine, sunucuların tamamen denklemden çıkarılmadığı, yalnızca geliştirici ekipler için soyutlandığı sunucusuz mimari, bugün dünya çapındaki şirketlerin yarısından fazlası tarafından tercih ediliyor. Bu teknolojinin benimsenmesinin arkasında temel olarak aşağıdaki sebepler yer alıyor:

● Maliyet avantajı: Serverless mimari yaklaşımını benimseyen işletmeler, kullandığın kadar öde modeliyle faturalandırılıyor. Kullanılmayan sunucular veya sanal makineler için ödeme yapılmıyor. Bu sayede işletmeler yalnızca ihtiyaç duydukları kadar işlem gücünün bedelini ödüyor. 

● Ölçeklenebilirlik: Yazının önceki bölümlerinde de belirttiğimiz gibi, serverless yaklaşımda ihtiyaç duyulan performans, hizmet sağlayıcı tarafından otomatik olarak belirleniyor. Anlık trafik değişiklikleri, dönemsel yoğunluklar bu sayede kolayca ve kesinti yaşanmadan yönetilebiliyor. 

● Üretkenlik: Altyapı kurulumu ve bakımı süreçlerini üçüncü taraf sağlayıcıya devreden yazılım geliştiriciler, sunucu yönetmek zorunda kalmadan kodlarını kolayca dağıtabiliyor. Bu sayede yazılım teslimat döngüleri hızlandırılabiliyor ve operasyonlar hızla işler hale getirilebiliyor.

Serverless mimarinin Google cephesi: Google Cloud Run

Google Cloud Run, Google Cloud çözüm ailesi içinde yer alan, sunucusuz bir bilgiişlem platformudur. Serverless olması sebebiyle tüm altyapı yönetimini soyutlayan Google Cloud Run, istekler (requests) ve olaylar (events) aracılığıyla konteynerleri çalıştırmaya yarayan bir altyapı vaat eder.

Google Cloud Run kullanıcıları, Go, Python, Java, Node.js ve .NET gibi yazılım geliştirme dillerini kullanarak konteynerli uygulamalar oluşturabilir ve bu platform aracılığıyla dağıtabilir. Yazılım geliştiriciler, kapsayıcılı uygulamaları Cloud Run aracılığıyla doğrudan Google’ın sunduğu ölçeklenebilir altyapı üzerinde çalıştırabilir. Google’ın Cloud çözüm ailesindeki diğer uygulamalarla uyumlu çalışabilecek biçimde tasarlanan Cloud Run, bu sayede tam özellikli web platformları ve uygulamalar geliştirmeyi olanaklı kılar. 

Google Cloud Run’da kodları çalıştırmanın iki yolu vardır. Cloud Run hizmetler (services), web isteklerine veya olaylara yanıt veren kodları çalıştırmak için kullanılır. Cloud Run işler (jobs) ise, bir iş gerçekleştiren ve iş bittiğinde ortaya çıkan kodu çalıştırmak için kullanılır.

Google Cloud Run’ın özellikleri

Google Cloud Run, tüm sunucusuz hizmetler gibi, kullandıkça öde modeliyle çalışıyor. Kullanım bedelleri, 100 milisaniyelik ayrıntı düzeyine sahip bir konteyner örneğine ayrılan CPU ve bellek başına ücretlendiriliyor. İsteğe (request) dayalı fiyatlandırma modeli ve örnek (instance) tabanlı fiyatlandırma modeli olmak üzere iki seçenek sunuluyor. İnternet siteleri, web uygulamaları, uygulama geliştirme arayüzleri (API), mikroservisler ve akış veri işleme (streaming data processing) projeleri için uygun bir çözüm olan Google Cloud Run’ın temel özellikleri şöyle sıralanıyor: 

● Herhangi bir dil veya kütüphane: Node.js, Go, Java, Kotlin, Scala, Python, .NET ve Docker için yerleşik destek sunan Google Cloud Run, seçilen herhangi bir programlama dilini veya işletim sistemi kütüphanesini destekliyor. 

● Konteyner iş akışlarından ve standartlarından yararlanma: Cloud Run, konteyner imajlarını Cloud Build, Artifact Registry veya Docker gibi konteyner ekosistemleriyle kusursuzca eşleştiriyor. 

● İyileştirilmiş geliştirici deneyimi: Çözüm, hizmetleri ve ürünleri hızlı dağıtmak için basit bir komut satırı ve kullanıcı arabirimi sunuyor.

● Hızlı otomatik ölçeklendirme: Cloud Run, trafiğe bağlı olarak otomatik olarak yukarı veya aşağı bir biçimde ölçeklenebiliyor. 

● Entegre günlük kaydı ve izleme: Cloud Run, Google’ın Cloud Monitoring, Cloud Logging, Cloud Trace ve Error Reporting gibi uygulama sağlığını izlemeye yarayan çözümlerine entegre bir yapı sunuyor. 

● Güvenlik: İkili Yetkilendirme (Binary Authorization) özelliği sayesinde Cloud Run, yalnızca güvenilen konteyner imajlarını dağıtıyor. Ayrıca konteynerler, izole edilmiş güvenli bir sanal alanda çalışabiliyor. 

Google Cloud Run ve Google App Engine karşılaştırması

Google Cloud Run, tıpkı ayrıntılarını şu yazıda anlattığımız Google App Engine gibi, Google Cloud’un sunucusuz çözüm serisinin bir parçası olarak konumlanıyor. Google’ın Cloud Functions’ı da içine alan bu çözüm serisi, temelde uygulama geliştirmeyi hızlandırmayı, dağıtım süreçlerini basitleştirmeyi, kaynakları ölçeklendirmeyi ve operasyonel görevleri otomatikleştirmeyi hedefliyor. 

Cloud Run, konteynerli uygulamalar için yönetilen bir çalışma zamanı ortamı olarak tanımlanıyor. App Engine ise Node.js, Java, Ruby, C#, Go, Python, PHP veya konteyner olarak paketlenmiş herhangi bir özel çalışma zamanında yazılmış web uygulamaları için bir hizmet olarak platform (Platform as a Service | PaaS) çözümü olarak biliniyor.

Başka bir deyişle Cloud Run uygulamaların bir konteynerde çalışmasını gerektirirken, App Engine Flex için konteyner dağıtımı gerekmiyor. Cloud Run, hem yazılım geliştiriciler hem de geliştirici operasyonu uzmanları (devops) için tasarlanmışken, App Engine, geliştiricilere odaklanıyor.

Google’ın serverless çözümleri Global IT’de

Global IT, 2006’dan bu yana Google’ın Türkiye’deki en eski ve tek İş Ortağı olarak Google Cloud çözümlerini müşterileriyle buluşturuyor. Google Workspace, Google Cloud Platform, Google For Education, Google Anthos, Google Maps Platform gibi çözüm ailelerini, müşterilerinin dijitaldeki işlerini büyütmek ve birkaç adım öteye taşımak için kullanıyor. E-ticaretin modernizasyonu başta olmak üzere altyapı ve uygulama modernizasyonu, felaket kurtarma, veri bulutu, yapay zeka, cloud check-up, veritabanı ve güvenlik çözümlerini içeren portföyünde Google’ın bulutta sunduğu tüm olanakları uygulayabiliyor. 

Sunucusuz mimarinin avantajlarını keşfederek işlerini dijitalde büyütmek, karmaşık uygulama altyapılarını ve yoğun iş yüklerini Google’ın dünyanın farklı noktalarında konumlanan veri merkezlerinde çalışan güçlü donanımlara dağıtmak, geliştirme süreçlerinde istedikleri esneklik ve hıza ulaşmak isteyen herkesi bu sayfanın altındaki formu doldurarak bizimle iletişime geçmeye davet ediyoruz.