{"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\/et\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","title":{"rendered":"L\u00e4ksin Terraformilt CloudFormationile \u2014 ja kahetsen seda.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Infrastruktuuri esitamine koodina korduvates tekstivormingutes on parim tava s\u00fcsteemide jaoks, millega ei pea vaeva n\u00e4gema. Selle praktika nimeks on <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_code\">Infrastruktuur kui kood<\/a><\/noindex>, ja seni on selle rakendamiseks, eriti AWS-is, kaks populaarset t\u00f6\u00f6riista: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/\">Terraform<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/cloudformation\/\">CloudFormation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"L\u00e4ksin Terraformilt CloudFormationile \u2014 ja kahetsen seda.\" src=\"\/wp-content\/uploads\/2019\/11\/e33084fb81ca06107b341eef01e69adc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>V\u00f5rdlen oma kogemusi Terraformi ja CloudFormationiga<\/em><\/p>\n<p><\/p>\n<p>Enne kui tulin <noindex><a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/\">Twitch<\/a><\/noindex> (samuti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.businessinsider.com\/amazon-buys-twitch-2014-8\">Amazon Jr.<\/a><\/noindex>) t\u00f6\u00f6tasin <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/\">\u00fches idufirmas<\/a><\/noindex> ja kolm aastat kasutasin Terraformi. Uues kohas kasutasin samuti Terraformi, kuid siis sai ettev\u00f5te l\u00e4biviidud \u00fcle k\u00f5ik a'la Amazonisse, sealhulgas CloudFormationi. T\u00f6\u00f6tasin k\u00f5vasti parimate praktikate v\u00e4ljat\u00f6\u00f6tamise nimel m\u00f5lemal, ja kasutasin m\u00f5lemat t\u00f6\u00f6riista v\u00e4ga keerulistes protsessides organisatsiooni mastaabis. Hiljem, kaaludes m\u00f5jusid \u00fcleminekust Terraformilt CloudFormationile, olin ma veendunud, et Terraform on t\u00f5en\u00e4oliselt parim valik organisatsiooni jaoks.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"terraform-uzhasnyy\">Terraform Kohutav<\/h2>\n<p><\/p>\n<h3 id=\"beta-versiya-po\">Beta versioon<\/h3>\n<p><\/p>\n<p>Terraformil pole veel isegi versiooni 1.0, ja see on tugev p\u00f5hjus seda mitte kasutada. Alates hetkest, kui ma esimese korda seda proovisin, on see palju muutunud, kuid sel ajal <code>terraform apply<\/code> \u0447\u0430\u0441\u0442\u043e \u043b\u043e\u043c\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. \u042f \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e &#171;\u0441\u0435\u0439\u0447\u0430\u0441-\u0442\u043e \u0432\u0441\u0435 \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443&#187;, \u043d\u043e\u2026 \u0442\u0430\u043a \u0432\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u043d\u0435\u0442? \u0415\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u0445\u043e\u0442\u044f \u043e\u043d\u0438 \u0443\u043c\u0435\u0441\u0442\u043d\u044b, \u0438 \u0434\u0430\u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0442\u0435\u043f\u0435\u0440\u044c \u0447\u0442\u043e \u043d\u0430\u0434\u043e. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043f\u0440\u0430\u0432\u0434\u0430 \u0441\u0442\u0430\u043b \u043b\u0443\u0447\u0448\u0435, \u043d\u043e\u2026 :-0<\/p>\n<p><\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, AWS \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0430\u0441\u044c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438. \u0412\u0441\u0435, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0447\u0430\u0441\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u043d\u044c\u043a\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043b\u0438\u0448\u044c \u043f\u043e\u0442\u043e\u043c, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0432, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442. \u0422\u0430\u043a \u0447\u0442\u043e &#171;\u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c&#187; \u044d\u0442\u043e \u0435\u0449\u0435 \u0441\u043b\u0430\u0431\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 API \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u043c\u043d\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0439 \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u0430\u043a AWS, \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0442\u044f\u0436\u0435\u043b\u043e. \u041b\u044e\u0431\u043e\u0439, \u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 API, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0442\u0430\u043a \u0436\u0435 \u0448\u0438\u0440\u043e\u043a\u043e, \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0442\u0440\u0443\u0434\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442. \u0410 \u0432\u043e\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 CloudFormation \u043d\u0430 \u043c\u043e\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0438 \u0440\u0430\u0437\u0443 \u0441 \u0433\u043e\u0434\u0430\u043c\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p><\/p>\n<h3 id=\"znakomsya-noga-eto-pulya\">Tutvu, jalg... see on kuuli<\/h3>\n<p><\/p>\n<p>Nii palju kui ma tean, on ressursi eemaldamine <strong>v\u00f5\u00f5ras<\/strong> CloudFormationi stack'ist ei ole v\u00f5imalik oma CF stack'i. Samuti on asjad samamoodi Terraformiga. See v\u00f5imaldab olemasolevaid ressursse oma stack'i importida. \u00dcks funktsioon, mida v\u00f5ib \u00f6elda, et on h\u00e4mmastav, kuid suurt j\u00f5udu toob endaga kaasa ka suur vastutus. Alles j\u00e4\u00e4b ainult salvestada ressursi stack'i ja samal ajal, kui t\u00f6\u00f6tad oma stack'iga, ei saa seda ressurssi kustutada ega muuta. \u00dcks kord tuli see k\u00e4tte. Kord Twitchi lehe peal keegi, mitte midagi halba m\u00f5eldes, importis kogemata kellegi AWS turvagruppi oma Terraformi stack'i. Sisestas mitu k\u00e4sku ja\u2026 turvagrupp (koos sissetuleva liiklusega) kadus.<\/p>\n<p><\/p>\n<h2 id=\"terraform-velikiy\">Terraform Suur<\/h2>\n<p><\/p>\n<h3 id=\"vosstanovlenie-iz-nepolnyh-sostoyaniy\">Taastamine puudulikest olekutest<\/h3>\n<p><\/p>\n<p>M\u00f5nikord ei saa CloudFormation t\u00e4ielikult \u00fchelt olekult teisele \u00fcle minna. Sel juhul p\u00fc\u00fcab ta naasta eelmisest. Kahju, et see ei ole alati v\u00f5imalik. Hiljem on see, mis saadakse, hirmutav \u2014 kunagi ei tea, kas CloudFormation on \u00f5nnelik, et teda hackitakse \u2014 olgu see parandamiseks. Ja kas on v\u00f5imalik tagasi minna eelnevale olekule, ei oska ta korralikult m\u00e4\u00e4ratleda ning vaikimisi ripub ta tunde, oodates imet.<\/p>\n<p><\/p>\n<p>Terraform on seevastu, et taastuda eba\u00f5nnestunud \u00fcleminekest elegantselt ning pakub laiemat t\u00f5rkeotsingu t\u00f6\u00f6riistade komplekti.<\/p>\n<p><\/p>\n<h3 id=\"bolee-yasnye-izmeneniya-v-sostoyaniya-dokumenta\">Selgemad muudatused dokumendi staatustes<\/h3>\n<p><\/p>\n<blockquote><p>&#171;\u041b\u0430\u0434\u043d\u043e, \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u044b \u043c\u0435\u043d\u044f\u0435\u0448\u044c\u0441\u044f. \u041d\u043e \u043a\u0430\u043a?&#187;<\/p>\n<p>\u2014\u043e\u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 &#171;\u043f\u0440\u0438\u043d\u044f\u0442\u044c&#187;.<\/p><\/blockquote>\n<p>M\u00f5nikord pean ma CloudFormationi virnas koormuse tasakaalustajaga m\u00f5ned manipulatsioonid tegema \u2014 n\u00e4iteks lisama pordinumbri v\u00f5i muutma turgruppe. CloudFormationi muudatused on n\u00f5rgalt kajastatud. Olen nagu n\u00f5eltele, kontrollin k\u00fcmme korda yaml-faili, et veenduda, et ma ei ole midagi vajalikku \u00e4ra kustutanud ega midagi liigset lisanud.<\/p>\n<p><\/p>\n<p>Terraform on siin palju l\u00e4bipaistvam. M\u00f5nikord on ta isegi liiga l\u00e4bipaistev (loe: t\u00fc\u00fctu). \u00d5nneks on viimasest versioonist kaasatud parendatud muudatuste kuvamine \u2014 n\u00fc\u00fcd on selge, mis muutub.<\/p>\n<p><\/p>\n<h3 id=\"gibkost\">Paindlikkus<\/h3>\n<p><\/p>\n<blockquote><p>Kirjutage tarkvara tagurpidi.<\/p><\/blockquote>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043f\u0440\u044f\u043c\u043e, \u0441\u0430\u043c\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0435\u0433\u043e \u041f\u041e \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c. \u041b\u044e\u0431\u043e\u0435 \u041f\u041e \u043f\u0438\u0448\u0438\u0442\u0435 \u043e\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e. \u042f \u0432\u043e\u0442 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u043a\u0430\u043b\u044b\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0440\u0430\u043b &#171;\u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439&#187; \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0432\u043f\u0438\u0445\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432 \u0435\u0434\u0438\u043d\u044b\u0439 \u0441\u0442\u0435\u043a CloudFormation \u0438\u043b\u0438 Terraform. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u043f\u0443\u0441\u0442\u044f \u043c\u0435\u0441\u044f\u0446\u044b \u0432\u0441\u043a\u0440\u044b\u0432\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u043b \u043d\u0435 \u0442\u0430\u043a, \u0438 \u0441\u0435\u0440\u0432\u0438\u0441-\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439! \u0418 \u0432\u043e\u0442 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u0435\u043a \u043d\u0430 \u043c\u0430\u043b\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435. \u041a\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0448\u044c \u0441 CloudFormation, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0442\u0435\u043a, \u0430 \u044d\u0442\u043e\u0433\u043e \u044f, \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0411\u0414, \u043d\u0435 \u0434\u0435\u043b\u0430\u044e. Terraform \u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u043f\u0440\u0435\u043f\u0430\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0435\u043a \u0438 \u0440\u0430\u0441\u0447\u043b\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u044c\u0448\u0438\u0435 \u0447\u0430\u0441\u0442\u0438.<\/p>\n<p><\/p>\n<h3 id=\"moduli-v-git\">Modulid git'is<\/h3>\n<p><\/p>\n<p>Terraform'i koodi jagamine mitme kuhjaga on palju lihtsam kui CloudFormation'i koodi jagamine. Terraform'i abil saab koodi paigutada git'i repositoriumisse ja sellele viidata, kasutades semantilist versioonikontrolli. Iga\u00fchel, kellel on juurdep\u00e4\u00e4s sellele repositoriumile, on v\u00f5imalik jagatud koodi uuesti kasutada. CloudFormation'i ekvivalent on S3, kuid sellel ei ole samu eeliseid ja pole mingit p\u00f5hjust, miks peaksime git'ist loobuma S3 kasuks.<\/p>\n<p><\/p>\n<p>Organisatsioon kasvas ja v\u00f5ime jagada \u00fchiseid tehnoloogiaid j\u00f5udis kriitilisse tasemesse. Terraformiga on see k\u00f5ik lihtne ja loomulik, samas kui CloudFormation paneb teid h\u00fcppama l\u00e4bi rinngate, enne kui midagi sarnast t\u00f6\u00f6le hakkab.<\/p>\n<p><\/p>\n<h3 id=\"operations-as-code\">Operations as code<\/h3>\n<p><\/p>\n<blockquote><p>&#171;\u0417\u0430\u0441\u043a\u0440\u0438\u043f\u0442\u0443\u0435\u043c \u0438 \u043b\u0430\u0434\u043d\u043e&#187;.<\/p>\n<p>\u2014 insener kolm aastat enne, kui ta Terraformi jalgratta leiutas.<\/p><\/blockquote>\n<p>Kui jutt on tarkvaraarendusest, ei ole Go v\u00f5i Java programm lihtsalt kood.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"L\u00e4ksin Terraformilt CloudFormationile \u2014 ja kahetsen seda.\" src=\"\/wp-content\/uploads\/2019\/11\/a5c61fd318b9b5aa62ebb69e38ca1b0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Code as Code<\/em><\/p>\n<p><\/p>\n<p>Siin on veel infrastruktuur, mille peal see t\u00f6\u00f6tab.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"L\u00e4ksin Terraformilt CloudFormationile \u2014 ja kahetsen seda.\" src=\"\/wp-content\/uploads\/2019\/11\/301c0323baa18563f05503e701af069b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Infrastruktuur kui kood<\/em><\/p>\n<p><\/p>\n<p>Aga kust see seal on? Kuidas seda j\u00e4lgida? Kus elab teie kood? Kas arendajatel on juurdep\u00e4\u00e4su lubamine vajalik?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"L\u00e4ksin Terraformilt CloudFormationile \u2014 ja kahetsen seda.\" src=\"\/wp-content\/uploads\/2019\/11\/5cb0b6f720682b7bb6d5f485287b618b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Operations as Code<\/em><\/p>\n<p><\/p>\n<blockquote><p>Olles tarkvaraarendaja, ei t\u00e4henda see lihtsalt koodi kirjutamist.<\/p><\/blockquote>\n<p>Ainult AWS ei piira: te kasutate t\u00f5en\u00e4oliselt ka teiste teenusepakkujate teenuseid. SignalFx, PagerDuty v\u00f5i GitHub. V\u00f5ib-olla on teil CI\/CD jaoks sisemine Jenkins server v\u00f5i sisemine Grafana juhtpaneel j\u00e4lgimiseks. Infra as Code valitakse erinevatel p\u00f5hjustel, ja iga\u00fchel on sama t\u00e4htsus tarkvaraga seotud asjade jaoks.<\/p>\n<p><\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 Twitch, \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u044f\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0445 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u0441\u0438\u0441\u0442\u0435\u043c AWS Amazon&#8217;\u0430. \u041c\u044b \u0448\u0442\u0430\u043c\u043f\u043e\u0432\u0430\u043b\u0438 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438. \u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u043a\u043b\u044e\u0447\u0435:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Mina<\/strong>: Oh, liiga palju liigutusi \u00fche mikroteenuse k\u00e4ivitamiseks. Mul on vaja selle asja kaudu AWS kontot luua (me liikusime kahe konto suunas <strong>mikroteenus<\/strong>), \u043f\u043e\u0442\u043e\u043c \u044d\u0442\u0443 \u2014 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439, \u0435\u0449\u0435 \u044d\u0442\u0443 \u2014 \u0434\u043b\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043a\u043e\u0434\u0430, \u0438 \u044d\u0442\u0443 \u2014 \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b, \u043d\u0443 \u0438 \u0432\u043e\u0442 \u044d\u0442\u0443&#8230;<\/li>\n<li><strong>Juht<\/strong>: Skripteerime ja olgu.<\/li>\n<li><strong>Mina<\/strong>: \u041b\u0430\u0434\u044b, \u043d\u043e \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f. \u041d\u0443\u0436\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0448\u0442\u0443\u043a\u043e\u0432\u0438\u043d\u044b amazon&#8217;\u0430 \u0438\u043c\u0435\u044e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435.<\/li>\n<li><strong>Juht<\/strong>: Tundub hea. Ja selle jaoks kirjutame skripti.<\/li>\n<li><strong>Mina<\/strong>: Suurep\u00e4rane! Kas skript vajab t\u00f5en\u00e4oliselt veel parameetreid? Kas ta v\u00f5tab need vastu?<\/li>\n<li><strong>Juht<\/strong>: Jah, v\u00f5tab, kuhu ta sellest escaping l\u00e4heb!<\/li>\n<li><strong>Mina<\/strong>: Protsess v\u00f5ib muutuda, tagasiside \u00fchilduvus v\u00f5ib kaduda. Vaja on mingit semantilist versioonikontrolli.<\/li>\n<li><strong>Juht<\/strong>: Suurep\u00e4rane idee!<\/li>\n<li><strong>Mina<\/strong>: T\u00f6\u00f6riistad saab muuta k\u00e4sitsi kasutajaliideses. Me vajame viisi, kuidas seda kontrollida ja parandada.<\/li>\n<\/ul>\n<p><\/p>\n<p><em>&#8230;3 \u0433\u043e\u0434\u0430 \u0441\u043f\u0443\u0441\u0442\u044f:<\/em><\/p>\n<p><\/p>\n<ul>\n<li><strong>Juht<\/strong>: Ja meil on terraform.<\/li>\n<\/ul>\n<p><\/p>\n<p>Muinasjutu moraal on selline: isegi kui oled <strong>\u043f\u043e \u0443\u0448\u0438 \u0432\u043e \u0432\u0441\u0435\u043c amazon&#8217;\u043e\u0432\u0441\u043a\u043e\u043c<\/strong>, kasutad sa ikkagi midagi, mis ei ole AWS-i toode, ja nendel teenustel on olek, mis kasutab keelt selle oleku s\u00fcnkroniseerimiseks.<\/p>\n<p><\/p>\n<h3 id=\"cloudformation-lambda-vs-git-moduli-terraform\">CloudFormation lambda vs git-moduulid terraform<\/h3>\n<p><\/p>\n<p>lambda on CloudFormation lahendus kasutaja loogika probleemile. Lambda abil on v\u00f5imalik <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/macros-example.html\">luua makrosid<\/a><\/noindex> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/walkthrough-custom-resources-lambda-lookup-amiids.html\">kasutajaressurssi<\/a><\/noindex>. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 git \u0443 Terraform. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0441\u0430\u043c\u043e\u0439 \u043d\u0430\u0441\u0443\u0449\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0441\u0442\u0430\u043b\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 lambda (\u0430 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 AWS). \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u043e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0438\u043f\u0430 &#171;\u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u2014 \u043a\u0443\u0440\u0438\u0446\u0430 \u0438\u043b\u0438 \u044f\u0439\u0446\u043e?&#187;: \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043a\u043e\u0434\u043e\u043c lambda. \u0421\u0430\u043c\u0430 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438 \u043a\u043e\u0434, \u0438 \u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0435 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u0445. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0433\u0432\u043e\u0437\u0434\u0435\u043c \u0432 \u0433\u0440\u043e\u0431 \u0441\u0442\u0430\u043b\u0430 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430 lambda; \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u0442\u0435\u043a\u0430 \u0431\u0435\u0437 \u043f\u0440\u044f\u043c\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438.<\/p>\n<p><\/p>\n<p>M\u00e4letan, kuidas mul tekkis soov luua kanarialennukeid Elastic Beanstalk keskkonna jaoks klassikalise koormuse tasakaalustajaga. Lihtsaim oleks olnud teha teine juurutamine EB k\u00f5rval tootmiskeskkonna jaoks, tehes veel \u00fche sammu: \u00fchendades automaatselt skaleeritava kanarideploy grupi tasuta juurutamisega tootmiskeskkonna koormuse tasakaalustaja. Ja kuna Terraform kasutab <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/providers\/aws\/r\/elastic_beanstalk_environment.html#autoscaling_groups\">ASG-beantalk kui v\u00e4ljund<\/a><\/noindex>, see n\u00f5uab Terraformis 4 lisarealise koodi kirjutamist. Kui ma k\u00fcsisin, kas CloudFormationis on sarnane lahendus, viidati mulle tervele git-repositooriumile, mis sisaldab juurutuskanalit ja muud: ja k\u00f5ik see, et teha \u00f5nnetud 4 rida Terraformi koodi.<\/p>\n<p><\/p>\n<h3 id=\"on-luchshe-obnaruzhivaet-dreyf\">Ta tuvastab paremini triivi.<\/h3>\n<p><\/p>\n<blockquote><p>Veenduge, et tegelikkus vastab ootustele.<\/p><\/blockquote>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/blogs\/aws\/new-cloudformation-drift-detection\/\">Triivi tuvastamine<\/a><\/noindex> \u2014 v\u00e4ga v\u00f5imas operations as code funktsioon, kuna see aitab veenduda, et tegelikkus vastab ootustele. See on saadaval nii CloudFormationis kui ka Terraformis. Kuid t\u00f6\u00f6laudade suurenedes annab CloudFormation triivi otsimisel j\u00e4rjest rohkem valepositiive.<\/p>\n<p><\/p>\n<p>Terraformiga on teil palju t\u00e4iustatud eluts\u00fckli harju triivi tuvastamiseks. N\u00e4iteks sisestate k\u00e4su <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/configuration\/resources.html#ignore_changes\">ignore_changes<\/a><\/noindex> otse ECS-i \u00fclesande m\u00e4\u00e4ratlusesse, kui soovite ignoreerida muudatusi konkreetse \u00fclesande m\u00e4\u00e4ratluses, j\u00e4ttes samas t\u00e4helepanuta muudatused kogu ECS-i juurutuses.<\/p>\n<p><\/p>\n<h2 id=\"cdk-i-buduschee-cloudformation\">CDK ja CloudFormatsiooni tulevik<\/h2>\n<p><\/p>\n<p>CloudFormationi haldamine suurtes, infrastruktuuridevaheline ulatus on keeruline. Paljusid neist raskustest on tunnustatud ja t\u00f6\u00f6riist vajab selliseid asju nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/en_pv\/cdk\/latest\/guide\/home.html\">aws-cdk<\/a><\/noindex>, struktuur pilveinfrastruktuuri m\u00e4\u00e4ratlemiseks koodis ja selle rakendamiseks AWS CloudFormationis. Huvitav on vaadata, mis ootab aws-cdk tulevikus, kuid tal on keeruline konkureerida Terraformi teiste eelistega; CloudFormationi t\u00f5ukamiseks on vaja globaalseid muudatusi.<\/p>\n<p><\/p>\n<h3 id=\"chtoby-terraform-ne-razocharoval\">Et Terraform ei pettuks<\/h3>\n<p><\/p>\n<blockquote><p>\u042d\u0442\u043e \u0436\u0435 &#171;\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u0430\u043a \u041a\u041e\u0414&#187;, \u0430 \u043d\u0435 &#171;\u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442&#187;.<\/p><\/blockquote>\n<p>Minu esimene mulje Terraformist oli \u00fcsna halb. Arvan, et ma lihtsalt ei saanud l\u00e4henemisest aru. Peaaegu k\u00f5ik insenerid tajuvad seda esialgu tahtmatult teksti formaatena, mille tuleb muuta soovitud infrastruktuuriks. SELLEKS EI TOHI KUNAGI NII OLLA.<\/p>\n<p><\/p>\n<h3 id=\"propisnye-istiny-horoshey-razrabotki-po-otnosyatsya-i-k-terraform\">Koodiarenduse head tavad kehtivad ka Terraformi kohta<\/h3>\n<p><\/p>\n<p>Olen n\u00e4inud, kuidas paljusid tavasid, mida kasutatakse hea koodi loomisel, ignoteeritakse Terraformis. Olete aastate jooksul \u00f5ppinud, et saada heaks programmeerijaks. \u00c4rge loobuge sellest kogemusest lihtsalt seet\u00f5ttu, et t\u00f6\u00f6tate Terraformiga. Koodiarenduse head tavad kehtivad ka Terraformi kohta.<\/p>\n<p><\/p>\n<h3 id=\"kak-uzh-kod-i-ne-zadokumentirovat\">Kuidas saab koodi ja mitte dokumenteerida?<\/h3>\n<p><\/p>\n<p>Mulle on ette tulnud hiiglaslikke Terraform steke, millel ei ole mingit dokumentatsiooni. Kuidas on v\u00f5imalik kirjutada koode lehek\u00fclgedena \u2014 t\u00e4iesti ilma dokumentatsioonita? Lisage dokumentatsioon, mis selgitab teie <strong>kood<\/strong> Terraform (\u0443\u0434\u0430\u0440\u0435\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0441\u043b\u043e\u0432\u043e &#171;\u043a\u043e\u0434&#187;), \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0442\u0430\u043a \u0432\u0430\u0436\u0435\u043d, \u0438 \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435.<\/p>\n<p><\/p>\n<h3 id=\"kak-mozhno-razvorachivat-servisy-kotorye-nekogda-byli-odnoy-bolshoy-funkciey-main\">Kuidas on v\u00f5imalik arendada teenuseid, mis olid kunagi \u00fcks suur main() funktsioon?<\/h3>\n<p><\/p>\n<p>Olen kohanud v\u00e4ga keerulisi Terraform steke, mis on esitatud \u00fchtse moodulina. Miks me ei arenda tarkvara nii? Miks me jagame suuri funktsioone v\u00e4iksemateks? Need samad vastused kehtivad ka Terraformi puhul. Kui moodul on liiga suur, tuleb see jagada v\u00e4iksemateks mooduliteks.<\/p>\n<p><\/p>\n<h3 id=\"razve-vasha-kompaniya-ne-polzuetsya-bibliotekami\">Kas teie ettev\u00f5te ei kasuta raamatukogusid?<\/h3>\n<p><\/p>\n<p>\u042f \u0432\u0438\u0434\u0435\u043b, \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0440\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u044f \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Terraform, \u0442\u0443\u043f\u043e \u043a\u043e\u043f\u0438-\u043f\u0435\u0439\u0441\u0442\u0438\u043b\u0438 \u0433\u0440\u043e\u043c\u0430\u0434\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043a\u043e\u0432\u044b\u0440\u044f\u043b\u0438 \u0438\u0445, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412\u043e\u0442 \u0432\u044b \u0443 \u0441\u0435\u0431\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043b\u0438 \u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a \u0441 &#171;\u0431\u043e\u0435\u0432\u044b\u043c&#187; \u043a\u043e\u0434\u043e\u043c? \u041c\u044b \u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438. \u0414\u0430, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=PAAkCSZUG1c&amp;t=9m28s\">mitte k\u00f5ik ei pea olema raamatukogu,<\/a><\/noindex> aga kuhu me ilma \u00fcldiste raamatukogudeta \u00fcldse j\u00e4\u00e4me?!<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-polzuetes-pep8-ili-gofmt\">Kas te ei kasuta PEP8 v\u00f5i gofmt?<\/h3>\n<p><\/p>\n<p>Enamikus keeltes on standardne vastuv\u00f5etud vormindus. Pythonis on see PEP8. Go puhul on see gofmt. Terraformil on oma: <code>terraform fmt<\/code>. Kasutage vabalt! <\/p>\n<p><\/p>\n<h3 id=\"vy-stanete-polzovatsya-react-ne-znaya-javascript\">Kas hakkate Reacti kasutama, teadmata JavaScripti?<\/h3>\n<p><\/p>\n<p>Terraformi moodulid v\u00f5ivad lihtsustada teatud osa teie loodud keerulisest infrastruktuurist, kuid see ei t\u00e4henda, et te ei peaks sellest \u00fcldse aru saama. Kas soovite kasutada Terraformi \u00f5igesti ilma ressurssidest arusaamiseta? Olete hukule m\u00e4\u00e4ratud: aeg m\u00f6\u00f6dub, aga te ei \u00f5pigi Terraformi selgeks.<\/p>\n<p><\/p>\n<h3 id=\"vy-kodite-singltonami-ili-vnedryaya-zavisimosti\">Kas kodeerite singletoone v\u00f5i rakendate s\u00f5ltuvusi?<\/h3>\n<p><\/p>\n<p>S\u00f5ltuvuste rakendamine on tunnustatud parim praktika tarkvaraarenduses, mida eelistatakse singletoonide puhul. Kuidas see Terraformis kasuks tuleb? Olen kohanud Terraformi mooduleid, mis s\u00f5ltuvad kaugest olekust. Selle asemel, et kirjutada mooduleid, mis v\u00f5etakse kaugest olekust, kirjutage moodul, mis v\u00f5tab parameetreid. Ja seej\u00e4rel edastage need parameetrid moodulisse.<\/p>\n<p><\/p>\n<h3 id=\"vashi-biblioteki-delayut-desyat-veschey-horosho-ili-odnu---otlichno\">Kas teie raamatukogud teevad k\u00fcmmet asja h\u00e4sti v\u00f5i \u00fchte \u2014 suurep\u00e4raselt?<\/h3>\n<p><\/p>\n<p>Parimad raamatukogud t\u00f6\u00f6tavad t\u00f5husalt \u00fchel konkreetsel \u00fclesandel. Selle asemel, et kirjutada suuri Terraform mooduleid, mis \u00fcritavad teha k\u00f5ike korraga, koostage komponendid, mis teevad midagi \u00fcksikuna h\u00e4sti. Seej\u00e4rel saate neid vajaduse j\u00e4rgi omavahel kombineerida.<\/p>\n<p><\/p>\n<h3 id=\"kak-vy-proizvodite-izmeneniya-v-bibliotekah-bez-obratnoy-sovmestimosti\">Kuidas te muudate raamatukogusid ilma tagasip\u00f6\u00f6rdumise \u00fchilduvust s\u00e4ilitamata?<\/h3>\n<p><\/p>\n<p>\u00dcldine Terraform moodul, nagu ka tavaline raamatukogu, peab leidma viisi, kuidas kasutajatele teatada tagasip\u00f6\u00f6rdumise \u00fchilduvuse muutustest. Kui raamatukogudes toimuvad sellised muutused, on see h\u00e4iriv, ja sama h\u00e4iriv on, kui Terraform moodulites tehakse muutusi, mis ei ole \u00fchilduvad. Soovitav on kasutada git siltide ja semver'i rakendamist Terraform moodulite puhul.<\/p>\n<p><\/p>\n<h3 id=\"proizvodstvennyy-servis-zapuschen-u-vas-na-noutbuke-ili-v-datacentre\">Kas teie tooteteenus t\u00f6\u00f6tab s\u00fclearvutis v\u00f5i andmekeskuses?<\/h3>\n<p><\/p>\n<p>Hashicorp'il on sellised t\u00f6\u00f6riistad nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.terraform.io\/docs\/cloud\/index.html\">terraform cloud<\/a><\/noindex> , et k\u00e4ivitada teie terraform. Need tsentraliseeritud teenused lihtsustavad terraformi haldamist, auditit ja muudatuste kinnitamist.<\/p>\n<p><\/p>\n<h3 id=\"razve-vy-ne-pishete-testy\">Kas te siis t\u00f5esti ei kirjuta teste?<\/h3>\n<p><\/p>\n<p>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u043f\u0440\u0438\u0437\u043d\u0430\u044e\u0442, \u0447\u0442\u043e \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u0441\u0430\u043c\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0431\u0438\u0432\u0430\u044e\u0442 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0440\u0430\u0431\u043e\u0442\u0430\u044f \u0441 Terraform. \u0414\u043b\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044d\u0442\u043e \u0447\u0440\u0435\u0432\u0430\u0442\u043e \u043a\u043e\u0432\u0430\u0440\u043d\u044b\u043c\u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u042f \u0441\u043e\u0432\u0435\u0442\u0443\u044e &#171;\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c&#187; \u0438\u043b\u0438 &#171;\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b&#187; \u0441\u0442\u0435\u043a\u043e\u0432 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f CI\/CD.<\/p>\n<p><\/p>\n<h3 id=\"terraform-i-mikroservisy\">Terraform ja mikroteenused<\/h3>\n<p><\/p>\n<blockquote><p>Mikroteenusettev\u00f5tete elu ja surm s\u00f5ltub kiirusest, uuendamisest ja uute mikroteenuste t\u00f6\u00f6steekide h\u00e4vitamisest.<\/p><\/blockquote>\n<p>K\u00f5ige levinum negatiivne aspekt, mis on seotud mikroteenuse arhitektuuridega ja millest ei saa lahti, puudutab t\u00f6\u00f6d, mitte koodi. Kui vaadata Terraformi ainult kui viisi automatiseerida ainult mikroteenuse arhitektuuri infrastruktuuri k\u00fclge, siis j\u00e4tate end ilma t\u00f5elistest s\u00fcsteemi eelistest. Praegu on juba <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=HcmPi7-IVQo\">k\u00f5ik \u2014 kui kood<\/a><\/noindex>.<\/p>\n<p>Allikas: <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 4.9.10 - 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. \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\" \/>\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\/et\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Taasin Terraformilt CloudFormationile \u2014 ja kahetsen seda | ProHoster","description":"Infrastruktuuri esitlemine koodina korduvates tekstivormingutes on lihtne parim praktika s\u00fcsteemide jaoks, millega pole vaja liialdada. Selle praktika nimetus on Infrastructure as Code ja senini on selle rakendamiseks, eriti AWS-is, kaks populaarset t\u00f6\u00f6riista: Terraform ja CloudFormation. V\u00f5rdlen oma kogemust Terraformi ja CloudFormationiga. Enne ProHosterisse tulekut","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/pereshel-s-terraform-na-cloudformation-i-pozhalel","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \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","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=52367"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52367\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=52367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=52367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=52367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}