ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Антон Вајс, оснивач и директор Отомато Софтваре-а, једног од покретача и инструктора прве ДевОпс сертификације у Израелу, говорио је на прошлогодишњем ДевОпсДаис Москва о теорији хаоса и главним принципима хаос инжењеринга, а такође је објаснио како функционише идеална ДевОпс организација будућности.

Припремили смо текстуалну верзију извештаја.



Добро јутро

ДевОпсДаис у Москви другу годину заредом, ово ми је други пут на овој бини, многи од вас су у овој просторији по други пут. Шта то значи? То значи да ДевОпс покрет у Русији расте, умножава се, и што је најважније, то значи да је дошло време да се прича о томе шта је ДевОпс у 2018. години.

Дигните руке који мисле да је ДевОпс већ професија у 2018. години? Има таквих. Да ли има ДевОпс инжењера у просторији чији опис посла каже „ДевОпс инжењер“? Има ли ДевОпс менаџера у просторији? Нема таквог. ДевОпс архитекте? Такође не. Недовољно. Да ли је заиста тачно да нико не каже да је ДевОпс инжењер?

Дакле, већина вас мисли да је ово анти-образац? Да таква професија не треба да постоји? Можемо да мислимо шта год желимо, али док размишљамо, индустрија се свечано креће напред уз звук ДевОпс трубе.

Ко је чуо за нову тему под називом ДевДевОпс? Ово је нова техника која омогућава ефикасну сарадњу између програмера и девопс-а. И не тако ново. Судећи по Твитеру, о томе су већ почели да причају пре 4 године. И до сада интересовање за ово расте и расте, односно постоји проблем. Проблем треба решити.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Ми смо креативни људи, не опуштамо се само опуштено. Кажемо: ДевОпс није довољно свеобухватна реч, још увек му недостају све врсте различитих, занимљивих елемената. И идемо у наше тајне лабораторије и почињемо да производимо занимљиве мутације: ДевТестОпс, ГитОпс, ДевСецОпс, БизДевОпс, ПродОпс.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Логика је гвоздена, зар не? Наш систем испоруке није функционалан, наши системи су нестабилни и наши корисници су незадовољни, немамо времена да избацимо софтвер на време, не уклапамо се у буџет. Како ћемо све ово да решимо? Смислићемо нову реч! Завршиће се са "Опс" и проблем је решен.

Зато ја зовем овај приступ - "Упс, и проблем је решен."

Све ово одлази у други план ако се подсетимо зашто смо све ово смислили. Смислили смо целу ову ДевОпс ствар како бисмо испоруку софтвера и сопствени рад у овом процесу учинили што несметаним, безболнијим, ефикаснијим и што је најважније, пријатнијим.

ДевОпс је израстао из бола. И уморни смо од патње. А да би се све ово десило, ослањамо се на зимзелене праксе: ефикасну сарадњу, праксе протока, и што је најважније, системско размишљање, јер без тога ниједан ДевОпс не функционише.

Шта је систем?

А ако већ говоримо о системском размишљању, хајде да се подсетимо шта је систем.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Ако сте револуционарни хакер, онда је за вас систем очигледно зао. То је облак који се надвија над вама и тера вас да радите ствари које не желите.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Са становишта системског мишљења, систем је целина која се састоји од делова. У том смислу, свако од нас је систем. Организације у којима радимо су системи. А оно што ти и ја градимо зове се систем.

Све ово је део једног великог друштвено-технолошког система. И само ако схватимо како овај друштвено-технолошки систем функционише заједно, тек тада ћемо моћи заиста да оптимизујемо нешто по овом питању.

Из перспективе системског размишљања, систем има разна интересантна својства. Прво, састоји се од делова, што значи да његово понашање зависи од понашања делова. Штавише, сви његови делови су такође међусобно зависни. Испоставља се да што више делова систем има, то је теже разумети или предвидети његово понашање.

Са становишта понашања постоји још једна занимљива чињеница. Систем може да уради нешто што ниједан његов појединачни део не може.

Као што је рекао др Расел Акоф (један од оснивача системског размишљања), ово је прилично лако доказати мисаоним експериментом. На пример, ко у просторији зна да пише код? Има много руку, и то је нормално, јер је то један од главних захтева за нашу професију. Да ли знате да пишете, али да ли ваше руке могу писати код одвојено од вас? Има људи који ће рећи: "Не пишу моје руке, мој мозак пише код." Може ли ваш мозак писати код одвојено од вас? Па, вероватно не.

