Sunucusuz: Nedir ve neden farklıdır?

Yayınlanan: 2019-01-11

Sunucusuz Bilgi İşlem Nedir?

Geliştirici topluluğunda sunucusuzla ilgili son zamanlardaki tüm yutturmacaları görmüş olabilirsiniz. Peki tam olarak nedir? Demek istediğim, kodun hala doğru bir yerde çalışması gerekiyor, bu yüzden aslında nasıl sunucusuz?

Bunun tek anlamı, geliştirici ve operasyon ekibinin gerçek sunucuları denetlemesi, yönetmesi ve hatta bunlarla ilgilenmesi gerekmediğidir. Bu, bulut bilişime çok benzer gelebilir, ancak birkaç önemli fark vardır. Ve bu farklılıklar esas olarak diğer modellere karşı bilmediklerinizde yatmaktadır.

İşletim sistemi bilinmiyor!?!?

Sunucusuz, Kubernetes gibi bir tür süslü bulut düzenlemesinden ayırt etmenin kolay yollarından biri, şirketinizde hiç kimsenin kodunuzu çalıştıran sunucunun hangi işletim sistemini kullandığını bilmemesidir. Bazı .Net kodlarını çalıştırdığınız için bunun Windows olduğuna veya Ruby olduğu için Linux'ta olduğuna inanabilirsiniz, ancak sonunda emin değilsiniz ve bunun gelişiminiz için hiçbir önemi yok.

Sunucusuz sağlayıcı tarafından desteklenen bir dili kullanarak kod yazabilirsiniz ve sağladıkları kutunun sınırları içinde kaldığınız sürece, bunu hangi işletim sistemi, sürümler vb.

Aslında sunucusuzun güçlü yönlerinden biri, herhangi bir zamanda uygulamanızın birden çok farklı işletim sisteminde çalışıyor olabilmesidir. Tüm bunlar sizin için sağlayıcınız tarafından yönetilir ve işletilir.

Trafiğinizi yönetmek için kaç sunucuya ihtiyacınız var?

Bu soruyu X sunucu civarında herhangi bir tahminle cevaplayabiliyorsanız veya Y CPU'lara ihtiyacımız varsa, sunucusuz geliştirme yapmıyorsunuz demektir.

Sunucusuz sözleşme, uygulamanızı güçlendirmek için gereken bilgi işlemin sayısı ve gücünün geliştirici için herhangi bir endişe yaratmayacağını ima eder. Bu, bunun için ücretlendirilmediğiniz anlamına gelmez, sadece sizin veya ekibinizin yöneteceği veya ilgileneceği bir şey olmadığı anlamına gelir. İyi sağlayıcılar, yüksek kullanılabilirlik ve yanıt verebilirliği sürdürmek için hizmetinizi otomatik olarak yönetir.

Bilgi işlem, depolama ve ağa dayalı faturalandırma modeli. Sunucular, CPU'lar ve sabit sürücüler değil

Uygulamanızın altında hangi gerçek donanımın çalıştığının farkında olmadığınız için, faturalandırmanın yeni bir yolu da beraberinde gelir. Sunucusuz bulut platformu sağlayıcıları, hesaplama, depolama ve ağ aktarımının ölçülü kullanımını faturalandırır. Bu, CPU, disk sürücüleri ve ağ bağlantıları tarafından ücretlendirilen diğer faturalandırma modellerinin yerini alır. Sunucusuz bir dünyada, bu parçanın kontrolü onlardadır ve yalnızca uygulamanız için tam kullanımı için faturalandırılırsınız.

Bu, hesaplamayı elektrik modeline çok daha yakın hale getirir. Elektrik şirketiniz sizi elektrik tüketiminin ölçülü kullanımı olan KWH ile faturalandırır. Gücün kendisi kömür, nükleer, gaz, her neyse tarafından yaratılır. Ancak, kaynak ne olursa olsun faturalandırma aynı şekilde ölçülür.

sıfırda boşta

Sunucusuz sürümdeki diğer büyük değişiklik, uygulamanız kullanılmadığında otomatik olarak sıfıra ölçeklenmesidir. CPU tarafından değil, hesaplama kullanılarak faturalandırıldığınız için, kullanmadığınız zaman faturanız sıfırdır.

Sağlayıcı, gerektiğinde hesaplamayı ölçmeye her zaman hazırdır, ancak bir sunucunun kullanıldığında hazır olması için ödeme yapmanıza gerek yoktur. Bu, uygulamanız yürütülürken gerçekte tüketilen ikinci hesaplama için yapılan ödemenin bir hesaplamasıdır.

Biraz bakkal dükkanı gibi düşünebilirsiniz. Mağazayı sütle dolu tutmak onların işidir, böylece bir müşteri olarak susadığınızda, içeri girip içmek için süt satın alabilir ve sonra gidebilirsiniz. Süte ihtiyaç duyduğunuzda peşin ödeme yapmıyorsunuz ve kimse satın almadığı için bozulan sütleri varsa ödeme yapmıyorsunuz. Bakkalın tüm işi bu, fazla stok yapmamaya ve bozulmuş sütü boşa harcamamaya dikkat ederken mevcut envantere sahip olduklarından emin olmaktır. Tek bildiğiniz, istediğiniz şeye, istediğiniz zaman sahip oldukları ve gerisi sizin endişelerinizden uzakta basitleştirilmiş olmasıdır.

