Nima uchun serversiz inqilob boshi berk ko'chaga tushib qoldi

Klyuchevye momenty

  • Bir necha yillardan buyon bizga serversiz kompyuterlar ilovalarni ishga tushirish uchun maxsus OSsiz yangi davrni boshlab beradi, deb vaʼda qilingan edi. Bizga ushbu tuzilma ko'plab miqyoslash muammolarini hal qilishini aytishdi. Aslida, hamma narsa boshqacha.
  • Garchi ko'pchilik serversizni yangi g'oya deb hisoblasa-da, uning ildizlarini 2006 yilda Zimki PaaS va Google App Engine paydo bo'lishi bilan kuzatish mumkin, ularning ikkalasi ham serversiz arxitekturadan foydalanadi.
  • Serversiz inqilobning to'xtab qolishiga to'rtta sabab bor, ular cheklangan dasturlash tilini qo'llab-quvvatlashdan tortib ishlash muammolarigacha.
  • Serversiz hisoblash unchalik foydasiz emas. Arzimaydi. Biroq, ular serverlarni to'g'ridan-to'g'ri almashtirish deb hisoblanmasligi kerak. Ba'zi ilovalar uchun ular qulay vosita bo'lishi mumkin.

Server o'ldi, yashasin server!

Bu serversiz inqilobning jangovar hayqiriqidir. So'nggi bir necha yil ichida sanoat matbuotiga tez nazar tashlasangiz, an'anaviy server modeli o'lik va bir necha yil ichida barchamiz serversiz arxitekturadan foydalanamiz degan xulosaga kelish oson.

Sanoatdagi har bir kishi biladi va biz ham maqolamizda ta'kidlaganimizdek serversiz hisoblash holati, bu unday emas. Foyda haqida ko'plab maqolalarga qaramasdan serversiz inqilob, bu hech qachon sodir bo'lmagan. Aslida, so'nggi tadqiqotlar shuni ko'rsatadikibu inqilob boshi berk ko'chaga kirgan bo'lishi mumkin.

Serversiz modellarning ba'zi va'dalari albatta amalga oshdi, lekin hammasi emas. Hamma emas.

Ushbu maqolada men ushbu holatning sabablarini ko'rib chiqmoqchiman. Nima uchun serversiz modellarning moslashuvchanligi yo'qligi, ular aniq, aniq sharoitlarda foydali bo'lib qolsa ham, ularni kengroq qabul qilish uchun to'siq bo'lib qolmoqda.

Serversiz hisoblash ustalari nimani va'da qilishdi

Serversiz hisoblashning qiyinchiliklariga kirishdan oldin, keling, u nimani taqdim etishi kerakligini ko'rib chiqaylik. Serversiz inqilob va'dasi ko'p va - ba'zida - juda ambitsiyali edi.

