Објашњена плаво-зелена примена и њена улога у ДевОпс-у

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

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

Плаво-зелена примена: Преглед

Плаво-зелена примена је приступ примени софтвера који смањује време застоја и ризик од нових верзија софтвера стварањем два идентична окружења: активно (плаво) и неактивно (зелено).

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

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

Извор: доцс.авс.амазон.цом

ДевОпс контекст

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

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

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

Кључни принципи плаво-зелене примене

#1. Два идентична окружења

Плаво-зелена примена захтева стварање два идентична окружења. То значи идентично са становишта података и процеса. Једна је активна (плава), а друга неактивна (зелена).

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

#2. Траффиц Свитцх

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

Пребацивање је тренутно. Сво распоређивање је сада ствар прошлости. Не постоји прозор застоја. Корисници не морају ништа да раде да би дошли до новог окружења. Преусмеравају се аутоматски, и то све у исто време.

Извор: авс.амазон.цом

#3. Рапид Роллбацк

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

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

#4. Аутоматско тестирање

Аутоматско тестирање је кључни аспект плаво-зелене примене. Осигурава да је нова верзија софтвера темељно тестирана пре него што се примени у активно окружење.

  Како научити јапански уз мангу

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

Недостатак аутоматизованих тестова ће вас драматично успорити. Време потребно за тестирање новог (зеленог) окружења биће толико дуго да ће у тренутку када будете могли да пређете на зелено окружење, оно већ бити „престаро“ из перспективе животног циклуса развоја софтвера.

#5. Континуирана испорука

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

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

Типични животни циклус

