Niyə serversiz inqilab dalana dirənib

Əsas məqamlar

  • Artıq bir neçə ildir ki, serversiz hesablamanın (serversiz) proqramları işlətmək üçün xüsusi OS olmadan yeni dövr açacağına söz verilmişdir. Bizə dedilər ki, belə bir struktur genişlənmə ilə bağlı bir çox problemi həll edəcək. Əslində hər şey fərqlidir.
  • Çoxları serversiz texnologiyanı yeni ideya kimi görsə də, onun köklərini Zimki PaaS və Google App Engine ilə 2006-cı ilə qədər axtarmaq olar, hər ikisi serversiz arxitekturadan istifadə edir.
  • Məhdud proqramlaşdırma dili dəstəyindən tutmuş performans problemlərinə qədər serversiz inqilabın dayanmasının dörd səbəbi var.
  • Serversiz hesablama o qədər də faydasız deyil. Ondan uzaq. Bununla belə, onlar serverlərin birbaşa əvəzedicisi kimi qəbul edilməməlidir. Bəzi proqramlar üçün onlar lazımlı bir vasitə ola bilər.

Server ölüb, yaşasın server!

Bu, serversiz inqilab tərəfdarlarının döyüş fəryadıdır. Son bir neçə il ərzində sənaye mətbuatına qısa nəzər salmaq, ənənəvi server modelinin öldüyü və bir neçə ildən sonra hamımızın serversiz arxitekturalardan istifadə edəcəyi qənaətinə gəlmək üçün kifayətdir.

Sənayedə hər kəs bildiyi kimi və bizim məqaləmizdə də qeyd etdiyimiz kimi serversiz hesablamanın vəziyyəti, bu səhvdir. Möhtəşəmlik haqqında çoxlu məqalələrə baxmayaraq serversiz inqilab, heç vaxt baş vermədi. Faktiki olaraq, son tədqiqatlar göstərirki, bu inqilab dalana dirənmiş ola bilər.

Serversiz modellər üçün verilən bəzi vədlər, şübhəsiz ki, gerçəkləşdi, amma hamısı deyil. Hərkəs deyil.

Bu yazıda bu vəziyyətin səbəblərini nəzərdən keçirmək istəyirəm. Nə üçün serversiz modellərin çevikliyinin olmaması hələ də onların daha geniş tətbiqinə maneədir, baxmayaraq ki, onlar konkret, dəqiq müəyyən edilmiş şəraitdə faydalı qalırlar.

Serversiz hesablama ustaları nə vəd etdi

Serversiz hesablama problemlərinə keçməzdən əvvəl onların nə təmin etməli olduqlarına baxaq. Serversiz inqilab vədləri çox idi və - bəzən - çox iddialı idi.

Terminlə tanış olmayanlar üçün burada qısa bir tərif var. Serversiz hesablama proqramların (və ya proqram hissələrinin) adətən uzaqdan yerləşdirilən iş vaxtı mühitlərində tələb əsasında işlədiyi arxitekturanı müəyyən edir. Bundan əlavə, serversiz sistemlər yerləşdirilə bilər. Güclü serversiz sistemlərin qurulması son bir neçə il ərzində sistem administratorlarının və SaaS şirkətlərinin əsas narahatçılığına çevrilmişdir, çünki (iddia edilir) bu arxitektura “ənənəvi” müştəri/server modeli ilə müqayisədə bir sıra əsas üstünlüklər təklif edir:

  1. Serversiz modellər istifadəçilərdən öz əməliyyat sistemlərini saxlamağı və hətta xüsusi əməliyyat sistemləri ilə uyğun gələn proqramlar qurmağı tələb etmir. Bunun əvəzinə tərtibatçılar paylaşılan kod yaradır, onu serversiz platformaya yükləyir və onun işləməsinə baxır.
  2. Serversiz çərçivələrdəki resurslar adətən dəqiqələrlə (və ya hətta saniyələrlə) hesablanır. Bu o deməkdir ki, müştərilər yalnız kodu həqiqətən icra etdikləri vaxt üçün ödəyirlər. Bu, maşının çox vaxt boş qaldığı ənənəvi bulud VM ilə müqayisə olunur, lakin bunun üçün pul ödəməlisiniz.
  3. Ölçeklenebilirlik problemi də həll edildi. Serversiz çərçivələrdəki resurslar dinamik şəkildə təyin edilir ki, sistem tələbin qəfil sıçrayışlarının öhdəsindən asanlıqla gələ bilsin.

Bir sözlə, serversiz modellər çevik, aşağı qiymətli, miqyaslana bilən həllər təmin edir. Təəccüblənirəm ki, əvvəllər bu ideyanı düşünməmişik.

