Serverless v.s. FaaS
6 dk okuma süresi
SUNUCU.COM.TR
Kategoriler:Haber ve DuyurularLinux SunucularWindows Sunucular
Bu yazıda, Serverless ve FaaS(Function as a service)'ı karşılaştıracağız . İki seçenek arasındaki farklardan bazılarının yanı sıra bazı benzerlikleri de tartışacağız.
2000'lerin başında, bir web uygulaması veya hizmeti oluştururken, yazılımı geliştirmek, dağıtmak, yapılandırmak ve bakımını yapmak için tam bir ekibe ihtiyacı vardı. Birçok şirket bu işlerin hepsini evde yaptı. Sıkça karşılaştıkları kararlar şunları içeriyordu:
Çeşitli Servis Platformları
Son on yılda, Cloud Computing gelişerek, uygulamaların sürdürülmesinde görülen önceki sorunların çoğunun hafifletilmesine yardımcı olmak için ortaya çıkmıştır. Bulut Sunucular sanallaştırıldıkları için daha verimli bir şekilde oluşturulur ve yönetilir. Bu aynı zamanda fiziksel donanımın konuşlandırılması için bekleme ihtiyacını da ortadan kaldırır. Geleneksel bir fiziksel sunucu, bir bulut sunucusu veya bir AWS EC2 örneği gibi bir servisle değiştirilse bile, aynı sunucu yönetimi ve konfigürasyonu görevleri de geçerlidir.
Tam bu esnada Serverless(Sunucusuz) devreye girdi. Serverless, Cloud Computing'den bir sonraki adımdır. Sunucuların yalnızca resimden gizlendiği anlamına gelir. Sunucusuz hesaplamalarda, sunucu ve uygulamanın bu ayrımı bir platform kullanılarak yönetilir. Platformun veya sunucusuz sağlayıcının sorumluluğu, uygulamanızın tüm gereksinimlerini ve yapılandırmalarını yönetmektir. Bu platformlar, sunucunuzun yapılandırmasını perde arkasından yönetir. Sunucusuz hesaplamada, sadece uygulamaya veya kodun oluşturulmasına ya da kurulmasına odaklanabilirsiniz.
Sunucu.com.tr'ın WordPress Hosting platformunu düşünün. Bir WordPress uygulaması dağıtıldığında, bir sunucuyu açmak, WordPress'i indirmek veya bir veritabanı oluşturmak yerine, tek yapmanız gereken siteniz için bir ad seçmek, uygulamanın kullanıcı adı ve şifresi gibi birkaç başka ayrıntıyı doldurmak ve oluştur düğmesine basmak. Arka planda WordPress'i çalıştırmak için gerekli olan tüm servisler platform tarafından otomatik olarak kurulur. Artık kullanıma hazır çalışan bir WordPress kurulumuna sahip olduğunuza göre, uygulama içinde çalışmaya başlamaktan başka bir şey yapmanıza gerek yoktur.
Mikro hizmetler, sunucusuz bilgi işlem kullanarak karmaşık bir uygulamanın oluşturulması ve kullanılması için modern bir mimaridir. Sunucusuz bilgi işlem uygulayan çoğu bulut platformu, geliştirici ve geliştirme ekiplerine daha fazla odaklanır.
Web sitemizin tamamını sunucusuz bir platformda çalıştırabildiğimiz için, çekirdek uygulamaya, veritabanına ve uygulamamıza eklenmiş tüm gerekli hizmetlere ek olarak aynı dağıtılmış ortamda çalışabiliriz. FaaS (bir hizmet olarak işlev görür) sunucuların soyutlamasını bir adım daha ileri götürür. FaaS, sunucu platformunun aksine hizmetlerin kendisine yoğunlaştığı için yazılımı daha kolay dağıtmanıza olanak tanır. Sunucusuz bilgi işlemden farklı olarak, FaaS sunucu kurulum ve konfigürasyon endişesini atlamanızı sağlar. FaaS, ayrıca bize uygulama kurulum ve konfigürasyonundan da vazgeçme kabiliyeti de veriyor!
Bir uygulama oluşturmaya başlarsak, yine de bir tür programlama dilinin yanı sıra bu dille uyumlu bir çerçeve kullanmak zorundayız. Örneğin, tüm bileşenleri geliştirmek için FaaS olarak JavaScript ve Angular JS veya Vue JS kullanarak bir frontend uygulama inşa ediyorsak, buradaki kavram inşa etmek zorunda kalmadan kod yazabilmektir. Bir uygulamanın parçası olacak bir çerçeve kullanarak temeli atmaktır. Bir başlangıç veya çalışma noktasına sahip bir uygulama olmadığından, herhangi bir FaaS fonksiyonunun bir tetikleyicisi olmalıdır. Bu tetikleyici, bir dosyayı kaydetmekten, her gün çalışan bir işe kadar herhangi bir şey olabilir.
FaaS ile, dış istemde tetiklenecek daha büyük bir uygulamayı çalıştıracak tek bir işlev veya kod parçasına odaklanırsınız. Bu işlevlerin küçük olması ve daha önce bahsedilen mikro hizmetler gibi bir şey yapması gerekir. Bir mikro hizmet metodolojisinde, her servis tek bir şey yapmaktan sorumlu veya sorumludur. Aynısı FaaS için de geçerlidir; Her fonksiyon tek bir görevden sorumludur.
FaaS hizmetinin güzel bir örneği Amazon’un Lambda’sıdır. FaaS işlevi için basit bir kullanım AWS S3 Bucket üzerinde bir resmi yeniden boyutlandırmak olabilir. Gereken tek şey birkaç izin ayarlamak, bir tetikleyici tanımlamak ve görüntüyü yeniden boyutlandıran kodu yazmaktır.
Şimdi teknolojiyi biraz konuştuktan sonra, her birinin bazı avantajlarına ve dezavantajlarına bakalım. Serverless Computing (Sunucusuz bilgi işlem) ile başlayalım.
- Kullanılacak geliştirme dilini belirlemek
- Yazılımın platformunda karar vermek
- Dağıtımda yer alan zaman çizelgesini belirleme
- Yazılımın ölçeklenebilirliğini yapılandırma
- Sunucu türünü belirleme
- Sunucunun yapılandırmalarını seçme
- Sunucuyu dağıtma ve çakışmaları düzeltme
Çeşitli Servis Platformları
Son on yılda, Cloud Computing gelişerek, uygulamaların sürdürülmesinde görülen önceki sorunların çoğunun hafifletilmesine yardımcı olmak için ortaya çıkmıştır. Bulut Sunucular sanallaştırıldıkları için daha verimli bir şekilde oluşturulur ve yönetilir. Bu aynı zamanda fiziksel donanımın konuşlandırılması için bekleme ihtiyacını da ortadan kaldırır. Geleneksel bir fiziksel sunucu, bir bulut sunucusu veya bir AWS EC2 örneği gibi bir servisle değiştirilse bile, aynı sunucu yönetimi ve konfigürasyonu görevleri de geçerlidir.
Tam bu esnada Serverless(Sunucusuz) devreye girdi. Serverless, Cloud Computing'den bir sonraki adımdır. Sunucuların yalnızca resimden gizlendiği anlamına gelir. Sunucusuz hesaplamalarda, sunucu ve uygulamanın bu ayrımı bir platform kullanılarak yönetilir. Platformun veya sunucusuz sağlayıcının sorumluluğu, uygulamanızın tüm gereksinimlerini ve yapılandırmalarını yönetmektir. Bu platformlar, sunucunuzun yapılandırmasını perde arkasından yönetir. Sunucusuz hesaplamada, sadece uygulamaya veya kodun oluşturulmasına ya da kurulmasına odaklanabilirsiniz.
Sunucu.com.tr'ın WordPress Hosting platformunu düşünün. Bir WordPress uygulaması dağıtıldığında, bir sunucuyu açmak, WordPress'i indirmek veya bir veritabanı oluşturmak yerine, tek yapmanız gereken siteniz için bir ad seçmek, uygulamanın kullanıcı adı ve şifresi gibi birkaç başka ayrıntıyı doldurmak ve oluştur düğmesine basmak. Arka planda WordPress'i çalıştırmak için gerekli olan tüm servisler platform tarafından otomatik olarak kurulur. Artık kullanıma hazır çalışan bir WordPress kurulumuna sahip olduğunuza göre, uygulama içinde çalışmaya başlamaktan başka bir şey yapmanıza gerek yoktur.
Mikro hizmetler, sunucusuz bilgi işlem kullanarak karmaşık bir uygulamanın oluşturulması ve kullanılması için modern bir mimaridir. Sunucusuz bilgi işlem uygulayan çoğu bulut platformu, geliştirici ve geliştirme ekiplerine daha fazla odaklanır.
Web sitemizin tamamını sunucusuz bir platformda çalıştırabildiğimiz için, çekirdek uygulamaya, veritabanına ve uygulamamıza eklenmiş tüm gerekli hizmetlere ek olarak aynı dağıtılmış ortamda çalışabiliriz. FaaS (bir hizmet olarak işlev görür) sunucuların soyutlamasını bir adım daha ileri götürür. FaaS, sunucu platformunun aksine hizmetlerin kendisine yoğunlaştığı için yazılımı daha kolay dağıtmanıza olanak tanır. Sunucusuz bilgi işlemden farklı olarak, FaaS sunucu kurulum ve konfigürasyon endişesini atlamanızı sağlar. FaaS, ayrıca bize uygulama kurulum ve konfigürasyonundan da vazgeçme kabiliyeti de veriyor!
Bir uygulama oluşturmaya başlarsak, yine de bir tür programlama dilinin yanı sıra bu dille uyumlu bir çerçeve kullanmak zorundayız. Örneğin, tüm bileşenleri geliştirmek için FaaS olarak JavaScript ve Angular JS veya Vue JS kullanarak bir frontend uygulama inşa ediyorsak, buradaki kavram inşa etmek zorunda kalmadan kod yazabilmektir. Bir uygulamanın parçası olacak bir çerçeve kullanarak temeli atmaktır. Bir başlangıç veya çalışma noktasına sahip bir uygulama olmadığından, herhangi bir FaaS fonksiyonunun bir tetikleyicisi olmalıdır. Bu tetikleyici, bir dosyayı kaydetmekten, her gün çalışan bir işe kadar herhangi bir şey olabilir.
FaaS ile, dış istemde tetiklenecek daha büyük bir uygulamayı çalıştıracak tek bir işlev veya kod parçasına odaklanırsınız. Bu işlevlerin küçük olması ve daha önce bahsedilen mikro hizmetler gibi bir şey yapması gerekir. Bir mikro hizmet metodolojisinde, her servis tek bir şey yapmaktan sorumlu veya sorumludur. Aynısı FaaS için de geçerlidir; Her fonksiyon tek bir görevden sorumludur.
FaaS hizmetinin güzel bir örneği Amazon’un Lambda’sıdır. FaaS işlevi için basit bir kullanım AWS S3 Bucket üzerinde bir resmi yeniden boyutlandırmak olabilir. Gereken tek şey birkaç izin ayarlamak, bir tetikleyici tanımlamak ve görüntüyü yeniden boyutlandıran kodu yazmaktır.
Şimdi teknolojiyi biraz konuştuktan sonra, her birinin bazı avantajlarına ve dezavantajlarına bakalım. Serverless Computing (Sunucusuz bilgi işlem) ile başlayalım.
Avantajları
- Bir uygulamayı dağıtırken gerekli hiçbir sunucu yapılandırması yoktur.
- Sunucusuz bilgi işlem hizmetlerinin veya sistemlerinin çoğu kolayca ölçeklenebilir. Bu nedenle, bir uygulamanın genişlemesi veya daralması gerekiyorsa daha fazla esneklik sunabilirler.
- Serverless geleneksel bir sunucu tabanlı barındırma metodu kullanmaktan daha az maliyetlidir. Bu, platform yönetiminin perde arkasındaki esnekliğinden kaynaklanmaktadır.
Dezavantajları
- Sunucusuz bilgi işlem kullanmanın bir dezavantajı, sunucu kontrolünün kaybıdır. Bu seçeneği kullanırken, bazı sağlayıcılar sunucuya erişime izin vermeyecek veya sunucu özelliklerinin değiştirilmesine izin vermeyecektir.
- Bazı durumlarda, sunucusuz yapılan arama türüne ve sayısına bağlı olarak daha pahalı olabilir. API ağ geçidi yoğun olarak kullanılıyorsa, API fiyatlandırması çok daha yüksek olabilir.
Avantajları
- Verimlilik: Küçük bir görevi başarmak istiyorsanız tüm bir uygulamayı yazmaya gerek yoktur.
- Düşük Maliyet: Bir FaaS sisteminde, küçük kod parçası yalnızca tetiklendiğinde çalışır, bu nedenle yalnızca kullandığınız şey için ödeme yaparsınız.
- Hız: Talep arttıkça, tüm bir uygulamayı kopyalamak yerine, tek bir işlevi oluşturmak ve çoğaltmak daha kolaydır.
- Ölçeklenebilirlik: Talep arttıkça, tüm uygulamanın aksine tek bir işlevi ölçeklendirmek daha kolaydır.
Dezavantajları
- İşlevlerin küçük olması ve yalnızca bir görevi tamamlaması gerekir.
- Çok sayıda işlevi yönetmek zor olabilir.