Бұлт-туғанға барудың 5 қиындықтары - оларды қалай шешуге болады

Біз бұлттан шыққан әлемде өмір сүріп жатырмыз. Технологиялық блогты әрең оқи аласыз немесе конференцияға қатыса аласыз, бұлт технологиялары немесе контейнерлер, микросервистер және серверсіз функциялар сияқты архитектураның барлық артықшылықтары туралы естімейсіз.

Бұлт-отанға көшу туралы толқулардың барлығында, бұлтқа негізделген стратегияға ескі, монолитті қосымшалардан көшкенде туындайтын қиындықтарды елемеуге болады. Бұл қиындықтарды жеңуге болады, бірақ егер сіз оларды жергілікті көшіп-қону стратегиясының бөлігі ретінде қарастырсаңыз ғана.

Осы мақсатта ең жиі кездесетін бұлтқа байланысты бес қиындықты және оларды жеңу стратегияларын қарастырайық.

Бұлтқа негізделген не?

Біріншіден, бұлттың нені білдіретіні туралы сөз.

«Бұлттың» айналасындағы алдауды кейде адамдар «заманауи» деп санайтын кез-келген технологияны немесе стратегияны білдіреді. Бұл тұрғыдан алғанда, бұлт-ана басқа салыстырмалы емес мағынасыз сөз болып шығады.

Екінші жағынан, нақты және шектеулі мағынасы бар инвестициялар жасаған кезде бұлтқа деген пайдалы термин мен ұғым бар. Бізге CNCF анықтамасы ұнайды, бұл «еркін біріктірілген жүйелер» мен бұлтқа негізделген есептеу сипаттамалары ретінде икемділікті көрсетеді. CNCF анықтамасы сонымен қатар технологиялар мен архитектуралардың нақты және шектеулі тізімін - «контейнерлер, қызмет көрсету торлары, микросервистер, өзгермейтін инфрақұрылым және декларативті API» - бұлтты технологиялардың мысалдары ретінде көрсетеді.

Осы мақаланың мақсаттары үшін біз CNCF бұлтқа негізделген анықтаманы ұстанамыз. Енді жоғарыда сипатталғандай технологиялар мен стратегияларды қолданғанда туындайтын нақты қиындықтарды талқылайық.

Бұлтты туындыларды қабылдау мәселелері

1) Деректерді тұрақты сақтау

Көптеген бұлт технологияларының ортақ міндеті - деректерді тұрақты сақтау. Контейнерлер, серверсіз функциялар және өзгермейтін инфрақұрылым моделін қолдана отырып жұмыс істейтін бағдарламалар әдетте деректерді өз ішінде сақтауға мүмкіндік бермейді, өйткені бағдарлама өшірілген кезде барлық ішкі деректер жойылады.

Бұл міндеттерді шешу мәліметтерді қосымшалар мен хост орталарынан шығару арқылы деректерді сақтау тәсілдерін қайта қарастыруды талап етеді. Деректерді қолданба ортасында сақтаудың орнына, бұлтқа негізделген жұмыс процестері оны сыртынан сақтайды және деректерді қызмет ретінде ашады. Содан кейін, деректерге қол жеткізуді қажет ететін жұмыс жүктемелері, кез-келген басқа қызметке қосылғандай қосылу керек.

Кубернеттегі көлемдер сияқты әртүрлі құралдармен іске қосылған бұл тәсілдің екі пайдасы бар. Өздері тұрақтандырылмаған бағдарламалар үшін тұрақты деректерді сақтауды қосумен қатар, бірнеше қосымшалар немесе қызметтер арасында бір сақтау қорын бөлуді жеңілдетеді.

2) Қызметті біріктіру

Бұлтқа негізделген қосымшалар әдетте сәйкес емес қызметтер жиынтығынан тұрады. Бұл бөлінген табиғат монолиттерге қарағанда оларды кеңейтетін және икемді етуге көмектеседі.

Бұл сонымен қатар бұлтқа негізделген жұмыс жүктемелерінде жетістікке жету үшін бір-бірімен үздіксіз қосылу қажет көптеген қозғалмалы бөліктер бар деген сөз.

Сервистік интеграциялау әзірлеушілер үшін бұлтқа негізделген қосымшаларды жасау кезінде шешілетін мәселе болып табылады. Олар әр қызметтің дұрыс мөлшерде болуын қамтамасыз етуі керек; ең жақсы тәжірибе - бұл бір қызметті бірнеше нәрсені жасауға мәжбүр етудің орнына, жүктеме шеңберіндегі функционалдылықтың әр түрі үшін ерекше қызметті құру. Қызметтерді тек мүмкіндігіңізше қосудан аулақ болу керек. Басқа қызмет түріндегі бағдарламаңызға күрделілікті енгізбес бұрын, қызмет белгілі бір мақсатқа жететініне көз жеткізіңіз.

Бағдарламаның архитектурасынан басқа, тиімді қызмет интеграциясы дұрыс орналастыру әдістерін таңдауға да байланысты. Контейнерлер бірнеше қызметтерді орналастырудың және оларды бір жұмыс жүктемесіне біріктірудің ең айқын әдісі болып табылады, бірақ кейбір жағдайларда серверсіз функциялар немесе API-мен қосылған контейнерсіз қосымшалар қызметтерді орналастырудың жақсы әдістері болуы мүмкін.

3) Басқару және мониторинг

