Sunucusuz bilgi işlem - Serverless computing

Sunucusuz bilgi işlem , bulut sağlayıcısının , müşterileri adına sunucularla ilgilenerek, talep üzerine makine kaynaklarını tahsis ettiği bir bulut bilgi işlem yürütme modelidir . Sunucusuz bilgi işlem, kaynakları geçici bellekte tutmaz; bilgi işlem, sonuçların depolamaya devam etmesiyle kısa aralıklarla yapılır. Bir uygulama kullanımda olmadığında, uygulamaya tahsis edilmiş bilgi işlem kaynakları yoktur. Fiyatlandırma, bir uygulama tarafından tüketilen kaynakların gerçek miktarına dayanır. Bir tür yardımcı bilgi işlem olabilir . "Sunucusuz", sunucuların hala bulut hizmeti sağlayıcıları tarafından geliştiriciler için kod yürütmek için kullanıldığı anlamında bir yanlış isimdir . Ancak sunucusuz uygulama geliştiricileri, kapasite planlaması , yapılandırması, yönetimi, bakımı, hata toleransı veya kapsayıcıların, VM'lerin veya fiziksel sunucuların ölçeklendirilmesiyle ilgilenmez .

Sunucusuz bilgi işlem, kodu üretime dağıtma sürecini basitleştirebilir . Sunucusuz kod, mikro hizmetler veya monolitler gibi geleneksel stillerde dağıtılan kodla birlikte kullanılabilir . Alternatif olarak, uygulamalar tamamen sunucusuz olacak şekilde yazılabilir ve sağlanan sunucuları hiç kullanmaz. Bu, eşler arası (P2P) gibi çalışması için gerçek bir sunucu gerektirmeyen bilgi işlem veya ağ modelleriyle karıştırılmamalıdır .

Sunucusuz çalışma zamanları

Sunucusuz satıcılar , uygulama mantığını yürüten ancak veri depolamayan Hizmet Olarak İşlev (FaaS) platformları olarak da bilinen bilgi işlem çalışma zamanları sunar. Sunucusuz çalışma zamanları tarafından desteklenen yaygın diller Java , Python ve PHP'dir . Genellikle işlevler, Linux kapsayıcıları gibi yalıtım sınırları altında çalışır .

Ticari teklifler

İlk "kullandıkça öde" kod yürütme platformu 2006'da piyasaya sürülen Zimki idi, ancak ticari olarak başarılı olmadı. 2008'de Google , özel bir Python çerçevesi kullanan ancak rastgele kod yürütemeyen uygulamalar için ölçülü faturalandırma özelliğine sahip Google App Engine'i piyasaya sürdü . 2010 yılında piyasaya sürülen PiCloud, Python için FaaS desteği sundu.

Kubeless ve Fizyon ikisidir Açık Kaynak ile çalışacak FAAS platformları Kubernetes .

2008'de tanıtılan Google App Engine, ilk soyut sunucusuz bilgi işlem teklifiydi. App Engine, 60 saniyelik zaman aşımına sahip HTTP işlevlerini ve kendi zaman aşımlarına sahip bir blob deposunu ve veri deposunu içeriyordu. Bellek içi kalıcılığa izin verilmedi. Tüm işlemlerin bu sınırlar içinde yürütülmesi gerekiyordu, ancak bu, App Engine'de yerleşik uygulamaların neredeyse sonsuza kadar ölçeklenmesine izin verdi ve Snapchat'in yanı sıra birçok harici ve dahili Google uygulamasını da içeren ilk müşterileri desteklemek için kullanıldı . Dil desteği, yerel Python modülleri kullanan Python ile ve ayrıca Google tarafından seçilen C'deki sınırlı sayıda Python modülü ile sınırlıydı. Daha sonraki sunucusuz platformlar gibi, App Engine de kullandığın kadar öde faturalandırmasını kullandı.

Amazon tarafından 2014 yılında tanıtılan AWS Lambda , soyut sunucusuz bilgi işlem modelini popüler hale getirdi. AWS Sunucusuz Uygulama Modeli (AWS SAM) Amazon CloudWatch ve diğerleri gibi bir dizi ek AWS sunucusuz araç tarafından desteklenir .

Google Cloud Platform , 2016'da ikinci bir sunucusuz teklif olan Google Cloud Functions'ı oluşturdu .

IBM, 2016'dan beri IBM Cloud Functions'ı genel IBM Cloud'da sunmaktadır. IBM, 2021'de ikinci bir sunucusuz ürün olan IBM Cloud Code Engine'i ekledi.

Microsoft Azure , hem Azure genel bulutunda hem de şirket içinde Azure Stack aracılığıyla sunulan Azure İşlevleri sunar.