Sunucusuz için ödünleşimler

Yani tüm bu sadeleştirme kulağa oldukça hoş geliyor. Bir insan neden tüm bunları istemez: daha basit faturalandırma, daha az operasyonel sorumluluk, kolay ölçeklendirme. Her şeyde olduğu gibi, bu da bazı ödünleşmelerle birlikte geliyor. Öyleyse onlar hakkında konuşalım.

İşletim sistemi kilitlemesini bulut sağlayıcı kilitlemesiyle değiştirin

Diğer modellerde, kodunuzun çalıştığı işletim sistemleri veya sunucular nedeniyle çeşitli ödünler ve sınırlamalar yaşadınız. Artık sunucusuz çerçeveler bu sorumluluğu sağlayıcıya yüklediğine göre, yaşamanız gereken yeni kısıtlamalar var.

Şu an itibariyle, hizmet sağlayıcılar arasında kısıtlamaları ve garantileri tanımlayan, üzerinde anlaşmaya varılmış bir standartlar dizisi bulunmamaktadır. Bu, geçmişte uygulamaları Windows'tan Linux'a taşımanın ne kadar zor olacağına benzer olduğu anlamına gelir. Artık sunucusuz uygulamalarınızı Google'ın Bulutundan Amazon'a taşımaya çalışırken bununla karşılaşacaksınız.

Bu şirketler, müşterilerin sunucusuz iş yüklerini aralarında kolayca taşımasına olanak tanıyan herhangi bir ortak çerçeve henüz sağlamamaktadır. Ve açıkçası, sizi tekliflerine mümkün olduğunca kilitlemeyi tercih edecekleri için bunu şu anda yapmak onların yararına değil. Bu nedenle, ilk sunucusuz tekliflerin, bunlardan çıkmanızı zorlaştıracak birçok tescilli yapışma noktası olduğunu çok iyi bilmelisiniz.

Performans ve maliyetlerde daha az görünürlük

Kodun performansına dalmak için araçlar, önceki programlama modelleri için çok iyi oluşturulmuştur. Belirli bir programın ne kadar CPU veya RAM kullandığını bulmak gibi şeyler olağandır.

Sunucusuz modelde optimizasyonlar, kodunuzun kullandığı hesaplama, ağ ve API çağrılarının miktarına göre değişir. Adil olmak gerekirse, bunlar geçmişin CPU ve RAM'i ile ilgilidir. Ancak daha da soyutlandıkça, bu araçların eskisi kadar yararlı olmasını engelleyecektir.

Hata ayıklama ve performans optimizasyonu için yeni açık kaynaklı araçların bu pazara hizmet edecek gibi görüneceğine tamamen inanıyorum. Ancak, sunucusuz mimarinin sağlayıcılar tarafından nasıl uygulandığını daha iyi anlamaları gerekecek. Bu, bu araçları etkili kılmak için yeterince derin bir görüş sağlayabilecek tek kişinin bulut satıcıları olduğu anlamına gelebilir. Verimli kullansanız da kullanmasanız da bu kaynakları faturalandırdıkları için daha az kaynak kullanmanıza yardımcı olmak onların çıkarına değildir.

Uzun süredir devam eden uygulamalar tatlı nokta değil

Sunucusuz yazılımın sağladığı tüm esnekliği elde etmek için, genellikle uygulama geliştiriciyi bir hizmet olarak bu işlevlerde zamana dayalı sınırlamalarla sınırlar. Bu, kodunuzun yanıt vermesi için en fazla 1 dakikası olan bir web isteğine yanıt vermesine izin verecek şekilde optimize edildiği anlamına gelir.

Bu sabit süre maksimumları, sağlayıcının size sunucusuz vaatlerini yerine getirebilmesine yardımcı olur. Geliştirme ekiplerine otomatik olarak ölçeklenen ve ekipman arızalarını gideren bir hizmet sağlamak için gerçek fiziksel CPU'lar ve konumlar arasında iş yükünü gerektiği gibi hareket ettirebilmeyi umuyorlar. Uzun süreli iş yükleri bu varsayımı bozar. Aslında, bu genellikle tekliflerinin gereksinimlerinden biri olarak listelenir. Kodun X süresi içinde tamamlanması veya sonlandırılması gerektiği durumlarda.

Web istekleri veya mobil uygulama API'leri gibi şeyler için bu sınırlamalar önemli değildir. Ancak video kodlama, gerçek zamanlı oyun sunucuları çalıştırma veya video konferans çözümleri gibi diğer kullanım durumları için bu sınırlamalar uygulanabilir değildir. Çoğu durumda, sunucusuz kaynakların yaratıcı kullanımıyla bu sınırlar etrafında çalışabilirsiniz, ancak genellikle size daha pahalıya mal olacak ve çok daha yavaş çalışacak bir çözüme ayak uydurursunuz. Bulut sağlayıcıları, daha fazla kullanım onlar için daha fazla dolar olduğu için bunu yapmanıza yardımcı olmaktan mutluluk duyacaktır. Bu nedenle, en uygun olduğu web uygulamaları ve sistemler için sunucusuz kullandığınızdan emin olun.