Ин принсип аз бисёр ҷиҳат ба Принсипи масъулияти ягона шабоҳат дорад. SRP), ки қисми маҷмӯи SOLID аст ва мегӯяд, ки ҳар як объект бояд як масъулият дошта бошад ва ин масъулият бояд пурра дар синф фаро гирифта шавад. Мақсади СРП дар он аст, ки ҳар як масъулият сабаби тағирот аст ва синф бояд як ва танҳо як сабаби тағирот дошта бошад.
Дар SCP, мо ба ҷои калимаи "масъулият" калимаи "ташвиш" -ро барои нишон додани сатҳи баландтари абстраксия ва ҳадафи васеътари контейнер дар муқоиса бо синфи OOP истифода мебарем. Ва агар ҳадафи SRP танҳо як сабаб барои тағирот дошта бошад, пас паси SCP хоҳиши васеъ кардани қобилияти дубора истифода ва иваз кардани контейнерҳост. Бо риояи SRP ва сохтани контейнере, ки як масъаларо ҳал мекунад ва онро ба таври пурра иҷро мекунад, шумо имконияти дубора истифода бурдани он тасвири контейнерро дар контекстҳои гуногуни барнома зиёд мекунед.
Принсипи SCP мегӯяд, ки ҳар як контейнер бояд як масъаларо ҳал кунад ва онро хуб иҷро кунад. Ғайр аз он, SCP дар ҷаҳони контейнерӣ нисбат ба SRP дар ҷаҳони OOP осонтар аст, зеро контейнерҳо одатан як равандро иҷро мекунанд ва аксар вақт ин раванд як вазифаи ягонаро ҳал мекунад.
Агар микросервиси контейнерӣ бояд якбора якчанд мушкилотро ҳал кунад, он гоҳ онро метавон ба контейнерҳои якдафъаина тақсим кард ва дар як подк (як воҳиди ҷойгиркунии платформаи контейнерӣ) бо истифода аз қолабҳои контейнери канорӣ ва init муттаҳид кард. Илова бар ин, SCP иваз кардани контейнери кӯҳнаро (масалан, веб-сервер ё брокери паёмӣ) бо як контейнери нав, ки ҳамон мушкилотро ҳал мекунад, вале функсияҳои васеъ ё миқёси беҳтар дорад, осон мекунад.
Дар амал, як барномаи контейнерӣ бояд ҳадди аққал барои намудҳои гуногуни санҷишҳои саломатӣ API дошта бошад: санҷишҳои зинда ва санҷишҳои омодагӣ. Агар ариза даъвои иҷрои бештар дошта бошад, он бояд воситаҳои дигари мониторинги ҳолати онро таъмин намояд. Масалан, сабти рӯйдодҳои муҳим тавассути STDERR ва STDOUT барои ҷамъоварии гузоришҳо бо истифода аз Fluentd, Logstash ва дигар абзорҳои шабеҳ. Инчунин ҳамгироӣ бо китобхонаҳои коллексияи пайгирӣ ва метрика, ба монанди OpenTracing, Prometheus ва ғайра.
Умуман, барномаро метавон ҳамчун қуттии сиёҳ баррасӣ кард, аммо он бояд бо ҳама API-ҳое, ки платформа барои назорат ва идора кардани он ба таври беҳтарин лозим аст, таъмин карда шавад.
Принсипи мутобиқати давраи ҳаёт (LCP)
LCP зидди HOP аст. Дар ҳоле ки HOP изҳор мекунад, ки контейнер бояд API-ҳои хондашударо ба платформа фош кунад, LCP аз барнома талаб мекунад, ки маълумотро аз платформа қабул кунад. Гузашта аз ин, контейнер бояд на танҳо рӯйдодҳоро қабул кунад, балки мутобиқат кунад, ба ибораи дигар, ба онҳо вокуниш нишон диҳад. Аз ин рӯ, номи принсипе пайдо шуд, ки онро ҳамчун талабот барои таъмини платформа бо навиштани API баррасӣ кардан мумкин аст.
Платформаҳо дорои намудҳои гуногуни чорабиниҳо мебошанд, ки барои идоракунии давраи ҳаёти контейнер кӯмак мерасонанд. Аммо он ба худи барнома вобаста аст, ки кадоме аз онҳоро дарк кунад ва чӣ гуна муносибат кунад.
Маълум аст, ки баъзе вокеахо назар ба дигар вокеахо мухимтаранд. Масалан, агар барнома ба садамаҳо хуб таҳаммул накунад, он бояд сигналро қабул кунад: паёмҳоро қатъ кунед (SIGTERM) ва реҷаи қатъи онро ҳарчи зудтар оғоз кунед, то сигналро гиред: бикушед (SIGKILL), ки пас аз SIGTERM меояд.
Илова бар ин, рӯйдодҳо ба монанди PostStart ва PreStop метавонанд барои давраи ҳаёти барнома муҳим бошанд. Масалан, пас аз оғози барнома, пеш аз он ки он ба дархостҳо посух диҳад, он метавонад каме вақти гармкунӣ талаб кунад. Ё ин ки барнома бояд ҳангоми хомӯшӣ захираҳоро бо ягон роҳи махсус озод кунад.
Принсипи тағирнопазирии тасвир (IIP)
Умуман қабул карда мешавад, ки замимаҳои контейнершуда пас аз сохта шудан, ҳатто агар онҳо дар муҳитҳои гуногун иҷро карда шаванд ҳам, бояд бетағйир боқӣ монанд. Ин зарурати берунии нигаҳдории маълумотро дар вақти корӣ (ба ибораи дигар, барои ин истифода бурдани абзорҳои беруна) ва такя кардан ба конфигуратсияҳои берунӣ, мушаххаси вақти корӣ, ба ҷои тағир додан ё эҷоди контейнерҳои беназир барои ҳар як муҳит талаб мекунад. Пас аз ҳама гуна тағирот дар барнома, тасвири контейнер бояд аз нав сохта шавад ва дар ҳама муҳитҳои истифодашуда ҷойгир карда шавад. Дар омади гап, ҳангоми идоракунии системаҳои IT як принсипи шабеҳ истифода мешавад, ки ҳамчун принсипи тағирнопазирии серверҳо ва инфрасохтор маълум аст.
Ҳадафи IIP пешгирии эҷоди тасвирҳои контейнерии алоҳида барои муҳитҳои вақти корӣ ва истифодаи як тасвир дар ҳама ҷо бо конфигуратсияи мувофиқи муҳити зист мебошад. Риояи ин принсип ба шумо имкон медиҳад, ки чунин таҷрибаҳои муҳимро аз нуқтаи назари автоматикунонии системаҳои абрӣ, аз қабили бозгашт ва бозгашти навсозии барномаҳо амалӣ кунед.
Принсипи истифодабарии раванд (PDP)
Яке аз хусусиятҳои муҳимтарини контейнер муваққатии он аст: як мисоли контейнер сохтан осон аст ва нобуд кардан осон аст, бинобар ин онро дар ҳар вақт ба осонӣ бо мисоли дигар иваз кардан мумкин аст. Барои чунин ивазкунӣ метавонад сабабҳои зиёд дошта бошад: нокомии санҷиши қобили истифода, миқёси барнома, интиқол ба мизбони дигар, тамом шудани захираҳои платформа ё ҳолатҳои дигар.
Дар натиҷа, барномаҳои контейнерӣ бояд ҳолати худро бо истифода аз баъзе воситаҳои беруна нигоҳ доранд ё барои ин схемаҳои тақсимоти дохилиро бо зиёдатӣ истифода баранд. Илова бар ин, барнома бояд зуд оғоз шавад ва зуд хомӯш шавад ва ба шикасти ногаҳонии сахтафзор омода бошад.
Як амалия, ки ба татбиқи ин принсип мусоидат мекунад, нигоҳ доштани контейнерҳо мебошад. Муҳитҳои абрӣ метавонанд ба таври худкор ҳостро барои оғоз кардани як мисоли контейнер интихоб кунанд, аз ин рӯ контейнер ҳар қадар хурдтар бошад, он тезтар оғоз мешавад - он танҳо ба хости мавриди ҳадаф тавассути шабака зудтар нусхабардорӣ мешавад.