Шлях 04Урок 5 / 10

Праектуйце праграмы для cloud native асяроддзя

Звязвайце ўзнаўляльную інфраструктуру, замяняльныя працэсы, надзейна захаваны стан і назіральныя паводзіны. Ацэньвайце cloud native праектаванне шырэй за ўпакоўку ў кантэйнеры.

Практыка12 хвПраверана

Выдавец Як мы пішам

Праверце сваё разуменнеПлатформа замяняе працэс-апрацоўшчык справаздач пасля збою. Што робіць паўторную спробу бяспечнай?Выканайце практыкаванне
Платформа замяняе працэс-апрацоўшчык справаздач пасля збою. Што робіць паўторную спробу бяспечнай?

Чаму вы навучыцеся

  • Адрозніваць упакоўку ў кантэйнеры ад cloud native паводзін.
  • Выяўляць рызыкі стану, паўторных спроб і замены ў згенераваным сэрвісе.
  • Вызначаць кантракт платформы, які могуць праверыць агенты і людзі.

Вызначце патрэбныя паводзіны

Cloud native практыкі падтрымліваюць паўтаральную распрацоўку і эксплуатацыю ў публічных, прыватных або гібрыдных асяроддзях. CNCF падкрэслівае сістэмы, якія застаюцца кіраванымі, назіральнымі і ўстойлівымі пры зменах. Кантэйнеры і аркестрацыя могуць падтрымліваць гэты падыход. Самі па сабе яны не забяспечваюць усіх гэтых уласцівасцей.

Пачніце з выдуманага сэрвісу справаздач. AI-інструмент стварае endpoint, працэс-апрацоўшчык (worker) і вобраз кантэйнера. Дэманстрацыя дае правільны PDF. Перад production каманда павінна адказаць на іншае пытанне: што адбываецца, калі платформа замяняе працэс-апрацоўшчык падчас задачы?

Гэта пытанне праектавання праграмы, а таксама інфраструктуры. Перазапуск можа аднавіць працэс, але страціць яго незавершаную працу.

Аддзяляйце працэс ад надзейна захаванага стану

Прататып трымае задачы ў чарзе і гатовыя справаздачы на дыску кантэйнера. Замена кантэйнера можа прыбраць і тое, і другое. Даданне новых працэсаў-апрацоўшчыкаў таксама можа даваць розныя адказы ў залежнасці ад таго, які з іх атрымлівае запыт.

Перагледжаны праект выкарыстоўвае надзейнае сховішча задач і ўхваленае аб’ектнае сховішча. Запыт запісвае ідэнтычнасць задачы. Працэс-апрацоўшчык бярэ задачу, стварае яе вынік і запісвае месцазнаходжанне выніку. Праверкі доступу ўсё яшчэ дзейнічаюць, калі карыстальнік спампоўвае справаздачу.

ПытаннеШто высветліць для сэрвісу справаздач
СтанЯкія запісы павінны захавацца пасля замены працэсу?
КанфігурацыяЯк адзін і той жа артэфакт працуе ў кожным асяроддзі?
ІдэнтычнасцьЯкая ідэнтычнасць сэрвісу можа чытаць задачу і запісваць яе вынік?
ПрацаздольнасцьЦі можа працэс-апрацоўшчык прыняць працу і ці можа ён яе завяршыць?
СпыненнеШто адбываецца з узятай задачай, калі працэс-апрацоўшчык спыняецца?
МагутнасцьЯкое абмежаванне дзейнічае першым: працэсы-апрацоўшчыкі, база даных, сховішча або іншы сэрвіс?

Трымайце сакрэты па-за вобразам. Перадавайце іх праз ухваленую сістэму сакрэтаў. Запісвайце, якія змены канфігурацыі патрабуюць новага выпуску або перазапуску працэсу.

Праектуйце паўторныя спробы перад даданнем апрацоўшчыкаў

Дапусцім, працэс-апрацоўшчык захоўвае PDF, а затым спыняецца перад пацвярджэннем задачы. Чарга перадае задачу зноў. Другая спроба не павінна паўторна спісаць плату з кліента або адправіць супярэчлівыя паведамленні аб завяршэнні.

Выкарыстоўвайце ідэмпатэнтную аперацыю там, дзе гэта дарэчы. Паўтарэнне таго самага лагічнага запыту павінна захоўваць задуманы эфект. Вызначце стабільную ідэнтычнасць запыту, надзейна запісвайце вынік і правярайце, што адбываецца ў кожным пункце збою. AWS апісвае гэты метад у дапаможніку па бяспечных паўторных спробах.

Паўторныя спробы таксама патрабуюць межаў. Выкарыстоўвайце тайм-аўт, ліміт паўторных спроб і затрымку, якая прадухіляе адначасовыя паўторныя запыты. Захоўвайце няўдалыя задачы для вывучэння замест бясконцага паўтарэння.

Зрабіце жаданы стан прыдатным для праверкі

Дэкларатыўная канфігурацыя апісвае задуманае разгортванне. Кантролер працуе, каб падтрымліваць гэты стан. Напрыклад, Kubernetes Deployment кіруе рэплікамі праграмы і кантраляванымі абнаўленнямі. Праграма ўсё роўна павінна правільна апрацоўваць замену.

Стварайце версіі інфраструктуры і канфігурацыі праграмы. Правярайце змены праз звычайны працэс пастаўкі. Назірайце фактычнае завяршэнне задач, час знаходжання ў чарзе, збоі і абмежаванні залежнасцей. Працэс, які працуе, усё роўна можа быць няздольны стварыць справаздачу.

Выберыце платформу, якую каманда можа эксплуатаваць

Cloud native не патрабуе ператвараць кожную праграму ў мікрасэрвісы. Модульная праграма ў кіраваным асяроддзі выканання можа задаволіць свае патрабаванні. Больш сэрвісаў дадаюць больш інтэрфейсаў, рашэнняў аб разгортванні і эксплуатацыйнай працы.

Дайце агенту распрацоўкі фактычны кантракт платформы: падтрыманае асяроддзе выканання, метад ідэнтычнасці, сэрвісы даных, правілы разгортвання і неабходныя доказы. Тэстуйце паводзіны пры перапыненні і замене разам з паспяховымі запытамі. Працягвайце з урокам пра даступнасць і межы збояў.

Выканайце практыкаванне

Выдуманы сэрвіс справаздач захоўвае задачы і гатовыя файлы на дыску кантэйнера. Намалюйце паток праз запыт, задачу, файл і спампоўванне. Пазначце надзейна захаваны стан. Вызначце, што адбываецца, калі працэс-апрацоўшчык спыняецца пасля запісу файла, але перад пацвярджэннем задачы.

Спампаваць працоўны ліст (Markdown)
Праверце сваё разуменне ↑

Працягнуць навучанне

Крыніцы і дадатковыя матэрыялы

Звязаныя матэрыялы Taiga

Папярэдні ўрок: Вызначце інфраструктуру за межамі прататыпа