Bu həqiqətən yeni bir fikirdir?

Əslində ideya yeni deyil. İstifadəçilərin yalnız kodun həqiqətən işlədiyi müddət üçün ödəniş etməsinə icazə verilməsi konsepsiyası təqdim edildiyi gündən bəri mövcuddur Zimki PaaS 2006-cı ildə və təxminən eyni vaxtda Google App Engine çox oxşar həll yolu tapdı.

Əslində, indi "serversiz" model dediyimiz, demək olar ki, eyni şeyi təmin edən indi "bulud yerli" adlanan bir çox texnologiyadan daha köhnədir. Qeyd edildiyi kimi, serversiz modellər əslində onilliklər ərzində mövcud olan SaaS biznes modelinin sadəcə bir uzantısıdır.

İkisi arasında əlaqə olsa da, serversiz modelin FaaS arxitekturası olmadığını da etiraf etmək lazımdır. FaaS mahiyyətcə serversiz arxitekturanın hesablama mərkəzli hissəsidir, lakin bütün sistemi təmsil etmir.

Bəs niyə bütün bu ajiotaj? Yaxşı, inkişaf etməkdə olan ölkələrdə İnternetə giriş sürəti sürətlə artmağa davam etdikcə, hesablama resurslarına tələbat da artır. Məsələn, e-ticarət sektorları sürətlə inkişaf edən bir çox ölkələrdə sadəcə olaraq bu platformalardakı tətbiqlər üçün hesablama infrastrukturu yoxdur. Ödənişli serversiz platformaların gəldiyi yer budur.

Serversiz modellərlə bağlı problemlər

Maraqlıdır ki, serversiz modellərin… problemləri var. Məni səhv başa düşməyin: mən demirəm ki, onlar özləri pisdirlər və ya bəzi hallarda bəzi şirkətlərə əhəmiyyətli dəyər vermirlər. Lakin "inqilabın" əsas iddiası - serversiz arxitekturanın ənənəvi olanı tez bir zamanda əvəz edəcəyi - heç vaxt özünü doğrultmur.

Buna görə də.

Proqramlaşdırma dilləri üçün məhdud dəstək

Əksər serversiz platformalar yalnız müəyyən dillərdə yazılmış proqramların işləməsinə icazə verir. Bu, bu sistemlərin çevikliyini və uyğunlaşma qabiliyyətini ciddi şəkildə məhdudlaşdırır.

Serversiz platformaların əksər əsas dilləri dəstəklədiyi hesab edilir. AWS Lambda və Azure Funksiyaları, həmçinin dəstəklənməyən dillərdə tətbiqlər və funksiyaları işə salmaq üçün sarğı təmin edir, baxmayaraq ki, bu, tez-tez performans qiymətinə malikdir. Beləliklə, əksər təşkilatlar üçün bu məhdudiyyət adətən böyük bir şey deyil. Amma məsələ buradadır. Serversiz modellərin üstünlüklərindən biri odur ki, qeyri-müəyyən, nadir hallarda istifadə olunan proqramlar daha ucuz istifadə oluna bilər, çünki siz yalnız onların işlədiyi vaxta görə pul ödəyirsiniz. Və qaranlıq, nadir hallarda istifadə olunan proqramlar çox vaxt... qaranlıq, nadir hallarda istifadə olunan proqramlaşdırma dillərində yazılır.

Bu, serversiz modelin əsas üstünlüklərindən birini pozur.

Satıcıya bağlama

Serversiz platformaların ikinci problemi və ya ən azı onların hal-hazırda həyata keçirilmə üsulu, adətən əməliyyat səviyyəsində bir-birinə bənzəməməsidir. Yazı funksiyaları, yerləşdirmə və idarəetmə baxımından praktiki olaraq heç bir standartlaşdırma yoxdur. Bu o deməkdir ki, funksiyaları bir platformadan digərinə köçürmək çox vaxt aparır.

Serversiz modelə keçməyin ən çətin hissəsi adətən sadəcə kod parçaları olan hesablama funksiyaları deyil, tətbiqlərin obyekt yaddaşı, şəxsiyyətin idarə edilməsi və növbələr kimi bağlı sistemlərlə necə əlaqə saxlamasıdır. Funksiyalar köçürülə bilər, lakin tətbiqin qalan hissəsi dəyişdirilə bilməz. Bu, vəd edilən ucuz və çevik platformaların tam əksidir.

Bəziləri iddia edir ki, serversiz modellər yenidir və onların necə işlədiyini standartlaşdırmaq üçün vaxt yoxdur. Ancaq yuxarıda qeyd etdiyim kimi, onlar o qədər də yeni deyillər və konteynerlər kimi bir çox digər bulud texnologiyaları yaxşı standartların inkişafı və geniş şəkildə qəbulu sayəsində artıq daha rahat hala gəldi.

