muhitidan qat'i nazar, har doim bir xil ishlashini kafolatlaydi: Bir marta qurish va
har
qanday
joyda
ishga
tushirish
(BORA).
Konteynerlarning
asosiy
xarakteristikalari quyidagilardir: ochiq manba tabiati, yadro darajasidagi dastur
izolyatsiyasi, virtualizatsiyani almashtirish, ilovalarni yopish, yopiq qatlamli
konteynerlar va konteyner deskriptorlarini markazlashtirilgan saqlash. O'rnatish va
yangi muhitlarga ko'chirish tasvirlar deb ataladigan
vositalar yordamida amalga
oshiriladi. Masalan, eng mashhur provayderlardan biri bo'lgan Docker.com
konteynerlari ochiq standartlarga asoslangan bo'lib, konteynerlarga barcha asosiy
Linux distribyutorlari va Microsoft Windows-da, shuningdek, har qanday
infratuzilma ustida ishlash imkonini beradi. Konteynerlar izolyatsiya qilingan,
ammo an'anaviy virtual mashinalarga nisbatan OS va (kerak bo'lganda) qutilar va
kutubxonalarni baham ko'ring (3-rasm).
3-rasm. Docker konteyner va virtual
mashina arxitekturasi
Serversiz hisoblash yoki xizmat vazifasi (Function as a Service – FaaS) – bu
bulutli provayderda ishlaydigan VM va konteynerlarga o'xshash bulutga asoslangan
hisoblash shakli. Bu serverlar yo'qligini anglatmaydi, balki serverlarni boshqarish,
masshtablash va imkoniyatlarni rejalashtirish asosiy bulut provayderi tomonidan
amalga oshiriladi. Ilova ishlab chiquvchilari faqat funksionallik va biznes mantig'iga
e'tibor qaratishlari kerak.
Serversiz hisoblashdan oldin, ko'plab korxonalar mikro-xizmatlarni, xizmatga
yo'naltirilgan arxitektura (Service Oriented Architecture – SOA) shaklini qabul
qildilar. Mikro-xizmatlar ilovalarni API orqali bir-biriga bog'langan bo'sh
bog'langan xizmatlar to'plami sifatida tashkil qilish imkonini berdi. Har bir xizmat
o'z jarayoni/konteyneri/VMdagi butunlay alohida mini-ilovadir. Asosiy afzallik -
modullilik va tashvishlarni ajratish. Biroq, mikro-xizmatlarning paydo bo'lishi bilan
infratuzilma va operatsion ishlar sezilarli darajada oshdi. Yana ko'plab uzluksiz
integratsiya/uzluksiz etkazib berish quvurlarini kuzatish kerak edi va yana ko'plab
me'moriy qismlarni boshqarish uchun murakkab orkestr mavjud. Jurnal konteksti
ko'plab individual jarayonlar bo'ylab tarqalgan va integratsiya testlariga ko'proq
kuch sarflanadi. Basecamp kabi kompaniyalarning ta'kidlashicha,
monolit
arxitektura ba'zi kichik kompaniyalar, masalan, startaplar uchun mantiqiy bo'lishi
mumkin.
Boshqa tomondan, Serversiz hisoblash bilan infratuzilma, orkestrlash
qatlamlari va joylashtirish olib tashlanadi. Hali ham serverlar va VMlar mavjud,
ammo ular to'liq bulutli provayder tomonidan boshqariladi.
Ilova ishlab chiquvchilari faqat biznes mantig'i va funksionalligini yozishlari
va qolganini bulutli provayderga topshirishlari kerak.
Serversiz
hisoblash, shuningdek, hisoblash xarajatlarini kamaytirishi
mumkin. Aksariyat bulutli provayderlar VM-ni zahiraga qo'yish uchun soatlik tarif
olishsa-da, Serversiz hisoblash iste'molga asoslangan narxlash modelidan
foydalanishi mumkin va agar dastur hisoblash yoki xotira resurslaridan faol
foydalanmasa, hech qanday to'lov olinmaydi.
IBM Cloud Functions, Auth0 dan Webtask, Iron.io kabi bir nechta serversiz
hisoblash provayderlari mavjud, ammo soddalik uchun
biz asosiy jihatlarni faqat
eng katta uchtalik uchun taqqoslash haqida xabar beramiz (5-jadval): AWS Lambda,
Azure Functions va Google Functions.
Aksariyat serversiz ilovalar voqealarga asoslangan arxitekturaga (Event-
Driven Architecture – EDA) amal qilishi kerak: bu ko'proq sezgir dasturga imkon
beradi, chunki tizimlar dizayni bo'yicha asinxron bo'lib, oldindan aytib bo'lmaydigan
darajada. Xavfsizlik nuqtai nazaridan, ba'zi jihatlar FaaS operatori tomonidan ko'rib
chiqiladi, ammo bu ma'lum bir dastur xavfsizlik muammolaridan xoli bo'lishiga
kafolat bermaydi. FaaS ning barcha afzalliklari/kamchiliklari qisqacha quyidagicha
umumlashtiriladi.
Afzalliklari:
• infratuzilmani boshqarish – serverlarni sotib olish va sozlash dastlabki
investitsiyalar va talab qilinadigan ixtisoslashgan xodimlar nuqtai nazaridan
qimmatga tushadi;
• infratuzilma xavfsizligi – foydalanuvchilar Linux, Tomcat va boshqalar
yangilanishlari haqida tashvishlanishlari shart emas;
• oson joylashtirish – ishlab chiquvchilar OPS, DBA va hokazolarni kutishlari
shart emas;
• Scalable va HA – Amazon, Microsoft va Google ko'pchilik foydalanuvchilar
yollashi mumkin bo'lgan har qanday narsadan ko'ra ko'lamni o'zgartirishda
yaxshiroq;
• xarajatlar – foydalanuvchilar faqat foydalanadigan resurslar uchun to'laydi.
Kamchiliklari:
• kechikish – FaaS biroz kechikishni qo'shadi, shuning uchun yuqori samarali
dastur uchun FaaS-dan foydalanish eng yaxshi g'oya bo'lmasligi mumkin;
• limitlar – xotira (AWS da 1500 MB), bajarish vaqti (AWS da 300 sek,
Googleda 500 sek);
• monitoring va disk raskadrovka – ba'zi yechimlar yetib boryapti va mahalliy
yoki oflayn disk raskadrovka/sinovni o'tkazish imkonini beradi, lekin hozircha bu
cheklovdir;
• mahalliy saqlangan ma'lumotlar yo'q – arizangiz fuqaroligi bo'lmagan
bo'lishi kerak, shuning uchun ularning ko'pchiligi uchun bu haqiqatan ham yaxshi
narsa, lekin baribir bu chegara;
• sotuvchini blokirovka qilish – foydalanuvchilar, masalan, AWS, Azure-ga
qarab, agar sotuvchisi bir necha yil ichida bankrot bo'lsa,
tiklanish, chiqish
strategiyasiga ega bo'lishi kerak.
5-jadval. Eng yirik FaaS provayderlarini taqqoslash
Dostları ilə paylaş: