Bulud-Doğma Getməyin 5 Çağırışları - Və Onları Həll Etmək üçün

Buludlu bir dünyada yaşayırıq. Bir texnologiya bloqunu oxuya bilərsiniz və ya buludlu texnologiyaların və ya arxitekturaların, məsələn qablar, mikroservislər və serversiz funksiyaların bütün üstünlükləri barədə eşitmədən bir konfransa gedə bilərsiniz.

Bulud doğma getməyinizlə bağlı bütün həyəcanların içərisində miras, monolit tətbiqlərdən buludlu yerli strategiyaya köçdüyünüz zaman ortaya çıxan problemləri gözardı etmək asan ola bilər. Bu çətinlikləri aradan qaldırmaq olar, ancaq bunları buludlu yerli köç strategiyanızın bir hissəsi olaraq müraciət etsəniz.

Bu məqsədlə gəlin ən çox yayılan bulud doğma problemlərinin beşinə, onları aradan qaldırmaq üçün strategiyalara nəzər salaq.

Bulud doğma nədir?

Birincisi, doğma buludun doğrudan da nə demək olduğunu bir söz.

Hər şeyin 'bulud' ətrafındakı şırınga ilə 'bulud doğma' insanlar bəzən müasir hesab etdikləri hər hansı bir texnologiya və ya strategiya mənasını verir. O baxımdan, bulud doğma, başqa bir nisbətən mənasız bir söz kimi başa çatır.

Digər tərəfdən, müəyyən və məhdud məna ilə sərmayə qoyulduqda, buludlu yerli faydalı bir termin və anlayışdır. Bizə, "boş birləşdirilmiş sistemlər" və buludlu yerli hesablama xüsusiyyətləri kimi davamlılığı vurğulayan CNCF tərifini bəyənirik. CNCF tərifi, eyni zamanda texnologiya və memarlığın müəyyən və məhdud bir siyahısını - "konteynerlər, xidmət masaları, mikroservislər, dəyişməz infrastruktur və dekorativ API" - buludlu texnologiyaların nümunələri kimi.

Bu məqalənin məqsədləri üçün, CNCF-in bulud doğma tərifinə sadiq qalacağıq. İndi, yuxarıda göstərilənlər kimi texnologiyalardan və strategiyalardan istifadə edərkən ortaya çıxan xüsusi problemləri müzakirə edək.

Cloud Doğma Qəbuluna Çağırışlar

1) Davamlı məlumat saxlama

Bir çox buludlu texnologiyaların yaydığı ümumi problem, məlumatların davamlı olaraq saxlanmasıdır. Konteynerlər, serversiz funksiyalar və dəyişməz bir infrastruktur modelindən istifadə edərək tətbiqetmələrdə ümumiyyətlə məlumatları öz daxilində daimi olaraq saxlamaq üçün bir yol yoxdur, çünki tətbiq bağlandıqda bütün daxili məlumatlar məhv edilir.

Bu problemi həll etmək, məlumatların saxlanmasına münasibətləri tətbiqlərdən və ana mühitdən ayırmaqla yenidən düşünmək tələb edir. Tətbiq mühitində məlumatları saxlamaq əvəzinə, buludlu yerli iş axınları onu kənarda saxlayır və məlumatları bir xidmət olaraq ifşa edir. Sonra məlumatları əldə etməsi lazım olan iş yükləri, hər hansı digər xidmətə qoşulduğu kimi qoşulun.

Kubernetesdəki həcmlər kimi müxtəlif vasitələrlə tətbiq olunan bu yanaşmanın iki faydası var. Özləri israrlı olaraq hazırlanmamış tətbiqlər üçün davamlı məlumat saxlamasını təmin etməklə yanaşı, birdən çox ərizə və ya xidmət arasında vahid saxlama hovuzunu paylaşmağı da asanlaşdırır.

2) Xidmət inteqrasiyası