Cloudflare , 2017'den beri Cloudflare Çalışanları sunuyor.

Fastly , 2019'dan beri Compute@Edge'i sunuyor.

Sunucusuz veritabanları

Son birkaç yılda birkaç sunucusuz veritabanları ortaya çıktı. Bu sistemler için Sunucusuz yürütme modelini uzatmak RDBMS hüküm veya ölçek ihtiyacını ortadan kaldırarak, sanallaştırılmış veya fiziksel veritabanı donanım.

Nutanix , Oracle , MariaDB , PostgreSQL veya Microsoft SQL Server gibi mevcut bir RDBMS'yi sunucusuz bir hizmete dönüştüren Era adlı bir çözüm sunar .

Amazon Aurora , veritabanlarının MySQL ve PostgreSQL tabanlı sunucusuz bir sürümünü sunar ve isteğe bağlı, otomatik ölçeklendirme yapılandırmaları sağlar.

Azure Data Lake , yüksek düzeyde ölçeklenebilir bir veri depolama ve analiz hizmetidir. Hizmet , Microsoft'un genel bulutu olan Azure'da barındırılıyor . Azure Data Lake Analytics , müşterilerin yalnızca kullandıkları hizmetler için ödeme yapması için kaynakları dinamik olarak ayırabilen veya ayırabilen dağıtılmış bir altyapı sağlar.

Yine Google'a ait olan Firebase , hiyerarşik bir veritabanı içerir ve sabit ve kullandıkça öde planları aracılığıyla kullanılabilir.

Confluent , altyapıyı soyutlayan, kullanım için ödeme yapılan ve otomatik ölçeklenen üç ana bulut hizmeti genelinde sunucusuz bir Apache Kafka (olay akışı ve depolama sistemi) uygulaması sağlar.

Avantajlar

Maliyet

Sunucusuz, genellikle önemli miktarda yetersiz kullanım veya boş zaman gerektiren sabit miktarda sunucu kiralamaktan veya satın almaktan daha uygun maliyetli olabilir. Temeldeki makine kaynaklarının daha verimli bir şekilde paketlenmesi nedeniyle, bir otomatik ölçeklendirme grubu sağlamaktan bile daha uygun maliyetli olabilir .

Bu, yalnızca kodunuzu çalıştırmak için ayrılan zamana ve belleğe dayalı olarak ücretlendirildiğiniz için kullandıkça öde bilgi işlem veya çıplak kod olarak tanımlanabilir; boşta kalma süresi için ilişkili ücretler olmadan.

Anında maliyet avantajları, lisanslar, kurulum, bağımlılıklar ve bakım, destek veya yama için personel maliyeti dahil olmak üzere işletme maliyetlerinin olmamasıyla ilgilidir. Personel maliyetinin olmaması, genel olarak bulut bilişim için geçerli olan bir avantajdır.

Esnekliğe karşı ölçeklenebilirlik

Ayrıca sunucusuz bir mimari, geliştiricilerin ve operatörlerin otomatik ölçeklendirme ilkelerini veya sistemlerini ayarlamak ve ayarlamak için zaman harcamasına gerek olmadığı anlamına gelir; bulut sağlayıcı, kapasiteyi talebe göre ölçeklendirmekten sorumludur. Google'ın dediği gibi: "prototipten üretime ve gezegen ölçeğinde."

Bulut yerel sistemleri doğal olarak yukarı ve aşağı ölçeklenebildiğinden, bu sistemler ölçeklenebilir olmaktan çok esnek olarak bilinir.

Küçük geliştirici ekipleri, altyapı ve destek mühendislerinden oluşan ekiplere bağımlı olmadan kodu kendileri çalıştırabilir; daha fazla geliştirici DevOps konusunda yetenekli hale geliyor ve yazılım geliştiricisi veya donanım mühendisi olmak arasındaki ayrımlar bulanıklaşıyor.

üretkenlik

İle bir hizmet olarak işlevi , dış dünyaya maruz kod birimleri basit olay tarafından işlevler . Bu, programcının tipik olarak, arka uç yazılım geliştirme görevini basitleştirerek, kodlarında çoklu iş parçacığı oluşturma veya doğrudan HTTP isteklerini işleme konusunda endişelenmesine gerek olmadığı anlamına gelir .

Dezavantajları

Verim

