{"id":35006,"date":"2019-10-31T22:01:47","date_gmt":"2019-10-31T19:01:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\/"},"modified":"2019-10-31T22:01:47","modified_gmt":"2019-10-31T19:01:47","slug":"5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","title":{"rendered":"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u201ePilvemaandatud\u201c (cloud native) v\u00f5i lihtsalt \u201epilve\u201c rakendused luuakse spetsiaalselt toimima pilvplatvormides. Need on tavaliselt \u00fcles ehitatud n\u00f5rkade sidemetega mikroteenustest, mis on pakitud konteineritesse, mida haldab pilveplatvorm. Sellised rakendused on vaikimisi h\u00e4irekindlad, mist\u00f5ttu toimivad ja skaleeruvad nad usaldusv\u00e4\u00e4rselt ka t\u00f5siste infrastruktuuri rikete korral. Teiselt poolt on piirangute kogum (lepingud), mida pilveplatvorm rakendustele rakendab, et suuta neid automaatre\u017eiimis hallata.<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/1f4af6f356ed36d3fbd8adef333501fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f5istes h\u00e4sti \u00fclemineku t\u00e4htsust ja vajalikkust pilve rakendustele, ei tea paljud organisatsioonid siiski, kust alustada. Selles postituses vaatame mitmeid p\u00f5him\u00f5tteid, mille j\u00e4rgimine konteinerirakenduste arendamisel v\u00f5imaldab t\u00e4ielikult \u00e4ra kasutada pilveteenuseid ning saavutada rakenduste usaldusv\u00e4\u00e4rne toimimine ja skaleerimine isegi t\u00f5siste IT-infrastruktuuri t\u00f5rgete korral. Siin esitatud p\u00f5him\u00f5tete l\u00f5ppeesm\u00e4rk on \u00f5ppida looma rakendusi, mida saavad automaatselt hallata pilveplatvormid nagu Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Tarkvaraarenduse p\u00f5him\u00f5tted<\/h3>\n<p>\nProgrammeermise maailmas m\u00f5istetakse p\u00f5him\u00f5tete all \u00fcsna \u00fcldiseid reegleid, mida tuleb j\u00e4rgida tarkvara arendamisel. Neid saab rakendada igas programmeerimiskeeles. Igal p\u00f5him\u00f5ttel on oma eesm\u00e4rgid, mille saavutamiseks kasutatakse tavaliselt malle ja praktikaid. Samuti on rida p\u00f5hieesm\u00e4rke kvaliteetse tarkvara loomise p\u00f5him\u00f5tteid, millest k\u00f5ik teised p\u00f5him\u00f5tted tulenevad. Toome v\u00e4lja m\u00f5ned p\u00f5hieesm\u00e4rkide n\u00e4ited:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/KISS_(%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF)\">KISS<\/a><\/noindex> (Keep it simple, stupid) \u2013 mitte keeruliseks muuta;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Don%E2%80%99t_repeat_yourself\">DRY<\/a><\/noindex> (Don\u2019t repeat yourself) \u2013 \u00e4ra korduma;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/YAGNI\">YAGNI<\/a><\/noindex> (You aren\u2019t gonna need it) \u2013 \u00e4ra loo seda, mida sul hetkel ei ole vaja;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SoC<\/a><\/noindex> (Separation of concerns) \u2013 lahenda mured eraldi.<\/li>\n<\/ul>\n<p>\nNagu n\u00e4ha, need printsiibid ei sea mingit konkreetset reeglistikku, vaid kuuluvad \u201cterve m\u00f5istuse\u201d kategooriasse, mis tugineb praktilisele kogemusele ja mida jagavad paljud arendajad ning millele nad regulaarselt viitavad.<br \/>\nLisaks on olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">SOLID<\/a><\/noindex> \u2013 viis esimest objekti-orienteeritud programmeerimise ja projekteerimise printsiipi, mille s\u00f5nastas Robert Martin. SOLID h\u00f5lmab \u00fcldistatud ja t\u00f5lgendatavates vastastikku t\u00e4iustavaid printsiiple, mis \u2013 kui neid kokku rakendada \u2013 aitavad luua kvaliteetsemaid tarkvaras\u00fcsteeme ja paremini neid pikaajaliselt hooldada.<\/p>\n<p>SOLID p\u00f5him\u00f5tted kuuluvad OOP valdkonda ja on formuleeritud selliste m\u00f5istete ja kontseptide keeles nagu klassid, liidesed ja p\u00e4rimine. Analoogiliselt on ka pilvep\u00f5histe rakenduste jaoks v\u00f5imalik s\u00f5nastada arenduse p\u00f5him\u00f5tted, kus p\u00f5hielemendiks ei ole klass, vaid konteiner. Nende p\u00f5him\u00f5tete j\u00e4rgimine v\u00f5imaldab luua konteinerip\u00f5hiseid rakendusi, mis vastavad paremini pilveteenuste, nagu Kubernetes, eesm\u00e4rkidele ja \u00fclesannetele.<\/p>\n<h3>Pilvep\u00f5hised konteinerid: Red Hat'i l\u00e4henemine<\/h3>\n<p>\nT\u00e4nap\u00e4eval on konteineritesse suhteliselt lihtne panna praktiliselt igasuguseid rakendusi. Kuid et rakendusi oleks t\u00f5husalt automatiseeritud ja orkestreeritud pilveplatvormil nagu Kubernetes, on vajalik teha lisapingutusi.<br \/>\nAllpool esitatud ideede aluseks on metodoloogia <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">Kaksteistfaktoriline rakendus<\/a><\/noindex> ja palju teisi t\u00f6id, mis k\u00e4sitlevad veebirakenduste loomise erinevaid aspekte, alates allika juhtimisest kuni skaleerimisemudelite jaotamiseni. Kirjeldatud p\u00f5him\u00f5tted kehtivad ainult konteinerip\u00f5histe rakenduste arendamiseks, mis on loodud mikroteenuste alusel ja m\u00f5eldud pilveplatvormidele, nagu Kubernetes. Meie arutluse aluseks on konteineri pilt, ning sihtkeskkonnana m\u00f5istetakse konteinerite orkestreerimise platvormi. Pakutud p\u00f5him\u00f5tete eesm\u00e4rk on luua konteinerid, mille jaoks enamikul orkestreerimisplatvormidel on v\u00f5imalik automatiseerida \u00fclesannete ajastamist (scheduling \u2013 hosti valimine konteineri eksemplari k\u00e4ivitamiseks), skaleerimist ja j\u00e4lgimist. P\u00f5him\u00f5tted esitatakse vabakujuliselt.<\/p>\n<h3>\u00dche mure p\u00f5him\u00f5te (Single Concern Principle, SCP)<\/h3>\n<p>\nSee p\u00f5him\u00f5te on paljuski sarnane \u00fche vastutuse p\u00f5him\u00f5ttega (Single Responsibility Principle, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B5%D0%B4%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SRP<\/a><\/noindex>), mis on SOLID'i osa ja \u00fctleb, et igal objektidel peab olema \u00fcks vastutus, ja see vastutus peab olema t\u00e4ielikult kapseldatud klassis. SRP olemus seisneb selles, et iga vastutus on muutuste p\u00f5hjus, ning klassil peab olema \u00fcks ja ainult \u00fcks muutuste p\u00f5hjus.<\/p>\n<p>SCP puhul kasutame s\u00f5na \"vastutus\" (responsibility) asemel s\u00f5na \"\u00fclesanne\" (concern), et viidata k\u00f5rgemale abstraktsioonitasemele ja laiemale konteineri m\u00e4\u00e4ratlemisele v\u00f5rreldes OOP-klassi. Ja kui SRP eesm\u00e4rk on omada ainult \u00fchte muutuste p\u00f5hjust, siis SCP taga on soov suurendada konteinerite uuesti kasutamise ja asendamise v\u00f5imalusi. J\u00e4rgides SRP-d ja luues konteineri, mis lahendab ainult \u00fche \u00fclesande ja teeb seda funktsionaalselt t\u00e4iendavalt, suurendate t\u00f5en\u00e4osust, et selle konteineri mudelit saab kasutada erinevates rakenduse kontekstides.<\/p>\n<p>SCP p\u00f5him\u00f5te \u00fctleb, et iga konteiner peab lahendama \u00fche kindla \u00fclesande ja tegema seda h\u00e4sti. SCP saavutamine konteinerite maailmas on lihtsam kui SRP OOP-is, kuna konteinerid t\u00e4idavad tavaliselt \u00fchte protsessi, mis enamiku ajast tegeleb \u00fche ja ainulaadse \u00fclesandega.<\/p>\n<p>Kui mingisugune konteinerip\u00f5hine mikroteenus peab lahendama korraga mitmeid \u00fclesandeid, saab selle jagada \u00fchekordseteks konteineriteks ja koostada need \u00fche podi (konteineripakettide levitamiseks m\u00f5eldud \u00fcksus) alla, kasutades sidecar ja init-konteineri mudeleid. Lisaks lihtsustab SCP vana konteineri (nt veebiserveri v\u00f5i s\u00f5numi vahendi) asendamist uuega, mis lahendab sama \u00fclesande, kuid omab laiendatud funktsionaalsust v\u00f5i paremat skaleeritavust.<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/a029e1ca36ace66550c94087e4aecc8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>K\u00f5rge j\u00e4lgitavuse p\u00f5him\u00f5te (High Observability Principle, HOP)<\/h3>\n<p>\nKonteinerite kasutamine rakenduste standardiseeritud pakkimise ja k\u00e4ivitamise viisina t\u00e4hendab, et rakendused ise k\u00e4sitletakse kui \u201emust kasti\u201c. Siiski, kui need on pilve-konteinerid, peavad nad pakkuma k\u00e4ituskeskkonnale spetsiifilisi API-liideseid, et kontrollida konteinerite seisukorda ja vajadusel v\u00f5tta vastavad meetmed. Ilma selleta ei ole v\u00f5imalik standardiseerida konteinerite uuendamise automatiseerimist ja nende eluts\u00fckli haldamist, mis omakorda halvendab tarkvaras\u00fcsteemi t\u00f6\u00f6kindlust ja kasutusmugavust.<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/7df1320108d9b635c10c6cf41d5dfef6.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nPraktikas peaks konteinerirakendusel olema v\u00e4hemalt API erinevate staatuse kontrollide jaoks: aktiivsuse (liveness) ja valmisoleku (readiness) testide jaoks. Kui rakendus n\u00f5uab rohkem, peaks see pakkuma ka muid vahendeid oma seisundi kontrollimiseks. N\u00e4iteks oluliste s\u00fcndmuste logimist STDERR ja STDOUT kaudu, et logisid koguda selliste t\u00f6\u00f6riistade abil nagu Fluentd, Logstash ja teised sarnased. Samuti integreerimine j\u00e4lgimise ja m\u00f5\u00f5tmiste kogumise teekidega, nagu OpenTracing, Prometheus jne.<\/p>\n<p>\u00dcldiselt v\u00f5ib rakendust endiselt k\u00e4sitleda kui 'must kaste', kuid seda tuleb varustada k\u00f5igi API-dega, mis on vajalikud platvormile, et seda parimal viisil j\u00e4lgida ja juhtida.<\/p>\n<h3>Eluts\u00fckli vastavuse printsiip (Life-cycle Conformance Principle, LCP)<\/h3>\n<p>\nLCP on HOP-i vastand. Kui HOP \u00fctleb, et konteiner peab platvormile pakkuma API-liideseid lugemiseks, siis LCP n\u00f5uab rakenduselt v\u00f5imet vastu v\u00f5tta teavet platvormilt. Samuti peab konteiner mitte ainult s\u00fcndmusi saama, vaid ka nendel reageerima. Seega on see printsiip, mida saab k\u00e4sitleda n\u00f5udena pakkuda platvormile API-liideseid kirjutamiseks.<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/f32f5d133597ae3905206badc6677f92.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPlatvormidel on erinevat liiki s\u00fcndmusi, mis aitavad hallata konteineri eluts\u00fcklit. Kuid otsustada, milliseid neist tajuda ja kuidas reageerida, peab rakendus ise.<\/p>\n<p>On selge, et m\u00f5ned s\u00fcndmused on olulisemad kui teised. N\u00e4iteks, kui rakendus ei talu ootamatut sulgemist, peab see aktsepteerima signaale signal: terminate (SIGTERM) ja k\u00e4ivitama oma sulgemisprotseduuri nii kiiresti kui v\u00f5imalik, et j\u00f5uda signaalini signal: kill (SIGKILL), mis j\u00e4rgneb SIGTERM-le.<\/p>\n<p>Lisaks v\u00f5ivad rakenduse eluts\u00fckli jaoks olla olulised sellised s\u00fcndmused nagu PostStart ja PreStop. N\u00e4iteks p\u00e4rast k\u00e4ivitamist v\u00f5ib rakendusel olla vaja teatud aega \u201e\u00fcles soojendamiseks\u201d, enne kui see suudab p\u00e4ringutele vastata. V\u00f5i peab rakendus teatud viisil vabastama ressursid, kui see l\u00f5petab t\u00f6\u00f6tamise.<\/p>\n<h3>Konteineripildi muutumatuse p\u00f5him\u00f5te (Image Immutability Principle, IIP)<\/h3>\n<p>\nOn \u00fcldiselt arvatud, et konteinerirakendused peavad p\u00e4rast kokkupanekut j\u00e4\u00e4ma muutmatuks, isegi kui neid k\u00e4ivitatakse erinevates keskkondades. Seega tuleneb vajadus andmete salvestamine k\u00e4itamise ajal eksternaliseerida (teisis\u00f5nu, kasutada selleks v\u00e4list vahendit) ning toetuda v\u00e4listelt, konkreetse k\u00e4ituskeskkonna jaoks seadistatud konfiguratsioonidelt, selle asemel et modifitseerida v\u00f5i luua unikaalseid konteinerid igaks keskkonnaks. P\u00e4rast rakenduses tehtud muudatusi tuleb konteineri kujundus uuesti kokku panna ja rakendada k\u00f5ikides kasutatavates keskkondades. Muide, IT-s\u00fcsteemide haldamisel kasutatakse sarnast p\u00f5him\u00f5tet, mida tuntakse serverite ja infrastruktuuri muutumatuse printsiibina. <\/p>\n<p>IIP eesm\u00e4rk on v\u00e4ltida eraldi konteineripiltide loomist erinevate k\u00e4ituskeskkondade jaoks ja kasutada igal pool sama pilti koos konkreetse keskkonna jaoks sobiva konfiguratsiooniga. Selle p\u00f5him\u00f5tte j\u00e4rgimine v\u00f5imaldab rakendada olulisi pilves\u00fcsteemide automatiseerimise praktikaid, nagu rakenduse uuenduste tagasiv\u00f5tmine (roll-back) ja edasi viimine (roll-forward).<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/86b93724830b37f82bf289b797407480.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Protsesside \u00fchekordsuse p\u00f5him\u00f5te (Process Disposability Principle, PDP)<\/h3>\n<p>\n\u00dcks konteineri olulisemaid omadusi on selle efemeersus: konteineri koopia on lihtsalt loodav ja h\u00e4vitatav, seega v\u00f5ib selle igal hetkel h\u00f5lpsasti asendada teise koopia vastu. Asendamiseks v\u00f5ib olla palju p\u00f5hjuseid: t\u00f5rge, rakenduse skaleerimine, teisaldamine teisele serverile, ressursiotsing v\u00f5i muud olukorrad. <\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/858287b23c276363313e35cf18b81190.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nSeet\u00f5ttu peavad konteinerirakendused salvestama oma oleku mingite v\u00e4listest vahenditest v\u00f5i kasutama selleks sisemisi jaotatud skeeme koos \u00fcleliiga. Lisaks peab rakendus kiiresti k\u00e4ivituma ja kiiresti l\u00f5petama ning olema valmis \u00e4kilisteks seadme riketeks.<\/p>\n<p>\u00dcks praktika, mis aitab seda p\u00f5him\u00f5tet ellu viia, on v\u00e4ikeste konteinerite loomine. Pilveteenused saavad automaatselt valida hosti konteineri koopia k\u00e4ivitamiseks, seega, mida v\u00e4iksem on konteineri suurus, seda kiiremini see k\u00e4ivitatakse \u2013 see lihtsalt kopeeritakse kiiremini sihtserverile \u00fcle v\u00f5rgu.<\/p>\n<h3>Iseseisvuse p\u00f5him\u00f5te (Self-containment Principle, S-CP)<\/h3>\n<p>\nSelle p\u00f5him\u00f5tte kohaselt sisaldab konteiner koostamise etapis k\u00f5iki vajalikke komponente. Konteinerit tuleb ehitada eeldusel, et s\u00fcsteemis on ainult puhas Linuxi tuum, seega peavad k\u00f5ik vajalikud t\u00e4iendavad teegid olema konteineris. Seal peavad olema ka sellised asjad nagu vastava programmeerimiskeele t\u00f6\u00f6elu keskkond, rakenduste platvorm (vajadusel) ja muud s\u00f5ltuvused, mis on vajalikud konteinerirakenduse t\u00f6\u00f6tamiseks. <\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/ecc7425510d63e4914c0c9a7e90b02a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Erandid tehakse vaid konfigureerimisele, mis varieeruvad keskkondade vahel ja tuleb esitada k\u00e4itamise etapis, n\u00e4iteks Kubernetes ConfigMapi kaudu.<\/p>\n<p>Rakendus v\u00f5ib sisaldada mitmeid konteineriseeritud komponente, n\u00e4iteks eraldi andmebaasi konteinerit konteineriseeritud veebirakenduse osana. S-CP p\u00f5him\u00f5tte kohaselt ei tohiks neid kokku liita, vaid peab tagama, et andmebaasi konteiner sisaldab k\u00f5ike vajalikku andmebaasi t\u00f6\u00f6ks ja veebirakenduse konteiner \u2013 k\u00f5ike vajalikku veebirakenduse t\u00f6\u00f6tamiseks, sealhulgas veebiserver. Seet\u00f5ttu s\u00f5ltub veebirakenduse konteiner andmebaasi konteinerist ja p\u00f6\u00f6rdub selle poole vastavalt vajadusele.<\/p>\n<h3>K\u00e4itusaja piirangu p\u00f5him\u00f5te (Runtime Confinement Principle, RCP)<\/h3>\n<p>\nS-CP p\u00f5him\u00f5te m\u00e4\u00e4rab, kuidas konteinerit koguda ja mida bin\u00e4\u00e4rfail pilt peaks sisaldama. Kuid konteiner ei ole lihtsalt 'must kast', millel on ainult \u00fcks omadus \u2013 failisuurus. K\u00e4itamise ajal omandab konteiner ka teisi m\u00f5\u00f5tmeid: kasutatava m\u00e4lu maht, CPU aeg ja teised s\u00fcsteemiressursid.<\/p>\n<p><img decoding=\"async\" alt=\"5 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks\" src=\"\/wp-content\/uploads\/2019\/06\/a52e6a656892e57479ac014a3e6f4316.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSiin tuleb appi RCP printsiip, mille kohaselt peab konteiner dekodeerima oma n\u00f5udmised s\u00fcsteemiressurssidele ja edastama need platvormile. Omades iga konteineri ressursiprofiile (kui palju tal on vaja protsessoriv\u00f5imet, m\u00e4lu, v\u00f5rgu ja salvestusruumi), saab platvorm optimaalselt teostada haldamise ja automaatse skaaleerimise, hallata IT-v\u00f5imekusi ja tagada SLA tasemed konteinerite jaoks.<\/p>\n<p>Lisaks konteineri ressursin\u00f5uete rahuldamisele on rakendusele samuti oluline mitte \u00fcletada enda m\u00e4\u00e4ratud piire. Vastupidisel juhul, ressursi puuduj\u00e4\u00e4gi korral, on platvorm palju t\u00f5en\u00e4olisem, et lisab selle rakenduste nimekirja, mida tuleb katkestada v\u00f5i migreerida.<\/p>\n<p>R\u00e4\u00e4kides pilve-fookusest, m\u00f5istame me eelk\u00f5ige t\u00f6\u00f6viisi. <br \/>\nOleme \u00fclalpool s\u00f5nastanud mitmeid \u00fcldp\u00f5him\u00f5tteid, mis loovad metoodilise aluse kvaliteetsete konteinerirakenduste ehitamiseks pilveskeskkondades.<\/p>\n<p>Oluline on m\u00e4rkida, et lisaks nendele \u00fcldistele p\u00f5him\u00f5tetele vajate ka t\u00e4iendavaid edasij\u00f5udnud meetodeid ja tehnikate kasutamiseks konteinerite haldamisel. Samuti oleme koostanud m\u00f5ned l\u00fchikesed soovitused, millel on spetsiifilisem sisu ja mida tuleb rakendada (v\u00f5i mitte rakendada) vastavalt olukorrale:<\/p>\n<ul>\n<li>P\u00fc\u00fcdke v\u00e4hendada kujutiste suurust: kustutage ajutised failid ja v\u00e4ltige tarbetute pakettide installimist \u2013 mida v\u00e4iksem on konteiner, seda kiiremini see ehitatakse ja kopeeritakse sihthostile \u00fcle v\u00f5rgu.<\/li>\n<li>Seadke oma kasutajapalve juhuslikele User-ID-dele: \u00e4rge kasutage sudo k\u00e4sku ega mingeid erilisi userid'e oma konteinerite k\u00e4itamiseks.<\/li>\n<li>M\u00e4rgistage olulised pordid: pordinumme saab m\u00e4\u00e4rata ka k\u00e4itamise ajal, kuid parem on need m\u00e4\u00e4rata EXPOSE k\u00e4su abil \u2013 teistel inimestel ja programmidel on teie kujutiste kasutamine lihtsam. <\/li>\n<li>Salvestage p\u00fcsivad andmed mahtudele: andmed, mis peavad j\u00e4\u00e4ma p\u00e4rast konteineri kustutamist, tuleks salvestada mahtudele.<\/li>\n<li>Kirjutage kujutise metaandmed: sildid, m\u00e4rgid ja annotatsioonid lihtsustavad kujutiste kasutamist \u2013 teised arendajad on teile t\u00e4nulikud.<\/li>\n<li>S\u00fcnkroniseerige host ja pildid: teatud konteinerirakenduste jaoks on vaja s\u00fcnkroniseerida konteiner hostiga teatud atribuutide, n\u00e4iteks aja v\u00f5i masina ID kaudu.<\/li>\n<li>L\u00f5petuseks jagame malle ja parimaid praktikaid, mis aitavad t\u00f5husamalt rakendada eespool loetletud printsiipe:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/luebken\/container-patterns\">www.slideshare.net\/luebken\/container-patterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best-practices\">docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best-practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/docs.projectatomic.io\/container-best-practices\">docs.projectatomic.io\/container-best-practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html\">docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf\">www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/leanpub.com\/k8spatterns\/\">leanpub.com\/k8spatterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12factor.net<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/events.redhat.com\/profile\/form\/index.cfm?intcmp=701f20000012s47AAA&amp;PKFormID=0x5789474c4\"><b>Veebiseminar uue versiooni OpenShift Container Platform \u2013 4<\/b><\/a><\/noindex><br \/>\n11. juuni kell 11.00<\/p>\n<p>Mida te \u00f5ppida saate:<\/p>\n<ul>\n<li>Immutable Red Hat Enterprise Linux CoreOS<\/li>\n<li>OpenShift teenusevahetus<\/li>\n<li>Operator raamistik<\/li>\n<li>Knative raamistik<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/455024\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26340,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:01:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:01:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd475 m\u00f5istlikku p\u00f5him\u00f5tet cloud-native rakenduste loomiseks | ProHoster","description":"\"Pilve suhtes orienteeritud\" (cloud native) v\u00f5i lihtsalt \"pilverakendused\" on loodud spetsiaalselt t\u00f6\u00f6tama pilvaiutustes. Need ehitatakse tavaliselt kui n\u00f5rgalt seotud mikroteenuste kogumid, mis on pakitud konteineritesse, mida haldab pilvplatvorm. Sellised rakendused on vaikimisi vigadele vastupidavad, mis t\u00e4hendab, et nad t\u00f6\u00f6tavad usaldusv\u00e4\u00e4rselt ja skaleeruvad isegi t\u00f5siste infrastruktuuri taseme riketega. Tagak\u00fcljeks on","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster","og:description":"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:01:47+00:00","article:modified_time":"2019-10-31T19:01:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35006","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:27:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:11:30","updated":"2026-01-21 21:27:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35006"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/26340"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}