Мозак је невероватна машина, не знамо ни 10% како тамо функционише, али не може да функционише одвојено од система који је наше тело. А ово је лако доказати: отвори лобању, извади мозак, стави га пред компјутер, пусти га да напише нешто једноставно. „Здраво, свете“ у Пајтону, на пример.

Ако систем може да уради нешто што ниједан његов део не може да уради засебно, онда то значи да његово понашање није одређено понашањем његових делова. Чиме се онда одређује? Одређује се интеракцијом између ових делова. И сходно томе, што је више делова, што су интеракције сложеније, то је теже разумети и предвидети понашање система. И то такав систем чини хаотичним, јер свака, чак и најбезначајнија, невидљива промена у било ком делу система може довести до потпуно непредвидивих резултата.

Ову осетљивост на почетне услове први је открио и проучавао амерички метеоролог Ед Лоренц. Касније је то названо „ефекат лептира“ и довело је до развоја покрета научне мисли под називом „теорија хаоса“. Ова теорија је постала једна од главних промена парадигме у науци 20. века.

Теорија хаоса

Људи који проучавају хаос себе називају хаоолозима.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Заправо, разлог за овај извештај је био то што сам, радећи са сложеним дистрибуираним системима и великим међународним организацијама, у једном тренутку схватио да се тако осећам. Ја сам хаосолог. Ово је у основи паметан начин да се каже: „Не разумем шта се овде дешава и не знам шта да радим у вези с тим.“

Мислим да се и многи од вас често тако осећају, па сте и ви хаоолози. Позивам вас у цех хаосолога. Системи које ћемо ви и ја, драги колеге хаосолози, проучавати називају се „сложени адаптивни системи“.

Шта је прилагодљивост? Прилагодљивост значи да се индивидуално и колективно понашање делова у таквом адаптивном систему мења и самоорганизује, реагујући на догађаје или ланце микро-догађаја у систему. Односно, систем се прилагођава променама кроз самоорганизацију. А ова способност самоорганизовања заснива се на добровољној, потпуно децентрализованој сарадњи слободних аутономних агената.

Још једно интересантно својство оваквих система је да су они слободно скалабилни. Оно што би нас, као хаосологе-инжењере, несумњиво требало да занима. Дакле, ако бисмо рекли да је понашање сложеног система одређено интеракцијом његових делова, шта би онда требало да нас занима? Интеракција.

Постоје још два занимљива налаза.
ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Прво, разумемо да се сложен систем не може поједноставити поједностављивањем његових делова. Друго, једини начин да се поједностави сложен систем је поједностављивање интеракција између његових делова.

Како комуницирамо? Ви и ја смо сви делови великог информационог система званог људско друштво. Ми комуницирамо преко заједничког језика, ако га имамо, ако га пронађемо.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Али сам језик је сложен систем прилагођавања. Сходно томе, да бисмо ефикасније и једноставније комуницирали, потребно је да направимо неку врсту протокола. Односно, неки низ симбола и радњи који ће размену информација међу нама учинити једноставнијом, предвидљивијом, разумљивијом.

Хоћу да кажем да се у свему могу пратити трендови ка сложености, ка прилагодљивости, ка децентрализацији, ка хаосу. И у системима које ти и ја градимо, и у оним системима чији смо део.

И да не будемо неосновани, погледајмо како се мењају системи које стварамо.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Чекао си ову реч, разумем. Налазимо се на ДевОпс конференцији, данас ће се ова реч чути око сто хиљада пута и онда ћемо је сањати ноћу.

Микросервис је прва софтверска архитектура која се појавила као реакција на ДевОпс праксе, а која је дизајнирана да учини наше системе флексибилнијим, скалабилнијим и обезбеди континуирану испоруку. Како она то ради? Смањењем обима услуга, смањењем обима проблема које ове услуге обрађују, смањењем времена испоруке. Односно, смањујемо и упрошћавамо делове система, повећавамо њихов број, а сходно томе се стално повећава сложеност интеракција између ових делова, односно настају нови проблеми које морамо да решавамо.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Микросервис није крај, микросервис је, генерално, већ јуче, јер долази без сервера. Сви сервери су изгорели, нема сервера, нема оперативних система, само чисти извршни код. Конфигурације су одвојене, стања су одвојена, све контролишу догађаји. Лепота, чистоћа, тишина, нема дешавања, ништа се не дешава, потпуни ред.