Платформа која покреће плаво-зелену примену има свој специфични животни циклус корака и процеса за покретање. Ово је оно од чега се обично састоји:

  • Направите нову верзију софтвера. Ово укључује компајлирање кода, покретање аутоматизованих тестова и креирање артефакта који се може применити.
  • Следећа фаза је где постављате нову верзију софтвера у неактивно (зелено) окружење. Ово укључује подешавање окружења, примену артефакта и конфигурисање свих потребних подешавања.
  • Када се нова верзија софтвера примени у зеленом окружењу, покрените аутоматизоване тестове да бисте били сигурни да нова верзија функционише исправно. Ово укључује функционалне тестове, регресионе тестове, интеграцијске тестове и, ако сте изванредни, чак и тестове перформанси.
  • Пребаците саобраћај из активног (плавог) окружења у неактивно (зелено) окружење. Ово укључује ажурирање балансера оптерећења или ДНС подешавања како би се саобраћај усмерио на зелено окружење. Наравно, желите да се ово уради путем аутоматизованих процеса.
  • Када се пребацивање заврши, пратите апликацију да бисте били сигурни да исправно функционише. Ово укључује праћење грешака, проблема са перформансама и других проблема.
  • Овај корак је опциони и не желите да га достижете пречесто. Али ако неко открије било какве значајне проблеме, пребаците саобраћај назад у плаво окружење да бисте извршили тренутно враћање. Опет, без икаквих застоја или искључења везаних за производне кориснике. Само ажурирајте балансирање оптерећења или ДНС подешавања да бисте усмерили саобраћај на плаво окружење.
  • Када решите те проблеме и будете спремни да се поново вратите на нову верзију, вратите саобраћај на зелено окружење. Па опет – ажурирајте балансирање оптерећења или ДНС подешавања да бисте усмерили саобраћај назад у зелено окружење.
  • Коначно, када је нова верзија софтвера стабилна и исправно функционише, поништите стару верзију софтвера која ради у плавом окружењу. Требаће вам да направите још једну нову верзију вашег система.
  • Имплементација ЦИ/ЦД цевовода

    Имплементација Блуе-Греен имплементације у ДевОпс ЦИ/ЦД цевовод биће природан процес.

    Јак предуслов је да већ имате та два идентична окружења. Пошто ће ово бити аутоматизован процес, можете користити инфраструктуру као алат за кодирање као што је АВС ЦлоудФорматион или чак агностички за облаке Терраформ скрипте за креирање/поновно креирање/ажурирање окружења за вас у оквиру аутоматизованих цевовода.

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

    Процес пребацивања саобраћаја можете аутоматизовати помоћу алата као што су АВС Еластиц Лоад Баланцер или НГИНКС. Ово укључује ажурирање балансера оптерећења или ДНС подешавања како би се саобраћај усмерио у зелено окружење када је нова верзија софтвера тестирана и спремна.

      Како искључити плаве крпеље у ВхатсАпп-у

    Следећи део слагалице је праћење. За то користите алате попут АВС ЦлоудВатцх, Нев Релицили Датадог.

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

    Најбоље праксе плаво-зелене примене

    Занима вас како најбоље искористити плаво-зелену примену? Ево неколико савета који долазе из праксе.

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

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

    Користите Цанари Аналисис Тоол

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

    Користите алат за анализу канаринца као нпр Каиента или Спиннакер да анализира перформансе нове верзије софтвера у стварном окружењу. Ово укључује упоређивање перформанси нове верзије софтвера са перформансама старе верзије софтвера.

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

    Користите балансатор оптерећења са проверама здравља

    Користите балансатор оптерећења као што је АВС Еластиц Лоад Баланцер или НГИНКС са проверама здравља да бисте били сигурни да је саобраћај усмерен само на здраве инстанце. Ово осигурава да апликација остаје високо доступна и да је време застоја сведено на минимум.

    Користите план за враћање уназад са аутоматским враћањем

    Имајте план враћања на место у случају проблема и аутоматизујте процес враћања користећи алат као што је АВС ЦодеДеплои или Оцтопус Деплои. Ово осигурава да је време застоја сведено на минимум и да апликација остаје веома доступна.

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

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

    Изазови са плаво-зеленом применом

    Имплементација плаво-зелене имплементације може представљати неке изазове за развојне тимове. Ево неких типичних изазова:

  • Постављање и управљање два идентична окружења може бити сложено и дуготрајно. Ово захтева стручност у инфраструктури као код алата као што су Терраформ или ЦлоудФорматион. Морате да имате виши развојни тим који је способан да се носи са таквим техничким изазовима.
  • Приликом постављања нове верзије софтвера, важно је осигурати да се шема базе података исправно ажурира. Ово може бити изазовно, посебно ако је шема базе података сложена. Потребни су вам чврсти процеси постављања базе података који могу аутоматски и поуздано да управљају активностима ажурирања шеме.
  • Анализа перформанси нове верзије софтвера у стварном окружењу може бити изазовна. Ово захтева стручност у алатима за анализу канараца као што су Каиента или Спиннакер.
  • Примена прекидача функција може бити изазовна, посебно ако апликација има велики број функција. Ово захтева пажљиво планирање и координацију између развојних тимова.
  • Тестирање нове верзије софтвера у стварном окружењу може бити изазовно, посебно ако апликација има велики број корисника или сервера. Морате да имате аутоматизоване тестне случајеве што је више могуће. Такође, ваши рутински процеси ће на крају укључити доста координације између тимова за развој и тестирање.
  • Имати добро решење за праћење је веома ретка стварност, али за исправне ДевОпс операције, ово је неопходно. Чим буде изводљиво, идите и уложите време у изградњу тог решења уз проверене услуге (АВС ЦлоудВатцх, Нев Релиц, Датадог).
  •   Како креирати динамички дефинисани опсег у Екцел-у

    Разлика између плаво-зелене и канарске примене

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

    Плаво-зелена примена значи два окружења (плава и зелена). Али у исто време, ова два окружења су стално синхронизована у погледу података. Када се нова верзија тестира и сматра спремном, саобраћај се пребацује из активног окружења у неактивно окружење, што га чини новим активним окружењем. Не трошите време на примену новог кода и нема застоја у производњи. Сви корисници продукције раде све време на тренутно активном окружењу, а не примећују ни прекидач.

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

    Дакле, који је бољи?

    Одговор консултанта „зависи“ овде највише одговара, колико год подло звучало.

    Ако је приоритет вашег система висока доступност изнад свега, онда ће плаво-зелена примена бити ваш избор.

    Ако је ваша јака жеља прилично бржа повратна информација и контролисаније (иако спорије) увођење нове верзије система, онда Цанари примена има предности у односу на плаво-зелену.

    Важно је да су обојица довољно агилни да себе сматрају довољно добрима за озбиљно креирање ДевОпс система.

    Студије случаја

    Нетфлик користи плаво-зелену примену за примену нових верзија своје услуге стриминга. Користећи плаво-зелену примену, Нетфлик може да примени нове верзије своје услуге без утицаја на корисничко искуство. У ствари, Нетфлик такође користи Цанари примену у другим случајевима, тако да није нереално комбиновати различите приступе ДевОпс имплементацији под истим кровом.

    Такође, Амазон и Етси користе плаво-зелену примену за примену нових верзија своје платформе за е-трговину.

    Други случај је ЛинкедИн који користи плаво-зелену примену за примену нових верзија своје платформе за друштвено умрежавање.

    На крају, али не и најмање важно, ИБМ користи плаво-зелену примену за примену нових верзија своје платформе у облаку.

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

    Завршне речи

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

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

    Затим погледајте често постављана питања и одговоре на ДевОпс интервјуу.