Bulud doğma tətbiqetmələr, adətən, fərqli xidmətlər dəstindən ibarətdir. Bu paylanmış təbiət, monolitlərə nisbətən onların genişlənə bilən və çevik olmasına kömək edən şeydir.

Ancaq bu, buludlu yerli iş yüklərində müvəffəqiyyət əldə etmək üçün bir-birinə ardıcıllıqla bağlanmaları lazım olan daha çox hərəkət hissəsinin olduğunu göstərir.

Qismən xidmət inteqrasiyası, buludlara əsaslanan tətbiqlər qurarkən inkişaf etdiricilərə ünvanlanacaq bir problemdir. Hər bir xidmətin düzgün ölçüdə olmasını təmin etməlidirlər; ən yaxşı təcrübə, bir xidmətin birdən çox şey etməsinə çalışmaqdan daha çox, bir iş yükü daxilində hər bir funksionallıq üçün fərqli bir xidmət yaratmaqdır. Sadəcə edə biləcəyiniz üçün xidmətləri əlavə etməmək də vacibdir. Başqa bir xidmət şəklində tətbiqinizə daha mürəkkəbliyi təqdim etməzdən əvvəl, xidmətin müəyyən bir məqsədə irəlilədiyinə əmin olun.

Tətbiqin özünün arxitekturasından başqa effektiv xidmət inteqrasiyası da düzgün yerləşdirmə texnikalarının seçilməsindən asılıdır. Konteynerlər, çox sayda xidmətin yerləşdirilməsinin və onları bir iş yükünə birləşdirməyin ən açıq yoludur, lakin bəzi hallarda serversiz funksiyalar və ya API ilə bağlanmış konteynersiz tətbiqlər daha yaxşı xidmət yerləşdirmə üsulları ola bilər.

3) İdarəetmə və monitorinq

Bir tətbiqin bir hissəsi olaraq nə qədər çox çalışsanız, onları izləmək və idarə etmək bir o qədər çətinləşir. Bu həqiqətdir, yalnız izləməli olduğunuz çox sayda xidmətə görə deyil, tətbiq sağlamlığına zəmanət yalnız xidmətlərin özləri ilə deyil, xidmətlər arasındakı əlaqələri də izləmək tələb olunur.

Buludlu bir mühitdə xidmətlərin müvəffəqiyyətlə izlənilməsi və idarə edilməsi, bir xidmətdəki bir uğursuzluğun digərlərinə necə təsir edəcəyini əvvəlcədən müəyyən edə biləcək bir yanaşma tələb edir, habelə hansı uğursuzluqların ən vacib olduğunu anlayır. Normal və anomaliyanın nə olduğunu müəyyənləşdirmək üçün statik hədləri tətbiqetmə mühitini daima qiymətləndirənlərlə əvəz etmək deməkdir.

4) Bulud bağlanmasının qarşısını almaq

Kilidləmə riskləri bulud üçün tək deyil; demək olar ki, hər hansı bir texnologiya növündən yarana bilər və onilliklər boyu çeviklik üçün təhdiddir. Bununla birlikdə, buludlu yerli tətbiqlər və ya memarlıq baxımından, müəyyən bir bulud təminatçısından və ya xidmətdən çox asılı olmaq təhlükəsi xüsusilə böyük ola bilər, çünki iş yüklərinin müəyyən bir şəkildə tələb oluna biləcəyi şəkildə yerləşdirilə bilər. müəyyən bir buluddan xidmət.

Xoşbəxtlikdən, əvvəlcədən planlaşdırdığınız müddətcə bu bulud kilidləmə riskini azaltmaq kifayət qədər asandır. İcma əsaslı standartlara (OCCI tərəfindən dəstəklənənlər kimi) sadiq qalmaq, iş yüklərinizi bir buluddan digərinə asanlıqla keçirə biləcəyinizi təmin etmək üçün çox şey edəcəkdir. Eyni şəkildə, buludlu doğma yerə getmək üçün hansı bulud xidmətlərindən istifadə edəcəyinizi planlaşdırarkən düşündüyünüz xidmətlərdən hər hansı birinin həqiqətən bənzərsiz və digər buludlardan istifadə edilə bilməyəcəyini düşünün. Etirsinizsə, bu xüsusiyyətlərdən qaçın, çünki onlar sizi bağlaya bilər.