Где је сложеност? Тешкоћа је, наравно, у интеракцијама. Колико једна функција може да уради сама? Како је у интеракцији са другим функцијама? Редови порука, базе података, балансери. Како поново креирати неки догађај када је дошло до квара? Много питања а мало одговора.

Микроуслуге и без сервера су оно што ми штреберски хипстери називамо Цлоуд Нативе. Све је у вези са облаком. Али облак је такође инхерентно ограничен у својој скалабилности. Навикли смо да о њему размишљамо као о дистрибуираном систему. У ствари, где живе сервери провајдера облака? У центрима података. То јест, овде имамо неку врсту централизованог, веома ограниченог, дистрибуираног модела.

Данас схватамо да Интернет ствари више нису само велике речи да нас чак и према скромним предвиђањима чекају милијарде уређаја повезаних на Интернет у наредних пет до десет година. Огромна количина корисних и бескорисних података који ће бити спојени у облак и отпремљени из облака.

Облак неће потрајати, тако да све више говоримо о нечему што се зове рубно рачунарство. Или ми се такође свиђа дивна дефиниција „рачунања магле“. Она је обавијена мистицизмом романтизма и мистерије.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Фог цомпутинг. Поента је да су облаци централизоване накупине воде, паре, леда и камења. А магла су капљице воде које су расуте око нас у атмосфери.

У парадигми магле, већину посла обављају ове капљице потпуно аутономно или у сарадњи са другим капљицама. И окрећу се облаку тек када су стварно притиснути.

То је, опет, децентрализација, аутономија и, наравно, многи од вас већ разумеју куда све ово иде, јер не можете говорити о децентрализацији без помињања блокчејна.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Има оних који верују, то су они који су уложили у криптовалуте. Има оних који верују, али се плаше, као ја, на пример. А има и оних који не верују. Овде можете третирати другачије. Постоји технологија, нова непозната ствар, постоје проблеми. Као и свака нова технологија, она поставља више питања него што даје одговоре.

Хипе око блоцкцхаина је разумљиво. Златна грозница на страну, сама технологија има изузетна обећања за светлију будућност: више слободе, више аутономије, дистрибуирано глобално поверење. Шта не треба?

Сходно томе, све више инжењера широм света почиње да развија децентрализоване апликације. А ово је моћ која се не може одбацити једноставним речима: „Ахх, блокчејн је само лоше имплементирана дистрибуирана база података.“ Или како скептици воле да кажу: „Не постоје праве апликације за блоцкцхаин.“ Ако размислите о томе, пре 150 година исто су говорили о струји. И чак су на неки начин били у праву, јер оно што данас омогућава електрична енергија није било могуће у 19. веку.

Узгред, ко зна какав је лого на екрану? Ово је Хиперледгер. Ово је пројекат који се развија под покровитељством Тхе Линук Фоундатион и укључује скуп блоцкцхаин технологија. Ово је заиста снага наше заједнице отвореног кода.

Цхаос Енгинееринг

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Дакле, систем који развијамо постаје све сложенији, све хаотичнији и све прилагодљивији. Нетфлик је пионир микросервисних система. Они су међу првима то схватили, развили су сет оруђа које су назвали Симиан Арми, од којих је најпознатији био Хаос мајмун. Дефинисао је оно што је постало познато као "принципи инжењеринга хаоса".

Иначе, у процесу рада на извештају, чак смо и превели овај текст на руски, па идите на линк, читати, коментарисати, грдити.

Укратко, принципи инжењеринга хаоса кажу следеће. Сложени дистрибуирани системи су инхерентно непредвидиви и инхерентни грешкама. Грешке су неизбежне, што значи да морамо да прихватимо ове грешке и да радимо са овим системима на потпуно другачији начин.

Ми сами морамо да покушамо да уведемо ове грешке у наше производне системе како бисмо тестирали наше системе на ту исту прилагодљивост, ову саму способност за самоорганизацију, за опстанак.

И то све мења. Не само како покрећемо системе у производњу, већ и како их развијамо, како их тестирамо. Нема процеса стабилизације или замрзавања кода, напротив, постоји сталан процес дестабилизације. Покушавамо да убијемо систем и видимо да он наставља да опстаје.

Протоколи за интеграцију дистрибуираног система

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Сходно томе, ово захтева да се наши системи некако промене. Да би постали стабилнији, потребни су им неки нови протоколи за интеракцију између њихових делова. Па да се ови делови договоре и дођу до некаквог самоорганизовања. И појављују се разне врсте нових алата, нових протокола, које ја називам „протоколи за интеракцију дистрибуираних система“.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

