{"id":30785,"date":"2019-10-31T21:37:25","date_gmt":"2019-10-31T18:37:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\/"},"modified":"2019-10-31T21:37:25","modified_gmt":"2019-10-31T18:37:25","slug":"stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","title":{"rendered":"Blloqet nd\u00ebrtimore t\u00eb aplikacioneve t\u00eb shp\u00ebrndara. Afrohimi i par\u00eb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Blloqet nd\u00ebrtimore t\u00eb aplikacioneve t\u00eb shp\u00ebrndara. Afrohimi i par\u00eb\" src=\"\/wp-content\/uploads\/2019\/04\/88d4e363538bdfc67690c8339dca790b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bota nuk q\u00ebndron n\u00eb vend. P\u00ebrparimi sjell sfida t\u00eb reja teknologjike. N\u00eb p\u00ebrputhje me k\u00ebrkesat q\u00eb kan\u00eb ndryshuar, duhet t\u00eb evoluoj\u00eb edhe arkitektura e sistemeve t\u00eb informacionit. Sot do t\u00eb flasim p\u00ebr arkitektur\u00ebn e orientuar nga ngjarjet, konkurrenc\u00ebn, paralelizmin, asinkronin\u00eb dhe p\u00ebr m\u00ebnyr\u00ebn se si mund t\u00eb jetohet n\u00eb paqe me t\u00eb gjitha k\u00ebto n\u00eb Erlang.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"vvedenie\">Hyrje<\/h2>\n<p><\/p>\n<p>N\u00eb var\u00ebsi t\u00eb p\u00ebrmasave t\u00eb sistemit q\u00eb projektohet dhe k\u00ebrkesave ndaj tij, ne si zhvillues zgjedhim m\u00ebnyr\u00ebn e shk\u00ebmbimit t\u00eb informacionit brenda sistemit. N\u00eb shumic\u00ebn e rasteve, p\u00ebr organizimin e nd\u00ebrveprimit mes sh\u00ebrbimeve, nj\u00eb zgjidhje praktike mund t\u00eb jet\u00eb nj\u00eb skem\u00eb me broker, p\u00ebr shembull mbi baz\u00ebn e RabbitMQ ose Kafka. Por ndonj\u00ebher\u00eb fluksi i ngjarjeve, SLA dhe niveli i kontrollit mbi sistemin jan\u00eb t\u00eb tilla, saq\u00eb nj\u00eb zgjidhje e gatshme messaging nuk na p\u00ebrshtatet. Sigurisht, sistemi mund t\u00eb nd\u00ebrlikohet pak duke marr\u00eb p\u00ebrsip\u00ebr p\u00ebrgjegj\u00ebsin\u00eb p\u00ebr nivelin e transportit dhe formimin e klasterit, p\u00ebr shembull duke p\u00ebrdorur ZeroMQ ose nanomsg. Por n\u00ebse sistemit i mjafton kapaciteti dhe funksionaliteti i klasterit standard t\u00eb Erlang, at\u00ebher\u00eb \u00e7\u00ebshtja e shtimit t\u00eb nj\u00eb entiteti shtes\u00eb k\u00ebrkon analiz\u00eb t\u00eb detajuar dhe arsyetim ekonomik.<\/p>\n<p><\/p>\n<p>Tema e aplikacioneve reaktive t\u00eb shp\u00ebrndara \u00ebsht\u00eb mjaft e gjer\u00eb. P\u00ebr t\u2019iu p\u00ebrmbajtur formatit t\u00eb artikullit, objekt i diskutimit t\u00eb sot\u00ebm do t\u00eb jen\u00eb vet\u00ebm mjediset homogjene, t\u00eb nd\u00ebrtuara mbi baz\u00ebn e Erlang\/Elixir. Ekosistemi Erlang\/OTP b\u00ebn t\u00eb mundur zbatimin e nj\u00eb arkitekture reaktive me p\u00ebrpjekjen m\u00eb t\u00eb vog\u00ebl. Megjithat\u00eb, n\u00eb \u00e7do rast do t\u00eb na duhet nj\u00eb shtres\u00eb p\u00ebr shk\u00ebmbimin e mesazheve. <\/p>\n<p><\/p>\n<h2 id=\"teoreticheskiy-bazis\">Baza teorike<\/h2>\n<p><\/p>\n<p>Projektimi fillon me p\u00ebrcaktimin e objektivave dhe kufizimeve. Q\u00ebllimi kryesor nuk \u00ebsht\u00eb zhvillimi thjesht p\u00ebr hir t\u00eb zhvillimit. Na duhet t\u00eb marrim nj\u00eb mjet t\u00eb sigurt dhe t\u00eb shkall\u00ebzuesh\u00ebm, mbi baz\u00ebn e t\u00eb cilit mund t\u00eb krijohen dhe, m\u00eb e r\u00ebnd\u00ebsishmja, t\u00eb zhvillohen aplikacione moderne t\u00eb niveleve t\u00eb ndryshme: duke nisur nga ato me nj\u00eb server t\u00eb vet\u00ebm, q\u00eb u sh\u00ebrbejn\u00eb audiencave t\u00eb vogla dhe q\u00eb m\u00eb von\u00eb mund t\u00eb zhvillohen n\u00eb klastera me 50-60 nyje, e deri te federatat e klasterave. K\u00ebshtu, q\u00ebllimi kryesor \u00ebsht\u00eb maksimizimi i fitimit p\u00ebrmes uljes s\u00eb kostos s\u00eb zhvillimit dhe t\u00eb pron\u00ebsis\u00eb s\u00eb sistemit p\u00ebrfundimtar.<\/p>\n<p><\/p>\n<p>Le t\u00eb ve\u00e7ojm\u00eb 4 k\u00ebrkesat kryesore p\u00ebr sistemin p\u00ebrfundimtar:<\/p>\n<p><\/p>\n<ul>\n<li><strong>D<\/strong>Orientimi nga ngjarjet.<br \/>\nSistemi \u00ebsht\u00eb gjithmon\u00eb gati t\u00eb p\u00ebrpunoj\u00eb nj\u00eb rrjedh\u00eb ngjarjesh dhe t\u00eb kryej\u00eb veprimet e nevojshme;<\/li>\n<li><strong>M<\/strong>Shkall\u00ebzueshm\u00ebri.<br \/>\nBlloqet e ve\u00e7anta mund t\u00eb shkall\u00ebzohen si vertikalisht, ashtu edhe horizontalisht. I gjith\u00eb sistemi duhet t\u00eb ket\u00eb mund\u00ebsi p\u00ebr rritje horizontale t\u00eb pakufizuar;<\/li>\n<li><strong>Q<\/strong>\u00ebndrueshm\u00ebri ndaj d\u00ebshtimeve.<br \/>\nT\u00eb gjitha nivelet dhe t\u00eb gjitha sh\u00ebrbimet duhet t\u00eb ken\u00eb mund\u00ebsi rikuperimi automatik n\u00eb rast d\u00ebshtimesh;<\/li>\n<li><strong>K<\/strong>oh\u00eb e garantuar reagimi.<br \/>\nKoha ka vler\u00eb dhe p\u00ebrdoruesit nuk duhet t\u00eb presin shum\u00eb gjat\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p>Mbani mend p\u00ebrrall\u00ebn e vjet\u00ebr p\u00ebr \u201cThe little engine that could\u201d, e njohur edhe si \u201cLokomotiva e vog\u00ebl q\u00eb ia doli\u201d? Q\u00eb sistemi i projektuar t\u00eb kaloj\u00eb me sukses faz\u00ebn e prototipit dhe t\u00eb jet\u00eb progresiv, themeli i tij duhet t\u00eb p\u00ebrmbush\u00eb k\u00ebrkesat minimale <strong>MUND<\/strong>.<\/p>\n<p><\/p>\n<p>P\u00ebr messaging si mjet infrastrukturor dhe baz\u00eb p\u00ebr t\u00eb gjitha sh\u00ebrbimet shtohet edhe nj\u00eb pik\u00eb tjet\u00ebr: leht\u00ebsia e p\u00ebrdorimit p\u00ebr programuesit.<\/p>\n<p><\/p>\n<h3 id=\"orientirovannost-na-sobytiya\">Orientimi ndaj ngjarjeve<\/h3>\n<p><\/p>\n<p>Q\u00eb aplikacioni t\u00eb mund t\u00eb rritet nga nj\u00eb <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/dts-los-angeles\/\"   title=\"server\u00eb\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3480\">server\u00eb<\/a> n\u00eb nj\u00eb klaster, arkitektura e tij duhet t\u00eb siguroj\u00eb lidhje t\u00eb dob\u00ebt nd\u00ebrmjet komponent\u00ebve. K\u00ebsaj k\u00ebrkese i p\u00ebrgjigjet modeli asinkron. N\u00eb t\u00eb, d\u00ebrguesi dhe marr\u00ebsi kujdesen p\u00ebr ngarkes\u00ebn informative t\u00eb mesazhit dhe nuk shqet\u00ebsohen p\u00ebr transmetimin dhe rrug\u00ebzimin brenda sistemit.<\/p>\n<p><\/p>\n<h3 id=\"masshtabiruemost\">Shkall\u00ebzueshm\u00ebria<\/h3>\n<p><\/p>\n<p>Shkall\u00ebzueshm\u00ebria dhe efikasiteti i sistemit ecin krah p\u00ebr krah. Komponent\u00ebt e aplikacionit duhet t\u00eb din\u00eb t\u00eb shfryt\u00ebzojn\u00eb t\u00eb gjitha burimet e disponueshme. Sa m\u00eb mir\u00eb t\u00eb mund t\u2019i shfryt\u00ebzojm\u00eb kapacitetet dhe sa m\u00eb optimale t\u00eb jen\u00eb metodat tona t\u00eb p\u00ebrpunimit, aq m\u00eb pak para shpenzojm\u00eb p\u00ebr pajisje. <\/p>\n<p><\/p>\n<p>Brenda nj\u00eb makine t\u00eb vetme, Erlang krijon nj\u00eb mjedis me konkurrenc\u00eb t\u00eb lart\u00eb. Balanca midis konkurrenc\u00ebs dhe paralelizmit mund t\u00eb p\u00ebrcaktohet duke zgjedhur numrin e fijeve t\u00eb sistemit operativ t\u00eb disponueshme p\u00ebr Erlang VM dhe numrin e planifikuesve q\u00eb i shfryt\u00ebzojn\u00eb k\u00ebto fije.<br \/>\nProceset Erlang nuk kan\u00eb gjendje t\u00eb p\u00ebrbashk\u00ebt dhe funksionojn\u00eb n\u00eb m\u00ebnyr\u00eb jo-bllokuese. Kjo siguron latenc\u00eb relativisht t\u00eb ul\u00ebt dhe throughput m\u00eb t\u00eb lart\u00eb sesa aplikacionet tradicionale t\u00eb nd\u00ebrtuara mbi sinkronizim bllokues. Planifikuesi i Erlang kujdeset p\u00ebr shp\u00ebrndarjen e drejt\u00eb t\u00eb CPU dhe IO, nd\u00ebrsa mungesa e bllokimeve i lejon aplikacionit t\u00eb p\u00ebrgjigjet edhe n\u00eb kushte ngarkese kulmore ose gjat\u00eb d\u00ebshtimeve. <\/p>\n<p><\/p>\n<p>Edhe n\u00eb nivel klasteri ekziston problemi i shfryt\u00ebzimit t\u00eb burimeve. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb t\u00eb gjitha makinat n\u00eb klaster t\u00eb jen\u00eb t\u00eb ngarkuara n\u00eb m\u00ebnyr\u00eb t\u00eb barabart\u00eb dhe rrjeti t\u00eb mos mbingarkohet. Le t\u00eb imagjinojm\u00eb nj\u00eb situat\u00eb: trafiku i p\u00ebrdoruesve mb\u00ebrrin te balancuesit hyr\u00ebs (haproxy, nginx, etc), dhe ata i shp\u00ebrndajn\u00eb sa m\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb nj\u00ebtrajtshme k\u00ebrkesat p\u00ebr p\u00ebrpunim midis grupit t\u00eb backend-eve t\u00eb disponueshme. Brenda infrastruktur\u00ebs s\u00eb aplikacionit, sh\u00ebrbimi q\u00eb zbaton nd\u00ebrfaqen e k\u00ebrkuar \u00ebsht\u00eb vet\u00ebm hallka e fundit dhe atij do t\u2019i duhet t\u00eb k\u00ebrkoj\u00eb nj\u00eb s\u00ebr\u00eb sh\u00ebrbimesh t\u00eb tjera p\u00ebr t\u2019iu p\u00ebrgjigjur k\u00ebrkes\u00ebs fillestare. Edhe k\u00ebrkesat e brendshme kan\u00eb nevoj\u00eb p\u00ebr rutim dhe balancim.<br \/>\nP\u00ebr t\u00eb menaxhuar n\u00eb m\u00ebnyr\u00eb efikase flukset e t\u00eb dh\u00ebnave, messaging duhet t\u2019u ofroj\u00eb zhvilluesve nj\u00eb nd\u00ebrfaqe p\u00ebr menaxhimin e rutimit dhe shp\u00ebrndarjes s\u00eb ngarkes\u00ebs. Fal\u00eb k\u00ebsaj, zhvilluesit do t\u00eb mund t\u00eb zgjidhin si detyrat standarde, ashtu edhe ato q\u00eb shfaqen rrall\u00eb, duke p\u00ebrdorur pattern-et e mikrosherbimeve (aggregator, proxy, chain, branch, etc). <\/p>\n<p><\/p>\n<p>Nga k\u00ebndv\u00ebshtrimi i biznesit, shkall\u00ebzueshm\u00ebria \u00ebsht\u00eb nj\u00eb nga mjetet p\u00ebr menaxhimin e rreziqeve. Q\u00ebllimi kryesor \u00ebsht\u00eb t\u00eb p\u00ebrmbushen k\u00ebrkesat e klient\u00ebve duke p\u00ebrdorur pajisjet n\u00eb m\u00ebnyr\u00eb optimale:<\/p>\n<p><\/p>\n<ul>\n<li>Kur rritet kapaciteti i pajisjeve si rezultat i progresit, ato nuk do t\u00eb q\u00ebndrojn\u00eb t\u00eb pap\u00ebrdorura p\u00ebr shkak t\u00eb mang\u00ebsive t\u00eb softuerit. Erlang shkall\u00ebzohet n\u00eb m\u00ebnyr\u00eb t\u00eb shk\u00eblqyer vertikalisht dhe gjithmon\u00eb do t\u00eb mund t\u00eb shfryt\u00ebzoj\u00eb t\u00eb gjitha b\u00ebrthamat e CPU dhe memorien e disponueshme;<\/li>\n<li>N\u00eb mjediset cloud, ne mund t\u00eb menaxhojm\u00eb sasin\u00eb e pajisjeve n\u00eb var\u00ebsi t\u00eb ngarkes\u00ebs aktuale ose t\u00eb parashikuar dhe t\u00eb garantojm\u00eb SLA.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"otkazoustoychivost\">Q\u00ebndrueshm\u00ebri<\/h3>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb dy aksioma: \u201cD\u00ebshtimet jan\u00eb t\u00eb papranueshme\u201d dhe \u201cD\u00ebshtime do t\u00eb ket\u00eb gjithmon\u00eb\u201d. P\u00ebr biznesin, nj\u00eb d\u00ebshtim i softuerit do t\u00eb thot\u00eb humbje parash dhe, \u00e7\u2019\u00ebsht\u00eb edhe m\u00eb keq, humbje reputacioni. Duke balancuar midis humbjeve t\u00eb mundshme dhe kostos s\u00eb zhvillimit t\u00eb softuerit fault-tolerant, shpesh mund t\u00eb gjendet nj\u00eb kompromis.<\/p>\n<p><\/p>\n<p>N\u00eb afat t\u00eb shkurt\u00ebr, nj\u00eb arkitektur\u00eb me fault tolerance t\u00eb integruar kursen para p\u00ebr blerjen e zgjidhjeve t\u00eb gatshme t\u00eb klasterizimit. Ato kushtojn\u00eb shtrenjt\u00eb dhe edhe ato kan\u00eb gabime.<br \/>\nN\u00eb afat t\u00eb gjat\u00eb, nj\u00eb arkitektur\u00eb fault-tolerant i justifikon shum\u00ebfish kostot e zbatimit t\u00eb saj n\u00eb t\u00eb gjitha fazat e zhvillimit.<br \/>\nMessaging brenda baz\u00ebs s\u00eb kodit q\u00eb n\u00eb faz\u00ebn e zhvillimit lejon t\u00eb p\u00ebrpunohet n\u00eb detaje nd\u00ebrveprimi i komponent\u00ebve brenda sistemit. Kjo e thjeshton reagimin ndaj d\u00ebshtimeve dhe menaxhimin e tyre, sepse t\u00eb gjith\u00eb komponent\u00ebt p\u00ebrgjegj\u00ebs i trajtojn\u00eb d\u00ebshtimet, nd\u00ebrsa sistemi p\u00ebrfundimtar di si t\u00eb rikthehet automatikisht n\u00eb gjendje normale pas nj\u00eb d\u00ebshtimi, by design.<\/p>\n<p><\/p>\n<h3 id=\"otzyvchivost\">Reagueshm\u00ebria<\/h3>\n<p><\/p>\n<p>Pavar\u00ebsisht d\u00ebshtimeve, aplikacioni duhet t'u p\u00ebrgjigjet k\u00ebrkesave dhe t\u00eb p\u00ebrmbush\u00eb SLA. Realiteti \u00ebsht\u00eb se njer\u00ebzit nuk duan t\u00eb presin, ndaj edhe biznesi duhet t\u00eb p\u00ebrshtatet. Gjithnj\u00eb e m\u00eb shum\u00eb aplikacioneve u k\u00ebrkohet reagueshm\u00ebri e lart\u00eb.<br \/>\nAplikacionet reaguese funksionojn\u00eb n\u00eb nj\u00eb regjim t\u00eb af\u00ebrt me koh\u00ebn reale. Erlang VM punon n\u00eb regjim soft real-time. P\u00ebr disa fusha, si tregtimi n\u00eb burs\u00eb, mjek\u00ebsia dhe kontrolli i pajisjeve industriale, \u00ebsht\u00eb i r\u00ebnd\u00ebsish\u00ebm regjimi hard real-time.<br \/>\nSistemet reaguese p\u00ebrmir\u00ebsojn\u00eb UX dhe jan\u00eb t\u00eb dobishme p\u00ebr biznesin.<\/p>\n<p><\/p>\n<h2 id=\"predvaritelnyy-itog\">P\u00ebrfundim paraprak<\/h2>\n<p><\/p>\n<p>Kur planifikoja k\u00ebt\u00eb artikull, doja t\u00eb ndaja p\u00ebrvoj\u00ebn e krijimit t\u00eb nj\u00eb message broker dhe nd\u00ebrtimin e sistemeve komplekse mbi baz\u00ebn e tij. Por pjesa teorike dhe motivuese doli mjaft e gjer\u00eb.<br \/>\nN\u00eb pjes\u00ebn e dyt\u00eb t\u00eb artikullit do t\u00eb tregoj p\u00ebr nuancat e implementimit t\u00eb pikave t\u00eb shk\u00ebmbimit, modelet e shk\u00ebmbimit t\u00eb mesazheve dhe p\u00ebrdorimin e tyre.<br \/>\nN\u00eb pjes\u00ebn e tret\u00eb do t\u00eb shqyrtojm\u00eb \u00e7\u00ebshtjet e p\u00ebrgjithshme t\u00eb organizimit t\u00eb sh\u00ebrbimeve, rutimit dhe balancimit. Do t\u00eb flasim p\u00ebr an\u00ebn praktike t\u00eb shkall\u00ebzueshm\u00ebris\u00eb dhe toleranc\u00ebs ndaj gabimeve t\u00eb sistemeve.<\/p>\n<p><\/p>\n<p>Krahu i par\u00eb \u00ebsht\u00eb p\u00ebrfunduar.<\/p>\n<p><\/p>\n<p>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/SRjZtxsK3Os\">@lucabravo<\/a><\/noindex>.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446028\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u0440 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. \u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b. \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0434\u043e\u043b\u0436\u043d\u0430 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432 Erlang \u043c\u043e\u0436\u043d\u043e \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c \u043c\u0438\u0440\u043d\u043e. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u043d\u0435\u0439, \u043c\u044b, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22770,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\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\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\udd47\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u0443\u043b\u0435\u0432\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie\" \/>\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-31T18:37:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:25+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\udd47Blloqet nd\u00ebrtuese t\u00eb aplikacioneve t\u00eb shp\u00ebrndara. Hyrje fillestare | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","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\udd47\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u0443\u043b\u0435\u0432\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/stroitelnye-bloki-raspredelennyh-prilozhenij-nulevoe-priblizhenie","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-31T18:37:25+00:00","article:modified_time":"2019-10-31T18:37:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30785","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-02-22 15:31:13","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:29:56","updated":"2026-02-22 15:31:13","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\/30785","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=30785"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/30785\/revisions"}],"predecessor-version":[{"id":162006,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/30785\/revisions\/162006"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/22770"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=30785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=30785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=30785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}