Пројектујте софтвер за cloud native окружење
ЗавршеноПовежите поновљиву инфраструктуру, заменљиве процесе, трајно стање и видљиво понашање. Процените cloud native дизајн шире од паковања у контејнер.
Објављује TaigaКако пишемо
Проверите разумевањеПлатформа после отказа замењује worker за извештаје. Шта чини поновни покушај безбедним?Урадите вежбу
Шта ћете научити
- Разликујте паковање у контејнер од cloud native понашања.
- Препознајте ризике стања, поновних покушаја и замене у генерисаном сервису.
- Дефинишите уговор платформе који агенти и људи могу да провере.
Дефинишите потребно понашање
Cloud native пракса подржава поновљив развој и оперативни рад у јавним, приватним или хибридним окружењима. CNCF наглашава системе којима се може управљати, чије се понашање може пратити и који остају отпорни током промена. Контејнери и оркестрација могу да подрже тај приступ. Сами по себи не обезбеђују сва та својства.
Почните од измишљеног сервиса за извештаје. AI алат прави endpoint, worker и слику контејнера. Демонстрација даје исправан PDF. Пре продукције тим мора да одговори на друго питање: шта се дешава када платформа замени worker усред посла?
То је питање дизајна апликације као и инфраструктуре. Поновно покретање може да обнови процес, а да изгуби његов незавршен рад.
Раздвојите процес од трајног стања
Прототип чува послове у реду и завршене извештаје на диску контејнера. Замена контејнера може да уклони обоје. Додавање више worker процеса може и да произведе различите одговоре, зависно од тога који worker добије захтев.
Измењени дизајн користи трајно складиште послова и одобрено објектно складиште. Захтев бележи идентитет посла. Worker преузима посао, прави резултат и бележи његову локацију. Провере приступа и даље важе када корисник преузима извештај.
| Област | Питање за сервис извештаја |
|---|---|
| Стање | Који записи морају да преживе замену процеса? |
| Конфигурација | Како исти артефакт ради у сваком окружењу? |
| Идентитет | Који идентитет сервиса може да прочита посао и упише његов резултат? |
| Исправност рада | Може ли worker да прихвати рад и да га заврши? |
| Гашење | Шта се дешава са преузетим послом када worker стане? |
| Капацитет | Које се ограничење прво достиже: worker процеси, база, складиште или други сервис? |
Држите тајне ван слике. Достављајте их кроз одобрени систем за тајне. Забележите које промене конфигурације захтевају нову верзију или поновно покретање процеса.
Осмислите поновне покушаје пре додавања worker процеса
Претпоставимо да worker сачува PDF, а затим стане пре потврђивања посла. Ред поново испоручује посао. Други покушај не сме да наплати клијенту други пут нити да пошаље противречне поруке о завршетку.
Користите идемпотентну операцију где је прикладно. Понављање истог логичког захтева треба да сачува намеравани ефекат. Дефинишите стабилан идентитет захтева, трајно забележите исход и проверите шта се дешава у свакој тачки отказа. AWS описује ову технику у водичу за безбедне поновне покушаје.
И поновни покушаји захтевају ограничења. Користите временско ограничење, ограничење броја покушаја и одлагање које спречава истовремене поновљене захтеве. Сачувајте неуспеле послове за испитивање уместо да их понављате бесконачно.
Омогућите преглед жељеног стања
Декларативна конфигурација наводи намеравано постављање. Контролер настоји да одржи то стање. На пример, Kubernetes Deployment управља репликама апликације и контролисаним ажурирањима. Апликација и даље мора исправно да обрађује замену.
Верзионишите конфигурацију инфраструктуре и апликације. Прегледајте промене кроз уобичајени поступак испоруке. Пратите стварни завршетак послова, време проведено у реду, отказе и ограничења зависности. Процес који ради и даље може да буде неспособан да произведе извештај.
Изаберите платформу којом тим може да управља
Cloud native не захтева да свака апликација постане скуп микросервиса. Модуларна апликација на управљаном извршном окружењу може да испуни своје захтеве. Више сервиса доноси више интерфејса, одлука о постављању и оперативног рада.
Дајте развојном агенту стварни уговор платформе: подржано извршно окружење, метод идентитета, сервисе података, правила постављања и потребне доказе. Уз успешне захтеве тестирајте понашање при прекиду и замени. Наставите са доступношћу и границама отказа.
Урадите вежбу
Измишљен сервис за извештаје чува послове и завршене датотеке на диску контејнера. Нацртајте ток кроз захтев, посао, датотеку и преузимање. Означите трајно стање. Дефинишите шта се дешава ако worker стане после уписа датотеке, а пре потврде посла.
Преузми радни лист (Markdown)Искључивање ове опције брише сав напредак сачуван у овом прегледачу.
Напредак остаје у овом прегледачу. Без налога и праћења.
Извори и додатно читање
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