Məsələn, müxtəlif ictimai buludların serversiz hesablama platformaları tərəfindən dəstəklənən xüsusi dillər və çərçivələr bir qədər dəyişir. AWS Lambda, məsələn, Go-u dəstəkləyir, lakin Azure bilmir. Bu səbəbdən, serversiz funksiyalarınızı Go-da yazmağınızdan çəkinəcəksiniz. Əvvəlcə onları qəbul etmək üçün AWS istifadə etməyi planlaşdırsanız da, bu asılılıq gələcəkdə fərqli bir buludda köç etməyi çətinləşdirəcəkdir. Etibar edə biləcəyiniz Java kimi bir dil ilə yapışdırın, hər yerdə dəstəklənəcəkdir.

5) Bulud doğma çatdırılma boru kəmərləri tətbiqlərini qurmaq

Tərifinə görə, buludlu yerli tətbiqlər buludda işləyir. Bulud ya ictimai bulud, ya da özəl ola bilər, təşkilatınızın mühitində yerli və ya hibrid bulud - dəyişməz infrastruktur və bulud idarəetmə prosesləri deməkdir. Lakin bir çox tətbiqi çatdırılma boru kəməri hələ də ənənəvi yerli mühitlərdə işləyir, buludlu olmamış və ya ictimai buludlarda və ya konteynerlərdə işləyən tətbiq və xidmətlər ilə birləşdirilərkən qeyri-adi olur.

Bu bir neçə cəhətdən problem yaradır. Biri odur ki, kodu yerli mühitdən yerli bir yerə tətbiq etmək gecikmələrə səbəb ola bilər. Digəri, yerli inkişaf və sınaq istehsal şərtlərini təqlid etməyi çətinləşdirir ki, bu da gözlənilməz tətbiq davranışına, post-yerləşdirilməsinə səbəb ola bilər.

Bu əngəlləri aradan qaldırmağın ən təsirli yolu CI / CD boru kəmərinizi bulud mühitinə keçirməkdir - dəyişməz infrastrukturdan və buludun ölçülənliliyindən və digər üstünlüklərindən faydalanmaqla yanaşı istehsal şərtlərini təqlid etmək və boru kəmərinizi daha da yaxınlaşdırmaq mümkün qədər - tətbiqlərinizə. Beləliklə, kod yerləşdirildiyi yerə daha yaxın yazılır və yerləşdirilməsini daha sürətli edir. İstehsal eynisi olan test mühitlərini fırlatmaq da asanlaşır.

Tamamilə bulud əsaslı olan inkişaf hər kəs üçün deyil və bəzi inkişaf etdiricilər yerli IDE-lərin bulud əsaslı olanlardan daha yaxından tanışlığını və məsuliyyətliliyini üstün tutsalar da, CI / CD boru kəmərlərinizin bulud mühitində mümkün qədər təmin olunmasına çalışın.

Nəticə

Onu necə bükməyinizə baxmayaraq, buludlu doğma getmək çətindir. Əvvəlki tətbiqetmələrlə müqayisədə, buludlu yerli tətbiqlər daha mürəkkəbdir və işlərin səhv gedə biləcəyi bir çox yer var. Dedi ki, buludlu yerli hesablama problemlərinin öhdəsindən gəlmək olar - və problemləri həll edə biləcək strategiyaları həyata keçirmək yalnız buludlu yerli memarların çatdıra biləcəyi çeviklik, etibarlılıq və miqyaslılığı açmaq üçün açardır.