{"id":37586,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/infrastructure-as-code-pervoe-znakomstvo\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"infrastructure-as-code-pervoe-znakomstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastruktura si kod: njohja e par\u00eb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>N\u00eb kompanin\u00eb ton\u00eb po ndodh procesi i onboarding-ut t\u00eb ekipit SRE. Un\u00eb kam hyr\u00eb n\u00eb k\u00ebt\u00eb histori nga ana e zhvillimit. Gjat\u00eb k\u00ebtij procesi kam pasur mendime dhe njohuri q\u00eb d\u00ebshiroj t'i ndaj me zhvillues t\u00eb tjer\u00eb. N\u00eb k\u00ebt\u00eb artikull-reflektim flas p\u00ebr at\u00eb q\u00eb po ndodh, si ndodh, dhe si duhet t\u00eb vazhdojm\u00eb me k\u00ebt\u00eb. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/d154a2fbbd0dd846c763db178f02702e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Vazhdim i seris\u00eb s\u00eb artikujve t\u00eb shkruar sipas motiveve t\u00eb fjalimeve n\u00eb ngjarjen ton\u00eb t\u00eb brendshme <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/462033\/\">DevForum<\/a><\/noindex><\/b>: <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/463469\/\">1. Macja e Schr\u00f6dingerit pa kuti: problemi i konsensusit n\u00eb sistemet e shp\u00ebrndara.<\/a><\/noindex><br \/>\n2. Infrastruktura si kod. (Ju jeni k\u00ebtu)<br \/>\n3. Gjenerimi i kontratave Typescript nga modelet c#. (N\u00eb proces&#8230;)<br \/>\n4. Hyrja n\u00eb algoritmin e konsensusit Raft. (N\u00eb proces&#8230;)<br \/>\n&#8230;<\/p><\/blockquote>\n<p>\nNe vendos\u00ebm t\u00eb formonim ekipin SRE, duke realizuar idet\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Pun\u00ebsuam programues nga zhvilluesit tan\u00eb dhe i d\u00ebrguam p\u00ebr trajnim p\u00ebr disa muaj. <\/p>\n<p>Ekipit iu vun\u00eb k\u00ebto detyra p\u00ebr studim:<\/p>\n<ul>\n<li>T\u00eb p\u00ebrshkruajn\u00eb infrastruktur\u00ebn ton\u00eb, q\u00eb \u00ebsht\u00eb kryesisht n\u00eb Microsoft Azure, n\u00eb form\u00eb kodi (Terraform dhe t\u00eb gjitha q\u00eb lidhen me t\u00eb). <\/li>\n<li>T\u00eb m\u00ebsojn\u00eb zhvilluesit se si t\u00eb punojn\u00eb me infrastruktur\u00ebn. <\/li>\n<li>T\u00eb p\u00ebrgatisin zhvilluesit p\u00ebr rolet e ndihm\u00ebs.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Po futim konceptin e Infrastruktur\u00ebs si kod<\/h2>\n<p>\nN\u00eb modelin e zakonsh\u00ebm t\u00eb bot\u00ebs (administrimi klasik), njohurit\u00eb rreth infrastruktur\u00ebs ndodhin n\u00eb dy vende:<\/p>\n<ol>\n<li>Ose n\u00eb form\u00ebn e njohurive n\u00eb kokat e ekspert\u00ebve.<img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Ose kjo informacion \u00ebsht\u00eb n\u00eb disa pajisje, nj\u00eb pjes\u00eb e t\u00eb cilave e din\u00eb ekspert\u00ebt. Por nuk \u00ebsht\u00eb e sigurt q\u00eb nj\u00eb person i jasht\u00ebm (n\u00ebse ekipi yn\u00eb papritur vdes) do t\u00eb mund t\u00eb kuptoj\u00eb se \u00e7far\u00eb dhe si funksionon. Pajisja mund t\u00eb ket\u00eb shum\u00eb informacione: aksesa, pun\u00eb cron, montimin e disk\u00ebve (shih. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) dhe nj\u00eb list\u00eb t\u00eb pafundme t\u00eb asaj q\u00eb mund t\u00eb ndodh\u00eb. \u00cbsht\u00eb e v\u00ebshtir\u00eb t\u00eb kuptosh se \u00e7far\u00eb po ndodh realisht.<img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nN\u00eb t\u00eb dyja rastet, ne p\u00ebrfundojm\u00eb n\u00eb nj\u00eb kurth, duke u b\u00ebr\u00eb t\u00eb varur:<\/p>\n<ul>\n<li>ose nga nj\u00eb person i cili \u00ebsht\u00eb mortal, i ndjesh\u00ebm ndaj s\u00ebmundjeve, dashurive, ndryshimeve t\u00eb humorit dhe thjesht largimeve banale;<\/li>\n<li>ose nga nj\u00eb makin\u00eb q\u00eb funksionon fizikisht, q\u00eb gjithashtu mund t\u00eb bjer\u00eb, t\u00eb vidhet, t\u00eb sjell\u00eb surpriza dhe shqet\u00ebsime. <\/li>\n<\/ul>\n<p>\nNatyrisht, zgjidhja e duhura \u00ebsht\u00eb q\u00eb, n\u00eb m\u00ebnyr\u00eb ideale, gjith\u00e7ka t\u00eb transferohet n\u00eb kod t\u00eb lexuesh\u00ebm nga njeriu, t\u00eb mir\u00ebmbajtur dhe t\u00eb shkruar me cil\u00ebsi. <\/p>\n<p>K\u00ebshtu, infrastruktura si kod (Infrastructure as Code \u2013 IaC) \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim i gjith\u00eb infrastruktur\u00ebs ekzistuese n\u00eb form\u00eb kode, si dhe mjetet p\u00ebr ta menaxhuar at\u00eb dhe p\u00ebr t\u00eb krijuar infrastruktur\u00ebn reale nga ky kod.<\/p>\n<p><b class=\"spoiler_title\">Pse ta kthejm\u00eb gjith\u00e7ka n\u00eb kod<\/b>Njer\u00ebzit nuk jan\u00eb makina. Ata nuk mund t\u00eb mbajn\u00eb mend gjith\u00e7ka. Reaksioni i njeriut dhe i makin\u00ebs \u00ebsht\u00eb ndryshe. E gjith\u00eb automatizimi potencialisht punon m\u00eb shpejt se \u00e7do gj\u00eb q\u00eb b\u00ebn nj\u00eb njeri. E vetmja gj\u00eb thelb\u00ebsore \u00ebsht\u00eb nj\u00eb burim i vet\u00ebm t\u00eb v\u00ebrtetash (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Nga vijn\u00eb inxhinier\u00ebt e rinj SRE<\/b>Pra, ne vendos\u00ebm t\u00eb angazhojm\u00eb inxhinier\u00eb t\u00eb rinj SRE, por nga t'i marrim? Nj\u00eb lib\u00ebr me p\u00ebrgjigje t\u00eb sakta (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) na thot\u00eb: nga zhvilluesit. Sepse ata punojn\u00eb me kodin, dhe ju arrini nj\u00eb gjendje ideale.<\/p>\n<p>Kemi k\u00ebrkuar gjat\u00eb dhe shum\u00eb p\u00ebr ta n\u00eb tregun e pun\u00ebs jasht\u00eb kompanis\u00eb son\u00eb. Por duhet t\u00eb pranojm\u00eb se nuk gjet\u00ebm asnj\u00eb sipas k\u00ebrkesave tona. Duhej t\u00eb k\u00ebrkonim mes t\u00eb tanishm\u00ebve tan\u00eb. <\/p>\n<h2>Problemet e Infrastruktur\u00ebs si Kod<\/h2>\n<p>\nTani le t\u00eb shikojm\u00eb shembuj t\u00eb asaj si infrastruktura mund t\u00eb jet\u00eb e koduar. Kodi \u00ebsht\u00eb shkruar mir\u00eb, me cil\u00ebsi, me komente dhe hap\u00ebsira. <\/p>\n<p>Shembulli i kodit nga Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShembulli i kodit nga Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00eb nderuar, por n\u00ebse do t\u00eb ishte kaq e thjesht\u00eb! Ne jemi n\u00eb nj\u00eb bot\u00eb reale, dhe ajo gjithmon\u00eb \u00ebsht\u00eb e gatshme t'ju befasoj\u00eb, t'ju sjell\u00eb surpriza dhe probleme. Kjo \u00ebsht\u00eb pjes\u00eb e p\u00ebrvoj\u00ebs edhe k\u00ebtu.<\/p>\n<p><b>1. Problemi i par\u00eb \u00ebsht\u00eb se n\u00eb shumic\u00ebn e rasteve IaC \u00ebsht\u00eb nj\u00eb lloj dsl.<\/b><\/p>\n<p>Dhe DSL, nga ana tjet\u00ebr, \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim i struktur\u00ebs. M\u00eb sakt\u00eb, atij q\u00eb duhet t\u00eb keni: Json, Yaml, modifikime nga disa kompani t\u00eb m\u00ebdha q\u00eb krijuan dsl-in e tyre (n\u00eb Terraform p\u00ebrdoret HCL). <\/p>\n<p>Problemi \u00ebsht\u00eb se n\u00eb t\u00eb mund t\u00eb mungojn\u00eb gj\u00ebra q\u00eb na duken t\u00eb zakonshme si:<\/p>\n<ul>\n<li>variablat;<\/li>\n<li>kushtet;<\/li>\n<li>n\u00eb disa raste mungojn\u00eb komentet, p\u00ebr shembull, n\u00eb Json, ato nuk parashikohen si standard;<\/li>\n<li>funksionet;<\/li>\n<li>dhe k\u00ebtu nuk po flas p\u00ebr gj\u00ebra me nivel m\u00eb t\u00eb lart\u00eb, si klasat, trash\u00ebgimia dhe t\u00eb ngjashme.<\/li>\n<\/ul>\n<p>\n <b>2. Problemi i dyt\u00eb i k\u00ebtij kodi \u00ebsht\u00eb se shpesh \u00ebsht\u00eb nj\u00eb mjedis heterogjen.<\/b>Zakonisht, ju punoni me C#, pra me nj\u00eb gjuh\u00eb, nj\u00eb stack, nj\u00eb ekosistem. Nd\u00ebrsa k\u00ebtu keni nj\u00eb shum\u00ebllojshm\u00ebri t\u00eb madhe teknologjish. <\/p>\n<p>Nj\u00eb situat\u00eb plot\u00ebsisht reale \u00ebsht\u00eb kur nj\u00eb bashk\u00ebpunim me Python fillon nj\u00eb proces, n\u00eb t\u00eb cilin futet nj\u00eb Json. Ju e analizoni at\u00eb, pastaj nj\u00eb gjenerator tjet\u00ebr prodhon edhe 30 skedar\u00eb t\u00eb tjer\u00eb. T\u00eb gjitha k\u00ebto marrin variablat hyr\u00ebs nga Azure Key Vault, t\u00eb cilat jan\u00eb t\u00eb t\u00ebrhequra nga nj\u00eb plugin p\u00ebr drone.io, t\u00eb shkruara n\u00eb Go, dhe k\u00ebta variabla kalojn\u00eb p\u00ebrmes nj\u00eb yaml q\u00eb rezulton nga gjenerimi nga nj\u00eb shabllon jsonnet. Mjaft e v\u00ebshtir\u00eb t\u00eb kesh nj\u00eb kod t\u00eb shkruar mir\u00eb kur ke nj\u00eb ambient kaq t\u00eb ndrysh\u00ebm. <\/p>\n<p>Zhvillimi tradicional brenda nj\u00eb detyre zakonisht p\u00ebrdor nj\u00eb gjuh\u00eb t\u00eb vetme. K\u00ebtu, megjithat\u00eb, ne punojm\u00eb me nj\u00eb num\u00ebr t\u00eb madh gjuh\u00ebsh. <\/p>\n<p><b>3. Problemi i tret\u00eb \u2013 jan\u00eb mjetet<\/b>. Ne jemi m\u00ebsuar me redaktor\u00eb t\u00eb shk\u00eblqyer (Ms Visual Studio, Jetbrains Rider), t\u00eb cil\u00ebt gjith\u00e7ka e b\u00ebjn\u00eb p\u00ebr ne. Edhe n\u00ebse ne gabojm\u00eb, ata do t\u00eb thon\u00eb se nuk jemi t\u00eb drejt\u00eb. Duket se \u00ebsht\u00eb normale dhe e natyrshme. <\/p>\n<p>Por dikur, pran\u00eb nesh \u00ebsht\u00eb VSCode, ku ka disa skedar\u00eb ndihm\u00ebs q\u00eb instalohen, mb\u00ebshteten ose nuk mb\u00ebshteten. Kan\u00eb dal\u00eb versione t\u00eb reja, dhe ato nuk jan\u00eb mb\u00ebshtetur. Nj\u00eb kalim i thjesht\u00eb n\u00eb implementimin e funksionit (edhe n\u00ebse ai ekziston) b\u00ebhet nj\u00eb problem i komplikuar dhe jo trivial. Nj\u00eb thjesht\u00eb ndryshim emri t\u00eb nj\u00eb variabli \u2013 \u00ebsht\u00eb nj\u00eb z\u00ebvend\u00ebsim n\u00eb projekt nga dhjet\u00ebra skedar\u00eb. Ka shpres\u00eb, n\u00ebse ai z\u00ebvend\u00ebson at\u00eb q\u00eb duhet. Sigurisht, ndonj\u00ebher\u00eb ka ndri\u00e7im sintaksor, ka auto plot\u00ebsim, diku ka formatim (ndon\u00ebse un\u00eb n\u00eb Terraform n\u00eb Windows nuk arrita ta aktivizoj). <\/p>\n<p>N\u00eb momentin e shkruar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform plugin<\/a><\/noindex> ende nuk e kan\u00eb l\u00ebshuar p\u00ebr t\u00eb mb\u00ebshtetur versionin 0.12, megjithat\u00eb ai \u00ebsht\u00eb l\u00ebshuar p\u00ebr 3 muaj.<\/p>\n<h2>Ka ardhur koha t\u00eb harrojm\u00eb p\u00ebr&#8230;<\/h2>\n<p><\/p>\n<ol>\n<li>Dekodimin.<\/li>\n<li>Mjeti i rifaksionit.<\/li>\n<li>Auto p\u00ebrfundimi.<\/li>\n<li>Zbulimin e gabimeve gjat\u00eb p\u00ebrpunimit.<\/li>\n<\/ol>\n<p>\n\u00cbsht\u00eb qesharake, por kjo e rrit koh\u00ebn e zhvillimit dhe rrit numrin e gabimeve q\u00eb ndodhin pa dyshim. <\/p>\n<p>E keqja m\u00eb e madhe \u00ebsht\u00eb se ne jemi t\u00eb detyruar t\u00eb mendojm\u00eb jo se si ta projektuojm\u00eb dhe ta organizojm\u00eb kodin n\u00eb dosje, ta decompozitojm\u00eb, ta b\u00ebjm\u00eb t\u00eb mb\u00ebshtetur, t\u00eb lexuesh\u00ebm dhe k\u00ebshtu me radh\u00eb, por se si ta shkruajm\u00eb korrekt k\u00ebt\u00eb komand\u00eb, sepse e kam shkruar ndonj\u00ebher\u00eb gabim. <\/p>\n<p>Si nj\u00eb fillestar, po p\u00ebrpiqeni t\u00eb m\u00ebsoni Terraform, por IDE-ja nuk ju ndihmon fare. Kur ka dokumentacion \u2013 hyni, shikoni. Por n\u00ebse do t\u00eb hynit n\u00eb nj\u00eb gjuh\u00eb programimi t\u00eb re, IDE-ja do t'ju tregonte se ka nj\u00eb tip t\u00eb till\u00eb, dhe nj\u00eb t\u00eb till\u00eb nuk ka. T\u00eb pakt\u00ebn, n\u00eb nivelin int ose string. Kjo shpesh \u00ebsht\u00eb shum\u00eb e dobishme. <\/p>\n<h2>Por si jan\u00eb testet?<\/h2>\n<p>\nDo t\u00eb pyesni: \"Por si jan\u00eb testet, zot\u00ebrinj programues?\" Djemt\u00eb serioz\u00eb testojn\u00eb gjith\u00e7ka n\u00eb prodhim, dhe kjo \u00ebsht\u00eb e ashp\u00ebr. Ja nj\u00eb shembull testi nj\u00ebsi p\u00ebr modulin Terraform nga faqja <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAta kan\u00eb dokumentacion t\u00eb mir\u00eb. Microsoft gjithmon\u00eb m\u00eb ka p\u00eblqyer p\u00ebr qasjen e tyre ndaj dokumentacionit dhe m\u00ebsimit. Por nuk \u00ebsht\u00eb e nevojshme t\u00eb jesh xhaxhai Bob p\u00ebr t\u00eb kuptuar se k\u00ebtu nuk \u00ebsht\u00eb kodi ideal. Kushtojini v\u00ebmendje validimit, q\u00eb \u00ebsht\u00eb nxjerr\u00eb n\u00eb t\u00eb djatht\u00eb. <\/p>\n<p>Problemi me testin nj\u00ebsi \u00ebsht\u00eb se ne mund t\u00eb kontrollojm\u00eb sakt\u00ebsin\u00eb e JSON-it n\u00eb dalje. Kam futur 5 parametra, dhe m\u00eb doli nj\u00eb JSON me 2000 rreshta. Mund ta analizoj \u00e7far\u00eb ndodh k\u00ebtu, ta validoj rezultatin e testit... <\/p>\n<p>\u00cbsht\u00eb e v\u00ebshtir\u00eb t\u00eb analizosh Json n\u00eb Go. Duhet t\u00eb shkruash n\u00eb Go, sepse Terraform n\u00eb Go \u00ebsht\u00eb nj\u00eb praktik\u00eb e mir\u00eb p\u00ebr at\u00eb q\u00eb teston n\u00eb gjuh\u00ebn n\u00eb t\u00eb cil\u00ebn shkruan. Organizimi i kodit \u00ebsht\u00eb shum\u00eb i dob\u00ebt. Megjithat\u00eb, kjo \u00ebsht\u00eb biblioteka m\u00eb e mir\u00eb p\u00ebr testimin. <\/p>\n<p>Madre Microsoft shkruan modulat e tij, duke i testuar n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb. Sigurisht, kjo \u00ebsht\u00eb Open Source. Gjith\u00e7ka q\u00eb po them mund t\u00eb vij dhe t\u00eb rregulloj. Mund t\u00eb ulem dhe brenda nj\u00eb jave t\u00eb rregulloj gjith\u00e7ka, t\u00eb b\u00ebj open source plugin p\u00ebr VS Code, Terraform, t\u00eb krijoj nj\u00eb plugin p\u00ebr Rider. Ndoshta, t\u00eb shkruaj disa analizues, t\u00eb lidh linters, t\u00eb kontribuoj n\u00eb bibliotek\u00ebn p\u00ebr testim. Mund t\u00eb b\u00ebj gjith\u00e7ka. Por nuk \u00ebsht\u00eb kjo q\u00eb duhet t\u00eb b\u00ebj. <\/p>\n<h2>Praktikat m\u00eb t\u00eb mira Infrastructure as Code.<\/h2>\n<p>\nT\u00eb vazhdojm\u00eb m\u00eb tej. N\u00ebse n\u00eb IaC nuk ka teste, \u00ebsht\u00eb dob\u00ebt me IDE dhe mjetet, at\u00ebher\u00eb duhet t\u00eb ket\u00eb t\u00eb pakt\u00ebn praktikat m\u00eb t\u00eb mira. Thjesht hyra n\u00eb Google Analytics dhe b\u00ebra nj\u00eb krahasim midis dy k\u00ebrkesave t\u00eb k\u00ebrkimit: praktikave m\u00eb t\u00eb mira t\u00eb Terraform dhe praktikave m\u00eb t\u00eb mira t\u00eb c#. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c7far\u00eb po shohim? Nj\u00eb statistik\u00eb t\u00eb ashp\u00ebr q\u00eb nuk \u00ebsht\u00eb n\u00eb favorin ton\u00eb. Sa i p\u00ebrket sasis\u00eb s\u00eb materialit \u2013 \u00ebsht\u00eb po aq e nj\u00ebjt\u00eb. N\u00eb zhvillimin e C#, thjesht notojm\u00eb n\u00eb material, kemi praktikat m\u00eb t\u00eb mira, libra t\u00eb shkruar nga ekspert\u00ebt, si dhe libra t\u00eb shkruar nga ekspert\u00eb t\u00eb tjer\u00eb q\u00eb kritikojn\u00eb ato libra. Nj\u00eb det i t\u00ebr\u00eb dokumentacioni zyrtar, artikuj, kurse edukative dhe tani edhe zhvillimi open source.<\/p>\n<p>Sa i p\u00ebrket k\u00ebrkes\u00ebs p\u00ebr IaC: k\u00ebtu po p\u00ebrpiqeni t\u00eb mbledhni informacion n\u00eb m\u00ebnyr\u00eb t\u00eb shp\u00ebrndar\u00eb nga prezantimet e high-load-it ose HashiConf, nga dokumentacioni zyrtar dhe shum\u00eb \u00e7\u00ebshtjeve n\u00eb GitHub. Si duhet t\u00eb shp\u00ebrndahen k\u00ebto module, \u00e7far\u00eb duhet t\u00eb b\u00ebni me to? Duket se kjo \u00ebsht\u00eb nj\u00eb problem real... Por ekziston nj\u00eb komunitet, zot\u00ebrinj, ku p\u00ebr \u00e7do pyetje do merrni 10 komente n\u00eb GitHub. Por kjo nuk \u00ebsht\u00eb nj\u00eb garanci. <\/p>\n<p>Fatkeq\u00ebsisht, n\u00eb k\u00ebt\u00eb moment ekspert\u00ebt sapo po fillojn\u00eb t\u00eb shfaqen. Aktualisht jan\u00eb shum\u00eb pak. Dhe vet\u00eb komiteti \u00ebsht\u00eb n\u00eb faz\u00ebn e hershme. <\/p>\n<h2>N\u00eb \u00e7far\u00eb drejtimi po shkon \u00e7do gj\u00eb dhe \u00e7far\u00eb duhet t\u00eb b\u00ebjm\u00eb<\/h2>\n<p>\nMund t\u00eb heq\u00ebsh gjith\u00e7ka dhe t\u00eb kthehesh n\u00eb C#, n\u00eb bot\u00ebn e rider-it. Por jo. Pse do t\u00eb angazhoheshe n\u00eb k\u00ebt\u00eb, n\u00ebse jo p\u00ebr t\u00eb gjetur nj\u00eb zgjidhje? M\u00eb posht\u00eb po sjell p\u00ebrfundimet e mia subjektive. Mund t\u00eb q\u00ebndrosh me mendimin tim n\u00eb komentet, do t\u00eb ishte interesante. <\/p>\n<p>Personalish, un\u00eb fokusoham n\u00eb disa gj\u00ebra:<\/p>\n<ol>\n<li>Zhvillimi n\u00eb k\u00ebt\u00eb fush\u00eb po ndodh shum\u00eb shpejt. Po sjell grafikun e k\u00ebrkesave p\u00ebr DevOps.\n<p><img decoding=\"async\" alt=\"Infrastruktura si kod: njohja e par\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNdoshta tema \u00ebsht\u00eb populiste, por fakti q\u00eb fusha po rritet, sjell nj\u00eb shpres\u00eb t\u00eb caktuar. <\/p>\n<p>N\u00ebse di\u00e7ka rritet kaq shpejt, do t\u00eb ket\u00eb patjet\u00ebr njer\u00ebz t\u00eb zgjuar q\u00eb do t\u00eb thon\u00eb se si duhet b\u00ebr\u00eb dhe si nuk duhet. Rritja e popullaritetit \u00e7on n\u00eb at\u00eb q\u00eb ndoshta dikush do t\u00eb ket\u00eb koh\u00eb t\u00eb p\u00ebrfundoj\u00eb p\u00ebrfundimisht nj\u00eb plugin p\u00ebr jsonnet p\u00ebr vscode, i cili do t\u00eb lejoj\u00eb kalimin n\u00eb implementimin e funksionit, n\u00eb vend q\u00eb ta k\u00ebrkosh p\u00ebrmes ctrl+shift+f. Kur gjith\u00e7ka po zhvillohet, ka m\u00eb shum\u00eb materiale. K\u00ebtu \u00ebsht\u00eb edhe dalja e librit nga Google p\u00ebr SRE, nj\u00eb shembull i shk\u00eblqyer p\u00ebr k\u00ebt\u00eb.<\/li>\n<li>Ka jan\u00eb metodologji dhe praktika t\u00eb zhvilluara n\u00eb zhvillimin e zakonsh\u00ebm q\u00eb ne mund t'i aplikojm\u00eb me sukses k\u00ebtu. Po, ka nuanca me testimin dhe mjedisin heterogjen, dhe munges\u00eb mjetesh, por \u00ebsht\u00eb mbledhur nj\u00eb num\u00ebr t\u00eb madh praktikash q\u00eb mund t\u00eb jen\u00eb t\u00eb dobishme dhe ndihmuese.\n<p>Nj\u00eb shembull banal: puna e p\u00ebrbashk\u00ebt p\u00ebrmes pair programming. Kjo ndihmon shum\u00eb p\u00ebr t\u00eb kuptuar m\u00eb mir\u00eb. Kur ke nj\u00eb koleg pran\u00eb, q\u00eb gjithashtu po p\u00ebrpiqet t\u00eb kuptoj\u00eb di\u00e7ka, s\u00eb bashku do t\u00eb kuptoni m\u00eb mir\u00eb.<\/p>\n<p> T\u00eb kuptuarit se si b\u00ebhet refaktorizimi ndihmon edhe n\u00eb nj\u00eb situat\u00eb t\u00eb till\u00eb p\u00ebr ta realizuar at\u00eb. K\u00ebshtu, ti mund t\u00eb mos e ndryshosh gjith\u00e7ka n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, por t\u00eb ndryshosh em\u00ebrtimin, pastaj t\u00eb ndryshosh pozicionin, pastaj ndoshta t\u00eb ve\u00e7osh nj\u00eb pjes\u00eb t\u00eb caktuar, oh, dhe k\u00ebtu mungojn\u00eb komentet. <\/li>\n<\/ol>\n<p><\/p>\n<h2>P\u00ebrfundimi<\/h2>\n<p>\nPavar\u00ebsisht se argumentet e mia mund t\u00eb duken pesimiste, un\u00eb shikoj me shpres\u00eb n\u00eb t\u00eb ardhmen dhe shpresoj sinqerisht se ne (dhe ju) do t\u00eb arrijm\u00eb t\u00eb gjith\u00eb.<\/p>\n<blockquote><p>Pas k\u00ebsaj, po p\u00ebrgatitet pjesa e dyt\u00eb e artikullit. N\u00eb t\u00eb do t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn se si kemi provuar t\u00eb aplikojm\u00eb praktikat e zhvillimit t\u00eb fleksib\u00ebl p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar procesin ton\u00eb t\u00eb m\u00ebsimit dhe pun\u00ebn me infrastruktur\u00ebn.<\/p><\/blockquote>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37586","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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\" \/>\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\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\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:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+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\udd47Infrastructure as code: takimi i par\u00eb | ProHoster","description":"N\u00eb kompanin\u00eb ton\u00eb \u00ebsht\u00eb n\u00eb proces onboarding-i i ekipit SRE. Kam hyr\u00eb n\u00eb k\u00ebt\u00eb histori nga k\u00ebndv\u00ebshtrimi i zhvillimit. N\u00eb proces, m'u shfaq\u00ebn mendime dhe njohuri q\u00eb d\u00ebshiroj t'i ndaja me zhvilluesit e tjer\u00eb. N\u00eb k\u00ebt\u00eb artikull-reflektim flas p\u00ebr at\u00eb q\u00eb po ndodh, si po ndodh, dhe si t\u00eb jetojm\u00eb me k\u00ebt\u00eb m\u00eb tej. Vazhdimi i seris\u00eb s\u00eb artikujve t\u00eb shkruar nga","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","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\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster","og:description":"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","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:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37586","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-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:24:24","updated":"2026-01-23 18:29: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\/37586","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=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}