Nadiren kullanılan sunucusuz kod, özel olarak ayrılmış bir sunucuda, sanal makinede veya kapsayıcıda sürekli olarak çalışan koda göre daha fazla yanıt gecikmesi yaşayabilir . Bunun nedeni, otomatik ölçeklendirmeden farklı olarak, bulut sağlayıcının kullanılmadığında sunucusuz kodu tipik olarak "döndürmesi"dir. Bu, çalışma zamanının (örneğin, Java çalışma zamanı) başlaması için önemli miktarda zaman gerektiriyorsa, ek gecikme yaratacağı anlamına gelir.

Kaynak sınırları

Sunucusuz bilgi işlem , bulut sağlayıcıları tarafından uygulanan kaynak sınırlamaları nedeniyle ve ayrıca herhangi bir veride gerekli olduğuna inanılan sunucu sayısını toplu olarak sağlamanın daha ucuz olacağı için yüksek performanslı bilgi işlem gibi bazı bilgi işlem iş yükleri için uygun değildir. zaman noktası.

İzleme ve hata ayıklama

Sunucusuz kodla performans veya aşırı kaynak kullanımı sorunlarını teşhis etmek, geleneksel sunucu koduna göre daha zor olabilir, çünkü tüm işlevler zamanlanabilir olsa da, profil oluşturucular , hata ayıklayıcılar veya APM araçları ekleyerek genellikle daha fazla ayrıntıya inmek mümkün değildir . Ayrıca, kodun çalıştığı ortam tipik olarak açık kaynak değildir , bu nedenle performans özellikleri yerel bir ortamda tam olarak çoğaltılamaz .

Güvenlik

Sunucusuz, bazen yanlışlıkla geleneksel mimarilerden daha güvenli olarak kabul edilir. İşletim sistemi güvenlik açıklarının bulut sağlayıcısı tarafından halledilmesi nedeniyle bu bir dereceye kadar doğru olsa da, geleneksel mimarilere kıyasla uygulamada çok daha fazla bileşen olduğundan ve her bileşen sunucusuz uygulamaya bir giriş noktası olduğundan toplam saldırı yüzeyi önemli ölçüde daha büyüktür. . Ayrıca, müşterilerin izinsiz giriş tespit/önleme sistemi (IDS/IPS) gibi uç nokta ve düzeyinde hiçbir şeyi kontrol edip yükleyemediği için, müşterilerin bulut iş yüklerini korumak için kullandıkları güvenlik çözümleri önemsiz hale geliyor .

Bu, tüm sunucu ağının mono-kültür özellikleri tarafından yoğunlaştırılır. (Tek bir kusur küresel olarak uygulanabilir.) Protego'ya göre, "sunucusuz uygulamaları güvence altına almanın çözümü, geliştiriciler, DevOps ve DevSecOps olarak da bilinen AppSec arasındaki yakın ortaklıktır. Geliştiricilerin güvenliğe sahip olmadığı, ancak geliştiricilerin güvenliğe sahip olmadığı ancak sorumluluktan da kurtulamazlar. Bunu herkesin sorunu haline getirmek için adımlar atın. İşlevler arası ekipler oluşturun ve güvenlik uzmanları ile geliştirme ekipleri arasında sıkı entegrasyon için çalışın. Kuruluşunuzun güvenlik risklerini sunucusuz hızında çözebilmesi için işbirliği yapın."

Mahremiyet

Birçok sunucusuz işlev ortamı, tescilli genel bulut ortamlarını temel alır . Burada, paylaşılan kaynaklar ve harici çalışanların erişimi gibi bazı gizlilik etkilerinin dikkate alınması gerekir . Bununla birlikte, sunucusuz bilgi işlem, örneğin Kubernetes platformu kullanılarak özel bulut ortamında veya hatta şirket içinde de yapılabilir . Bu, şirketlere, geleneksel sunucu kurulumlarında barındırmada olduğu gibi, gizlilik mekanizmaları üzerinde tam kontrol sağlar.

standartlar

Sunucusuz bilgi işlem, Çerçeve AE360'ta Uluslararası Veri Merkezi Kurumu (IDCA) tarafından kapsanmaktadır. Ancak, taşınabilirlikle ilgili kısım, iş mantığını bir genel buluttan Docker çözümünün oluşturulduğu başka bir buluta taşırken sorun olabilir . Cloud Native Computing Foundation (CNCF), Oracle ile bir spesifikasyon geliştirmek için de çalışıyor.

Satıcı kilitleme

Sunucusuz bilgi işlem, bir üçüncü taraf hizmeti olarak sağlanır. Sunucusuz ortamda çalışan uygulamalar ve yazılımlar, varsayılan olarak belirli bir bulut satıcısına kilitlenir. Bu nedenle sunucusuz, taşıma sırasında birden çok soruna neden olabilir.

Ayrıca bakınız

Referanslar

daha fazla okuma