Bu atama bilan tanish bo'lmaganlar uchun bu erda qisqacha ta'rif. Serversiz hisoblash arxitekturasini belgilaydi, unda ilovalar (yoki ilovalarning bir qismi) odatda masofadan turib ishlaydigan ish vaqti muhitida talab bo'yicha ishlaydi. Bundan tashqari, serversiz tizimlarni uyda joylashtirish mumkin. So'nggi bir necha yil ichida barqaror serversiz tizimlarni yaratish tizim ma'murlari va SaaS kompaniyalari uchun asosiy muammo bo'lib kelgan, chunki (ta'kidlanishicha) bu arxitektura "an'anaviy" mijoz-server modeliga nisbatan bir qator muhim afzalliklarni taqdim etadi:

  1. Serversiz modellar foydalanuvchilardan o'z operatsion tizimlarini saqlashni yoki hatto muayyan OS bilan mos keladigan ilovalarni yaratishni talab qilmaydi. Buning o'rniga, ishlab chiquvchilar umumiy kod yaratadilar, uni serversiz platformaga yuklaydilar va uning ishlashini kuzatadilar.
  2. Serversiz ramkalardagi manbalar odatda daqiqalar (yoki hatto soniyalar) bilan to'lanadi. Bu shuni anglatadiki, mijozlar faqat kodni ishlatgan vaqt uchun to'laydilar. Bu an'anaviy bulutli VM bilan yaxshi taqqoslanadi, bu erda mashina ko'pincha ishlamay qoladi, lekin buning uchun siz to'lashingiz kerak.
  3. Kengaytirish muammosi ham hal qilindi. Serversiz ramkalardagi resurslar dinamik ravishda tayinlangan, shuning uchun tizim talabning keskin o'sishiga osongina dosh bera oladi.

Muxtasar qilib aytganda, serversiz modellar moslashuvchan, arzon narxlardagi, kengaytiriladigan echimlarni taqdim etadi. Ajablanarlisi shundaki, biz bu fikrni erta o'ylamaganmiz.

Bu haqiqatan ham yangi fikrmi?

Aslida, g'oya yangi emas. Foydalanuvchilarga faqat kod ishlayotgan vaqt uchun to'lash imkonini berish tushunchasi u tomonidan kiritilganidan beri mavjud Zimki PaaS 2006 yilda va taxminan bir vaqtning o'zida Google App Engine juda o'xshash echimni taklif qildi.

Haqiqatan ham, biz hozir "serversiz" model deb ataydigan narsa bir xil narsani ta'minlaydigan "bulutli mahalliy" deb ataladigan ko'plab texnologiyalardan eskiroqdir. Ta'kidlanganidek, serversiz modellar aslida o'nlab yillar davomida mavjud bo'lgan SaaS biznes modelining kengaytmasi.

Shuni ham tan olish kerakki, serversiz FaaS arxitekturasi emas, garchi ikkalasi o'rtasida bog'liqlik mavjud. FaaS aslida serversiz arxitekturaning hisoblash markazlashtirilgan qismidir, lekin u butun tizimni ifodalamaydi.

Xo'sh, nima haqida hamma shov-shuv? Rivojlanayotgan mamlakatlarda internetga kirish sur'atlari keskin o'sishda davom etar ekan, bir vaqtning o'zida hisoblash resurslariga talab ham ortib bormoqda. Misol uchun, elektron tijorat tarmoqlari tez rivojlanayotgan ko'plab mamlakatlarda ushbu platformalardagi ilovalar uchun hisoblash infratuzilmasi mavjud emas. Bu erda pullik serversiz platformalar keladi.

Serversiz modellar bilan bog'liq muammolar

Gap shundaki, serversiz modellarda... muammolar bor. Meni noto'g'ri tushunmang: men ular o'z-o'zidan yomon yoki ba'zi sharoitlarda ba'zi kompaniyalar uchun muhim ahamiyatga ega emas deb aytmayapman. Ammo "inqilob" ning asosiy da'vosi - serversiz arxitektura tezda an'anaviy arxitekturani almashtiradi - hech qachon amalga oshmaydi.

Mana nimaga.

Dasturlash tillari uchun cheklangan qo'llab-quvvatlash

Ko'pgina serversiz platformalar faqat ma'lum tillarda yozilgan ilovalarni ishga tushirishga imkon beradi. Bu ushbu tizimlarning moslashuvchanligi va moslashuvchanligini jiddiy cheklaydi.

Serversiz platformalar ko'pgina asosiy tillarni qo'llab-quvvatlaydi. AWS Lambda va Azure Functions, shuningdek, qo'llab-quvvatlanmaydigan tillarda ishlaydigan ilovalar va funksiyalar uchun o'ramni taqdim etadi, garchi bu ko'pincha ishlash narxi bilan birga keladi. Shunday qilib, aksariyat tashkilotlar uchun bu cheklov odatda katta ish emas. Lekin gap shu. Serversiz modellarning afzalliklaridan biri shundaki, kam ma'lum bo'lgan, kam qo'llaniladigan dasturlardan arzonroq foydalanish mumkin, chunki siz faqat ular ishlagan vaqt uchun to'laysiz. Kam ma'lum, kam qo'llaniladigan dasturlar esa ko'pincha ... kam ma'lum, kam qo'llaniladigan dasturlash tillarida yoziladi.

Bu serversiz modelning asosiy afzalliklaridan birini buzadi.

Sotuvchining majburiyligi

Serversiz platformalar bilan bog'liq ikkinchi muammo yoki hech bo'lmaganda ularning hozirda amalga oshirilishi, odatda operatsion darajada bir-biriga o'xshash emasligidir. Yozish funktsiyalari, joylashtirish va boshqarish bo'yicha standartlashtirish deyarli yo'q. Bu shuni anglatadiki, xususiyatlarni bir platformadan ikkinchisiga ko'chirish juda ko'p vaqt talab qiladi.

Serversiz modelga o'tishning eng qiyin qismi odatda kod parchalari bo'lgan hisoblash funktsiyalari emas, balki ilovalarning ob'ektlarni saqlash, identifikatsiyani boshqarish va navbatlar kabi ulangan tizimlar bilan qanday bog'lanishidir. Funktsiyalarni ko'chirish mumkin, ammo dasturning qolgan qismini ko'chirish mumkin emas. Bu va'da qilingan arzon va moslashuvchan platformalarning mutlaqo aksi.

Ba'zilarning ta'kidlashicha, serversiz modellar yangi va ular qanday ishlashini standartlashtirishga vaqt yo'q. Lekin ular, yuqorida aytib o'tganimdek, yangilik emas va boshqa ko'plab bulutli texnologiyalar, masalan, konteynerlar, yaxshi standartlarni ishlab chiqish va keng joriy etish tufayli ancha foydalanishga aylangan.

unumdorlik

Serversiz platformalarning hisoblash samaradorligini o'lchash qiyin, chunki qisman sotuvchilar ma'lumotni maxfiy saqlashga moyil. Ko'pchilikning ta'kidlashicha, masofaviy, serversiz platformalardagi funktsiyalar ichki serverlardagi kabi tez ishlaydi, ba'zi muqarrar kechikish muammolari bundan mustasno.

Biroq, individual faktlar buning aksini ko'rsatadi. Ilgari ma'lum bir platformada ishlamagan yoki bir muncha vaqt ishlamagan funksiyalarni ishga tushirish uchun biroz vaqt kerak bo'ladi. Bu, ehtimol, ularning kodi kamroq kirish mumkin bo'lgan saqlash tashuvchisiga ko'chirilganligi bilan bog'liq bo'lishi mumkin, garchi ko'rsatkichlarda bo'lgani kabi - ko'pchilik sotuvchilar sizga ma'lumotlar migratsiyasi haqida aytmaydilar.

Albatta, buning bir necha yo'li bor. Ulardan biri, serversiz platformangiz qaysi bulutli tilda ishlayotgan bo'lishidan qat'i nazar, xususiyatlarni optimallashtirishdir, ammo bu ushbu platformalarning "chaqqon" ekanligi haqidagi da'voni biroz buzadi.

Yana bir yondashuv, mahsuldorlik uchun muhim dasturlarni yangi saqlash uchun muntazam ravishda amalga oshirilishini ta'minlashdir. Bu ikkinchi yondashuv, albatta, serversiz platformalar tejamkorroq degan da'voga biroz ziddir, chunki siz faqat dasturlaringiz ishlayotgan vaqt uchun to'laysiz. Bulutli provayderlar sovuq boshlanishini kamaytirishning yangi usullarini taqdim etdilar, ammo ularning ko'pchiligi FaaS ning asl qiymatini buzadigan "bir o'lchovni" talab qiladi.

Sovuq ishga tushirish muammosini serversiz tizimlarni o'z ichida ishga tushirish orqali qisman hal qilish mumkin, ammo bu o'z xarajatlari bilan birga keladi va yaxshi resurslarga ega bo'lgan jamoalar uchun joy bo'lib qoladi.

Siz butun ilovalarni ishga tushira olmaysiz

Nihoyat, serversiz arxitektura an'anaviy modellarni tez orada almashtirmasligining eng muhim sababi: ular (odatda) butun ilovalarni ishga tushira olmaydi.

Aniqrog'i, bu xarajat nuqtai nazaridan amaliy emas. Sizning muvaffaqiyatli monolitingiz sakkizta shlyuz, qirq navbat va o'nlab ma'lumotlar bazasi misollari bilan bog'langan to'rt o'nlab funktsiyalar to'plamiga aylantirilmasligi kerak. Shu sababli, serversiz yangi ishlanmalar uchun ko'proq mos keladi. Deyarli hech qanday mavjud ilova (arxitektura) ko'chirilmaydi. Siz migratsiya qilishingiz mumkin, lekin siz noldan boshlashingiz kerak.

Bu shuni anglatadiki, aksariyat hollarda serversiz platformalar hisoblashni talab qiladigan vazifalarni bajarish uchun orqa serverlarga qo'shimcha sifatida ishlatiladi. Bu ularni bulutli texnologiyalarning boshqa ikkita shakli - konteynerlar va virtual mashinalardan juda farq qiladi, ular masofaviy hisoblashni amalga oshirishning yaxlit usulini taklif qiladi. Bu mikroservislardan serversiz xizmatga o'tishdagi qiyinchiliklardan birini ko'rsatadi.

Albatta, bu har doim ham muammo emas. O'z uskunangizni sotib olmasdan vaqti-vaqti bilan katta hisoblash resurslaridan foydalanish qobiliyati ko'plab tashkilotlarga haqiqiy va doimiy foyda keltirishi mumkin. Ammo ba'zi ilovalar ichki serverlarda, boshqalari esa serversiz bulut arxitekturasida joylashgan bo'lsa, boshqaruv murakkablikning yangi darajasini oladi.

Yashasin inqilob?

Bu barcha shikoyatlarga qaramay, men serversiz echimlarga qarshi emasman. Rostini aytsam. Ishlab chiquvchilar shunchaki tushunishlari kerak - ayniqsa, agar ular birinchi marta serversiz ishlashni o'rganayotgan bo'lsalar - bu texnologiya serverlarni to'g'ridan-to'g'ri almashtirmaydi. Buning o'rniga bizning maslahatlarimiz va manbalarimizni ko'rib chiqing serversiz ilovalar yaratish va modelni qanday qo'llashni yaxshiroq hal qiling.

Manba: www.habr.com

a Izoh qo'shish