{"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\/sq\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","title":{"rendered":"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Aplikacionet \"cloud-native\" ose thjesht \"aplikacione n\u00eb re\" krijohen specifikisht p\u00ebr t\u00eb punuar n\u00eb infrastrukturat n\u00eb re. Zakonisht ato nd\u00ebrtohen si nj\u00eb grup mikrosh\u00ebrbimesh t\u00eb lidhura pak, t\u00eb paketuar n\u00eb kontejner\u00eb, t\u00eb cilat menaxhohen nga nj\u00eb platform\u00eb p\u00ebr re. K\u00ebto aplikacione jan\u00eb t\u00eb gatshme p\u00ebr d\u00ebshtime nga natyra, \u00e7ka do t\u00eb thot\u00eb se ato funksionojn\u00eb dhe shkall\u00ebzohen me besueshm\u00ebri, edhe n\u00eb rastet e d\u00ebshtimeve t\u00eb r\u00ebnda n\u00eb nivelin e infrastruktur\u00ebs. Anasjelltas, ekziston nj\u00eb grup kufizimesh (kontratash) q\u00eb platforma e re e vendos mbi aplikacionet n\u00eb kontejner\u00eb p\u00ebr t\u2019i menaxhuar ato n\u00eb m\u00ebnyr\u00eb automatike.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/1f4af6f356ed36d3fbd8adef333501fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke e kuptuar n\u00eb m\u00ebnyr\u00eb t\u00eb qart\u00eb nevoj\u00ebn dhe r\u00ebnd\u00ebsin\u00eb e kalimit n\u00eb aplikacione n\u00eb re, shum\u00eb organizata ende nuk e din\u00eb se nga duhet t\u00eb nisin. N\u00eb k\u00ebt\u00eb postim, do t\u00eb shqyrtojm\u00eb nj\u00eb s\u00ebr\u00eb parimesh, zbatimi i t\u00eb cilave gjat\u00eb zhvillimit t\u00eb aplikacioneve n\u00eb kontejner do t\u00eb lejoj\u00eb realizimin e potencialit t\u00eb platformave n\u00eb re dhe t\u00eb arrij\u00eb funksionimin dhe shkall\u00ebzimin e besuesh\u00ebm t\u00eb aplikacioneve, edhe gjat\u00eb d\u00ebshtimeve t\u00eb r\u00ebnda n\u00eb nivelin e infrastruktur\u00ebs IT. Q\u00ebllimi p\u00ebrfundimtar i k\u00ebtyre parimeve \u00ebsht\u00eb t\u00eb m\u00ebsojm\u00eb si t\u00eb krijojm\u00eb aplikacione q\u00eb mund t\u00eb menaxhohen automatikisht nga platforma n\u00eb re, si Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Parimet e dizajnit t\u00eb softuerit<\/h3>\n<p>\nN\u00eb bot\u00ebn e programimit, parimet kuptohen si rregulla t\u00eb p\u00ebrgjithshme q\u00eb duhet t\u00eb respektohen gjat\u00eb zhvillimit t\u00eb softuerit. Ato mund t\u00eb aplicohen p\u00ebr \u00e7do gjuh\u00eb programimi. \u00c7do princip ka q\u00ebllimet e tij, t\u00eb cilat zakonisht arrihen p\u00ebrmes modeleve dhe praktikave. Ka gjithashtu nj\u00eb s\u00ebr\u00eb parimesh themelore p\u00ebr krijimin e softuerit t\u00eb cil\u00ebsis\u00eb s\u00eb lart\u00eb, nga t\u00eb cilat burojn\u00eb t\u00eb gjitha t\u00eb tjerat. P\u00ebrmendim disa shembuj t\u00eb parimeve themelore:<\/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 mos e kompliko;<\/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 mos u p\u00ebrs\u00ebrit;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/YAGNI\">YAGNI<\/a><\/noindex> (You aren\u2019t gonna need it) \u2013 mos krijo at\u00eb q\u00eb nuk ke nevoj\u00eb t\u00eb menj\u00ebhershme;<\/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 ndaj p\u00ebrgjegj\u00ebsit\u00eb.<\/li>\n<\/ul>\n<p>\nSi\u00e7 \u00ebsht\u00eb e dukshme, k\u00ebto parime nuk p\u00ebrcaktojn\u00eb asnj\u00eb rregull t\u00eb sakt\u00eb, por i p\u00ebrkasin kategoris\u00eb s\u00eb asaj q\u00eb mund t\u00eb quhet sh\u00ebndosh\u00ebsi e sh\u00ebndosh\u00eb, bazuar n\u00eb p\u00ebrvoj\u00ebn praktike, t\u00eb cilat shum\u00eb zhvillues i ndajn\u00eb dhe vazhdimisht referohen n\u00eb to.<br \/>\nP\u00ebr m\u00eb tep\u00ebr, ekziston <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 nj\u00eb grup i pes\u00eb parimeve fillestare t\u00eb programimit dhe dizajnit t\u00eb orientuar nga objekti, t\u00eb formuluara nga Robert Martin. SOLID p\u00ebrfshin parime komplementare t\u00eb p\u00ebrgjithshme dhe t\u00eb hapura p\u00ebr interpretim, t\u00eb cilat \u2013 n\u00ebse aplikohen s\u00eb bashku \u2013 ndihmojn\u00eb n\u00eb krijimin e sistemeve m\u00eb t\u00eb cil\u00ebsis\u00eb s\u00eb lart\u00eb t\u00eb programimit dhe n\u00eb mb\u00ebshtetje m\u00eb t\u00eb mir\u00eb t\u00eb tyre n\u00eb afat t\u00eb gjat\u00eb.<\/p>\n<p>Parimet SOLID i p\u00ebrkasin sfer\u00ebs s\u00eb OOP dhe formulohen n\u00eb gjuh\u00ebn e koncepteve si klasa, nd\u00ebrfaqet dhe trash\u00ebgimia. Po ashtu, p\u00ebr aplikacionet n\u00eb re mund t\u00eb formulohen parime zhvillimi, vet\u00ebm se elementarja k\u00ebtu do t\u00eb jet\u00eb konteineri, n\u00eb vend t\u00eb klas\u00ebs. Duke ndjekur k\u00ebto parime, \u00ebsht\u00eb e mundur t\u00eb krijohen aplikacione n\u00eb kontejner\u00eb q\u00eb p\u00ebrputhen m\u00eb mir\u00eb me q\u00ebllimet dhe detyrat e platformave n\u00eb re si Kubernetes.<\/p>\n<h3>Konteiner\u00ebt orientuar nga re: qasja e Red Hat<\/h3>\n<p>\nSot, \u00ebsht\u00eb relativisht e leht\u00eb t\u00eb paketosh pothuajse \u00e7do aplikacion n\u00eb konteiner\u00eb. Por p\u00ebr t\u00eb automatisuar dhe orkestruar aplikacionet n\u00eb m\u00ebnyr\u00eb efektive brenda nj\u00eb platforme n\u00eb re si Kubernetes, \u00ebsht\u00eb e nevojshme t\u00eb b\u00ebhen p\u00ebrpjekje shtes\u00eb.<br \/>\nBaza p\u00ebr idet\u00eb e m\u00ebposhtme \u00ebsht\u00eb metodologia <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)\">The Twelve-Factor App<\/a><\/noindex> dhe shum\u00eb punime t\u00eb tjera mbi aspekte t\u00eb ndryshme t\u00eb krijimit t\u00eb aplikacioneve n\u00eb internet, nga menaxhimi i kodit burimor deri te modelet e shkall\u00ebzimit. Parimet e p\u00ebrshkruara lidhen vet\u00ebm me zhvillimin e aplikacioneve n\u00eb kontejner\u00eb, t\u00eb cilat jan\u00eb t\u00eb nd\u00ebrtuara mbi mikrosh\u00ebrbime dhe jan\u00eb t\u00eb destinuara p\u00ebr platforma n\u00eb re si Kubernetes. Elementi themelor n\u00eb diskutimet tona \u00ebsht\u00eb imazhi i konteinerit, dhe n\u00ebn ambientin e performanc\u00ebs s\u00eb konteiner\u00ebve kuptojm\u00eb platform\u00ebn e orkestrimit t\u00eb konteiner\u00ebve. Q\u00ebllimi i parimeve t\u00eb propozuara \u00ebsht\u00eb krijimi i konteiner\u00ebve, p\u00ebr t\u00eb cilat n\u00eb shumic\u00ebn e platformave t\u00eb orkestrimit mund t\u00eb automatizohen detyrat e menaxhimit (scheduling \u2013 zgjedhja e hostit p\u00ebr t\u00eb ekzekutuar instanc\u00ebn e konteinerit), shkall\u00ebzimi dhe monitorimi. Parimet paraqiten n\u00eb nj\u00eb rend t\u00eb rast\u00ebsish\u00ebm.<\/p>\n<h3>Parimi i p\u00ebrgjegj\u00ebsis\u00eb s\u00eb vetme (Single Concern Principle, SCP)<\/h3>\n<p>\nKy parim \u00ebsht\u00eb n\u00eb shum\u00eb drejtime i ngjash\u00ebm me parimin e p\u00ebrgjegj\u00ebsis\u00eb s\u00eb vetme (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>), i cili \u00ebsht\u00eb pjes\u00eb e setit SOLID dhe thot\u00eb se \u00e7do objekt duhet t\u00eb ket\u00eb nj\u00eb p\u00ebrgjegj\u00ebsi dhe kjo p\u00ebrgjegj\u00ebsi duhet t\u00eb jet\u00eb plot\u00ebsisht e inkapsuluar n\u00eb klas\u00eb. Thelbi i SRP \u00ebsht\u00eb se \u00e7do p\u00ebrgjegj\u00ebsi \u00ebsht\u00eb nj\u00eb arsye p\u00ebr ndryshime, dhe klasa duhet t\u00eb ket\u00eb nj\u00eb dhe vet\u00ebm nj\u00eb arsye p\u00ebr ndryshim.<\/p>\n<p>N\u00eb SCP, n\u00eb vend t\u00eb fjal\u00ebs \"p\u00ebrgjegj\u00ebsi\" (responsibility), p\u00ebrdorim fjal\u00ebn \"detyr\u00eb\" (concern) p\u00ebr t\u00eb treguar nj\u00eb nivel m\u00eb t\u00eb lart\u00eb abstraksioni dhe nj\u00eb q\u00ebllim m\u00eb t\u00eb gjer\u00eb t\u00eb kontejnerit krahasuar me klas\u00ebn OOP. Dhe n\u00ebse q\u00ebllimi i SRP \u00ebsht\u00eb t\u00eb ket\u00eb vet\u00ebm nj\u00eb arsye p\u00ebr ndryshime, at\u00ebher\u00eb SCP ka si synim zgjerimin e mund\u00ebsive p\u00ebr rip\u00ebrdorim dhe z\u00ebvend\u00ebsim t\u00eb kontejner\u00ebve. Duke ndjekur SRP dhe krijuar nj\u00eb kontejner q\u00eb zgjidh nj\u00eb detyr\u00eb t\u00eb vetme dhe e b\u00ebn k\u00ebt\u00eb n\u00eb nj\u00eb m\u00ebnyr\u00eb funksionalisht t\u00eb p\u00ebrfunduar, ju rrisni shanset p\u00ebr rip\u00ebrdorim t\u00eb imazhit t\u00eb k\u00ebtij kontejneri n\u00eb kontekste t\u00eb ndryshme t\u00eb aplikacionit.<\/p>\n<p>Parimi SCP thot\u00eb se \u00e7do kontejner duhet t\u00eb zgjidh\u00eb nj\u00eb detyr\u00eb t\u00eb vetme dhe ta b\u00ebj\u00eb at\u00eb mir\u00eb. P\u00ebr m\u00eb tep\u00ebr, SCP n\u00eb bot\u00ebn e kontejner\u00ebve arrihet m\u00eb leht\u00eb sesa SRP n\u00eb bot\u00ebn e OOP, pasi kontejner\u00ebt zakonisht kryejn\u00eb nj\u00eb proces t\u00eb vet\u00ebm dhe shumic\u00ebn e koh\u00ebs ky proces zgjidh nj\u00eb detyr\u00eb t\u00eb vetme.<\/p>\n<p>N\u00ebse nj\u00eb mikrosh\u00ebrbim kontejner duhet t\u00eb zgjidh\u00eb disa detyra, at\u00ebher\u00eb mund t\u00eb ndahet n\u00eb kontejner\u00eb nj\u00ebdetyrash dhe t\u00eb bashkohen brenda nj\u00eb pod-i (nj\u00ebsi e shtrimit t\u00eb platform\u00ebs s\u00eb kontejner\u00ebve) duke p\u00ebrdorur modele si sidecar dhe init-kontejner\u00eb. P\u00ebr m\u00eb tep\u00ebr, SCP leht\u00ebson z\u00ebvend\u00ebsimin e nj\u00eb kontejneri t\u00eb vjet\u00ebr (p\u00ebr shembull, nj\u00eb server web ose broker mesazhesh) me nj\u00eb t\u00eb ri q\u00eb zgjidh t\u00eb nj\u00ebjt\u00ebn detyr\u00eb, por ka funksionalitet t\u00eb zgjeruar ose shkall\u00ebzim m\u00eb t\u00eb mir\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/a029e1ca36ace66550c94087e4aecc8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Parimi i leht\u00ebsis\u00eb s\u00eb monitorimit (High Observability Principle, HOP)<\/h3>\n<p>\nKur p\u00ebrdoren kontejner\u00eb si nj\u00eb m\u00ebnyr\u00eb unike p\u00ebr t\u00eb paketuar dhe ekzekutuar aplikacione, vet\u00eb aplikacionet shihen si \"kuti e zez\u00eb\". Megjithat\u00eb, n\u00ebse k\u00ebto jan\u00eb kontejner\u00eb cloud, ato duhet t'i ofrojn\u00eb mjedisit t\u00eb ekzekutimit API t\u00eb ve\u00e7anta p\u00ebr t\u00eb monitoruar sh\u00ebndetin e kontejner\u00ebve dhe, n\u00eb rast nevoje, t\u00eb nd\u00ebrmarrin masa p\u00ebrkat\u00ebse. Pa k\u00ebt\u00eb, nuk do t\u00eb jet\u00eb e mundur t\u00eb unifikohet automatizimi i p\u00ebrdit\u00ebsimit t\u00eb kontejner\u00ebve dhe menaxhimit t\u00eb ciklit t\u00eb tyre t\u00eb jet\u00ebs, q\u00eb nga ana tjet\u00ebr do t\u00eb p\u00ebrkeq\u00ebsoj\u00eb q\u00ebndrueshm\u00ebrin\u00eb dhe leht\u00ebsin\u00eb e p\u00ebrdorimit t\u00eb sistemit softuerik.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/7df1320108d9b635c10c6cf41d5dfef6.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nN\u00eb praktik\u00eb, nj\u00eb aplikacion kontejner duhet, s\u00eb paku, t\u00eb ket\u00eb nj\u00eb API p\u00ebr lloje t\u00eb ndryshme kontrollesh sh\u00ebndeti: testet e aktiviteteve (liveness) dhe testet e gatishm\u00ebris\u00eb (readiness). N\u00ebse aplikacioni pretendon t\u00eb ket\u00eb m\u00eb shum\u00eb, ai duhet t\u00eb ofroj\u00eb edhe mjete t\u00eb tjera monitorimi t\u00eb gjendjes s\u00eb tij. P\u00ebr shembull, regjistrimin e ngjarjeve t\u00eb r\u00ebnd\u00ebsishme p\u00ebrmes STDERR dhe STDOUT p\u00ebr agregimin e skedar\u00ebve t\u00eb log-eve me ndihm\u00ebn e Fluentd, Logstash dhe mjeteve t\u00eb tjera t\u00eb ngjashme. Po ashtu, integrimin me biblioteka gjurmimi dhe mbledhjeje metrikash si OpenTracing, Prometheus etj.<\/p>\n<p>N\u00eb thelb, aplikacioni mund t\u00eb vazhdoj\u00eb t\u00eb shikohet si \"kuti e zez\u00eb\", por ai duhet t\u00eb pajiset me t\u00eb gjith\u00eb API-t\u00eb q\u00eb platforma ka nevoj\u00eb p\u00ebr ta monitoruar dhe menaxhuar n\u00eb m\u00ebnyr\u00ebn m\u00eb t\u00eb mir\u00eb t\u00eb mundshme.<\/p>\n<h3>Parimi i p\u00ebrshtatjes me ciklin e jet\u00ebs (Life-cycle Conformance Principle, LCP)<\/h3>\n<p>\nLCP \u00ebsht\u00eb nj\u00eb antitez\u00eb e HOP. N\u00ebse HOP thot\u00eb se kontejneri duhet t\u00eb ofroj\u00eb API p\u00ebr platform\u00ebn p\u00ebr t\u00eb lexuar, LCP k\u00ebrkon nga aplikacioni t\u00eb ket\u00eb aft\u00ebsin\u00eb p\u00ebr t\u00eb pranuar informacion nga platforma. K\u00ebshtu, kontejneri duhet t\u00eb jet\u00eb n\u00eb gjendje jo vet\u00ebm t\u00eb marr\u00eb ngjarje, por edhe t\u00eb p\u00ebrshtatet, dmth t\u00eb reagoj\u00eb ndaj tyre. Kjo \u00ebsht\u00eb arsyeja se p\u00ebrse quhet parimi, i cili mund t\u00eb merret si nj\u00eb k\u00ebrkes\u00eb p\u00ebr t'i ofruar platform\u00ebs API p\u00ebr t\u00eb shkruar.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/f32f5d133597ae3905206badc6677f92.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPlatformat kan\u00eb lloje t\u00eb ndryshme ngjarjesh q\u00eb ndihmojn\u00eb n\u00eb menaxhimin e ciklit t\u00eb jet\u00ebs s\u00eb kontejnerit. Por, vendosja se cilat prej tyre duhet t\u00eb pranohet dhe si duhet t\u00eb reagoj\u00eb duhet ta b\u00ebj\u00eb vet\u00eb aplikacioni.<\/p>\n<p>\u00cbsht\u00eb e qart\u00eb se disa ngjarje jan\u00eb m\u00eb t\u00eb r\u00ebnd\u00ebsishme se t\u00eb tjerat. P\u00ebr shembull, n\u00ebse aplikacioni nuk e duron mir\u00eb mbylljen e papritur, at\u00ebher\u00eb ai duhet t\u00eb pranoj\u00eb mesazhin signal: terminate (SIGTERM) dhe sa m\u00eb shpejt t\u00eb jet\u00eb e mundur, t\u00eb njoftoj\u00eb procedur\u00ebn e tij t\u00eb mbylljes, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb p\u00ebrfundoj\u00eb para se t\u00eb marr\u00eb signalin: kill (SIGKILL), i cili vjen pas SIGTERM.<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, p\u00ebr ciklin e jet\u00ebs s\u00eb aplikacionit, ngjarje t\u00eb till\u00eb si PostStart dhe PreStop mund t\u00eb jen\u00eb t\u00eb r\u00ebnd\u00ebsishme. P\u00ebr shembull, pas nisjes, aplikacionit mund t'i nevojitet nj\u00eb periudh\u00eb e caktuar kohe p\u00ebr \"ngrohje\" para se t\u00eb mund t\u00eb reagoj\u00eb ndaj k\u00ebrkesave. Ose aplikacioni duhet ta l\u00ebshoj\u00eb ndonj\u00eb burim n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb ve\u00e7ant\u00eb kur mbyllet.<\/p>\n<h3>Parimi i pandryshueshm\u00ebris\u00eb s\u00eb imazhit t\u00eb kontejnerit (Image Immutability Principle, IIP)<\/h3>\n<p>\nK\u00ebtu \u00ebsht\u00eb e pranuar se aplikacionet e kontejner\u00ebve duhet t\u00eb mbeten t\u00eb pandryshuara pas nd\u00ebrtimit, edhe n\u00ebse ekzekutohen n\u00eb ambiente t\u00eb ndryshme. Nga kjo del nevoja p\u00ebr t\u00eb eksternizuar ruajtjen e t\u00eb dh\u00ebnave n\u00eb koh\u00ebn e ekzekutimit (n\u00eb terma t\u00eb tjer\u00eb, p\u00ebr t\u00eb p\u00ebrdorur mjete t\u00eb jashtme p\u00ebr k\u00ebt\u00eb) dhe p\u00ebr t\u00eb mb\u00ebshtetur konfigurime t\u00eb jashtme, t\u00eb p\u00ebrshtatura p\u00ebr ambientin p\u00ebrkat\u00ebs, n\u00eb vend q\u00eb t\u00eb modifikohen ose krijohen kontejner\u00eb unik\u00eb p\u00ebr \u00e7do ambient. Pas \u00e7do ndryshimi n\u00eb aplikacion, imazhi i kontejnerit duhet t\u00eb nd\u00ebrtohet p\u00ebrs\u00ebri dhe t\u00eb shp\u00ebrndahet n\u00eb t\u00eb gjitha ambientet e p\u00ebrdorura. N\u00eb fakt, nj\u00eb parim i ngjash\u00ebm p\u00ebrdoret kur menaxhohen sistemet IT, i njohur si parimi i pandryshueshm\u00ebris\u00eb s\u00eb server\u00ebve dhe infrastruktur\u00ebs. <\/p>\n<p>Q\u00ebllimi i IIP \u00ebsht\u00eb parandalimi i krijimit t\u00eb imazheve t\u00eb ve\u00e7anta t\u00eb kontejner\u00ebve p\u00ebr \u00e7do ambient ekzekutimi dhe p\u00ebrdorimi i t\u00eb nj\u00ebjtit imazh kudo, s\u00eb bashku me konfigurimin p\u00ebrkat\u00ebs p\u00ebr ambientin specifik. T\u00eb ndjek\u00ebsh k\u00ebt\u00eb parim mund\u00ebson realizimin e praktikave t\u00eb r\u00ebnd\u00ebsishme p\u00ebr automatizimin e sistemeve t\u00eb mjeteve cloud, si\u00e7 jan\u00eb rikthimi (roll-back) dhe p\u00ebrparimi (roll-forward) i azhurnimeve t\u00eb aplikacionit.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/86b93724830b37f82bf289b797407480.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Parimi i disponueshm\u00ebris\u00eb s\u00eb proceseve (Process Disposability Principle, PDP)<\/h3>\n<p>\nNj\u00eb nga karakteristikat m\u00eb t\u00eb r\u00ebnd\u00ebsishme t\u00eb kontejner\u00ebve \u00ebsht\u00eb efem\u00ebrsia e tij: nj\u00eb ekzemplar kontejneri mund t\u00eb krijohet leht\u00ebsisht dhe t\u00eb shkat\u00ebrrohet leht\u00ebsisht, k\u00ebshtu q\u00eb mund t\u00eb z\u00ebvend\u00ebsohet n\u00eb \u00e7do moment me nj\u00eb ekzemplar tjet\u00ebr. Shkaqet p\u00ebr k\u00ebt\u00eb z\u00ebvend\u00ebsim mund t\u00eb jen\u00eb shum\u00eb: d\u00ebshtimi n\u00eb testimin e q\u00ebndrueshm\u00ebris\u00eb, shkall\u00ebzimi i aplikacionit, transferimi n\u00eb nj\u00eb host tjet\u00ebr, shterimi i burimeve t\u00eb platform\u00ebs ose situata t\u00eb tjera. <\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/858287b23c276363313e35cf18b81190.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nSi pasoj\u00eb, aplikacionet e kontejner\u00ebve duhet t\u00eb ruajn\u00eb gjendjen e tyre me ndihm\u00ebn e disa mjeteve t\u00eb jashtme, ose t\u00eb p\u00ebrdorin skema t\u00eb brendshme t\u00eb shp\u00ebrndara me redundanc\u00eb. P\u00ebr m\u00eb tep\u00ebr, aplikacioni duhet t\u00eb filloj\u00eb dhe p\u00ebrfundoj\u00eb shpejt, si dhe t\u00eb jet\u00eb i gatsh\u00ebm p\u00ebr d\u00ebshtim t\u00eb papritur fatale t\u00eb pajisjeve.<\/p>\n<p>Nj\u00eb nga praktikat q\u00eb ndihmojn\u00eb n\u00eb realizimin e k\u00ebtij parimi \u00ebsht\u00eb krijimi i kontejner\u00ebve t\u00eb vegj\u00ebl. Ambientet cloud mund t\u00eb zgjidhin automatikisht hostin p\u00ebr t\u00eb ekzekutuar ekzemplarin e kontejnerit, k\u00ebshtu q\u00eb sa m\u00eb i vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e kontejnerit, aq m\u00eb shpejt do t\u00eb nis\u00eb \u2013 ai thjesht do t\u00eb kopjohet m\u00eb shpejt n\u00eb hostin e synuar n\u00ebp\u00ebrmjet rrjetit.<\/p>\n<h3>Parimi i vet\u00eb-mjaftueshm\u00ebris\u00eb (Self-containment Principle, S-CP)<\/h3>\n<p>\nSipas k\u00ebtij parimi, gjat\u00eb faz\u00ebs s\u00eb nd\u00ebrtimit, t\u00eb gjitha komponent\u00ebt e nevojsh\u00ebm duhet t\u00eb p\u00ebrfshihen n\u00eb kontejner. Kontejneri duhet nd\u00ebrtuar duke supozuar se sistemi ka vet\u00ebm nj\u00eb b\u00ebrtham\u00eb t\u00eb past\u00ebr Linux, prandaj t\u00eb gjitha bibliotekat plot\u00ebsuese t\u00eb nevojshme duhet t\u00eb vendosen brenda kontejnerit. Atje gjithashtu duhet t\u00eb p\u00ebrfshihen elemente si mjedisi i ekzekutimit p\u00ebr gjuh\u00ebn p\u00ebrkat\u00ebse t\u00eb programimit, platforma e aplikacioneve (n\u00ebse \u00ebsht\u00eb e nevojshme) dhe var\u00ebsit\u00eb e tjera q\u00eb do t\u00eb nevojiten gjat\u00eb funksionimit t\u00eb aplikacionit t\u00eb kontejnerit. <\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/ecc7425510d63e4914c0c9a7e90b02a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>P\u00ebrjashtime b\u00ebhen vet\u00ebm p\u00ebr konfigurimet q\u00eb ndryshojn\u00eb nga ambienti n\u00eb ambient dhe q\u00eb duhet t\u00eb ofrohen n\u00eb koh\u00ebn e ekzekutimit, p.sh., p\u00ebrmes Kubernetes ConfigMap.<\/p>\n<p>Aplikacioni mund t\u00eb p\u00ebrfshij\u00eb disa komponente t\u00eb kontejnerizuara, p\u00ebr shembull, nj\u00eb kontejner t\u00eb ve\u00e7ant\u00eb p\u00ebr DBMS n\u00eb brend\u00ebsi t\u00eb nj\u00eb aplikacioni web t\u00eb kontejnerizuar. Sipas parimit S-CP, k\u00ebto kontejner\u00eb nuk duhet t\u00eb bashkohen n\u00eb nj\u00eb, por duhet t\u00eb b\u00ebhet q\u00eb kontejneri i DBMS t\u00eb ket\u00eb gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionimin e databaz\u00ebs, nd\u00ebrsa kontejneri i aplikacionit web t\u00eb ket\u00eb gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionin e aplikacionit web, at\u00ebher\u00eb serverin web. Si rezultat, gjat\u00eb ekzekutimit, kontejneri i aplikacionit web do t\u00eb varet nga kontejneri i DBMS dhe do t'i drejtohet atij sipas nevoj\u00ebs.<\/p>\n<h3>Parimi i kufizimit n\u00eb koh\u00ebn e ekzekutimit (Runtime Confinement Principle, RCP)<\/h3>\n<p>\nParimi S-CP p\u00ebrcakton si duhet t\u00eb nd\u00ebrtohet kontejneri dhe \u00e7far\u00eb duhet t\u00eb p\u00ebrmbaj\u00eb skedari binar i imazhit. Por, kontejneri nuk \u00ebsht\u00eb thjesht nj\u00eb \"kutin\u00eb e zez\u00eb\", e cila ka vet\u00ebm nj\u00eb karakteristik\u00eb - madh\u00ebsin\u00eb e skedarit. Gjat\u00eb ekzekutimit, kontejneri ka dhe dimensione t\u00eb tjera: sasia e memories s\u00eb p\u00ebrdorur, koha e procesorit dhe burime t\u00eb tjera sistemike.<\/p>\n<p><img decoding=\"async\" alt=\"5 parimet e sh\u00ebndosh\u00eb p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/a52e6a656892e57479ac014a3e6f4316.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDhe k\u00ebtu ndihmon parimi RCP, sipas t\u00eb cilit kontejneri duhet t\u00eb dekapsuloj\u00eb k\u00ebrkesat e tij p\u00ebr burimet sistemike dhe t'i transmetoj\u00eb platform\u00ebs. Me profilet e burimeve t\u00eb \u00e7do kontejneri (sa burime t\u00eb CPU, memories, rrjetit dhe sistemit disk i duhen), platforma mund t\u00eb menaxhoj\u00eb optimalisht caktimin dhe automashtimin, t\u00eb menaxhoj\u00eb kapacitetet IT dhe t\u00eb mbaj\u00eb nivelet e SLA p\u00ebr kontejner\u00ebt.<\/p>\n<p>P\u00ebrve\u00e7 p\u00ebrmbushjes s\u00eb kushteve p\u00ebr burimet e kontejnerit, \u00ebsht\u00eb gjithashtu e r\u00ebnd\u00ebsishme q\u00eb aplikacioni t\u00eb mos tejkaloj\u00eb kufijt\u00eb e caktuar prej tij vet\u00eb. Ndryshe, n\u00eb rastin e munges\u00ebs s\u00eb burimeve, platforma ka m\u00eb shum\u00eb gjasa t\u00eb p\u00ebrfshij\u00eb aplikacionin n\u00eb list\u00ebn e aplikacioneve q\u00eb duhet t\u00eb nd\u00ebrpriten ose migrohen.<\/p>\n<p>Kur flasim p\u00ebr orientimin drejt cloud-it, kemi parasysh n\u00eb radh\u00eb t\u00eb par\u00eb m\u00ebnyr\u00ebn e funksionimit. <br \/>\nM\u00eb sip\u00ebr kemi formuluar nj\u00eb s\u00ebr\u00eb parimesh t\u00eb p\u00ebrgjithshme q\u00eb krijojn\u00eb themelin metodologjik p\u00ebr nd\u00ebrtimin e aplikacioneve t\u00eb cil\u00ebsis\u00eb s\u00eb lart\u00eb p\u00ebr mjediset e cloud-it.<\/p>\n<p>Vlen t\u00eb theksohet se p\u00ebrve\u00e7 k\u00ebtyre parimeve t\u00eb p\u00ebrgjithshme, do t'ju nevojiten gjithashtu metoda dhe teknika t\u00eb avancuara p\u00ebr pun\u00ebn me kontejner\u00ebt. Gjithashtu, kemi disa rekomandime t\u00eb shkurtra q\u00eb jan\u00eb m\u00eb t\u00eb ve\u00e7anta dhe duhet t\u00eb aplikohen (ose jo) n\u00eb p\u00ebrputhje me situat\u00ebn:<\/p>\n<ul>\n<li>P\u00ebrpiquni t\u00eb zvog\u00ebloni madh\u00ebsin\u00eb e imazheve: hiqni skedar\u00ebt e p\u00ebrkohsh\u00ebm dhe mos instaloni paketa t\u00eb panevojshme \u2013 sa m\u00eb e vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e kontejnerit, aq m\u00eb shpejt do t\u00eb ngrihet dhe kopjohet n\u00eb host-in e synuar p\u00ebrmes rrjetit.<\/li>\n<li>Orientohuni nga User-ID t\u00eb rast\u00ebsishme: mos p\u00ebrdorni komand\u00ebn sudo ose ndonj\u00eb userid t\u00eb ve\u00e7ant\u00eb p\u00ebr t\u00eb nisur kontejner\u00ebt tuaj.<\/li>\n<li>Sh\u00ebnjoni portet e r\u00ebnd\u00ebsishme: numrat e porteve mund t\u00eb caktohen edhe gjat\u00eb ekzekutimit, por \u00ebsht\u00eb m\u00eb mir\u00eb t'i tregoni ato me komand\u00ebn EXPOSE \u2013 do t\u00eb jet\u00eb m\u00eb e leht\u00eb p\u00ebr t\u00eb tjer\u00ebt dhe programet q\u00eb t\u00eb p\u00ebrdorin imazhet tuaja. <\/li>\n<li>Ruani t\u00eb dh\u00ebnat e p\u00ebrhershme n\u00eb v\u00ebllime: t\u00eb dh\u00ebnat q\u00eb duhet t\u00eb mbeten pas shkat\u00ebrrimit t\u00eb kontejnerit duhet t\u00eb shkruhen n\u00eb v\u00ebllime.<\/li>\n<li>Specifikoni metadata t\u00eb imazhit: etiketat, shenjat dhe annotimet e leht\u00ebsojn\u00eb p\u00ebrdorimin e imazheve \u2013 zhvilluesit e tjer\u00eb do t'ju falenderojn\u00eb.<\/li>\n<li>Sinkronizoni hostin dhe imazhet: disa aplikacione t\u00eb kontejner\u00ebve k\u00ebrkojn\u00eb sinkronizimin e kontejnerit me hostin n\u00eb lidhje me disa atribute, si koha ose identifikuesi i makin\u00ebs.<\/li>\n<li>N\u00eb p\u00ebrfundim, ndajm\u00eb shabllone dhe praktika m\u00eb t\u00eb mira q\u00eb do t\u00eb ndihmojn\u00eb p\u00ebr t\u00eb realizuar m\u00eb efektivisht parimet e m\u00ebsip\u00ebrme:<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>Webinari mbi versionin e ri t\u00eb OpenShift Container Platform \u2013 4<\/b><\/a><\/noindex><br \/>\n11 qershor n\u00eb 11.00<\/p>\n<p>\u00c7far\u00eb do t\u00eb m\u00ebsoni:<\/p>\n<ul>\n<li>Immutable Red Hat Enterprise Linux CoreOS<\/li>\n<li>OpenShift service mesh<\/li>\n<li>Operator framework<\/li>\n<li>Knative framework<\/li>\n<\/ul>\n<p>Burimi: <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\/sq\/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=\"sq_AL\" \/>\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\/sq\/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 parime t\u00eb sh\u00ebndosha p\u00ebr krijimin e aplikacioneve cloud-native | ProHoster","description":"Aplikacionet \"cloud-native\" ose thjesht \"t\u00eb cloud\" krijohen posa\u00e7\u00ebrisht p\u00ebr t\u00eb funksionuar n\u00eb infrastrukturat cloud. Zakonisht nd\u00ebrtohen si nj\u00eb grup mikrosh\u00ebrbimesh t\u00eb lidhura leht\u00eb, t\u00eb paketuara n\u00eb kontejner\u00eb, t\u00eb cilat menaxhohen nga nj\u00eb platform\u00eb cloud. K\u00ebto aplikacione jan\u00eb t\u00eb p\u00ebrgatitura p\u00ebr d\u00ebshtime si parazgjedhje, duke i b\u00ebr\u00eb ato t\u00eb besueshme dhe t\u00eb shkall\u00ebzueshme edhe n\u00eb rast d\u00ebshtimesh t\u00eb nivelit infrastruktural. An\u00ebs m\u00eb t\u00eb err\u00ebt t\u00eb medaljes -","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/35006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=35006"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/35006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/26340"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=35006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=35006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=35006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}