о чему ја причам? Прво, пројекат Опентрацинг. Неки покушавају да креирају општи дистрибуирани протокол за праћење, који је апсолутно неопходан алат за отклањање грешака у сложеним дистрибуираним системима.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

даље - Опен Полици Агент. Кажемо да не можемо да предвидимо шта ће се десити са системом, односно треба повећати његову уочљивост, уочљивост. Опентрацинг припада породици алата који нашим системима дају видљивост. Али потребна нам је опсервабилност да бисмо утврдили да ли се систем понаша онако како очекујемо или не. Како дефинишемо очекивано понашање? Дефинисањем неке политике, неког скупа правила. Пројекат Опен Полици Агент ради на дефинисању овог скупа правила широм спектра у распону од приступа до алокације ресурса.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Као што смо рекли, наши системи су све више вођени догађајима. Без сервера је одличан пример система вођених догађајима. Да бисмо преносили догађаје између система и пратили их, потребан нам је неки заједнички језик, неки заједнички протокол како разговарамо о догађајима, како их преносимо једни другима. Тако се зове пројекат Цлоудевентс.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Стални ток промена који преплављује наше системе, непрестано их дестабилизујући, непрекидан је ток софтверских артефаката. Да бисмо одржали овај стални ток промена, потребан нам је некакав заједнички протокол кроз који можемо да причамо шта је софтверски артефакт, како се тестира, коју проверу је прошао. Тако се зове пројекат Графеас. То јест, уобичајени протокол метаподатака за софтверске артефакте.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

И коначно, ако желимо да наши системи буду потпуно независни, прилагодљиви и самоорганизовани, морамо им дати право на самоидентификовање. Пројекат се зове спиффе То је управо оно што он ради. Ово је такође пројекат под окриљем Цлоуд Нативе Цомпутинг Фоундатион.

Сви ови пројекти су млади, свима им је потребна наша љубав, наша валидност. Ово је све отвореног кода, наше тестирање, наша имплементација. Они нам показују куда технологија иде.

Али ДевОпс се никада није првенствено бавио технологијом, одувек је био сарадња међу људима. И, сходно томе, ако желимо да се мењају системи које развијамо, онда и ми сами морамо да се мењамо. У ствари, ионако се мењамо, немамо много избора.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Постоји диван књига Британска списатељица Рејчел Ботсман, у којој пише о еволуцији поверења кроз људску историју. Она каже да је у почетку, у примитивним друштвима, поверење било локално, односно веровали смо само онима које смо лично познавали.

Затим је уследио веома дуг период – мрачно време када је поверење било централизовано, када смо почели да верујемо људима које не познајемо на основу чињенице да припадамо истој јавној или државној институцији.

И то је оно што видимо у нашем савременом свету: поверење постаје све више дистрибуирано и децентрализовано, а заснива се на слободи токова информација, на доступности информација.

Ако размислите о томе, управо ова приступачност, која чини ово поверење могућим, је оно што ви и ја спроводимо. То значи да се и начин на који сарађујемо и начин на који то радимо морају променити, јер старе централизоване, хијерархијске ИТ организације више не функционишу. Почињу да умиру.

Основе организације ДевОпс

Идеална ДевОпс организација будућности је децентрализован, прилагодљив систем састављен од аутономних тимова, од којих се сваки састоји од аутономних појединаца. Ови тимови су раштркани широм света, ефикасно сарађујући једни са другима користећи асинхрону комуникацију, користећи веома транспарентне комуникационе протоколе. Веома лепо, зар не? Веома лепа будућност.

Наравно, ништа од овога није могуће без културних промена. Морамо имати трансформационо лидерство, личну одговорност, унутрашњу мотивацију.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Ово је основа ДевОпс организација: транспарентност информација, асинхроне комуникације, трансформационо лидерство, децентрализација.

Сагорети

Системи чији смо део и они које градимо су све хаотичнији, а нама људима је тешко да се носимо са овом мишљу, тешко је одустати од илузије контроле. Трудимо се да их и даље контролишемо, а то често доводи до сагоревања. Ово говорим из сопственог искуства, и ја сам се опекао, такође су ме онеспособили непредвиђени пропусти у производњи.

ДевОпс и хаос: Испорука софтвера у децентрализованом свету

Изгарање се јавља када покушавамо да контролишемо нешто што је инхерентно неконтролисано. Када прегоримо, све губи смисао јер губимо жељу да урадимо нешто ново, постајемо дефанзивни и почињемо да бранимо оно што имамо.

