{"id":87372,"date":"2020-07-07T13:42:34","date_gmt":"2020-07-07T11:42:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/walking-in-my-shoes-stop-a-oni-markirovannye"},"modified":"2020-07-07T13:42:34","modified_gmt":"2020-07-07T11:42:34","slug":"walking-in-my-shoes-stop-a-oni-markirovannye","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/walking-in-my-shoes-stop-a-oni-markirovannye","title":{"rendered":"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Q\u00eb nga viti 2019, n\u00eb Rusi ka hyr\u00eb n\u00eb fuqi nj\u00eb ligj p\u00ebr markimin e detyruesh\u00ebm. Ligji nuk zbatohet p\u00ebr t\u00eb gjitha grupet e mallrave, dhe afatet e hyrjes n\u00eb fuqi p\u00ebr grupet e mallrave jan\u00eb t\u00eb ndryshme. S\u00eb pari, markimi i detyruesh\u00ebm do t\u00eb p\u00ebrfshij\u00eb duhanin, k\u00ebpuc\u00ebt, ila\u00e7et, dhe m\u00eb von\u00eb do t\u00eb shtohen edhe mallra t\u00eb tjera, si\u00e7 jan\u00eb parfumerit\u00eb, tekstili, dhe qum\u00ebshti. Ky ndryshim ligjor ka nxitur zhvillimin e zgjidhjeve t\u00eb reja IT q\u00eb do t\u00eb lejojn\u00eb ndjekjen e gjith\u00eb zinxhirit t\u00eb jet\u00ebs s\u00eb produktit nga prodhimi deri te bler\u00ebsi fundor, p\u00ebr t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit n\u00eb proces: si vet\u00eb shteti, ashtu edhe t\u00eb gjitha organizatat q\u00eb shesin mallra me markim t\u00eb detyruesh\u00ebm.<\/p>\n<p>N\u00eb X5, sistemi q\u00eb do t\u00eb ndjek\u00eb produktet me markim dhe do t\u00eb ndaj\u00eb t\u00eb dh\u00ebna me shtetin dhe furnizuesit ka marr\u00eb emrin \u201cMarkus\u201d. Do t\u00eb tregojm\u00eb n\u00eb rend se si dhe kush e ka zhvilluar, \u00e7far\u00eb \u00ebsht\u00eb steku i saj teknologjik, dhe pse kemi di\u00e7ka p\u00ebr t\u00eb qen\u00eb krenar\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/522382bab9b8d133f3657baea6175357.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>HighLoad i v\u00ebrtet\u00eb<\/h3>\n<p>\n\u201cMarkusi\u201d zgjidh shum\u00eb \u00e7\u00ebshtje, kryesorja e t\u00eb cilave \u00ebsht\u00eb nd\u00ebrveprimi integrues midis sistemeve informative t\u00eb H5 dhe sistemit publik t\u00eb informacionit p\u00ebr produktet e markuara (GIS MP) p\u00ebr ndjekjen e l\u00ebvizjes s\u00eb produkteve t\u00eb markuara. Gjithashtu, platforma ruan t\u00eb gjith\u00eb kodet e markimit q\u00eb na kan\u00eb ardhur dhe gjith\u00eb historin\u00eb e l\u00ebvizjes s\u00eb k\u00ebtyre kodeve n\u00eb objekte, ndihmon n\u00eb eliminimin e p\u00ebrzierjes s\u00eb produkteve t\u00eb markuara. N\u00eb shembullin e produkteve t\u00eb duhanit, t\u00eb cilat ishin n\u00eb grupet e para t\u00eb produkteve t\u00eb markuara, vet\u00ebm nj\u00eb kamion me cigare p\u00ebrmban rreth 600,000 paketa, secila prej t\u00eb cilave ka kodin e saj unik. Dhe detyra jon\u00eb \u00ebsht\u00eb t\u00eb ndjekim dhe verifikojm\u00eb ligjshm\u00ebrin\u00eb e l\u00ebvizjeve t\u00eb secil\u00ebs paket\u00eb t\u00eb till\u00eb midis depo dhe dyqaneve, dhe n\u00eb fund t\u00eb verifikojm\u00eb lejueshm\u00ebrin\u00eb e shfryt\u00ebzimit t\u00eb tyre nga bler\u00ebsi i fundit. Kemi regjistruar rreth 125,000 operacione kasash n\u00eb or\u00eb, dhe duhet gjithashtu t\u00eb regjistrojm\u00eb se si \u00e7do paket\u00eb e till\u00eb ka mb\u00ebrritur n\u00eb dyqan. Prandaj, duke marr\u00eb parasysh t\u00eb gjitha l\u00ebvizjet midis objekteve, ne presim disa dhjetra miliard\u00eb regjistrime n\u00eb vit.<\/p>\n<h3>Ekipi M<\/h3>\n<p>\nMegjith\u00ebse \"Markus\" konsiderohet nj\u00eb projekt brenda H5, ai zbatohet sipas nj\u00eb qasje produkti. Ekipa punon sipas Scrum. Projektet filluan ver\u00ebn e vitit t\u00eb kaluar, por rezultatet e para erdh\u00ebn vet\u00ebm n\u00eb tetor \u2014 u formua plot\u00ebsisht ekipi yn\u00eb, u zhvillua arkitektura e sistemit dhe u ble materiale. Tani ekipi ka 16 persona, gjasht\u00eb prej t\u00eb cil\u00ebve merren me zhvillimin e backend dhe frontend, tre me analiz\u00ebn sistematike. Testimi manual, krijimi i ngarkesave, testimi automatizuar dhe mb\u00ebshtetje e produktit p\u00ebrfshin edhe gjasht\u00eb persona t\u00eb tjer\u00eb. P\u00ebrve\u00e7 k\u00ebsaj, kemi nj\u00eb specialist SRE. <\/p>\n<p>Kode n\u00eb ekipin ton\u00eb shkruajn\u00eb jo vet\u00ebm zhvilluesit, pothuajse t\u00eb gjith\u00eb djemt\u00eb din\u00eb t\u00eb programojn\u00eb dhe shkruajn\u00eb teste automatike, skenare ngarkese dhe skenare automatizimi. Ne i kushtojm\u00eb nj\u00eb kujdes t\u00eb ve\u00e7ant\u00eb k\u00ebtij, pasi edhe mb\u00ebshtetje e produktit k\u00ebrkon nj\u00eb nivel t\u00eb lart\u00eb automatizimi. Koleg\u00ebve q\u00eb nuk kan\u00eb pasur eksperienc\u00eb n\u00eb programim, gjithmon\u00eb p\u00ebrpiqemi t'u japim ndihm\u00eb dhe t\u00eb sugjerojm\u00eb disa detyra t\u00eb vogla p\u00ebr t\u00eb punuar.<\/p>\n<p>Me lidhjen e pandemis\u00eb s\u00eb infeksionit nga koronavirusi, ne e transferuam t\u00ebr\u00eb ekipin n\u00eb pun\u00eb t\u00eb larg\u00ebt; disponimi i t\u00eb gjitha mjeteve p\u00ebr menaxhimin e zhvillimit, si dhe punimi i strukturuar n\u00eb Jira dhe GitLab na lejuan t\u00eb kalojm\u00eb leht\u00ebsisht k\u00ebt\u00eb faz\u00eb. M\u00ebnyra si zhvillua puna gjat\u00eb muajve t\u00eb q\u00ebndrimit t\u00eb larg\u00ebt tregoi se produktiviteti i ekipit nuk u prekur, p\u00ebr shum\u00eb persona komoditeti n\u00eb pun\u00eb u rrit, e vetmja gj\u00eb q\u00eb mungon \u00ebsht\u00eb komunikimi p\u00ebrball\u00eb p\u00ebrball\u00eb.<\/p>\n<h3>Takimi i ekipit para pun\u00ebs nga distanca<\/h3>\n<p>\n<img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/c1095316fd5e3dcc147b3dd968013152.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Takimet gjat\u00eb pun\u00ebs nga distanca<\/h3>\n<p>\n<img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/0c705ebbe28afbecd439c0ce2fcf04cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Staku teknologjik i zgjidhjes<\/h3>\n<p>\nRepositori standard dhe mjeti CI\/CD p\u00ebr H5 \u00ebsht\u00eb GitLab. Ne e p\u00ebrdorim at\u00eb p\u00ebr t\u00eb ruajtur kodin, p\u00ebr testim t\u00eb vazhduesh\u00ebm dhe p\u00ebr implementim n\u00eb serverat testues dhe produktiv\u00eb. Gjithashtu, ne p\u00ebrdorim praktikat e vler\u00ebsimit t\u00eb kodit, ku s\u00eb paku 2 koleg\u00eb duhet t\u00eb miratojn\u00eb ndryshimet e b\u00ebr\u00eb nga zhvilluesi n\u00eb kod. Analisat statike t\u00eb kodit me SonarQube dhe JaCoCo na ndihmojn\u00eb t\u00eb mbajm\u00eb kodin t\u00eb past\u00ebr dhe t\u00eb sigurojm\u00eb nivelin e k\u00ebrkuar t\u00eb mbulimit me teste unitare. T\u00eb gjitha ndryshimet n\u00eb kod duhet t\u00eb kalojn\u00eb patjet\u00ebr p\u00ebrmes k\u00ebtyre verifikimeve. T\u00eb gjitha skenar\u00ebt e testit q\u00eb ekzekutohen manualisht, pas k\u00ebsaj automatizohen.<\/p>\n<p>P\u00ebr t\u00eb realizuar me sukses proceset biznesore me \u201cMarkus\u201d, na duhej t\u00eb zgjidhnim nj\u00eb s\u00ebr\u00eb \u00e7\u00ebshtjesh teknologjike, p\u00ebr secil\u00ebn nga to n\u00eb rend t\u00eb duhur. <\/p>\n<p><b>\u00c7\u00ebshtja 1. Nevoja p\u00ebr shkall\u00ebzimin horizontal t\u00eb sistemit<\/b><\/p>\n<p>P\u00ebr ta zgjidhur k\u00ebt\u00eb \u00e7\u00ebshtje, zgjodh\u00ebm nj\u00eb qasje mikrop\u00ebrfaq\u00ebsuese n\u00eb arkitektur\u00eb. Ishte shum\u00eb e r\u00ebnd\u00ebsishme t\u00eb kuptonim zonat e p\u00ebrgjegj\u00ebsive t\u00eb sh\u00ebrbimeve. P\u00ebrpiqemi t\u2019i ndajm\u00eb ato sipas operacioneve t\u00eb biznesit, duke marr\u00eb parasysh karakteristikat e proceseve. P\u00ebr shembull, pranimi n\u00eb magazin\u00eb \u00ebsht\u00eb nj\u00eb operacion jo shum\u00eb i shpesht\u00eb, por me nj\u00eb volum t\u00eb madh, gjat\u00eb t\u00eb cilit duhet t\u00eb marr\u00ebsh informacionin nga rregullatori shtet\u00ebror p\u00ebr nj\u00ebsi t\u00eb pranueshme t\u00eb mallrave, numri i t\u00eb cilave n\u00eb nj\u00eb d\u00ebrges\u00eb arrin deri n\u00eb 600,000, t\u00eb kontrollosh pranueshm\u00ebrin\u00eb e k\u00ebtij produkti n\u00eb magazin\u00eb dhe t\u00eb jap\u00ebsh t\u00eb gjitha informacionet e nevojshme p\u00ebr sistemin e automatizimit t\u00eb magazin\u00ebs. Nga ana tjet\u00ebr, shkarkimi nga magazinat ka nj\u00eb intensitet shum\u00eb m\u00eb t\u00eb lart\u00eb, por operon me sasi m\u00eb t\u00eb vogla t\u00eb t\u00eb dh\u00ebnave. <\/p>\n<p>T\u00eb gjitha sh\u00ebrbimet i realizojm\u00eb sipas parimit stateless dhe madje p\u00ebrpiqemi ta ndajm\u00eb operacionet e brendshme n\u00eb hapa, duke p\u00ebrdorur, si\u00e7 i quajm\u00eb ne, self-temat Kafka. Kjo \u00ebsht\u00eb kur nj\u00eb mikrosh\u00ebrbim d\u00ebrgon nj\u00eb mesazh vetes, gj\u00eb q\u00eb lejon balancimin e ngarkes\u00ebs p\u00ebr operacione m\u00eb burimore dhe e thjeshton mb\u00ebshtetje produktit, por p\u00ebr k\u00ebt\u00eb do flasim m\u00eb von\u00eb. <\/p>\n<p>Ne vendos\u00ebm t\u2019i ndajm\u00eb n\u00eb sh\u00ebrbime t\u00eb ve\u00e7anta modulet e nd\u00ebrveprimit me sistemet e jashtme. Kjo leht\u00ebsoi zgjidhjen e problemit t\u00eb API-ve t\u00eb jashtme q\u00eb ndryshojn\u00eb shpesh, praktikisht pa ndikuar n\u00eb sh\u00ebrbimet me funksionalitet biznesi.<\/p>\n<p><img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/da1dc58791fa28e89e289528e0fd2550.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00eb gjith\u00eb mikrosh\u00ebrbimet vendosen n\u00eb klasterin OpenShift, i cili zgjidh si problemin e shkall\u00ebzimit t\u00eb \u00e7do mikrosh\u00ebrbimi, ashtu edhe na lejon t\u00eb mos p\u00ebrdorim mjete t\u00eb jashtme p\u00ebr Zbulimin e Sh\u00ebrbimeve.<\/p>\n<p><b>Detyra 2. Nevoja p\u00ebr t\u00eb mbajtur nj\u00eb ngarkes\u00eb t\u00eb lart\u00eb dhe nj\u00eb shk\u00ebmbim shum\u00eb intensiv t\u00eb t\u00eb dh\u00ebnave midis sh\u00ebrbimeve t\u00eb platform\u00ebs:<\/b> vet\u00ebm n\u00eb faz\u00ebn e fillimit t\u00eb projektit kryhen rreth 600 operacione n\u00eb sekond\u00eb. Ne presim q\u00eb ky num\u00ebr t\u00eb rritet n\u00eb 5000 ops\/sek me lidhjen e objekteve tregtare n\u00eb platform\u00ebn ton\u00eb.<\/p>\n<p>Kjo detyr\u00eb u zgjodh duke instaluar nj\u00eb klastri Kafka dhe duke eliminuar n\u00eb m\u00ebnyr\u00eb t\u00eb praktikshme nd\u00ebrlidhjen sinkrone midis mikrosh\u00ebrbimeve t\u00eb platform\u00ebs. Kjo k\u00ebrkon nj\u00eb analiz\u00eb shum\u00eb t\u00eb kujdesshme t\u00eb k\u00ebrkesave p\u00ebr sistemin, pasi jo t\u00eb gjitha operacionet mund t\u00eb jen\u00eb asinkrone. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, ne nuk po kalojm\u00eb thjesht ngjarje p\u00ebrmes brokerit, por gjithashtu po p\u00ebrcjellim n\u00eb mesazhin e k\u00ebrkuar t\u00eb gjitha informacionet e biznesit. K\u00ebshtu, madh\u00ebsia e mesazhit mund t\u00eb arrij\u00eb disa qindra kilobajt\u00eb. Kufizimi i volumit t\u00eb mesazheve n\u00eb Kafka k\u00ebrkon nga ne parashikimin e sakt\u00eb t\u00eb madh\u00ebsive t\u00eb mesazheve, dhe, n\u00eb rast nevoje, ne i ndajm\u00eb ato, por ndarja \u00ebsht\u00eb logjike, e lidhur me operacionet e biznesit. <br \/>\nP\u00ebr shembull, mallrat q\u00eb mb\u00ebrrijn\u00eb me makin\u00eb, ne i ndajm\u00eb sipas kutive. P\u00ebr operacionet sinhrone, krijohen sh\u00ebrbime mikro t\u00eb ve\u00e7anta dhe kryhet nj\u00eb testim i holl\u00ebsish\u00ebm i ngarkes\u00ebs. P\u00ebrdorimi i Kafka na vuri p\u00ebrball\u00eb nj\u00eb sfid\u00eb tjet\u00ebr \u2014 kontrolli i funksionimit t\u00eb sh\u00ebrbimit ton\u00eb me integrimin e Kafka e b\u00ebn \u00e7do testim nj\u00ebsi t\u00eb asinkronizuar. K\u00ebt\u00eb detyr\u00eb ne e zgjidh\u00ebm duke shkruar metoda tona utilitare duke p\u00ebrdorur Embedded Kafka Broker. Kjo nuk e anulon nevoj\u00ebn p\u00ebr t\u00eb shkruar teste nj\u00ebsi p\u00ebr metodat e ve\u00e7anta, por rastet e nd\u00ebrlikuara preferojm\u00eb t'i testojm\u00eb duke p\u00ebrdorur Kafka.<\/p>\n<p>I kemi kushtuar shum\u00eb v\u00ebmendje ndjekjes s\u00eb logeve, n\u00eb m\u00ebnyr\u00eb q\u00eb TraceId-t e tyre t\u00eb mos humbasin kur ndodhin p\u00ebrjashtime gjat\u00eb funksionimit t\u00eb sh\u00ebrbimeve ose gjat\u00eb pun\u00ebs me grumbuj Kafka. Dhe n\u00ebse me rastin e par\u00eb nuk kemi pasur ndonj\u00eb shqet\u00ebsim t\u00eb ve\u00e7ant\u00eb, n\u00eb rastin e dyt\u00eb jemi detyruar t\u00eb regjistrojm\u00eb n\u00eb log t\u00eb gjith\u00eb TraceId-t me t\u00eb cilat erdhi grumbulli, dhe t\u00eb zgjedhim nj\u00eb p\u00ebr t\u00eb vazhduar ndjekjen. K\u00ebshtu, gjat\u00eb k\u00ebrkimit p\u00ebr TraceId fillestar, p\u00ebrdoruesi do t\u00eb zgjidh\u00eb leht\u00ebsisht se me cilin vazhdoi ndjekja.<\/p>\n<p><b>Detyra 3. Nevoja p\u00ebr t\u00eb ruajtur nj\u00eb sasi t\u00eb madhe t\u00eb dh\u00ebnash: <\/b> m\u00eb shum\u00eb se 1 miliard markimesh n\u00eb vit vjen vet\u00ebm nga duhani n\u00eb X5. K\u00ebta k\u00ebrkojn\u00eb akses t\u00eb vazhduesh\u00ebm dhe t\u00eb shpejt\u00eb. Sistemi duhet t\u00eb p\u00ebrpunoj\u00eb rreth 10 miliard\u00eb t\u00eb dh\u00ebna p\u00ebr historin\u00eb e qarkullimit t\u00eb produkteve t\u00eb markuara.<\/p>\n<p>P\u00ebr zgjidhjen e detyr\u00ebs s\u00eb tret\u00eb u zgjodh baza NoSQL MongoDB. Ne kemi nd\u00ebrtuar nj\u00eb shard prej 5 nodash dhe n\u00eb \u00e7do nod ka nj\u00eb Replica Set prej 3 serverash. Kjo lejon q\u00eb sistemi t\u00eb shkall\u00ebzohet horizontalisht, duke shtuar <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/\"   title=\"servera t\u00eb rinj\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"781\">servera t\u00eb rinj<\/a> n\u00eb klaster dhe t\u00eb sigurojm\u00eb disponueshm\u00ebrin\u00eb e tij. K\u00ebtu u p\u00ebrball\u00ebm me nj\u00eb problem tjet\u00ebr \u2014 sigurimin e transaksionit n\u00eb klasterin mongo duke marr\u00eb parasysh p\u00ebrdorimin e mikrosh\u00ebrbimeve q\u00eb shkall\u00ebzohen horizontalisht. P\u00ebr shembull, nj\u00eb nga detyrat e sistemit ton\u00eb \u00ebsht\u00eb t\u00eb identifikoj\u00eb p\u00ebrpjekjet p\u00ebr shitje t\u00eb p\u00ebrs\u00ebritura t\u00eb produkteve me kode t\u00eb nj\u00ebjta etiketimi. K\u00ebtu shfaqen problematika me skanimet e gabuara ose me operacionet e gabuara t\u00eb kasave. Ne zbuluam se k\u00ebto kopje mund t\u00eb ndodhin si brenda nj\u00eb batch-i t\u00eb p\u00ebrpunuar nga Kafka, ashtu edhe brenda dy batch-esh q\u00eb p\u00ebrpunohen paralelisht. Prandaj, kontrolli i shfaqjes s\u00eb kopjeve p\u00ebrmes nj\u00eb k\u00ebrkese ndaj baz\u00ebs nuk jepte asgj\u00eb. P\u00ebr secilin nga mikrosh\u00ebrbimet ne zgjidh\u00ebm problemin ve\u00e7mas duke u bazuar n\u00eb logjik\u00ebn e biznesit t\u00eb k\u00ebtij sh\u00ebrbimi. P\u00ebr shembull, p\u00ebr faturat, shtuam nj\u00eb kontroll brenda batch-it dhe nj\u00eb p\u00ebrpunim t\u00eb ve\u00e7ant\u00eb p\u00ebr shfaqjen e dublikatave gjat\u00eb futjes. <\/p>\n<p>P\u00ebr t\u00eb siguruar q\u00eb puna e p\u00ebrdoruesve me historin\u00eb e operacioneve t\u00eb mos ndikoj\u00eb n\u00eb t\u00eb r\u00ebnd\u00ebsishmen \u2014 funksionimin e proceseve tona biznesore, t\u00eb gjitha t\u00eb dh\u00ebnat historike i kemi ve\u00e7uar n\u00eb nj\u00eb sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb me nj\u00eb baz\u00eb t\u00eb dh\u00ebnash t\u00eb ve\u00e7ant\u00eb, e cila gjithashtu merr informacione p\u00ebrmes Kafka. K\u00ebshtu, p\u00ebrdoruesit punojn\u00eb me nj\u00eb sh\u00ebrbim t\u00eb izoluar, pa ndikuar n\u00eb sh\u00ebrbimet q\u00eb p\u00ebrpunojn\u00eb t\u00eb dh\u00ebna p\u00ebr operacionet aktuale.<\/p>\n<p><b>Detyra 4. Riprocesimi i radh\u00ebve dhe monitorimi:<\/b><\/p>\n<p>N\u00eb sistemet e shp\u00ebrndara, problemet dhe gabimet e aksesueshm\u00ebris\u00eb s\u00eb bazave t\u00eb dh\u00ebnash, radh\u00ebve dhe burimeve t\u00eb jashtme t\u00eb t\u00eb dh\u00ebnave jan\u00eb t\u00eb pashmangshme. N\u00eb rastin e \"Markus\", burimi i k\u00ebtyre gabimeve \u00ebsht\u00eb integrimi me sistemet e jashtme. Duhej t\u00eb gjendej nj\u00eb zgjidhje q\u00eb lejonte kryerjen e k\u00ebrkesave t\u00eb p\u00ebrs\u00ebritura p\u00ebr p\u00ebrgjigje t\u00eb gabuara brenda nj\u00eb afati t\u00eb caktuar, por pa ndalur trajtimin e k\u00ebrkesave t\u00eb suksesshme n\u00eb radh\u00ebn kryesore. P\u00ebr k\u00ebt\u00eb, u zgjodh koncepti i quajtur \"ripozitim i bazuar n\u00eb tema\". P\u00ebr secil\u00ebn tem\u00eb kryesore krijohen nj\u00eb ose disa tema t\u00eb ripozituara, n\u00eb t\u00eb cilat d\u00ebrgohen mesazhet e gabuara, duke p\u00ebrjashtuar vones\u00ebn n\u00eb p\u00ebrpunimin e mesazheve nga tema kryesore. Skema e bashk\u00ebpunimit \u2014 <\/p>\n<p><img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/922b3107d183312312713c213488fbe1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr realizimin e k\u00ebtij skenari na duhej t\u00eb b\u00ebnim t\u00eb mundur integrimin e k\u00ebtij zgjidhjeje me Spring dhe t\u00eb evitonim dublimin e kodit. N\u00eb hap\u00ebsir\u00ebn virtuale ne u ndesh\u00ebm me nj\u00eb zgjidhje t\u00eb ngjashme, t\u00eb bazuar n\u00eb Spring BeanPostProcessor, por na dukej tep\u00ebr e r\u00ebnd\u00eb. Ekipa jon\u00eb krijoi nj\u00eb zgjidhje m\u00eb t\u00eb thjesht\u00eb, q\u00eb lejon t\u00eb integrohen n\u00eb ciklin e krijimit t\u00eb konsumatoreve t\u00eb Spring dhe t\u00eb shtohen p\u00ebr m\u00eb tep\u00ebr Konsumator\u00ebt me Rikthim. Prototipi i zgjidhjes son\u00eb iu propozua ekipit t\u00eb Spring, mund ta shikoni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/spring-projects\/spring-kafka\/issues\/1229\">k\u00ebtu<\/a><\/noindex>. Numri i Konsumator\u00ebve me Rikthim dhe numri i p\u00ebrpjekjeve t\u00eb \u00e7do konsumatoreje konfigurohen p\u00ebrmes parametrave, n\u00eb var\u00ebsi t\u00eb nevojave t\u00eb procesit t\u00eb biznesit, dhe, p\u00ebr t'u siguruar q\u00eb gjith\u00e7ka t\u00eb funksionoj\u00eb, mbetet vet\u00ebm t\u00eb vendosni njohuritin e njohur p\u00ebr t\u00eb gjith\u00eb zhvilluesit e Spring, annotimin org.springframework.kafka.annotation.KafkaListener.<\/p>\n<p>N\u00eb rast se mesazhi nuk mund t\u00eb procesonit pas t\u00eb gjitha p\u00ebrpjekjeve p\u00ebr riprovim, ai kalon n\u00eb DLT (tem\u00ebn e letrave t\u00eb vdekur) me ndihm\u00ebn e Spring DeadLetterPublishingRecoverer. N\u00eb k\u00ebrkes\u00eb nga ekipi i mb\u00ebshtetjes, ne zgjat\u00ebm funksionalitetin dhe krijuam nj\u00eb sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb q\u00eb lejon shikimin e mesazheve t\u00eb d\u00ebrguara n\u00eb DLT, stackTrace, traceId dhe informacione t\u00eb tjera t\u00eb dobishme n\u00eb lidhje me to. P\u00ebrve\u00e7 k\u00ebsaj, monitorimi dhe alarmin jan\u00eb shtuar p\u00ebr t\u00eb gjitha temat DLT, dhe tani, n\u00eb thelb, shfaqja e nj\u00eb mesazhi n\u00eb tem\u00ebn DLT \u00ebsht\u00eb nj\u00eb shp\u00ebrndarje dhe ka t\u00eb b\u00ebj\u00eb me regjistrimin e nj\u00eb defekti. Kjo \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme \u2014 nga emri i tem\u00ebs ne menj\u00ebher\u00eb kuptojm\u00eb n\u00eb cilin hap t\u00eb procesit ka ndodhur problemi, q\u00eb ndjesh\u00ebm shpejton k\u00ebrkimin e shkakut t\u00eb saj t\u00eb rr\u00ebnjosur.<\/p>\n<p><img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/ba1110bf1c93249c73dd76c490f1d7aa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00eb fundmi kemi implementuar nj\u00eb nd\u00ebrfaqe q\u00eb lejon d\u00ebrgimin e mesazheve p\u00ebrs\u00ebri nga ekipi yn\u00eb i mb\u00ebshtetjes, pas zgjidhjes s\u00eb shkakut t\u00eb tyre (p\u00ebr shembull, rikthimi i funksionalitetit t\u00eb sistemit t\u00eb jasht\u00ebm) dhe, natyrisht, regjistrimin e nj\u00eb defekti p\u00ebr analiz\u00eb. K\u00ebtu na erdh\u00ebn n\u00eb ndihm\u00eb temat tona self, q\u00eb p\u00ebr t\u00eb mos ripar\u00ebsa nj\u00eb zinxhir t\u00eb gjat\u00eb p\u00ebrpunimi, mund ta nisim at\u00eb nga hapi i duhur. <\/p>\n<p><img decoding=\"async\" alt=\"\u00abT\u00eb ec\u00ebsh n\u00eb k\u00ebpuc\u00ebt e mia\u00bb \u2014 ndaloni, a jan\u00eb ato t\u00eb markuara?\" src=\"\/wp-content\/uploads\/2020\/07\/78c7831131808732b74b27f055b60d54.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Eksploatimi i platform\u00ebs<\/h3>\n<p>\nPlatforma \u00ebsht\u00eb tashm\u00eb n\u00eb funksionim produktiv, \u00e7do dit\u00eb ne realizojm\u00eb d\u00ebrgesa dhe shp\u00ebrndarje, duke lidhur qendrat e reja t\u00eb shp\u00ebrndarjes dhe dyqane. N\u00eb kuad\u00ebr t\u00eb pilotit, sistemi punon me grupe produktesh \"Tavak\" dhe \"K\u00ebpuc\u00eb\". <\/p>\n<p>E gjith\u00eb ekipi yn\u00eb merr pjes\u00eb n\u00eb zhvillimin e pilot\u00ebve, analizon problemet e shfaqura dhe propozon p\u00ebrmir\u00ebsime p\u00ebr produktin ton\u00eb nga p\u00ebrmir\u00ebsimi i shtypshkrimeve deri te ndryshimet n\u00eb procese. <\/p>\n<p>P\u00ebr t\u00eb shmangur p\u00ebrs\u00ebritjen e gabimeve tona, t\u00eb gjitha rastet q\u00eb u zbuluan gjat\u00eb pilotit reflektohen n\u00eb testet automatike. Prania e nj\u00eb numri t\u00eb madh testesh automatik dhe testeve unitare na lejon t\u00eb kryejm\u00eb teste regresioni dhe t\u00eb vendosim hotfix brenda disa or\u00ebsh.<\/p>\n<p>Aktualisht, ne vazhdojm\u00eb t\u00eb zhvillojm\u00eb dhe p\u00ebrmir\u00ebsojm\u00eb platform\u00ebn ton\u00eb, dhe vazhdimisht p\u00ebrballemi me sfida t\u00eb reja. N\u00ebse jeni t\u00eb interesuar, do t\u00eb flasim p\u00ebr zgjidhjet tona n\u00eb artikujt e ardhsh\u00ebm.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/X5RetailGroup\/blog\/509714\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 2019 \u0433\u043e\u0434\u0430 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043a\u043e\u043d \u043e\u0431 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0435. \u0417\u0430\u043a\u043e\u043d \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0438 \u0441\u0440\u043e\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043b\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0440\u0430\u0437\u043d\u044b\u0435. \u041f\u0435\u0440\u0432\u044b\u043c\u0438 \u043f\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u0430\u0431\u0430\u043a, \u043e\u0431\u0443\u0432\u044c, \u043b\u0435\u043a\u0430\u0440\u0441\u0442\u0432\u0430, \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0443\u0445\u0438, \u0442\u0435\u043a\u0441\u0442\u0438\u043b\u044c, \u043c\u043e\u043b\u043e\u043a\u043e. \u042d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0418\u0422-\u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87373,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87372","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421 2019 \u0433\u043e\u0434\u0430 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043a\u043e\u043d \u043e\u0431 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0435. \u0417\u0430\u043a\u043e\u043d \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0438 \u0441\u0440\u043e\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043b\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0440\u0430\u0437\u043d\u044b\u0435. \u041f\u0435\u0440\u0432\u044b\u043c\u0438 \u043f\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u0430\u0431\u0430\u043a, \u043e\u0431\u0443\u0432\u044c, \u043b\u0435\u043a\u0430\u0440\u0441\u0442\u0432\u0430, \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0443\u0445\u0438, \u0442\u0435\u043a\u0441\u0442\u0438\u043b\u044c, \u043c\u043e\u043b\u043e\u043a\u043e. \u042d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0418\u0422-\u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\" \/>\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\/walking-in-my-shoes-stop-a-oni-markirovannye\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\u00abWalking in my shoes\u00bb \u2014 \u0441\u0442\u043e\u043f, \u0430 \u043e\u043d\u0438 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 2019 \u0433\u043e\u0434\u0430 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043a\u043e\u043d \u043e\u0431 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0435. \u0417\u0430\u043a\u043e\u043d \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0438 \u0441\u0440\u043e\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043b\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0440\u0430\u0437\u043d\u044b\u0435. \u041f\u0435\u0440\u0432\u044b\u043c\u0438 \u043f\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u0430\u0431\u0430\u043a, \u043e\u0431\u0443\u0432\u044c, \u043b\u0435\u043a\u0430\u0440\u0441\u0442\u0432\u0430, \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0443\u0445\u0438, \u0442\u0435\u043a\u0441\u0442\u0438\u043b\u044c, \u043c\u043e\u043b\u043e\u043a\u043e. \u042d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0418\u0422-\u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/walking-in-my-shoes-stop-a-oni-markirovannye\" \/>\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=\"2020-07-07T11:42:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-07T11:42:34+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\udd47\u00abWalking in my shoes\u00bb \u2014 ndalu, por a jan\u00eb ato t\u00eb etiketuar? | ProHoster","description":"Q\u00eb nga viti 2019, n\u00eb Rusi ka hyr\u00eb n\u00eb fuqi nj\u00eb ligj mbi k\u00ebrkes\u00ebn e detyrueshme t\u00eb etiketimit. Ky ligj nuk zbatohet p\u00ebr t\u00eb gjitha grupet e mallrave, dhe afatet p\u00ebr hyrjen n\u00eb fuqi t\u00eb etiketimit jan\u00eb t\u00eb ndryshme p\u00ebr grupe t\u00eb ndryshme produktesh. T\u00eb par\u00ebt q\u00eb do t\u00eb jen\u00eb n\u00ebn k\u00ebrkes\u00ebn e etiketimit jan\u00eb duhani, k\u00ebpuc\u00ebt, dhe ila\u00e7et, nd\u00ebrsa m\u00eb von\u00eb do t\u00eb shtohen edhe mallra t\u00eb tjera, si parfume, tekstile, dhe qum\u00ebshti. Ky ndryshim ligjor ka nxitur zhvillimin e zgjidhjeve t\u00eb reja IT, t\u00eb cilat do t\u00eb lejojn\u00eb","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/walking-in-my-shoes-stop-a-oni-markirovannye","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\u00abWalking in my shoes\u00bb \u2014 \u0441\u0442\u043e\u043f, \u0430 \u043e\u043d\u0438 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435? | ProHoster","og:description":"\u0421 2019 \u0433\u043e\u0434\u0430 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043a\u043e\u043d \u043e\u0431 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0435. \u0417\u0430\u043a\u043e\u043d \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0438 \u0441\u0440\u043e\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043b\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0440\u0430\u0437\u043d\u044b\u0435. \u041f\u0435\u0440\u0432\u044b\u043c\u0438 \u043f\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u0430\u0431\u0430\u043a, \u043e\u0431\u0443\u0432\u044c, \u043b\u0435\u043a\u0430\u0440\u0441\u0442\u0432\u0430, \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0443\u0445\u0438, \u0442\u0435\u043a\u0441\u0442\u0438\u043b\u044c, \u043c\u043e\u043b\u043e\u043a\u043e. \u042d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0418\u0422-\u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/walking-in-my-shoes-stop-a-oni-markirovannye","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":"2020-07-07T11:42:34+00:00","article:modified_time":"2020-07-07T11:42:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87372","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:52:22","updated":"2026-02-08 20:33:48"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87372","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=87372"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87372\/revisions"}],"predecessor-version":[{"id":157972,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/87372\/revisions\/157972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/87373"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=87372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=87372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=87372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}