Məhsuldarlıq

Serversiz platformaların hesablama performansını ölçmək çətindir, çünki qismən satıcılar məlumatı gizli saxlamağa meyllidirlər. Əksəriyyət uzaq, serversiz platformalardakı funksiyaların daxili serverlərdə olduğu kimi sürətli işlədiyini, bir neçə qaçılmaz gecikmə probleminə qənaət etdiyini iddia edir.

Ancaq bəzi sübutlar bunun əksini göstərir. Əvvəllər müəyyən bir platformada işləməyən və ya bir müddət işləməyən funksiyaların işə salınması bir qədər vaxt tələb edir. Bu, çox güman ki, onların kodunun bəzi daha az əlçatan saxlama mühitinə köçürülməsi ilə əlaqədardır, baxmayaraq ki - etalonlarda olduğu kimi - əksər satıcılar məlumatların daşınması barədə sizə məlumat verməyəcəklər.

Təbii ki, bundan xilas olmağın bir neçə yolu var. Bunlardan biri, serversiz platformanızın işlədiyi bulud dili üçün xüsusiyyətləri optimallaşdırmaqdır, lakin bu, bu platformaların "çevik" olması iddiasını bir qədər zəiflədir.

Başqa bir yanaşma, performans baxımından kritik proqramların onları "təzə" saxlamaq üçün müntəzəm olaraq işləməsini təmin etməkdir. Bu ikinci yanaşma, əlbəttə ki, serversiz platformaların daha sərfəli olduğu iddiasına bir az əksdir, çünki siz yalnız proqramlarınızın işlədiyi vaxt üçün pul ödəyirsiniz. Bulud provayderləri soyuq başlanğıcları azaltmaq üçün yeni yollar təqdim etdilər, lakin onların bir çoxu FaaS-in orijinal dəyərini pozan "birə miqyas" (birə miqyas) tələb edir.

Soyuq başlanğıc problemi qismən evdə serversiz sistemlər işlətməklə həll edilə bilər, lakin bu, öz hesabına gəlir və yaxşı qaynaqlı komandalar üçün niş seçim olaraq qalır.

Bütün proqramları işlədə bilməzsiniz

Nəhayət, serversiz arxitekturaların ənənəvi modelləri tez bir zamanda əvəz etməməsinin bəlkə də ən mühüm səbəbi onların (ümumiyyətlə) bütün proqramları işlədə bilməməsidir.

Daha doğrusu, xərc baxımından praktiki deyil. Uğurlu monolitiniz yəqin ki, səkkiz şlüz, qırx növbə və onlarla verilənlər bazası nümunəsi ilə birləşdirilmiş dörd onlarla funksiya dəstinə çevrilməməlidir. Bu səbəbdən serversiz yeni inkişaflar üçün daha uyğundur. Faktiki olaraq heç bir mövcud proqram (arxitektura) daşına bilməz. Siz köçə bilərsiniz, ancaq sıfırdan başlamaq lazımdır.

Bu o deməkdir ki, əksər hallarda serversiz platformalar hesablama baxımından intensiv tapşırıqları yerinə yetirmək üçün arxa serverlərə əlavə olaraq istifadə olunur. Bu, uzaqdan hesablamaları yerinə yetirmək üçün vahid bir yol təklif edən digər iki bulud hesablama formasından, konteynerlərdən və virtual maşınlardan çox fərqlidir. Bu, mikroservislərdən serversiz sistemlərə keçidin problemlərindən birini göstərir.

Təbii ki, bu həmişə problem deyil. Öz aparatınızı almadan nəhəng hesablama resurslarından vaxtaşırı istifadə etmək imkanı bir çox təşkilatlara real və davamlı faydalar gətirə bilər. Ancaq bəzi proqramlar daxili serverlərdə, digərləri isə serversiz bulud arxitekturasındadırsa, idarəetmə yeni mürəkkəblik səviyyəsinə keçir.

Yaşasın inqilab?

Bütün bu şikayətlərə baxmayaraq, mən özüm serversiz həllərin əleyhinə deyiləm. Vicdanla. Sadəcə olaraq tərtibatçılar başa düşməlidirlər - xüsusən serversiz modelləri ilk dəfə araşdırırlarsa - bu texnologiya serverləri birbaşa əvəz etmir. Bunun əvəzinə bizim məsləhətlərimizə və resurslarımıza baxın serversiz proqramların yaradılması və bu modeli ən yaxşı şəkildə necə tətbiq edəcəyinə qərar verin.

Mənbə: www.habr.com

Добавить комментарий