Инжењерска професија је, како често волим да се подсетим, пре свега креативна професија. Ако изгубимо жељу да нешто створимо, онда се претварамо у пепео, претварамо се у пепео. Људи изгоре, читаве организације изгоре.

По мом мишљењу, само прихватање стваралачке снаге хаоса, само изградња сарадње по његовим принципима је оно што ће нам помоћи да не изгубимо оно што је добро у нашој професији.

То је оно што вам желим: да волите свој посао, да волите оно што радимо. Овај свет се храни информацијама, ми имамо част да их хранимо. Па хајде да проучавамо хаос, будимо хаозолози, хајде да донесемо вредност, створимо нешто ново, па, проблеми су, као што смо већ сазнали, неизбежни, а када се појаве, једноставно ћемо рећи „Опс!“

Шта друго него хаос мајмун?

У ствари, сви ови инструменти су тако млади. Исти Нетфлик је направио алате за себе. Направите сопствене алате. Прочитајте принципе инжењеринга хаоса и живите у складу са тим принципима уместо да покушавате да пронађете друге алате које је неко други већ направио.

Покушајте да разумете како се ваши системи кваре и почните да их разбијате и видите како се држе. Ово је прво. И можете тражити алате. Постоје разни пројекти.

Нисам баш разумео тренутак када сте рекли да се систем не може поједноставити поједностављивањем његових компоненти и одмах прешли на микросервисе, који поједностављују систем поједностављивањем самих компоненти и компликовањем интеракција. То су у суштини два дела која су у супротности један са другим.

Тако је, микросервисе су генерално веома контроверзна тема. У ствари, поједностављивање делова повећава флексибилност. Шта пружају микросервис? Дају нам флексибилност и брзину, али нам свакако не дају једноставност. Они повећавају тежину.

Дакле, у филозофији ДевОпс-а, ​​микросервис није тако добра ствар?

Свако добро има и обрнуту страну. Предност је у томе што повећава флексибилност, омогућавајући нам да брже вршимо промене, али повећава сложеност, а самим тим и крхкост целог система.

Ипак, шта је више наглашено: на поједностављењу интеракције или на поједностављивању делова?

Акценат је, наравно, на поједностављивању интеракција, јер ако ово посматрамо са становишта како радимо са вама, онда, пре свега, треба да обратимо пажњу на поједностављивање интеракција, а не на поједностављивање рада сваког од нас посебно. Јер поједностављивање рада значи претварање у роботе. Овде у Мекдоналдсу ради нормално када имате упутства: овде ставите пљескавицу, овде сипате сос. Ово уопште не функционише у нашем креативном раду.

Да ли је тачно да све што сте рекли живи у свету без конкуренције, а хаос је тако љубазан, и да у овом хаосу нема контрадикторности, нико никога не жели да једе или убије? Како би требало да прођу конкуренција и ДевОпс?

Па зависи о каквој конкуренцији је реч. Да ли је реч о конкуренцији на радном месту или конкуренцији између компанија?

О конкуренцији услуга које постоје јер услуге нису више предузећа. Стварамо нови тип информационог окружења и ниједно окружење не може да живи без конкуренције. Конкуренција је свуда.

Исти Нетфликс, узимамо их за узор. Зашто су смислили ово? Зато што су морали да буду конкурентни. Ова флексибилност и брзина кретања су управо веома конкурентни захтеви уноси хаос у наше системе. Односно, хаос није нешто што свесно радимо зато што то желимо, то је нешто што се дешава зато што свет то захтева. Само се морамо прилагодити. А хаос, управо је резултат такмичења.

Да ли то значи да је хаос одсуство циљева, такорећи? Или они циљеви које не желимо да видимо? Ми смо у кући и не разумемо циљеве других. Конкуренција је, у ствари, последица тога што имамо јасне циљеве и знамо где ћемо завршити у сваком следећем тренутку. Ово је, са моје тачке гледишта, суштина ДевОпс-а.

Такође погледајте питање. Мислим да сви имамо исти циљ: да преживимо и урадимо то
највеће задовољство. А такмичарски циљ сваке организације је исти. Опстанак се често дешава кроз такмичење, ту ништа не можете учинити.

Овогодишња конференција ДевОпсДаис Москва одржаће се 7. децембра у Технополису. Пријаве за извештаје примамо до 11. новембра. Pišite нас ако желите да говорите.

Регистрација учесника је отворена, улазнице коштају 7000 рубаља. Придружи нам се!

Извор: ввв.хабр.цом

Додај коментар