{"id":52367,"date":"2019-11-07T00:00:00","date_gmt":"2019-11-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/pereshel-s-terraform-na-cloudformation-i-pozhalel"},"modified":"2020-02-18T14:00:04","modified_gmt":"2020-02-18T11:00:04","slug":"pereshel-s-terraform-na-cloudformation-i-pozhalel","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","title":{"rendered":"U kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Paraqitja e infrastruktur\u00ebs si kod n\u00eb nj\u00eb format tekstual t\u00eb rip\u00ebrs\u00ebritsh\u00ebm \u00ebsht\u00eb nj\u00eb praktik\u00eb e thjesht\u00eb m\u00eb e mir\u00eb p\u00ebr sistemet, me t\u00eb cil\u00ebn nuk \u00ebsht\u00eb nevoja t\u00eb lodhesh. Kjo praktik\u00eb ka marr\u00eb emrin \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_code\">Infrastruktura si Kod<\/a><\/noindex>, dhe deri m\u00eb tani p\u00ebr realizimin e saj, ve\u00e7an\u00ebrisht n\u00eb AWS, ka dy mjete t\u00eb njohura: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/\">Terraform<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/cloudformation\/\">CloudFormation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova\" src=\"\/wp-content\/uploads\/2019\/11\/e33084fb81ca06107b341eef01e69adc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Po e krahasoni p\u00ebrvoj\u00ebn time me Terraform dhe CloudFormation<\/em><\/p>\n<p><\/p>\n<p>Para se t\u00eb vija n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/\">Twitch<\/a><\/noindex> (n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.businessinsider.com\/amazon-buys-twitch-2014-8\">Amazon Jr.<\/a><\/noindex>) kam punuar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/\">n\u00eb nj\u00eb startup<\/a><\/noindex> dhe p\u00ebr tre vjet kam p\u00ebrdorur Terraform. N\u00eb vendin e ri un\u00eb gjithashtu e kam p\u00ebrdorur Terraform, pastaj kompania e kaloi n\u00eb nj\u00eb form\u00eb t\u00eb gjitha p\u00ebr AWS, duke p\u00ebrfshir\u00eb CloudFormation. Un\u00eb kam punuar me p\u00ebrkushtim p\u00ebr t\u00eb zhvilluar praktikat m\u00eb t\u00eb mira p\u00ebr t\u00eb dy, dhe t\u00eb dy mjetet i kam p\u00ebrdorur n\u00eb procese t\u00eb pun\u00ebs tep\u00ebr t\u00eb komplikuara n\u00eb shkall\u00eb organizative. M\u00eb von\u00eb, pas nj\u00eb vler\u00ebsimi t\u00eb kujdessh\u00ebm t\u00eb pasojave t\u00eb kalimit nga Terraform n\u00eb CloudFormation, kam konstatruar se Terraform, ndoshta, \u00ebsht\u00eb zgjedhja m\u00eb e mir\u00eb p\u00ebr organizat\u00ebn.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"terraform-uzhasnyy\">Terraform \u00cbsht\u00eb i tmerrsh\u00ebm<\/h2>\n<p><\/p>\n<h3 id=\"beta-versiya-po\">Versioni Beta i Software-it<\/h3>\n<p><\/p>\n<p>Terraform ende nuk ka l\u00ebshuar versionin 1.0, dhe kjo \u00ebsht\u00eb nj\u00eb arsye e fort\u00eb p\u00ebr t\u00eb mos e p\u00ebrdorur. Q\u00eb nga koha kur e kam provuar p\u00ebr her\u00eb t\u00eb par\u00eb, ka ndryshuar shum\u00eb, por at\u00ebher\u00eb <code>terraform apply<\/code> kaq\u00eb shpesh prishej pas disa p\u00ebrdit\u00ebsimesh ose thjesht pas disa viteve p\u00ebrdorimi. Do thosha se \"tani gjith\u00e7ka \u00ebsht\u00eb ndryshe\", por\u2026 k\u00ebshtu duket se t\u00eb gjith\u00eb flasin, apo jo? Ka ndryshime q\u00eb jan\u00eb t\u00eb papajtueshme me versionet e m\u00ebparshme, megjithat\u00eb jan\u00eb t\u00eb arsyeshme, madje ka nj\u00eb ndjesi se sintaksat dhe abstraksionet e depozitave t\u00eb burimeve tani jan\u00eb n\u00eb rregull. Instrumenti duket si\u00e7 n\u00eb t\u00eb v\u00ebrtet\u00eb \u00ebsht\u00eb p\u00ebrmir\u00ebsuar, por\u2026 :-0<\/p>\n<p><\/p>\n<p>Nga ana tjet\u00ebr, AWS ka b\u00ebr\u00eb nj\u00eb pun\u00eb t\u00eb mir\u00eb duke mb\u00ebshtetur pajtueshm\u00ebrin\u00eb me versionet e m\u00ebparshme. T\u00eb gjith\u00eb ndoshta e din\u00eb se sh\u00ebrbimet e tyre shpesh testohen mir\u00eb brenda organizat\u00ebs dhe vet\u00ebm pastaj, pasi jan\u00eb rinovuar, publikohen. Pra, \"kan\u00eb b\u00ebr\u00eb nj\u00eb pun\u00eb t\u00eb mir\u00eb\" \u00ebsht\u00eb pak sa e n\u00ebnkuptuar. T\u00eb mbash pajtueshm\u00ebrin\u00eb me versionet e m\u00ebparshme t\u00eb API p\u00ebr nj\u00eb sistem kaq t\u00eb larmish\u00ebm dhe t\u00eb nd\u00ebrlikuar si AWS \u00ebsht\u00eb jasht\u00ebzakonisht e v\u00ebshtir\u00eb. \u00c7do kush q\u00eb ka pasur p\u00ebrvoj\u00eb n\u00eb mbajtjen e API-ve publike, q\u00eb p\u00ebrdoren gjithashtu aq gjer\u00eb, duhet t\u00eb kuptoj\u00eb sa e v\u00ebshtir\u00eb \u00ebsht\u00eb ta b\u00ebsh k\u00ebt\u00eb p\u00ebr kaq shum\u00eb vite. Nd\u00ebrkoh\u00eb, sjellja e CloudFormation nuk ka ndryshuar asnj\u00ebher\u00eb p\u00ebr mua gjat\u00eb viteve.<\/p>\n<p><\/p>\n<h3 id=\"znakomsya-noga-eto-pulya\">K\u00ebshillo, k\u00ebmb\u00eb... kjo \u00ebsht\u00eb nj\u00eb plumb<\/h3>\n<p><\/p>\n<p>Sa di un\u00eb, t\u00eb fshish nj\u00eb burim <strong>t\u00eb jasht\u00ebm<\/strong> Nuk \u00ebsht\u00eb e mundur t\u00eb eksportoni nj\u00eb grup CloudFormation nga steka juaj CF. Rreth k\u00ebsaj situate jan\u00eb gj\u00ebrat me Terraform. Ai lejon importimin e burimeve ekzistuese n\u00eb stek\u00eb. Funksioni \u00ebsht\u00eb, mund t\u00eb thuhet, mbres\u00ebl\u00ebn\u00ebs, por me forc\u00eb t\u00eb madhe vjen edhe nj\u00eb p\u00ebrgjegj\u00ebsi e madhe. Sa her\u00eb q\u00eb e futni nj\u00eb burim n\u00eb stek, nd\u00ebrkoh\u00eb q\u00eb punoni me stekun tuaj, nuk mund ta fshini ose ta ndryshoni at\u00eb burim. Nj\u00eb her\u00eb, kjo ndodhi. Ndodhi q\u00eb n\u00eb faqen e Twitch dikush, pa ndonj\u00eb q\u00ebllim t\u00eb keq, p\u00ebrfundoi duke importuar grupin e siguris\u00eb s\u00eb dikujt n\u00eb stekun e tij Terraform. Fut disa komanda dhe... grupi i siguris\u00eb (n\u00eb bashk\u00ebpunim me trafikun e hyr\u00ebs) u zhduk.<\/p>\n<p><\/p>\n<h2 id=\"terraform-velikiy\">Terraform i Madh<\/h2>\n<p><\/p>\n<h3 id=\"vosstanovlenie-iz-nepolnyh-sostoyaniy\">Ribashkimi nga gjendjet e paplota<\/h3>\n<p><\/p>\n<p>Ndonj\u00ebher\u00eb CloudFormation nuk mund t\u00eb kaloj\u00eb plot\u00ebsisht nga nj\u00eb gjendje n\u00eb nj\u00eb tjet\u00ebr. N\u00eb k\u00ebt\u00eb rast, ai do t\u00eb p\u00ebrpiqet t\u00eb rikthehet n\u00eb gjendjen e m\u00ebparshme. E trishtueshme, kjo nuk \u00ebsht\u00eb gjithmon\u00eb e mundur. T\u00eb riparosh at\u00eb q\u00eb rezulton, ndonj\u00ebher\u00eb \u00ebsht\u00eb frik\u00ebsuese - nuk dihet se si do ta pranoj\u00eb CloudFormation q\u00eb e ndjekin - ndon\u00ebse p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar. N\u00ebse do t\u00eb jet\u00eb e mundur t\u00eb ktheheni n\u00eb gjendjen e m\u00ebparshme, ai nuk di ta p\u00ebrcaktoj\u00eb mir\u00eb dhe p\u00ebr default mund t\u00eb pres\u00eb p\u00ebr or\u00eb t\u00eb t\u00ebra p\u00ebr nj\u00eb mrekulli.<\/p>\n<p><\/p>\n<p>Terraform, p\u00ebrkundrazi, \u00ebsht\u00eb m\u00eb i aft\u00eb t\u00eb rikuperohet pas kalimeve t\u00eb d\u00ebshtuara dhe ofron nj\u00eb grup t\u00eb p\u00ebrmir\u00ebsuar mjetesh debugimi.<\/p>\n<p><\/p>\n<h3 id=\"bolee-yasnye-izmeneniya-v-sostoyaniya-dokumenta\">Ndryshime m\u00eb t\u00eb qarta n\u00eb gjendjet e dokumentit<\/h3>\n<p><\/p>\n<blockquote><p>\"Mir\u00eb, balancuesi i ngarkes\u00ebs, po ndryshon. Por si?\"<\/p>\n<p>\u2014inxhinier i shqet\u00ebsuar, gati p\u00ebr t\u00eb shtypur butonin \"prano\".<\/p><\/blockquote>\n<p>Ndonj\u00ebher\u00eb kam nevoj\u00eb t\u00eb b\u00ebj disa manipulime me balancuesin e ngarkes\u00ebs n\u00eb stekun CloudFormation - p\u00ebr shembull, t\u00eb shtoj numrin e portit ose t\u00eb ndryshoj grupin e siguris\u00eb. ClouFormation ndryshimet i tregon dob\u00ebt. Nd\u00ebrsa un\u00eb, si n\u00eb thik\u00eb, po e kontrolloj skedarin yaml nga dhjet\u00eb her\u00eb p\u00ebr t\u00eb siguruar q\u00eb asgj\u00eb e nevojshme nuk e kam fshir\u00eb, e as q\u00eb kam shtuar di\u00e7ka t\u00eb tep\u00ebrt.<\/p>\n<p><\/p>\n<p>Terraform n\u00eb k\u00ebt\u00eb drejtim \u00ebsht\u00eb shum\u00eb m\u00eb transparent. Ndonj\u00ebher\u00eb \u00ebsht\u00eb madje shum\u00eb transparent (lexo: i bezdissh\u00ebm). P\u00ebr fat t\u00eb mir\u00eb, n\u00eb versionin m\u00eb t\u00eb fundit u p\u00ebrfshi nj\u00eb p\u00ebrmir\u00ebsim i paraqitjes s\u00eb ndryshimeve - tani shihet sakt\u00ebsisht se \u00e7far\u00eb po ndryshon.<\/p>\n<p><\/p>\n<h3 id=\"gibkost\">Fleksibiliteti<\/h3>\n<p><\/p>\n<blockquote><p>Shkruani softuer nga e kund\u00ebrta.<\/p><\/blockquote>\n<p>P\u00ebr t\u00eb th\u00ebn\u00eb drejtp\u00ebrdrejt, karakteristika m\u00eb e r\u00ebnd\u00ebsishme e softuerit me jet\u00ebgjat\u00ebsi \u00ebsht\u00eb aft\u00ebsia p\u00ebr t'u adaptuar n\u00eb ndryshime. \u00c7do softuer shkruani nga prapavija. Un\u00eb shpesh m\u00eb ka ndodhur q\u00eb t\u00eb marr nj\u00eb sh\u00ebrbim \"t\u00eb thjesht\u00eb\", dhe pastaj t\u00eb filloj t\u00eb p\u00ebrpiqem ta fus t\u00eb gjith\u00eb at\u00eb n\u00eb nj\u00eb stek t\u00eb vet\u00ebm CloudFormation ose Terraform. Dhe, padyshim, pas disa muajsh ishte zbuluar se un\u00eb nuk e kisha kuptuar si\u00e7 duhet, dhe sh\u00ebrbimi do ishte n\u00eb t\u00eb v\u00ebrtet\u00eb jo aq i thjesht\u00eb! Dhe k\u00ebshtu m\u00eb duhej ta \u00e7'montoj stekun e madh n\u00eb pjes\u00eb m\u00eb t\u00eb vogla. Kur punoni me CloudFormation, kjo \u00ebsht\u00eb e mundur vet\u00ebm n\u00ebse e rikrijoni p\u00ebrpara stekun ekzistues, gj\u00eb q\u00eb un\u00eb me bazat e mia t\u00eb t\u00eb dh\u00ebnave nuk e b\u00ebj. Terraform m\u00eb lejonte t\u00eb shk\u00ebputja stekun dhe ta ndaja at\u00eb n\u00eb pjes\u00eb m\u00eb t\u00eb vogla dhe m\u00eb t\u00eb kuptueshme.<\/p>\n<p><\/p>\n<h3 id=\"moduli-v-git\">Modulet n\u00eb git<\/h3>\n<p><\/p>\n<p>T\u00eb ndash kodin e Terraform-it midis grumbujve t\u00eb shumt\u00eb \u00ebsht\u00eb ndjesh\u00ebm m\u00eb e leht\u00eb se sa me kodin e CloudFormation. Me Terraform mund t\u00eb vendos\u00ebsh kodin n\u00eb nj\u00eb depo git dhe t\u00eb aksesosh at\u00eb duke p\u00ebrdorur kontrollin semantik t\u00eb versioneve. \u00c7do kush q\u00eb ka akses n\u00eb k\u00ebt\u00eb depo mund ta rip\u00ebrdor\u00eb kodin e zakonsh\u00ebm. Ekuivalenti n\u00eb CloudFormation \u00ebsht\u00eb S3, por nuk ka t\u00eb nj\u00ebjtin avantazh dhe nuk ka asnj\u00eb arsye p\u00ebr t\u00eb cil\u00ebn duhet t\u00eb heqim dor\u00eb nga git n\u00eb favor t\u00eb S3.<\/p>\n<p><\/p>\n<p>Organizata po rritej dhe aft\u00ebsia p\u00ebr t\u00eb ndar\u00eb grumbujt e p\u00ebrbashk\u00ebt arriti nj\u00eb nivel kritik. Me Terraform, gjith\u00e7ka \u00ebsht\u00eb e leht\u00eb dhe natyrale, nd\u00ebrsa CloudFormation do t'ju nxiste t\u00eb luanit me disa rrethana p\u00ebrpara se t\u00eb arrini n\u00eb nj\u00eb rezultat t\u00eb ngjash\u00ebm.<\/p>\n<p><\/p>\n<h3 id=\"operations-as-code\">Operacione si kod<\/h3>\n<p><\/p>\n<blockquote><p>\"T\u00eb skriptojm\u00eb dhe mjaft \u00ebsht\u00eb\".<\/p>\n<p>\u2014 inxhinier tre vjet p\u00ebrpara se t\u00eb shpik\u00eb bi\u00e7iklet\u00ebn Terraform.<\/p><\/blockquote>\n<p>Kur \u00ebsht\u00eb fjala p\u00ebr zhvillimin e softuerit, Go ose nj\u00eb program n\u00eb Java nuk jan\u00eb thjesht kod.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova\" src=\"\/wp-content\/uploads\/2019\/11\/a5c61fd318b9b5aa62ebb69e38ca1b0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Kode si Kod<\/em><\/p>\n<p><\/p>\n<p>Megjithat\u00eb, ekziston edhe infrastrukturen n\u00eb t\u00eb cil\u00ebn funksionon ajo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova\" src=\"\/wp-content\/uploads\/2019\/11\/301c0323baa18563f05503e701af069b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Infrastruktura si Kod<\/em><\/p>\n<p><\/p>\n<p>Por nga e di ajo atje? Si ta monitorosh? Ku q\u00ebndron kodi yt? A kan\u00eb nevoj\u00eb zhvilluesit p\u00ebr leje p\u00ebr akses?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova\" src=\"\/wp-content\/uploads\/2019\/11\/5cb0b6f720682b7bb6d5f485287b618b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Operacione si Kod<\/em><\/p>\n<p><\/p>\n<blockquote><p>T\u00eb jesh zhvillues i softuerit nuk \u00ebsht\u00eb thjesht nj\u00eb pun\u00eb kodimi.<\/p><\/blockquote>\n<p>Nuk \u00ebsht\u00eb vet\u00ebm AWS: sigurisht q\u00eb ju po p\u00ebrdorni sh\u00ebrbimet e ofruesve t\u00eb tjer\u00eb. SignalFx, PagerDuty ose Github. Ndoshta keni nj\u00eb server t\u00eb brendsh\u00ebm Jenkins p\u00ebr CI\/CD ose nj\u00eb panel t\u00eb brendsh\u00ebm kontrolli Grafana p\u00ebr monitorim. Infra si Kod zgjidhet p\u00ebr arsye t\u00eb ndryshme, dhe \u00e7do arsye \u00ebsht\u00eb po aq e r\u00ebnd\u00ebsishme p\u00ebr \u00e7do gj\u00eb q\u00eb lidhet me softuerin.<\/p>\n<p><\/p>\n<p>Kur punoja n\u00eb Twitch, ne shpejtonim sh\u00ebrbimet brenda sistemeve t\u00eb p\u00ebrziera dhe sistemeve t\u00eb AWS Amazon. Ne krijonim dhe mb\u00ebshtetnim shum\u00eb mikrosherbime, duke rritur kostot e operacioneve. Diskutimet kalonin kryesisht k\u00ebshtu:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Un\u00eb<\/strong>: O, ka shum\u00eb l\u00ebvizje p\u00ebr t\u00eb ngritur nj\u00eb mikrosh\u00ebrbim. Do t\u00eb duhet t\u00eb p\u00ebrdor k\u00ebt\u00eb gj\u00eb p\u00ebr t\u00eb krijuar nj\u00eb llogari AWS (ne po shkonim drejt 2 llogarive n\u00eb <strong>mikrosh\u00ebrbim<\/strong>), pastaj k\u00ebt\u00eb \u2014 p\u00ebr konfigurimin e njoftimeve, k\u00ebt\u00eb tjet\u00ebr \u2014 p\u00ebr rezerv\u00ebn e kodit, dhe k\u00ebt\u00eb \u2014 p\u00ebr list\u00ebn e adresave t\u00eb emailit, dhe k\u00ebshtu me radh\u00eb\u2026<\/li>\n<li><strong>Shefi<\/strong>: Do shkruajm\u00eb nj\u00eb skript dhe mbaroi.<\/li>\n<li><strong>Un\u00eb<\/strong>: Mir\u00eb, por vet\u00eb skripti do ndryshoj\u00eb. Do t\u00eb nevojitet nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb kontrolluar se t\u00eb gjitha k\u00ebto gj\u00ebra t\u00eb integruara t\u00eb amazonit jan\u00eb n\u00eb gjendje t\u00eb azhurnuar.<\/li>\n<li><strong>Shefi<\/strong>: D\u00ebgjohet mir\u00eb. Do ta shkruajm\u00eb k\u00ebt\u00eb skript.<\/li>\n<li><strong>Un\u00eb<\/strong>: Shk\u00eblqyer! N\u00eb skript ndoshta do t'i duhet t\u00eb caktoj\u00eb parametra. A do t'i pranoj\u00eb ata?<\/li>\n<li><strong>Shefi<\/strong>: Po, do t'i pranoj\u00eb, ku t\u00eb shkoj\u00eb tjet\u00ebr!<\/li>\n<li><strong>Un\u00eb<\/strong>: Procesi mund t\u00eb ndryshoj\u00eb, dhe mund t\u00eb humbas\u00eb kompaktibilitetin prapa. Do t\u00eb na duhen ndonj\u00eb lloj kontrolli semantik t\u00eb versioneve.<\/li>\n<li><strong>Shefi<\/strong>: Ide e shk\u00eblqyer!<\/li>\n<li><strong>Un\u00eb<\/strong>: Mjetet mund t\u00eb ndryshohen manualisht, brenda nd\u00ebrfaqes s\u00eb p\u00ebrdoruesit. Do t\u00eb na duhet nj\u00eb m\u00ebnyr\u00eb p\u00ebr ta verifikuar dhe korrigjuar k\u00ebt\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p><em>...3 vjet m\u00eb von\u00eb:<\/em><\/p>\n<p><\/p>\n<ul>\n<li><strong>Shefi<\/strong>: Dhe na doli terraform.<\/li>\n<\/ul>\n<p><\/p>\n<p>Moraliteti i k\u00ebsaj tregon se edhe n\u00ebse je <strong>deri n\u00eb vesht n\u00eb t\u00eb gjith\u00eb amazonin<\/strong>, do t\u00eb p\u00ebrdor\u00ebsh gjithmon\u00eb di\u00e7ka q\u00eb nuk \u00ebsht\u00eb nga AWS, dhe k\u00ebta sh\u00ebrbime kan\u00eb nj\u00eb gjendje q\u00eb p\u00ebrdor nj\u00eb gjuh\u00eb p\u00ebr konfigurim p\u00ebr t\u00eb sinkronizuar k\u00ebt\u00eb gjendje.<\/p>\n<p><\/p>\n<h3 id=\"cloudformation-lambda-vs-git-moduli-terraform\">CloudFormation lambda p\u00ebrball\u00eb moduleve git t\u00eb terraform<\/h3>\n<p><\/p>\n<p>lambda \u00ebsht\u00eb zgjidhja e CloudFormation p\u00ebr \u00e7\u00ebshtjen e logjik\u00ebs s\u00eb p\u00ebrdoruesit. Me an\u00eb t\u00eb lambda-s mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/macros-example.html\">krijosh makrosi<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/walkthrough-custom-resources-lambda-lookup-amiids.html\">burim t\u00eb p\u00ebrdoruesit<\/a><\/noindex>Ky ky\u00e7je p\u00ebrfaq\u00ebson sfida shtes\u00eb q\u00eb nuk jan\u00eb t\u00eb pranishme n\u00eb kontrollin semantik t\u00eb versioneve t\u00eb moduleve git n\u00eb Terraform. Problemi m\u00eb i ngutsh\u00ebm p\u00ebr mua u b\u00eb menaxhimi i lejeve p\u00ebr t\u00eb gjitha k\u00ebto lambda p\u00ebrdoruesish (dhe kjo \u00ebsht\u00eb dhjetra llogarish AWS). Nj\u00eb problem tjet\u00ebr i r\u00ebnd\u00ebsish\u00ebm ishte ai i tipit '\u00e7far\u00eb ishte m\u00eb par\u00eb \u2014 pula apo veza?': ai ishte i lidhur me kodin lambda. Kjo funksion vet\u00eb \u00ebsht\u00eb infrastruktur\u00eb dhe kod, dhe ajo vet\u00eb ka nevoj\u00eb p\u00ebr monitorim dhe p\u00ebrdit\u00ebsime. K\u00ebmbana e fundit u b\u00eb v\u00ebshtir\u00ebsia n\u00eb p\u00ebrdit\u00ebsimin semantik t\u00eb ndryshimeve t\u00eb kodit lambda; akoma duhej b\u00ebr\u00eb q\u00eb veprimet e sked\u00ebs t\u00eb mos ndryshonin midis ekzekutimeve pa nj\u00eb urdh\u00ebr t\u00eb drejtp\u00ebrdrejt\u00eb.<\/p>\n<p><\/p>\n<p>E kujtoj se nj\u00eb her\u00eb m\u00eb erdhi n\u00eb mendje d\u00ebshira p\u00ebr t\u00eb krijuar nj\u00eb deploy kanarin\u00eb p\u00ebr mjedisin Elastic Beanstalk me nj\u00eb balancues klasike t\u00eb ngarkes\u00ebs. M\u00eb leht\u00eb do t\u00eb ishte t\u00eb b\u00ebja nj\u00eb deploy t\u00eb dyt\u00eb p\u00ebr EB pran\u00eb mjedisit prodhues, duke b\u00ebr\u00eb nj\u00eb hap tjet\u00ebr: duke bashkuar automatikisht grupin e shkall\u00ebzuesh\u00ebm t\u00eb deploy-it kanarin\u00eb me LB-n\u00eb e deploy-it n\u00eb mjedisin prodhues. Dhe pasi Terraform p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/providers\/aws\/r\/elastic_beanstalk_environment.html#autoscaling_groups\">ASG beantalk si dalje<\/a><\/noindex>, do t\u00eb k\u00ebrkoj\u00eb 4 rreshta shtes\u00eb kodi n\u00eb Terraform. Kur u interesova n\u00ebse kishte nj\u00eb zgjidhje t\u00eb krahasueshme n\u00eb CloudFormation, m\u00eb treguan p\u00ebr nj\u00eb t\u00ebr\u00eb depo n\u00eb git me nj\u00eb tub t\u00eb deploy-it dhe gj\u00ebra t\u00eb tjera: dhe e gjitha kjo \u2014 p\u00ebr t\u00eb arritur ato 4 rreshta t\u00eb mjer\u00eb t\u00eb kodit Terraform.<\/p>\n<p><\/p>\n<h3 id=\"on-luchshe-obnaruzhivaet-dreyf\">Ai e zbulo m\u00eb mir\u00eb driftin<\/h3>\n<p><\/p>\n<blockquote><p>Sigurohuni q\u00eb realiteti t\u00eb p\u00ebrputhet me pritjet.<\/p><\/blockquote>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/blogs\/aws\/new-cloudformation-drift-detection\/\">Zbulimi i driftit<\/a><\/noindex> \u2014 \u00ebsht\u00eb nj\u00eb funksion shum\u00eb i fuqish\u00ebm i operacioneve si kod, sepse ndihmon t\u00eb sigurohemi q\u00eb realiteti p\u00ebrputhet me pritjet. Ai \u00ebsht\u00eb i disponuesh\u00ebm si me CloudFormation ashtu edhe me Terraform. Por, me rritjen e grumbullit t\u00eb pun\u00ebs, k\u00ebrkimi i driftit n\u00eb CloudFormation jepte gjithnj\u00eb e m\u00eb shum\u00eb gjetje t\u00eb gabuara.<\/p>\n<p><\/p>\n<p>Me Terraform keni hak t\u00eb shkall\u00ebzuesh\u00ebm shum\u00eb m\u00eb t\u00eb avancuar p\u00ebr zbulimin e driftit. P\u00ebr shembull, vendosni komand\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/configuration\/resources.html#ignore_changes\">ignore_changes<\/a><\/noindex> drejt n\u00eb p\u00ebrkufizimin e detyr\u00ebs ECS, n\u00ebse d\u00ebshironi t\u00eb injoroni ndryshimet n\u00eb p\u00ebrkufizimin e nj\u00eb detyre t\u00eb ve\u00e7ant\u00eb, pa e injoruar ndryshimin n\u00eb t\u00eb gjith\u00eb deploy-in ECS.<\/p>\n<p><\/p>\n<h2 id=\"cdk-i-buduschee-cloudformation\">CDK dhe e ardhmja e CloudFormation<\/h2>\n<p><\/p>\n<p>CloudFormation \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb menaxhohet n\u00eb shkall\u00eb t\u00eb m\u00ebdha, nd\u00ebrmjet infrastrukturave. Shum\u00eb nga k\u00ebto v\u00ebshtir\u00ebsi jan\u00eb pranuar, dhe mjeti ka nevoj\u00eb p\u00ebr gj\u00ebra si <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/en_pv\/cdk\/latest\/guide\/home.html\">aws-cdk<\/a><\/noindex>, nj\u00eb struktur\u00eb p\u00ebr t\u00eb p\u00ebrcaktuar infrastruktur\u00ebn cloud n\u00eb kod dhe p\u00ebr ta kaluar at\u00eb p\u00ebrmes AWS CloudFormation. Do t\u00eb ishte interesante t\u00eb shikoja se \u00e7far\u00eb e pret aws-cdk n\u00eb t\u00eb ardhmen, por do t'i jet\u00eb e v\u00ebshtir\u00eb t\u00eb konkuroj\u00eb me avantazhet e tjera t\u00eb Terraform-it; p\u00ebr t\u00eb b\u00ebr\u00eb CloudFormation n\u00eb lart\u00ebsi, do t\u00eb k\u00ebrkohen ndryshime globale.<\/p>\n<p><\/p>\n<h3 id=\"chtoby-terraform-ne-razocharoval\">P\u00ebr t\u00eb mos zhg\u00ebnjyer Terraform-in<\/h3>\n<p><\/p>\n<blockquote><p>Ky \u00ebsht\u00eb 'infrastruktur\u00eb si KOD', jo 'si tekst'.<\/p><\/blockquote>\n<p>Impresioni im i par\u00eb p\u00ebr Terraform-in ishte mjaft negativ. Mendoj se thjesht nuk e kuptova qasjen. Pothuajse t\u00eb gjith\u00eb inxhinier\u00ebt fillestar e percepitojn\u00eb at\u00eb si nj\u00eb format tekstual, t\u00eb cilin duhet ta kthejn\u00eb n\u00eb infrastruktur\u00ebn e d\u00ebshiruar. NUK DUHET T\u00cb B\u00cbHET KESHTU.<\/p>\n<p><\/p>\n<h3 id=\"propisnye-istiny-horoshey-razrabotki-po-otnosyatsya-i-k-terraform\">Parimet e mira t\u00eb zhvillimit t\u00eb softuerit vlejn\u00eb edhe p\u00ebr Terraform<\/h3>\n<p><\/p>\n<p>Kam kam jan\u00eb praktikat e shumta q\u00eb jan\u00eb pranuar p\u00ebr krijimin e kodit t\u00eb mir\u00eb, dhe ato injorohen n\u00eb Terraform. Ju keni studiuar p\u00ebr vite me radh\u00eb p\u00ebr t\u00eb qen\u00eb nj\u00eb programues i mir\u00eb. Mos e braktisni at\u00eb p\u00ebrvoj\u00eb vet\u00ebm sepse po punoni me Terraform. T\u00eb v\u00ebrtetat e mira t\u00eb zhvillimit t\u00eb softuerit vlejn\u00eb po ashtu p\u00ebr Terraform.<\/p>\n<p><\/p>\n<h3 id=\"kak-uzh-kod-i-ne-zadokumentirovat\">Si mund t\u00eb kodosh dhe t\u00eb mos dokumentosh?<\/h3>\n<p><\/p>\n<p>K\u00ebmba e m\u00ebdha e Terraformit ka ardhur n\u00eb form\u00ebn e plot\u00eb pa asnj\u00eb dokumentacion. Si mund t\u00eb shkruash kod me faqe t\u00eb t\u00ebra \u2014 krejt pa asnj\u00eb dokumentacion? Shtoni dokumentacionin q\u00eb shpjegon q\u00eb <strong>kod<\/strong> Terraform (theksi k\u00ebtu \u00ebsht\u00eb te fjala 'kod'), pse ky seksion \u00ebsht\u00eb kaq i r\u00ebnd\u00ebsish\u00ebm, dhe \u00e7far\u00eb b\u00ebni.<\/p>\n<p><\/p>\n<h3 id=\"kak-mozhno-razvorachivat-servisy-kotorye-nekogda-byli-odnoy-bolshoy-funkciey-main\">Si mund t\u00eb implementoni sh\u00ebrbime q\u00eb dikur ishin nj\u00eb funksion i vet\u00ebm, main()?<\/h3>\n<p><\/p>\n<p>Kam hasur steke shum\u00eb t\u00eb nd\u00ebrlikuara Terraform, t\u00eb paraqitura si nj\u00eb modul i vet\u00ebm. Pse nuk e zhvillojm\u00eb softuerin k\u00ebshtu? Pse i ndajm\u00eb funksionet e m\u00ebdha n\u00eb m\u00eb t\u00eb vogla? T\u00eb nj\u00ebjtat p\u00ebrgjigje vlejn\u00eb dhe p\u00ebr Terraform. N\u00ebse moduli \u00ebsht\u00eb shum\u00eb i madh \u2014 duhet ta ndani n\u00eb modulet m\u00eb t\u00eb vogla.<\/p>\n<p><\/p>\n<h3 id=\"razve-vasha-kompaniya-ne-polzuetsya-bibliotekami\">A nuk p\u00ebrdor kompania juaj biblioteka?<\/h3>\n<p><\/p>\n<p>Kam par\u00eb inxhinier\u00eb, duke zhvilluar nj\u00eb projekt t\u00eb ri me Terraform, q\u00eb kopjojn\u00eb dhe ngjisin pjes\u00eb t\u00eb m\u00ebdha nga projekte t\u00eb tjera n\u00eb t\u00eb tyret, dhe pastaj modifikonin ato derisa fillonin t\u00eb funksiononin. A do t\u00eb punonit k\u00ebshtu me kod 'n\u00eb produksion' n\u00eb kompanin\u00eb tuaj? Ne nuk e p\u00ebrdorim thjesht biblioteka pa arsye. Po, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=PAAkCSZUG1c&amp;t=9m28s\">jo t\u00eb gjitha duhet t\u00eb jen\u00eb nj\u00eb bibliotek\u00eb,<\/a><\/noindex> por ku do t\u00eb ishim pa biblioteka t\u00eb p\u00ebrbashk\u00ebta n\u00eb parim?!<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-polzuetes-pep8-ili-gofmt\">A nuk p\u00ebrdorni PEP8 ose gofmt?<\/h3>\n<p><\/p>\n<p>N\u00eb shumic\u00ebn e gjuh\u00ebve, ekziston nj\u00eb skem\u00eb standarde e pranuar e formatimit. N\u00eb Python \u00ebsht\u00eb PEP8. N\u00eb Go \u2014 gofmt. Terraform ka t\u00eb vetin: <code>terraform fmt<\/code>. P\u00ebrdorni me sh\u00ebndet! <\/p>\n<p><\/p>\n<h3 id=\"vy-stanete-polzovatsya-react-ne-znaya-javascript\">A do t\u00eb filloni t\u00eb p\u00ebrdorni React pa e ditur JavaScript-in?<\/h3>\n<p><\/p>\n<p>Modulet e Terraform mund t\u00eb thjeshtojn\u00eb nj\u00eb pjes\u00eb t\u00eb infrastruktur\u00ebs s\u00eb nd\u00ebrlikuar q\u00eb po krijoni, por kjo nuk do t\u00eb thot\u00eb q\u00eb mund t\u00eb mos e kuptoni fare. A doni t\u00eb p\u00ebrdorni Terraform sakt\u00ebsisht pa kuptuar burimet? Jeni d\u00ebnuar: koha do t\u00eb kaloj\u00eb dhe ju nuk do ta m\u00ebsoni kurr\u00eb Terraform.<\/p>\n<p><\/p>\n<h3 id=\"vy-kodite-singltonami-ili-vnedryaya-zavisimosti\">A po krijoni singleton-e, apo po implementoni var\u00ebsi?<\/h3>\n<p><\/p>\n<p>Implementimi i var\u00ebsive \u00ebsht\u00eb nj\u00eb praktik\u00eb e njohur si m\u00eb e mira p\u00ebr zhvillimin e softuerit, e preferuar nga singleton\u00ebt. Si do ta ndihmoj\u00eb kjo n\u00eb Terraform? Kam hasur n\u00eb module Terraform q\u00eb varen nga gjendja e larg\u00ebt. N\u00eb vend q\u00eb t\u00eb shkruani module q\u00eb nxjerrin nga gjendja e larg\u00ebt, shkruani nj\u00eb modul q\u00eb pranon parametra. Pastaj kaloni k\u00ebta parametra n\u00eb modul.<\/p>\n<p><\/p>\n<h3 id=\"vashi-biblioteki-delayut-desyat-veschey-horosho-ili-odnu---otlichno\">Bibliotekat tuaja b\u00ebjn\u00eb dhjet\u00eb gj\u00ebra mir\u00eb apo nj\u00eb \u2014 shk\u00eblqyesh\u00ebm?<\/h3>\n<p><\/p>\n<p>Bibliotekat punojn\u00eb m\u00eb s\u00eb miri kur p\u00ebrqendrohen n\u00eb nj\u00eb detyr\u00eb, t\u00eb cil\u00ebn e kryejn\u00eb me shk\u00eblqim. N\u00eb vend q\u00eb t\u00eb krijoni module t\u00eb m\u00ebdha Terraform q\u00eb p\u00ebrpiqen t\u00eb b\u00ebjn\u00eb gjith\u00e7ka menj\u00ebher\u00eb, nd\u00ebrroni ato n\u00eb pjes\u00eb q\u00eb b\u00ebjn\u00eb mir\u00eb di\u00e7ka t\u00eb vetme. Pastaj kombinojini ashtu si\u00e7 duhet.<\/p>\n<p><\/p>\n<h3 id=\"kak-vy-proizvodite-izmeneniya-v-bibliotekah-bez-obratnoy-sovmestimosti\">Si b\u00ebni ndryshime n\u00eb bibliotekat pa p\u00ebrputhshm\u00ebri prapa?<\/h3>\n<p><\/p>\n<p>Nj\u00eb modul i p\u00ebrgjithsh\u00ebm Terraform, si\u00e7 \u00ebsht\u00eb nj\u00eb bibliotek\u00eb e zakonshme, duhet t\u00eb informoj\u00eb ndonj\u00ebher\u00eb p\u00ebrdoruesit p\u00ebr ndryshimet pa p\u00ebrputhshm\u00ebri prapa. Kur ndodhin ndryshime t\u00eb tilla n\u00eb biblioteka, kjo \u00ebsht\u00eb e bezdisshme, ashtu si\u00e7 \u00ebsht\u00eb bezdis\u00ebse kur ndodhin ndryshime pa p\u00ebrputhshm\u00ebri prapa n\u00eb modulet Terraform. Rekomandohet q\u00eb t\u00eb aplikoni git tags dhe semver kur p\u00ebrdorni modulet Terraform.<\/p>\n<p><\/p>\n<h3 id=\"proizvodstvennyy-servis-zapuschen-u-vas-na-noutbuke-ili-v-datacentre\">Sh\u00ebrbimi prodhues \u00ebsht\u00eb i ndezur n\u00eb laptopin tuaj apo n\u00eb qend\u00ebr t\u00eb t\u00eb dh\u00ebnave?<\/h3>\n<p><\/p>\n<p>Hashicorp ka mjete t\u00eb tilla si <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/cloud\/index.html\">terraform cloud<\/a><\/noindex> p\u00ebr t\u00eb drejtuar terraform tuaj. K\u00ebto sh\u00ebrbime t\u00eb centralizuara leht\u00ebsojn\u00eb menaxhimin, audituar dhe miratimin e ndryshimeve t\u00eb terraform.<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-pishete-testy\">A nuk shkruani teste?<\/h3>\n<p><\/p>\n<p>Inxhinier\u00ebt pranojn\u00eb se kodi duhet t\u00eb testohet, por shpesh e injorojn\u00eb verifikimin nd\u00ebrsa punojn\u00eb me Terraform. P\u00ebr infrastruktur\u00ebn, kjo sjell momente t\u00eb rrezikshme. Un\u00eb rekomandoj 't\u00eb testohet' ose 't\u00eb krijohen shembuj' t\u00eb skedave duke p\u00ebrdorur module, t\u00eb cilat mund t\u00eb implementohen sakt\u00ebsisht p\u00ebr verifikim gjat\u00eb CI\/CD.<\/p>\n<p><\/p>\n<h3 id=\"terraform-i-mikroservisy\">Terraform dhe mikrosh\u00ebrbimet<\/h3>\n<p><\/p>\n<blockquote><p>Jeta dhe vdekja e kompanive t\u00eb mikrosh\u00ebrbimeve varet nga shpejt\u00ebsia, rinovimi dhe shkat\u00ebrrimi i stack-\u00ebve t\u00eb rinj t\u00eb mikrosh\u00ebrbimeve.<\/p><\/blockquote>\n<p>Momenti m\u00eb i zakonsh\u00ebm negativ q\u00eb lidhet me arkitekturat e mikrosh\u00ebrbimeve dhe nga i cili nuk mund t\u00eb shp\u00ebtohet, lidhet me pun\u00ebn, jo me kodin. N\u00ebse e perceptoni Terraform-in vet\u00ebm si nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb automatizuar an\u00ebn infrastrukturore t\u00eb arkitektur\u00ebs s\u00eb mikrosh\u00ebrbimeve, at\u00ebher\u00eb po e privoni veten nga avantazhet e v\u00ebrteta t\u00eb k\u00ebtij sistemi. Tani \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=HcmPi7-IVQo\">gjith\u00e7ka \u2014 si kod<\/a><\/noindex>.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/474546\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c. \u0417\u0430 \u044d\u0442\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u2014 Infrastructure as Code, \u0438 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0434\u043b\u044f \u0435\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u044f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 AWS, \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: Terraform \u0438 CloudFormation. \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Terraform \u0438 CloudFormation \u0414\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0430 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52367","post","type-post","status-publish","format-standard","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=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.\" \/>\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\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\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\udd47\u041f\u0435\u0440\u0435\u0448\u0435\u043b \u0441 Terraform \u043d\u0430 CloudFormation \u2014 \u0438 \u043f\u043e\u0436\u0430\u043b\u0435\u043b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\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-11-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:04+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\udd47Kalova nga Terraform n\u00eb CloudFormation \u2014 dhe u pendova | ProHoster","description":"Paraqitja e infrastruktur\u00ebs si kod n\u00eb nj\u00eb format t\u00eb p\u00ebrs\u00ebritur tekstual \u00ebsht\u00eb nj\u00eb praktik\u00eb e thjesht\u00eb e mir\u00eb p\u00ebr sistemet, q\u00eb nuk k\u00ebrkon ndihm\u00ebn e miut.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","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\u041f\u0435\u0440\u0435\u0448\u0435\u043b \u0441 Terraform \u043d\u0430 CloudFormation \u2014 \u0438 \u043f\u043e\u0436\u0430\u043b\u0435\u043b | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u044b\u0448\u0435\u0432\u043e\u0437\u0438\u0442\u044c.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","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-11-06T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52367","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-24 03:23:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:44:44","updated":"2026-01-24 03:23: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\/52367","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=52367"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52367\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=52367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=52367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=52367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}