O le fa'atusaina o atina'e e fai ma fa'ailoga i se fa'asologa o tusitusiga e toe fa'afo'isia ose faiga sili ona faigofie mo faiga e le mana'omia ai le fa'atosinaina o isumu. O lenei faiga e iai lona igoa-
Fa'atusatusa le poto masani i Terraform ma CloudFormation
Ae lei oo mai i
Terraform Mata'utia
Polokalama Beta
Terraform e leʻi faʻasalalauina le version 1.0, o se mafuaaga lelei e le faʻaaogaina ai. Ua tele suiga talu mai le taimi muamua na ou faʻataʻitaʻiina ai aʻu, ae i tua terraform apply
e masani ona malepe pe a maeʻa ni faʻafouga pe naʻo le maeʻa o ni nai tausaga o faʻaoga. Ou te fai atu "ua ese mea uma i le taimi nei," ae ... o le mea lena e foliga mai e fai mai tagata uma, e leai? E i ai suiga e le fetaui ma lomiga muamua, e ui lava e talafeagai, ma e oʻo lava i le lagona e pei o le syntax ma abstractions o faleoloa punaoa ua avea nei ma mea tatou te manaʻomia. E foliga mai ua sili atu le lelei o le meafaigaluega, ae ... :-0
I le isi itu, ua faia e le AWS se galuega lelei i le faatumauina o le fetaui i tua. Atonu e mafua ona o a latou auaunaga e masani ona faʻataʻitaʻiina maeʻaeʻa i totonu o le faʻalapotopotoga ma naʻo le toe faʻaigoaina, faʻasalalau. O lea la, “sa latou taumafai malosi” o se faamatalaga faatauvaa. O le fa'atumauina o feso'ota'iga i tua ma API mo se faiga e 'ese'ese ma lavelave e pei o le AWS e matua'i faigata lava. So'o se tasi na tatau ona tausia API fa'alaua'itele o lo'o fa'aaogaina lautele e pei ona i ai e tatau ona malamalama i le faigata o le faia mo le tele o tausaga. Ae o le amio a CloudFormation, i loʻu manatua, e leʻi suia lava i le tele o tausaga.
Feiloai le vae... o se pulufana
E pei ona ou iloa, tape le punaoa tagata i fafo CloudFormation faaputuga mai lau faaputuga CF e le mafai. E tutusa foi le moni i Terraform. E fa'atagaina oe e fa'aulufale mai punaoa o iai i lau fa'aputuga. O le galuega e mafai ona fai mai e ofoofogia, ae o le mana tele e sau ai le tiute tele. E na'o lou mana'omia o le fa'aopoopoina o se puna'oa i le fa'aputuga, ma a'o e galue ma lau fa'aputuga, e le mafai ona e tape pe suia lenei punaoa. I se tasi aso na toe foi ai. I se tasi aso i luga o le Twitch, na faʻafuaseʻi ona faʻaulufaleina mai e se tasi le vaega o le saogalemu o le AWS a se isi tagata i totonu o latou lava faʻaputuga Terraform ae le o se mea leaga. Na ou ulufale i le tele o poloaiga ma ... o le vaega saogalemu (faʻatasi ai ma felauaiga o loʻo sau) na mou atu.
Terraform Sili
Toe faʻaleleia mai setete le atoatoa
O nisi taimi e le mafai ai e le CloudFormation ona suia atoa mai le tasi setete i le isi. I le taimi lava e tasi, o le a ia taumafai e toe foi i le muamua. E faanoanoa ona e le mafai i taimi uma lenei mea. E mafai ona fai si taufaafefe le debug mea na tupu mulimuli ane - e te le iloa pe o le a fiafia CloudFormation o loʻo faʻafefe - e tusa lava pe na o le toe faaleleia. Pe o le a mafai pe leai foi e toe foi atu i le setete muamua, na te matua le iloa pe faapefea ona fuafua ma, e ala i le faaletonu, tautau mo itula e faatalitali mo se vavega.
Terraform, i le isi itu, e foliga mai e toe faʻaleleia mai suiga le manuia e sili atu ma le faʻalelei ma ofoina atu meafaigaluega faʻapipiʻi.
Suiga manino i le tulaga o pepa
“Ua lelei, load balancer, ua e sui. Ae faapefea?"
—enisinia popole, sauni e oomi le faamau “talia”.
O nisi taimi ou te manaʻomia le faia o ni togafiti ma le paleni o uta i le CloudFormation stack, e pei o le faʻaopoopoina o se numera o le taulaga poʻo le suia o se vaega saogalemu. ClouFormation fa'aali suiga leaga. O aʻu, i luga o pine ma nila, siaki faʻasefulu taimi le faila yaml ia mautinoa ou te leʻi tapeina se mea e manaʻomia ma ou te leʻi faʻaopoopoina se mea e le manaʻomia.
Terraform e sili atu ona manino i lenei tulaga. O nisi taimi e matua manino lava o ia (faitau: le manaia). O le mea e lelei ai, o le lomiga lata mai e aofia ai le faʻaleleia atili o le faʻaaliga o suiga ina ia mafai nei ona e vaʻaia tonu le suiga.
Faʻaliega
Tusi polokalame i tua.
O le tu'u sa'o, o le uiga sili ona taua o polokalama umi-ola o le mafai lea ona fa'afetaui i suiga. Tusi so'o se polokalame i tua. O le tele o taimi ou te faia ai mea sese e ala i le faia o se auaunaga "faigofie", ona amata loa lea ona faʻapipiʻi mea uma i totonu o le CloudFormation poʻo le Terraform stack. Ma o le mea moni, masina mulimuli ane na faʻaalia ai na ou malamalama i mea uma e sese, ma o le auaunaga e leʻi faigofie! Ma o lea e tatau ona ou talepeina se faaputuga tele i ni vaega laiti. A e galue ma CloudFormation, e mafai ona faia lenei mea e ala i le toe faia muamua o le faaputuga o loʻo i ai, ma ou te le faia lenei mea i aʻu faʻamaumauga. O le Terraform, i le isi itu, na mafai ai ona vavae le faaputuga ma vaevaeina i lalo i ni vaega laiti e sili atu ona malamalama.
Modules i le git
Fa'asoa le Terraform code i luga o le tele o faaputuga e sili atu le faigofie nai lo le fa'asoaina o le CloudFormation code. Faatasi ai ma Terraform, e mafai ona e tuʻuina lau code i totonu o le git repository ma faʻaogaina e faʻaaoga ai le faʻaogaina o le faʻasologa o le semantic. So'o se tasi e avanoa i lenei fale teu oloa e mafai ona toe fa'aoga le code fa'asoa. E tutusa le CloudFormation o le S3, ae e leai ni faʻamanuiaga tutusa, ma e leai se mafuaʻaga e tatau ai ona tatou lafoaʻia le git mo le S3.
Na fa'atuputeleina le fa'alapotopotoga ma o le agava'a e fa'asoa fa'aputu masani na o'o atu i se tulaga mata'utia. Terraform e fa'afaigofie uma ma fa'anatura, ae o le CloudFormation o le a fa'aoso oe i totonu o pa'u ae e te le'i maua se mea fa'apenei e galue.
Gaoioiga e pei o le code
“Sei o tatou tusia ma ua lelei.”
-o se inisinia 3 tausaga aʻo leʻi faia le uila Terraform.
A oʻo mai i le atinaʻeina o polokalama, Go poʻo se Java polokalame e le naʻo le code.
Code e pei ole Code
O loʻo iai foʻi atinaʻe o loʻo galue ai.
Atinaʻe pei o Faʻamatalaga
Ae o fea e sau ai o ia? E fa'afefea ona mata'ituina? O fea e nofo ai lau code? E mana'omia e le au atia'e se fa'atagaga avanoa?
Gaoioiga e pei o Code
O le avea ma se tagata e faia polokalame e le na'o le tusiaina o tulafono laiti.
AWS e le na'o le tasi: masalo e te fa'aogaina isi kamupani. SignalFx, PagerDuty poʻo Github. Masalo o loʻo i ai lau 'auʻaunaga Jenkins i totonu mo CI / CD poʻo se laupapa faʻapipiʻi Grafana i totonu mo le mataʻituina. Infra as Code e filifilia mo mafuaaga eseese, ma e tutusa uma le taua mo mea uma e fesoʻotaʻi ma polokalama.
Ina ua ou galue i Twitch, sa matou faatelevaveina auaunaga i totonu o le Amazon's mixed embedded ma AWS system. Na matou fa'atosina ma lagolagoina le tele o microservices, fa'ateleina tau o galuega. O talanoaga na faia e pei o lenei:
- Я: Malae, o le tele naua o taga e ova ai le tasi microservice. E tatau ona ou faʻaogaina lenei lapisi e fatu ai se tala AWS (na matou o i 2 tala i luga auaunaga laiti), ona sosoo ai lea ma le mea lenei mo le setiina o faʻasalalauga, o le tasi lea mo se fale teu oloa, ma le tasi lea mo se lisi imeli, ona sosoo ai lea ma le tasi ...
- Ta'ita'i: Sei o tatou tusia ma lelei.
- Я: Lelei, ae o le tusitusiga lava ia o le a suia. Matou te manaʻomia se auala e siaki ai o nei mea uma na fausia i totonu ole Amazon gizmos o loʻo faʻafouina.
- Ta'ita'i: Malie le leo. Ma o le a matou tusia se tala mo lenei mea.
- Я: Matagofie! Ma atonu o le a manaʻomia pea le faʻasologa o le faʻasologa. Pe na te taliaina ea i latou?
- Ta'ita'i: Tuu atu ia te ia e ave i le mea e alu i ai!
- Я: E ono suia le faagasologa ma o le a leiloa le fetaui i tua. E mana'omia nisi ituaiga fa'atonuga fa'aliliuga.
- Ta'ita'i: Manaia le manatu!
- Я: Meafaigaluega e mafai ona suia ma le lima, i totonu o le faʻaoga faʻaoga. Matou te manaʻomia se auala e siaki ai ma faʻaleleia lenei mea.
… 3 tausaga mulimuli ane:
- Ta'ita'i: Ma sa matou maua le terraform.
O le uiga o le tala o le: e tusa lava pe oe ulu i luga o mulivae i mea uma Amazon, o loʻo e faʻaaogaina pea se mea e le mai le AWS, ma o nei 'auʻaunaga o loʻo i ai se setete e faʻaaogaina se gagana faʻatulagaina e faʻatumauina ai lena setete i le sync.
CloudFormation lambda vs git modules terraform
lambda o le fofo a CloudFormation i le mataupu faʻapitoa masani. Faatasi ai ma lambda e te mafaia
Ou te manatua le taimi na ou manaʻo ai e fai se faʻataʻitaʻiga canary mo le siosiomaga Elastic Beanstalk faʻatasi ai ma se paleni faʻatatau masani. O le mea sili ona faigofie e fai o le faia lea o se faʻapipiʻi lona lua mo le EB i tafatafa o le gaosiga o le siosiomaga, ma faia se laasaga atili: faʻapipiʻi le vaega faʻapipiʻiina o canary auto-scaling ma le faʻapipiʻiina LB i totonu o le siosiomaga gaosiga. Ma talu ai ona faʻaaogaina e Terraform
E iloa lelei le tafetafea
Ia mautinoa o mea moni e fetaui ma faʻamoemoega.
Fa'atasi ai ma Terraform e sili atu lau fa'amata'u fa'aolaola matau mo le su'esu'eina o le tafetafea. Mo se faʻataʻitaʻiga, e te ulufale i le poloaiga
CDK ma le lumanaʻi o CloudFormation
O le CloudFormation e faigata ona faʻatautaia i luga ole lapopoa, faʻasologa o mea tetele. O le tele o nei faigata e iloa ma o le meafaigaluega e manaʻomia mea e pei o
Ina ia le faʻanoanoa ai Terraform
O le mea lea o le "infrastructure as a code", ae le o le "as a text".
O loʻu manatu muamua o Terraform sa fai si leaga. Ou te manatu na ou le malamalama i le auala. Toeitiiti lava o inisinia uma latou te manatu i ai o se faʻasologa o tusitusiga e manaʻomia ona faʻaliliuina i mea tetele e manaʻomia. AUA LE FAIA LENEI ALA.
O le moni o le atinaʻeina o polokalama lelei e faʻaoga foi i Terraform.
Ua ou vaai i le tele o faiga na faʻaaogaina e fatu ai tulafono lelei e le amanaʻia i Terraform. Ua e su'esu'e mo le tele o tausaga e avea ma se fai polokalame lelei. Aua e te fiu i lenei aafiaga ona o loo e galue ma Terraform. O mea moni o le atina'e lelei o polokalame e fa'atatau ile Terraform.
E fa'afefea ona le fa'amauina le code?
Ua ou va'ai i fa'aputuga tetele o Terraform e matua'i leai ni fa'amaumauga. E fa'afefea ona e tusia fa'ailoga i itulau - e matua leai lava ni fa'amaumauga? Fa'aopoopo fa'amaumauga e fa'amatala ai lau code Terraform (fa'amamafa i le upu "code"), aisea e taua tele ai lenei vaega, ma mea e te faia.
E fa'afefea ona matou fa'atinoina auaunaga sa avea muamua ma galuega tele ()?
Ua ou vaʻai i faʻapipiʻi faʻapipiʻi faigata tele o Terraform o loʻo tuʻuina atu o se module tasi. Aisea tatou te le fa'aogaina ai polokalame i lenei auala? Aisea tatou te vaevaeina ai galuega tetele i galuega laiti? O tali tutusa e fa'atatau ile Terraform. Afai e tele tele lau module, e tatau ona e vaevaeina i lalo i ni vaega laiti.
E le o fa'aogaina e lau kamupani faletusi?
Ua ou vaʻai i le faʻafefea e inisinia, viliina se galuega fou e faʻaaoga ai Terraform, kopi faʻavalevalea-faʻapipiʻi pusi tetele mai isi poloketi ia latou lava, ona faʻataʻitaʻi lea ma i latou seia amata ona galue. E te galue fa'apenei i le "tau" code i lau kamupani? E le gata ina matou faaaogaina faletusi. Ioe,
E te le o fa'aogaina le PEP8 po'o le gofmt?
O le tele o gagana o lo'o i ai se fa'atulagaga masani, talia fa'atulagaina. I le Python o le PEP8 lea. I Go - gofmt. Terraform ei ai lona lava: terraform fmt
. Fiafia i ai mo lou soifua maloloina!
E te fa'aogaina le React e aunoa ma le iloaina o le JavaScript?
Terraform modules e mafai ona faʻafaigofieina nisi o vaega o atinaʻe lavelave e te fatuina, ae e le o lona uiga e le mafai ona e faʻaogaina. E te mana'o e fa'aoga sa'o le Terraform e aunoa ma le malamalama i punaoa? Ua e malaia: o le a mavae atu le taimi, ma o le a le mafai lava ona e pulea Terraform.
O e fa'ailogaina i tui nofofua po'o tui fa'alagolago?
O le tui fa'alagolago ose fa'ata'ita'iga sili ona lelei mo le atina'eina o polokalama ma e sili atu nai lo tagata nofofua. E fa'apefea ona aoga lenei mea i Terraform? Ua ou vaai i Terraform modules e faʻalagolago ile setete mamao. Nai lo le tusiaina o modules e toe maua mai ai le setete mamao, tusi se module e ave ai faʻamau. Ona pasi atu lea o vaega nei i le module.
Pe o faia lelei e au faletusi ni mea se sefulu po o se mea lelei e tasi?
O faletusi e sili ona lelei, o faletusi ia e taulaʻi i se tasi galuega e sili ona lelei. Nai lo le tusiaina o modules Terraform tetele e taumafai e fai mea uma i le taimi e tasi, fausia vaega o latou e faia lelei se mea e tasi. Ona tuufaatasi lea pe a manaomia.
E fa'afefea ona e faia suiga i faletusi e aunoa ma le fetaui i tua?
O se module masani Terraform, e pei o se faletusi masani, e manaʻomia le faʻafesoʻotaʻi suiga i tagata faʻaoga e aunoa ma le fetaui i tua. E ita pe a tutupu nei suiga i faletusi, ma e pei lava o le ita pe a faia suiga e le o tua i tua i Terraform modules. E fautuaina e faʻaoga git tags ma semver pe a faʻaaoga Terraform modules.
O fa'agaoioi lau 'au'aunaga gaosiga i lau komepiuta feavea'i po'o se nofoaga autu o fa'amaumauga?
Hashicorp ei ai meafaigaluega pei
E te le tusia ni su'ega?
E iloa e inisinia e manaʻomia le faʻataʻitaʻiina o le code, ae e masani ona galo ia i latou le suʻega pe a galulue ma Terraform. Mo atina'e, ua tumu lenei mea i taimi taufaa'ole'ole. O laʻu fautuaga o le "suʻega" poʻo le "fausia faʻataʻitaʻiga" faʻapipiʻi e faʻaaoga ai modules e mafai ona faʻapipiʻi saʻo mo suʻega i le taimi o le CI / CD.
Terraform ma microservices
O le ola ma le oti o kamupani microservices e faʻalagolago i le saoasaoa, faʻafouga, ma le faʻalavelaveina o fale faigaluega microservice fou.
O le itu sili ona leaga e fesoʻotaʻi ma microservice architectures, ma e le mafai ona faʻaumatia, e fesoʻotaʻi ma le galuega, ae le o le code. Afai e te manatu o Terraform e na o se auala e faʻaautomatika ai naʻo le vaega o atinaʻe o le microservices architecture, o lona uiga o loʻo e misia le aoga moni o le faiga. O lea ua uma
puna: www.habr.com