{"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\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","title":{"rendered":"5 parime t\u00eb arsyeshme p\u00ebr krijimin e aplikacioneve cloud-native","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Aplikacionet \"cloud-native\" ose thjesht \"n\u00eb re\" krijohen specifikisht p\u00ebr t'u funksionuar n\u00eb infrastrukturat e re. Zakonisht, ato nisin si nj\u00eb grup mikrosh\u00ebrbimesh t\u00eb lidhura dob\u00ebt, t\u00eb paketuar n\u00eb kontejner\u00eb, t\u00eb cil\u00ebt, nga ana tjet\u00ebr, menaxhohen nga nj\u00eb platform\u00eb cloud. K\u00ebto aplikacione jan\u00eb parazgjedhur p\u00ebr t'u rikuperuar nga d\u00ebshtimet, q\u00eb do t\u00eb thot\u00eb se funksionojn\u00eb dhe shkall\u00ebzohen me besueshm\u00ebri, madje edhe n\u00eb rastet e d\u00ebshtimeve serioze n\u00eb nivelin e infrastruktur\u00ebs. An\u00eb tjet\u00ebr e medaljes \u00ebsht\u00eb grumbulli i kufizimeve (kontraktet) q\u00eb platformat cloud vendosin mbi aplikacionet container, p\u00ebr t'u mund\u00ebsuar menaxhimin e tyre n\u00eb m\u00ebnyr\u00eb automatike.<\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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 plot\u00ebsisht nevoj\u00ebn dhe r\u00ebnd\u00ebsin\u00eb e kalimit n\u00eb aplikacione n\u00eb re, shum\u00eb organizata ende nuk din\u00eb nga t\u00eb fillojn\u00eb. N\u00eb k\u00ebt\u00eb postim, ne do t\u00eb shqyrtojm\u00eb nj\u00eb s\u00ebr\u00eb parimesh, respektimi i t\u00eb cilave gjat\u00eb zhvillimit t\u00eb aplikacioneve me kontejner\u00eb do t\u00eb lejoj\u00eb realizimin e potencialit t\u00eb platformave cloud dhe arritjen e funksionimit dhe shkall\u00ebzimit t\u00eb besuesh\u00ebm t\u00eb aplikacioneve, madje edhe n\u00eb rastet e d\u00ebshtimeve t\u00eb r\u00ebnda n\u00eb nivelin e infrastruktur\u00ebs IT. Q\u00ebllimi kryesor i parimeve t\u00eb paraqitura k\u00ebtu \u00ebsht\u00eb t\u00eb m\u00ebsojm\u00eb si t\u00eb krijojm\u00eb aplikacione q\u00eb mund t\u00eb menaxhohen automatikisht nga platforma cloud, si\u00e7 \u00ebsht\u00eb Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Parimet e projektimit t\u00eb softuerit<\/h3>\n<p>\nN\u00eb bot\u00ebn e programimit, parimet kuptohen si rregulla mjaft t\u00eb p\u00ebrgjithshme q\u00eb duhet t\u00eb respektohen gjat\u00eb zhvillimit t\u00eb softuerit. Ato mund t\u00eb aplikohen gjat\u00eb pun\u00ebs me \u00e7do gjuh\u00eb programimi. \u00c7do parim ka q\u00ebllimet e veta, p\u00ebr t\u00eb cilat zakonisht sh\u00ebrbejn\u00eb modelet dhe praktikat. Po ashtu, ekzistojn\u00eb nj\u00eb s\u00ebr\u00eb parimesh themelore p\u00ebr krijimin e softuerit cil\u00ebsor, nga t\u00eb cilat burojn\u00eb t\u00eb gjitha t\u00eb tjerat. Le t\u00eb japim 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 e ke nevoj\u00eb menj\u00ebher\u00eb;<\/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 ndaje p\u00ebrgjegj\u00ebsit\u00eb.<\/li>\n<\/ul>\n<p>\nSi\u00e7 mund t\u00eb shihet, k\u00ebto parime nuk caktoshin rregulla t\u00eb caktuara, por i p\u00ebrkasin kategoris\u00eb s\u00eb konsideratave t\u00eb sh\u00ebndosha t\u00eb bazuara n\u00eb p\u00ebrvoj\u00ebn praktike, t\u00eb cilat shum\u00eb zhvillues i ndajn\u00eb dhe n\u00eb t\u00eb cilat ata referohen rregullisht.<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 nga pes\u00eb parimet e para t\u00eb programimit dhe projektimit t\u00eb orientuar nga objektet, t\u00eb formuluara nga Robert Martin. SOLID p\u00ebrfshin parime 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 t\u00eb softuerit m\u00eb cil\u00ebsore dhe mb\u00ebshtetje m\u00eb t\u00eb mir\u00eb p\u00ebr to n\u00eb perspektiv\u00ebn afatgjat\u00eb.<\/p>\n<p>Parimet SOLID i p\u00ebrkasin fush\u00ebs s\u00eb OOP dhe formulohen n\u00eb gjuh\u00ebn e koncepteve dhe nocioneve si klasat, nd\u00ebrfaqet dhe trash\u00ebgimia. N\u00eb t\u00eb nj\u00ebjt\u00ebn m\u00ebnyr\u00eb, p\u00ebr aplikacionet n\u00eb re gjithashtu mund t\u00eb formulohen parimet e zhvillimit, vet\u00ebm se elementi baz\u00eb k\u00ebtu do t\u00eb jet\u00eb nj\u00eb kontejner dhe jo nj\u00eb klas\u00eb. Duke ndjekur k\u00ebto parime, mund t\u00eb krijohen aplikacione kontejneri q\u00eb p\u00ebrgjigjen m\u00eb mir\u00eb q\u00ebllimeve dhe detyrave t\u00eb platformave cloud si Kubernetes.<\/p>\n<h3>Konteiner\u00ebt e orientuar nga re: qasja Red Hat<\/h3>\n<p>\nSot, \u00ebsht\u00eb relativisht e leht\u00eb t\u00eb paketoni pothuajse \u00e7do aplikacion n\u00eb konteiner\u00eb. Por p\u00ebr t\u00eb q\u00eb aplikacionet t\u00eb automatizohen dhe orkestrohen efektivisht n\u00eb kuad\u00ebr t\u00eb nj\u00eb platforme cloud si Kubernetes, k\u00ebrkohet p\u00ebrpjekje t\u00eb m\u00ebtejshme.<br \/>\nBaza p\u00ebr idet\u00eb e paraqitura m\u00eb posht\u00eb ishte metodologjia <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 pun\u00eb t\u00eb tjera mbi aspekte t\u00eb ndryshme t\u00eb krijimit t\u00eb aplikacioneve web, nga menaxhimi i kodit burimor deri te modelet e shkall\u00ebzimit. Parimet e p\u00ebrshkruara i p\u00ebrkasin vet\u00ebm zhvillimit t\u00eb aplikacioneve kontejneri, t\u00eb cilat jan\u00eb nd\u00ebrtuar mbi baz\u00ebn e mikros\u00ebrbimeve dhe jan\u00eb t\u00eb destinuara p\u00ebr platforma cloud si Kubernetes. Elementi baz\u00eb n\u00eb shqyrtimet tona \u00ebsht\u00eb imazhi i kontejnerit, dhe p\u00ebr ambienc\u00ebn e caktuar t\u00eb ekzekutimit t\u00eb kontejner\u00ebve kuptohet platforma e orkestrimit t\u00eb kontejner\u00ebve. Q\u00ebllimi i parimeve t\u00eb propozuara \u00ebsht\u00eb t\u00eb krijojm\u00eb konteiner\u00eb, p\u00ebr t\u00eb cil\u00ebt n\u00eb shumic\u00ebn e platformave t\u00eb orkestrimit mund t\u00eb automatizohen detyrat e planifikimit, shkall\u00ebzimit dhe monitorimit. Parimet paraqiten n\u00eb rend t\u00eb rast\u00ebsish\u00ebm.<\/p>\n<h3>Parimi i shqet\u00ebsimit t\u00eb vet\u00ebm (Single Concern Principle, SCP)<\/h3>\n<p>\nKy princip \u00ebsht\u00eb shum\u00eb 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 grupit SOLID dhe thot\u00eb se \u00e7do objekt duhet t\u00eb ket\u00eb nj\u00eb detyr\u00eb dhe kjo detyr\u00eb duhet t\u00eb jet\u00eb plot\u00ebsisht e inkapsuluar n\u00eb klas\u00eb. Kuptimi i SRP \u00ebsht\u00eb q\u00eb \u00e7do detyr\u00eb \u00ebsht\u00eb nj\u00eb arsye p\u00ebr ndryshim, 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), ne 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 funksion m\u00eb t\u00eb gjer\u00eb t\u00eb en\u00ebve 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, SCP ka p\u00ebr q\u00ebllim t\u00eb zgjas\u00eb mund\u00ebsit\u00eb p\u00ebr rip\u00ebrdorim dhe z\u00ebvend\u00ebsim t\u00eb en\u00ebve. Duke ndjekur SRP dhe duke krijuar nj\u00eb en\u00eb q\u00eb zgjidh nj\u00eb detyr\u00eb t\u00eb vetme dhe e b\u00ebn k\u00ebt\u00eb n\u00eb nj\u00eb m\u00ebnyr\u00eb funksionale t\u00eb plot\u00eb, ju rrisni shanset p\u00ebr rip\u00ebrdorimin e k\u00ebtij imazhi t\u00eb en\u00ebs n\u00eb kontekste t\u00eb ndryshme aplikacionesh.<\/p>\n<p>Parimi SCP thot\u00eb se \u00e7do en\u00eb duhet t\u00eb zgjidh\u00eb nj\u00eb detyr\u00eb t\u00eb vetme dhe ta b\u00ebj\u00eb at\u00eb mir\u00eb. Po ashtu, SCP n\u00eb bot\u00ebn e en\u00ebve arrihet m\u00eb leht\u00eb sesa SRP n\u00eb bot\u00ebn e OOP, pasi en\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 ndonj\u00eb mikrosistem en\u00eb duhet t\u00eb zgjidh\u00eb disa detyra, at\u00ebher\u00eb mund t\u00eb ndahet n\u00eb en\u00eb me nj\u00eb detyr\u00eb dhe t'i bashkohen n\u00eb nj\u00eb pod (nj\u00ebsi implementimi t\u00eb platform\u00ebs s\u00eb en\u00ebve) n\u00ebp\u00ebrmjet shablloneve sidecar dhe init-container. P\u00ebr m\u00eb tep\u00ebr, SCP e leht\u00ebson z\u00ebvend\u00ebsimin e en\u00ebs s\u00eb vjet\u00ebr (p.sh., serverit t\u00eb uebit apo brokerit t\u00eb mesazheve) me nj\u00eb t\u00eb re, e cila zgjidh t\u00eb nj\u00ebjt\u00ebn detyr\u00eb, por ka funksionalitete t\u00eb zgjeruara ose \u00ebsht\u00eb m\u00eb mir\u00eb e shkall\u00ebzueshme.<\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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\u00ebt si nj\u00eb m\u00ebnyr\u00eb e standardizuar p\u00ebr paketimin dhe ekzekutimin e aplikacioneve, vet\u00eb aplikacionet shikohen si \"kutia e zez\u00eb\". Megjithat\u00eb, n\u00ebse k\u00ebta jan\u00eb kontejner\u00eb n\u00eb re, ata duhet t\u00eb sigurojn\u00eb mjedisit t\u00eb ekzekutimit API t\u00eb ve\u00e7anta p\u00ebr t\u00eb monitoruar sh\u00ebndetin e kontejner\u00ebve dhe p\u00ebr t\u00eb marr\u00eb masat p\u00ebrkat\u00ebse n\u00ebse \u00ebsht\u00eb e nevojshme. Pa k\u00ebt\u00eb, nuk mund t\u00eb standardizohet automatizimi i p\u00ebrdit\u00ebsimit t\u00eb kontejner\u00ebve dhe menaxhimit t\u00eb ciklit t\u00eb jet\u00ebs s\u00eb tyre, gj\u00eb q\u00eb, p\u00ebr pasoj\u00eb, do t\u00eb p\u00ebrkeq\u00ebsoj\u00eb q\u00ebndrueshm\u00ebrin\u00eb dhe leht\u00ebsin\u00eb e p\u00ebrdorimit t\u00eb sistemit software.<\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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, aplikacioni i kontejnerit duhet, s\u00eb paku, t\u00eb ket\u00eb nj\u00eb API p\u00ebr lloje t\u00eb ndryshme kontrollesh sh\u00ebndeti: teste t\u00eb aktiviteteve (liveness) dhe teste t\u00eb gatishm\u00ebris\u00eb (readiness). N\u00ebse aplikacioni pretendohet t\u00eb ofroj\u00eb m\u00eb shum\u00eb, ai duhet t\u00eb siguroj\u00eb edhe mjete t\u00eb tjera p\u00ebr kontrollin e gjendjes s\u00eb tij. P\u00ebr shembull, regjistrimin e ngjarjeve t\u00eb r\u00ebnd\u00ebsishme n\u00ebp\u00ebrmjet STDERR dhe STDOUT p\u00ebr agregimin e regjistrave p\u00ebrmes Fluentd, Logstash dhe mjeteve t\u00eb ngjashme. Gjithashtu, integrimin me biblioteka p\u00ebr gjurmimin dhe mbledhjen e metrikeve, si OpenTracing, Prometheus etj.<\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, aplikacioni mund t\u00eb konsiderohet ende si \"kutia e zez\u00eb\", por ai duhet t\u00eb jet\u00eb i pajisur me t\u00eb gjitha API-t\u00eb e nevojshme p\u00ebr platform\u00ebn q\u00eb t\u00eb monitoroj\u00eb dhe menaxhoj\u00eb at\u00eb n\u00eb m\u00ebnyr\u00ebn m\u00eb t\u00eb mir\u00eb.<\/p>\n<h3>Principi i p\u00ebrshtatjes ndaj ciklit t\u00eb jet\u00ebs (Life-cycle Conformance Principle, LCP)<\/h3>\n<p>\nLCP \u2013 \u00ebsht\u00eb nj\u00eb antitez\u00eb ndaj HOP. N\u00ebse HOP thot\u00eb q\u00eb kontejneri duhet t\u00eb ofroj\u00eb API p\u00ebr lexim n\u00eb platform\u00eb, LCP k\u00ebrkon nga aplikacioni aft\u00ebsin\u00eb p\u00ebr t\u00eb pranuar informacion nga platforma. P\u00ebr m\u00eb tep\u00ebr, kontejneri duhet t\u00eb mos vet\u00ebm t\u00eb marr\u00eb ngjarje, por t\u00eb p\u00ebrshtatet, dmth, t\u00eb reagoj\u00eb ndaj tyre. K\u00ebshtu, p\u00ebr k\u00ebt\u00eb arsye, ky princip mund t\u00eb shikohet si nj\u00eb k\u00ebrkes\u00eb p\u00ebr t'i ofruar platform\u00ebs API p\u00ebr shkrim.<\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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 vendimi se cilat ngjarje t\u00eb pranojn\u00eb dhe si t\u00eb reagojn\u00eb, duhet t\u00eb jet\u00eb nga vet\u00eb aplikacioni.<\/p>\n<p>E qart\u00eb se disa ngjarje jan\u00eb m\u00eb t\u00eb r\u00ebnd\u00ebsishme se t\u00eb tjerat. P\u00ebr shembull, n\u00ebse nj\u00eb aplikacion nuk e p\u00ebrballon mir\u00eb p\u00ebrfundimin e papritur, ai duhet t\u00eb pranoj\u00eb mesazhet signal: terminate (SIGTERM) dhe sa m\u00eb shpejt q\u00eb t\u00eb jet\u00eb e mundur t\u00eb filloj\u00eb procedur\u00ebn e tij t\u00eb mbylljes, p\u00ebr t\u00eb arritur para se t\u00eb ndodh\u00eb sinjali signal: kill (SIGKILL), i cili vjen pas SIGTERM.<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, ngjarje si PostStart dhe PreStop mund t\u00eb jen\u00eb t\u00eb r\u00ebnd\u00ebsishme p\u00ebr ciklin e jet\u00ebs s\u00eb aplikacionit. P\u00ebr shembull, pas fillimit, aplikacioni mund t\u00eb k\u00ebrkoj\u00eb nj\u00eb koh\u00eb t\u00eb caktuar p\u00ebr \"ngrohje\" para se t\u00eb mund t\u00eb p\u00ebrgjigjet ndaj k\u00ebrkesave. Ose aplikacioni duhet t\u00eb liroj\u00eb burimet 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>\nKonsiderohet se aplikacionet konteiner duhet t\u00eb mbeten t\u00eb pandryshuara pas nd\u00ebrtimit, edhe n\u00ebse ekzekutohet n\u00eb vende t\u00eb ndryshme. K\u00ebtu del nevoja p\u00ebr t\u00eb eksternalizuar ruajtjen e t\u00eb dh\u00ebnave n\u00eb faz\u00ebn e ekzekutimit (dmth, p\u00ebr ta b\u00ebr\u00eb k\u00ebt\u00eb duke p\u00ebrdorur mjete t\u00eb jashtme), si dhe p\u00ebr t\u00eb mb\u00ebshtetur konfigurime t\u00eb jashtme, t\u00eb p\u00ebrshtatura p\u00ebr ambientin e veprimit, n\u00eb vend se t\u00eb modifikosh ose t\u00eb krijosh kontejner\u00eb unik p\u00ebr \u00e7do ambient. Pas \u00e7do ndryshimi n\u00eb aplikacion, imazhi i kontejnerit duhet t\u00eb nd\u00ebrtohet p\u00ebrs\u00ebri dhe t\u00eb zbatohet n\u00eb t\u00eb gjitha ambientet ku p\u00ebrdoret. Me rastin e menaxhimit t\u00eb sistemeve IT, p\u00ebrdoret nj\u00eb parim i ngjash\u00ebm, i njohur si parimi i pandryshueshm\u00ebris\u00eb s\u00eb server\u00ebve dhe infrastruktur\u00ebs. <\/p>\n<p>Q\u00ebllimi i IIP \u00ebsht\u00eb t\u00eb parandaloj\u00eb krijimin e imazheve t\u00eb ndryshme t\u00eb kontejnerit p\u00ebr ambiente t\u00eb ndryshme ekzekutimi dhe t\u00eb p\u00ebrdor\u00eb t\u00eb nj\u00ebjtin imazh n\u00eb t\u00eb gjitha vendet me konfigurimin e duhur p\u00ebr ambientin specifik. Ndjekja e k\u00ebtij parimi ndihmon n\u00eb realizimin e praktikave t\u00eb r\u00ebnd\u00ebsishme p\u00ebr automatizimin e sistemeve n\u00eb cloud, si rikthimi (roll-back) dhe p\u00ebrparimi (roll-forward) i p\u00ebrdit\u00ebsimeve t\u00eb aplikacioneve.<\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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 nj\u00eb kontejneri \u00ebsht\u00eb efem\u00ebria e tij: nj\u00eb instanc\u00eb e kontejnerit krijohet leht\u00ebsisht dhe shkat\u00ebrrohet leht\u00ebsisht, prandaj mund t\u00eb z\u00ebvend\u00ebsohet n\u00eb \u00e7do moment me nj\u00eb instanc\u00eb tjet\u00ebr. Shkaku i z\u00ebvend\u00ebsimit mund t\u00eb jet\u00eb shum\u00eb: d\u00ebshtimi n\u00eb testin e p\u00ebrshtatshm\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 parime t\u00eb arsyeshme p\u00ebr krijimin e aplikacioneve cloud-native\" src=\"\/wp-content\/uploads\/2019\/06\/858287b23c276363313e35cf18b81190.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nSi si ndodh, aplikacionet me konteiner\u00eb duhet t\u00eb ruajn\u00eb shtetin e tyre me ndihm\u00ebn e ndonj\u00eb mjeti t\u00eb jasht\u00ebm, 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 nis\u00eb shpejt dhe t\u00eb mbyllet gjithashtu shpejt, si dhe t\u00eb jet\u00eb i gatsh\u00ebm p\u00ebr nj\u00eb d\u00ebshtim fatkeq t\u00eb papritur t\u00eb harduerit.<\/p>\n<p>Nj\u00eb nga praktikat q\u00eb ndihmon n\u00eb realizimin e k\u00ebtij parimi \u00ebsht\u00eb krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl. Mjediset cloud mund t\u00eb zgjedhin automatikisht host-in p\u00ebr t\u00eb nisur instanc\u00ebn e konteinerit, prandaj sa m\u00eb e vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e konteinerit, aq m\u00eb shpejt do t\u00eb nis\u00eb \u2013 thjesht do t\u00eb kopjohet m\u00eb shpejt n\u00eb host-in e synuar p\u00ebrmes rrjetit.<\/p>\n<h3>Parimi i vet\u00eb-mjaftueshm\u00ebris\u00eb (Self-containment Principle, S-CP)<\/h3>\n<p>\nSipas k\u00ebtij parimi, n\u00eb faz\u00ebn e nd\u00ebrtimit p\u00ebrfshihen t\u00eb gjith\u00eb komponent\u00ebt e nevojsh\u00ebm n\u00eb konteiner. Konteineri duhet t\u00eb nd\u00ebrtohet me supozimin se sistemi ka vet\u00ebm nj\u00eb kernel t\u00eb past\u00ebr Linux, prandaj t\u00eb gjitha bibliotekat e nevojshme duhet t\u00eb vendosen brenda t\u00eb nj\u00ebjtit konteiner. Aty duhet t\u00eb ndodhen edhe elemente t\u00eb tilla 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 me konteiner. <\/p>\n<p><img decoding=\"async\" alt=\"5 parime t\u00eb arsyeshme 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 mjedisi n\u00eb mjedis dhe duhet t\u00eb ofrohen n\u00eb faz\u00ebn e ekzekutimit, p\u00ebr shembull, p\u00ebrmes Kubernetes ConfigMap.<\/p>\n<p>Aplikacioni mund t\u00eb p\u00ebrfshij\u00eb disa komponent\u00eb t\u00eb kontejnerizuar, p\u00ebr shembull, nj\u00eb konteiner t\u00eb ve\u00e7ant\u00eb DBMS si pjes\u00eb e nj\u00eb aplikacioni web me konteiner. Sipas parimit S-CP, k\u00ebta konteiner\u00eb nuk duhet t\u00eb bashkohen n\u00eb nj\u00eb, por duhet t\u00eb sigurohet q\u00eb konteineri DBMS t\u00eb p\u00ebrmbaj\u00eb gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionimin e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave, nd\u00ebrsa konteineri i aplikacionit web t\u00eb ket\u00eb gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionimin e aplikacionit web, po ashtu si edhe serveri web. Si rezultat, gjat\u00eb ekzekutimit, konteineri i aplikacionit web do t\u00eb varet nga konteineri DBMS dhe do t\u00eb lidhet me t\u00eb kur t\u00eb ket\u00eb nevoj\u00eb.<\/p>\n<h3>Parimi i kufizimit n\u00eb faz\u00ebn e ekzekutimit (Runtime Confinement Principle, RCP)<\/h3>\n<p>\nPrincipi S-CP p\u00ebrcakton se si duhet t\u00eb nd\u00ebrtohet nj\u00eb kontejner 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 ve\u00e7ori - madh\u00ebsin\u00eb e skedarit. Gjat\u00eb ekzekutimit, kontejneri merr 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 parime t\u00eb arsyeshme 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 vjen n\u00eb ndihm\u00eb principi RCP, sipas t\u00eb cilit kontejneri duhet t\u00eb dekapsulloj\u00eb k\u00ebrkesat e tij p\u00ebr burime sistemike dhe t'i transmetoj\u00eb ato platform\u00ebs. Duke pasur profilet e burimeve p\u00ebr secilin kontejner (sa burime CPU, memorie, rrjeti dhe sistemi i diskut i nevojiten), platforma mund t\u00eb realizoj\u00eb menaxhimin optimal dhe automatik t\u00eb burimeve, t\u00eb menaxhoj\u00eb kapacitetet IT dhe t\u00eb mb\u00ebshtes\u00eb nivelet e SLA p\u00ebr kontejner\u00ebt.<\/p>\n<p>P\u00ebrve\u00e7 plot\u00ebsimit t\u00eb k\u00ebrkesave p\u00ebr burimet e kontejnerit, \u00ebsht\u00eb gjithashtu e r\u00ebnd\u00ebsishme q\u00eb aplikacioni t\u00eb mos kaloj\u00eb kufijt\u00eb e vendosur nga vet\u00eb ai. N\u00eb rastin e munges\u00ebs s\u00eb burimeve, platforma ka m\u00eb shum\u00eb gjasa t\u00eb p\u00ebrfshij\u00eb at\u00eb n\u00eb list\u00ebn e aplikacioneve q\u00eb duhet t\u00eb nd\u00ebrpriten ose t\u00eb migrohen.<\/p>\n<p>Duke folur p\u00ebr orientimin n\u00eb cloud, ne fillimisht mendojm\u00eb p\u00ebr m\u00ebnyr\u00ebn e funksionimit. <br \/>\nM\u00eb sip\u00ebr, ne formuluam nj\u00eb s\u00ebr\u00eb prinsipesh t\u00eb p\u00ebrgjithshme q\u00eb vendosin themelin metodologjik p\u00ebr nd\u00ebrtimin e aplikacioneve t\u00eb cil\u00ebsis\u00eb s\u00eb lart\u00eb t\u00eb kontejner\u00ebve p\u00ebr mjediset cloud.<\/p>\n<p>Vlen t\u00eb theksohet se p\u00ebrve\u00e7 k\u00ebtyre prinsipesh t\u00eb p\u00ebrgjithshme, ju gjithashtu do t\u00eb keni nevoj\u00eb p\u00ebr metoda dhe teknika t\u00eb avancuara p\u00ebr pun\u00ebn me kontejner\u00ebt. P\u00ebr m\u00eb tep\u00ebr, kemi disa rekomandime t\u00eb shkurtra q\u00eb kan\u00eb nj\u00eb karakter m\u00eb t\u00eb ve\u00e7ant\u00eb dhe duhet t\u00eb aplikohen (ose jo) n\u00eb var\u00ebsi t\u00eb situat\u00ebs:<\/p>\n<ul>\n<li>P\u00ebrpiquni t\u00eb zvog\u00ebloni madh\u00ebsin\u00eb e imazheve: fshini skedar\u00ebt e p\u00ebrkohsh\u00ebm dhe mos instaloni paketa t\u00eb panevojshme - sa m\u00eb e vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e kontejnerit, aq m\u00eb shpejt ai nd\u00ebrtohet dhe kopjohet n\u00eb host-in e synuar p\u00ebrmes rrjetit.<\/li>\n<li>Orientohuni n\u00eb User-ID t\u00eb rast\u00ebsish\u00ebm: mos p\u00ebrdorni komand\u00ebn sudo ose ndonj\u00eb userid t\u00eb ve\u00e7ant\u00eb p\u00ebr t\u00eb kryer kontejner\u00ebt tuaj.<\/li>\n<li>Shenoni 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 specifikoni ato me komand\u00ebn EXPOSE - k\u00ebshtu do t\u00eb jet\u00eb m\u00eb e leht\u00eb p\u00ebr njer\u00ebzit dhe programet t\u00eb p\u00ebrdorin imazhet tuaja. <\/li>\n<li>Ruani t\u00eb dh\u00ebnat e p\u00ebrhershme n\u00eb volume: t\u00eb dh\u00ebnat q\u00eb duhet t\u00eb q\u00ebndrojn\u00eb pas zhdukjes s\u00eb kontejnerit duhet t\u00eb ruhen n\u00eb volume.<\/li>\n<li>Shkruani metadata mbi imazhin: etiketat, shenjat dhe annotimet e leht\u00ebsojn\u00eb p\u00ebrdorimin e imazheve \u2013 zhvillues t\u00eb tjer\u00eb do t'ju jen\u00eb mir\u00ebnjoh\u00ebs.<\/li>\n<li>Sinkronizoni hostin dhe imazhet: p\u00ebr disa aplikacione kontejneri nevojitet q\u00eb kontejneri t\u00eb sinkronizohet me hostin sipas disa atributeve, si koha ose identifikatori i makin\u00ebs.<\/li>\n<li>N\u00eb p\u00ebrfundim, ndajm\u00eb shabllone dhe praktikat m\u00eb t\u00eb mira q\u00eb do t'ju ndihmojn\u00eb t\u00eb zbatoj\u00eb m\u00eb efektivisht parimet e p\u00ebrmendura m\u00eb sip\u00ebr:<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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.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.\" \/>\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\/news\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/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\u00ebndetshme t\u00eb arsyes p\u00ebr krijimin e aplikacioneve cloud-native | ProHoster","description":"Aplikacionet \"cloud-native\" ose thjesht \"m\u00ebnyr\u00eb cloud\" krijohen posa\u00e7\u00ebrisht p\u00ebr t\u00eb punuar n\u00eb infrastrukturat cloud.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/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.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/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}]}}