Патека 04Лекција 5 / 10

Дизајнирајте софтвер за cloud native околина

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

Практично12 минПрегледано

Објавува Како пишуваме

Проверете го разбирањетоПлатформа заменува извршувач на извештаи по неуспех. Што го прави повторниот обид безбеден?Направете ја вежбата
Платформа заменува извршувач на извештаи по неуспех. Што го прави повторниот обид безбеден?

Што ќе научите

  • Разликувајте пакување во контејнер од cloud native однесување.
  • Препознајте ризици со состојбата, повторните обиди и замената во генерирана услуга.
  • Одредете договорени правила на платформата што агентите и луѓето може да ги проверат.

Одредете го потребното однесување

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

Почнете со измислена услуга за извештаи. AI-алатка создава крајна точка, извршувач (worker) и слика на контејнер. Демонстрацијата создава точен PDF. Пред продукција, тимот мора да одговори на друго прашање: што се случува кога платформата ќе го замени извршувачот за време на задача?

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

Одделете го процесот од трајната состојба

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

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

ОбластПрашање за услугата за извештаи
СостојбаКои записи мора да останат по замена на процесот?
КонфигурацијаКако истиот артефакт работи во секоја околина?
ИдентитетКој идентитет на услуга може да ја чита задачата и да го запише нејзиниот резултат?
ИсправностМоже ли извршувачот да прифаќа работа и може ли да ја заврши?
ЗапирањеШто се случува со преземена задача кога извршувач ќе запре?
КапацитетКое ограничување се достигнува прво: извршувачите, базата, складиштето или друга услуга?

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

Осмислете ги повторните обиди пред да додадете извршувачи

Да претпоставиме дека извршувачот зачувува PDF, па запира пред да ја потврди задачата. Редицата повторно ја доставува задачата. Вториот обид не смее повторно да му наплати на клиентот или да испрати противречни пораки за завршување.

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

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

Направете ја посакуваната состојба погодна за преглед

Декларативна конфигурација го наведува предвиденото распоредување. Контролер работи за да ја одржува таа состојба. На пример, Kubernetes Deployment управува со реплики на апликација и контролирани ажурирања. Апликацијата сепак мора правилно да постапува при замена.

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

Изберете платформа со која тимот може да управува

Cloud native не бара секоја апликација да стане збирка микросервиси. Модуларна апликација на управувана извршна околина може да ги исполни своите барања. Повеќе услуги додаваат повеќе интерфејси, одлуки за распоредување и оперативна работа.

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

Направете ја вежбата

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

Преземи работен лист (Markdown)
Проверете го разбирањето ↑

Продолжете со учење

Извори и дополнително читање

Поврзано читање од Taiga

Претходна лекција: Одредете ја инфраструктурата надвор од прототипот