Бағдарламаның бөлігі ретінде неғұрлым көп қызметтер істесеңіз, оларды бақылау және басқару соғұрлым қиын болады. Бұл сіз қадағалап отыратын қызметтердің көптігіне ғана емес, сонымен қатар қолданбалардың денсаулығына кепілдік беру қызметтердің өздері ғана емес, қызметтер арасындағы қатынастарды бақылауды қажет ететіндігіне байланысты.

Бұлтты ортада қызметтерді сәтті бақылау және басқару, бір қызметтегі сәтсіздік басқаларға қалай әсер ететінін болжай алатын, сондай-ақ қай сәтсіздіктер өте маңызды екенін түсінетін тәсілді қажет етеді. Қалыпты және аномалия деген не екенін анықтау үшін статикалық табалдырықты қолданбалы ортаны үнемі қайта бағалайтын деңгейге ауыстыруды білдіретін динамикалық базельдеу де өте маңызды.

4) бұлтты бұғаттауды болдырмау

Құлыптау тәуекелі бұлтқа ғана тән емес; олар кез-келген технологияның кез келген түрінен туындауы мүмкін және олар ондаған жылдар бойы ептілікке қауіп төндірді. Алайда, бұлтқа негізделген қосымшалар немесе архитектуралар жағдайында, белгілі бір бұлт провайдеріне немесе қызметке тым тәуелді болу қаупі үлкен болуы мүмкін, өйткені жұмыс жүктемелерін белгілі бір талап ететіндей етіп орналастыруға болады. белгілі бір бұлттағы қызмет.

Бақытымызға орай, бұлтты құлыптау қаупін азайту, егер сіз алдын ала жоспарласаңыз жеткілікті. Қоғамдық стандарттарға сай болу (OCCI ұсынатындар сияқты) сіздің жұмыс жүктемелеріңізді бір бұлттан екіншісіне оңай ауыстыра алу үшін көп нәрсе жасайды. Сол сияқты, бұлтты қызметке көшу үшін қандай бұлтты қызметтерді пайдалануды жоспарласаңыз, қарастырып отырған қызметтердің кез-келгенінде бірегей және басқа бұлттардың қол жетімді емес функциялары бар-жоғын ойлаңыз. Егер солай болса, бұл мүмкіндіктерден аулақ болыңыз, өйткені олар сізге кіре алады.

Мысалы, әртүрлі ашық бұлттардың серверсіз есептеу платформалары қолдайтын нақты тілдер мен жақтаулар біршама өзгереді. Мысалы, AWS Lambda Go функциясын қолдайды, бірақ Azure қолдамайды. Сол себепті, сіздің серверсіз функцияларды Go-ге жазудан аулақ болған жөн. Бастапқыда AWS қолдануды жоспарласаңыз да, бұл тәуелділік болашақта басқа бұлтқа көшуді қиындатады. Java сияқты тілге жабысыңыз, оны барлық жерде сенімді түрде қоя аласыз.

5) Бұлтқа жеткізілетін газ құбырларын құру

Анықтама бойынша, бұлтқа негізделген бағдарламалар бұлтта жұмыс істейді. Бұлт жалпы бұлт немесе жеке болуы мүмкін, бірақ ұйымның ортасында жергілікті немесе гибридті бұлт болуы мүмкін - бұл өзгермейтін инфрақұрылым мен бұлтты басқару процестерін білдіреді. Көптеген қосымшаларды жеткізу құбырлары әлі күнге дейін көбінесе бұлтты емес немесе көпшіліктің бұлтында немесе контейнерлерде жұмыс істейтін қосымшалармен және қызметтермен біріктірілген дәстүрлі жергілікті ортада жұмыс істейді.

Бұл бірнеше жағынан қиындық тудырады. Біреуі - кодты жергілікті ортадан жергілікті жерде қолдану кешіктірулерді тудыруы мүмкін. Тағы біреуі - жергілікті деңгейде дамыту және тестілеу өндіріс жағдайларын эмуляциялауды қиындатады, бұл күтпеген жерден қолданбалы әрекетке, орналастырудан кейінгі жағдайға әкелуі мүмкін.

Бұл кедергілерді жеңудің ең тиімді әдісі - бұл сіздің CI / CD құбырыңызды бұлтты ортаға жылжыту - бұл өзгермейтін инфрақұрылым мен бұлттың ауқымдылығы мен басқа да артықшылықтарын ғана емес, сонымен қатар өндіріс жағдайларын еліктеп, құбырыңызды жақындатуға мүмкіндік береді. мүмкіндігінше - қолданбаларға. Осылайша, код орналастырылған жерге жақын орналасады, бұл оны тезірек шығарады. Сондай-ақ өндірістік орталарға ұқсас сынақ орталарын айналдыру оңайырақ болады.

Толығымен бұлтқа негізделген даму барлығына бірдей бола бермейді және кейбір әзірлеушілер жергілікті IDE-дің бұлтқа негізделгеннен гөрі таныс және ықыласты болуын қалайды, CI / CD құбырларыңыздың бұлт ортасында мүмкіндігіне қарай жұмыс жасауын қамтамасыз етіңіз.

Қорытынды

Қанша айналдырсаңыз да, бұлтқа шығу қиын. Бұрынғы қолданбалармен салыстырғанда, бұлтқа негізделген қосымшалар неғұрлым күрделі және көптеген мәселелер орын алуы мүмкін. Бұлтқа негізделген компьютерлік қиындықтарды жеңуге болады және проблемаларды шеше алатын стратегияларды іске асыру ептілік, сенімділік пен масштабты ашудың кілті болып табылады, бұлтты сәулетшілер ғана жеткізе алады.