Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Me he mea lā e hāʻawi nā mea hoʻomohala Terraform i nā hoʻomaʻamaʻa maikaʻi loa no ka hana ʻana me ka ʻōnaehana AWS. Aia wale kahi nuance. I ka wā lōʻihi, piʻi ka nui o nā kaiapuni, ʻike ʻia nā hiʻohiʻona i kēlā me kēia. ʻIke ʻia kahi kope o ka waihona noi ma ka ʻāina e pili ana. A pono e kope pono a hoʻoponopono ʻia ka code Terraform e like me nā koi hou a i ʻole e hana i kahi hau hau.

ʻO kaʻu hōʻike e pili ana i nā hiʻohiʻona ma Terraform e hakakā i nā haunaele a me nā hana maʻamau ma nā papahana nui a lōʻihi.

Video:

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

He 40 koʻu makahiki, he 20 makahiki wau i loko o IT. Ua hana au ma Ixtens no 12 makahiki. Ke komo nei mākou i ka hoʻomohala ʻana i ka ecommerce. A ua hoʻomaʻamaʻa wau i nā hana DevOps no 5 mau makahiki.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO kaʻu moʻolelo e pili ana i ka ʻike ma kahi papahana i loko o kahi hui nona ka inoa ʻaʻole wau e haʻi aku, e hūnā ana ma hope o kahi ʻaelike hōʻike ʻole.

Hāʻawi ʻia nā helu ma ka paheʻe i mea e hoʻomaopopo ai i ke ʻano o ka papahana. A ʻo nā mea a pau aʻu e ʻōlelo ai e pili ana iā Amazon.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ua komo au i kēia papahana 4 makahiki aku nei. A ʻo ka hoʻoponopono hou ʻana i ka ʻoihana i ka holo piha, no ka mea, ua ulu ka papahana. A ʻo kēlā mau hiʻohiʻona i hoʻohana ʻia, ʻaʻole kūpono lākou. A hāʻawi ʻia i ka ulu ʻana i hoʻolālā ʻia o ka papahana, pono e hele mai me kahi mea hou.

Mahalo iā Matvey, nāna i haʻi iā mākou i nehinei i ka mea i hana ʻia ma Dodo Pizza. ʻO kēia ka mea i loaʻa iā mākou 4 makahiki i hala.

Hele mai nā mea hoʻomohala a hoʻomaka e hana i nā code infrastructure.

ʻO nā kumu maopopo loa i koi ʻia ai kēia ka manawa e kūʻai aku ai. Pono ia e hōʻoia ʻaʻole he bottleneck ka hui DevOps i ka wā e ʻōwili ai. A ma waena o nā mea ʻē aʻe, ua hoʻohana ʻia ʻo Terraform a me Puppet ma ka pae mua loa.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO Terraform kahi papahana open source mai HashiCorp. A no ka poʻe ʻike ʻole i ke ʻano o ia mea, ʻo nā kiʻi paheʻe e hiki mai ana.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka Infrastructure ma ke ʻano he code hiki iā mākou ke wehewehe i kā mākou ʻoihana a noi i kekahi mau robots e hōʻoia e loaʻa iā mākou nā kumuwaiwai a mākou i wehewehe ai.

No ka laʻana, pono mākou i kahi mīkini virtual. E wehewehe mākou, e hoʻohui i kekahi mau palena pono.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma hope o kēlā, e hoʻonohonoho mākou i ke komo ʻana i Amazon ma ka console. A e noi i ka hoʻolālā Terraform. E ʻōlelo ʻo Terraform plan: "ʻAe, no kāu kumuwaiwai, hiki iā mākou ke hana i kēia mau mea." A e hoʻohui ʻia i hoʻokahi kumu waiwai. A ʻaʻohe hoʻololi i manaʻo ʻia.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma hope o nā mea a pau e kūpono iā ʻoe, hiki iā ʻoe ke noi iā Terraform e hoʻopili a hana ʻo Terraform i kahi hiʻohiʻona no ʻoe, a loaʻa iā ʻoe kahi mīkini virtual i kāu ao.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Eia hou, ke ulu nei kā mākou papahana. Hoʻohui mākou i kekahi mau hoʻololi ma laila. Nīnau mākou no nā manawa hou aʻe, hoʻohui mākou i nā helu 53.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

A hana hou mākou. E ʻoluʻolu e hoʻolālā. ʻIke mākou i nā hoʻololi i hoʻolālā ʻia. E noi. A no laila ke ulu nei kā mākou ʻoihana.

Hoʻohana ʻo Terraform i kahi mea e like me nā faila mokuʻāina. ʻO ia hoʻi, mālama ia i nā hoʻololi āpau e hele ai i Amazon ma kahi faila, kahi no kēlā me kēia kumuwaiwai āu i wehewehe ai, aia nā kumuwaiwai kūpono i hana ʻia ma Amazon. No laila, i ka hoʻololi ʻana i ka wehewehe ʻana o kahi kumuwaiwai, ʻike maopopo ʻo Terraform i nā mea e pono ai ke hoʻololi ʻia ma Amazon.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO kēia mau waihona mokuʻāina he mau faila wale nō. A mālama mākou iā lākou ma Git, he mea paʻakikī loa. Ua poina mau kekahi i ka hana ʻana i nā loli, a ua nui nā paio.

I kēia manawa hiki ke hoʻohana i ka hope hope, ʻo ia hoʻi, ʻo Terraform i hōʻike ʻia i loko o kahi bakeke, kahi kī e mālama ʻia ai ka faila mokuʻāina. A ʻo Terraform ponoʻī e mālama i ka loaʻa ʻana o kēia faila mokuʻāina, e hana i nā mea kilokilo āpau a hoʻihoʻi i ka hopena hope.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ke ulu nei kā mākou ʻoihana. Eia kā mākou code. A i kēia manawa ʻaʻole mākou makemake e hana i kahi mīkini virtual, makemake mākou e loaʻa kahi ʻano hoʻāʻo.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻAe ʻo Terraform iā ʻoe e hana i kahi mea e like me ka module, ʻo ia hoʻi e wehewehe i ka mea like ma kekahi waihona.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

A, no ka laʻana, i ka hoʻāʻo ʻana, e kāhea i kēia module a loaʻa i ka mea like me kā mākou e hana nei iā Terraform pili i ka module ponoʻī. Eia ke code no ka hoao ana.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

No ka hana ʻana, hiki iā mākou ke hoʻouna i kekahi mau hoʻololi ma laila, no ka mea i ka hoʻāʻo ʻana ʻaʻole pono mākou i nā manawa nui, i ka hana ʻana e hiki mai nā manawa nui.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

A laila e hoʻi au i ka papahana. He hana paʻakikī, ua hoʻolālā nui ʻia ka ʻoihana. A he mea pono e kau i nā code a pau i mea e maʻalahi ai nā mea a pau: no ka poʻe mālama i kēia code, a no ka poʻe e hoʻololi. A ua hoʻolālā ʻia e hiki i kekahi mea hoʻomohala ke hele a hoʻoponopono i ka ʻōnaehana e like me ka mea e pono ai no kāna ʻāpana o ka paepae.

He lāʻau papa kuhikuhi kēia i ʻōlelo ʻia e HashiCorp inā he papahana nui kāu a he mea kūpono ke hoʻokaʻawale i ka ʻōnaehana holoʻokoʻa i kekahi mau ʻāpana liʻiliʻi, a wehewehe i kēlā me kēia ʻāpana i kahi waihona ʻokoʻa.

Loaʻa ka waihona waiwai nui, hiki iā ʻoe ke kāhea e pili ana i ka mea like i ka hoʻāʻo ʻana a me ka hana ʻana.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

I kā mākou hihia, ʻaʻole kūpono loa kēia, no ka mea, pono e kiʻi ʻia ka hoʻāʻo ʻana no nā mea hoʻomohala a i ʻole ka hoʻāʻo ʻana. A ʻaʻole wau i makemake e hele i loko o nā waihona a hoʻopili i ke kaʻina kūpono, a hopohopo e piʻi ke kumu, a laila e piʻi aʻe ke kumu e hoʻohana ai i kēia waihona. No laila, ua hoʻomaka ʻia nā hoʻāʻo a pau mai hoʻokahi waihona. Ua kapa ʻia nā modula like ma laila, akā hele nā ​​​​mea āpau i ka holo hoʻokahi.

Mālama ʻo Terraform i nā mea hilinaʻi āpau. A hana mau ia i nā kumuwaiwai i kēlā kaʻina i hiki iā ʻoe ke kiʻi i kahi helu IP, no ka laʻana, mai kahi hana hou i hana ʻia, a loaʻa kēia IP address ma ke komo ʻana o route53.

Eia kekahi, nui loa ka paepae. A ʻo ka holo ʻana i kahi hōʻike hōʻike, ʻoiai inā no hoʻokahi hola, ʻoiai inā no nā hola 8, he ʻoihana pipiʻi loa ia.

A ua hoʻokaʻawale mākou i kēia ʻoihana. A ua ʻae ka hana ʻo Jenkins e holo ka waihona. Pono e hoʻomaka i kahi noi huki i loko me nā hoʻololi e makemake ai ka mea hoʻomohala e hoʻāʻo, e kuhikuhi i nā koho pono āpau, nā ʻāpana, a me nā nui. Inā makemake ʻo ia i ka hoʻāʻo hoʻokō, a laila hiki iā ia ke lawe i nā manawa hou aku. Inā pono ʻo ia e nānā i ka wehe ʻana o kekahi palapala, hiki iā ia ke hoʻomaka ma ka uku liʻiliʻi. A e hōʻike pū inā makemake ʻia kahi pūpū a ʻaʻole paha, etc.

A laila hoʻokuʻu ʻo Jenkins i kahi hōʻailona shell i hoʻololi iki i ke code ma ka waihona Terraform. Wehe ʻia nā faila pono ʻole, hoʻohui i nā faila pono. A laila, me ka holo ʻana o Terraform i hoʻohana ʻia, ua piʻi ka puʻu.

A laila aia nā ʻanuʻu ʻē aʻe aʻu i makemake ʻole ai e hele i loko.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma muli o ka ʻoiaʻiʻo no ka hoʻāʻo ʻana ua makemake mākou i nā koho liʻiliʻi aʻe ma mua o ka hana ʻana, pono mākou e hana i nā kope o nā modules i hiki i kēia mau kope ke hoʻohui i kēlā mau hiʻohiʻona e pono ai i ka hoʻāʻo wale ʻana.

A pēlā nō i ka hoʻāʻo ʻana, me he mea lā makemake ʻoe e hoʻāʻo i kēlā mau hoʻololi e hele i ka hana. Akā ʻo ka ʻoiaʻiʻo, ua hoʻāʻo ʻia kekahi mea, a ua hoʻohana ʻia kahi ʻano ʻokoʻa i ka hana ʻana. A he wahi haʻahaʻa liʻiliʻi ma ke ʻano i hoʻohana ʻia nā hoʻololi āpau e ka hui hana. A i kekahi manawa ua hoʻololi ʻia kēlā mau hoʻololi i manaʻo ʻia e hele mai ka hoʻāʻo ʻana i ka hana ʻana, ua noho lākou ma kahi ʻano ʻē aʻe.

Eia kekahi, ua loaʻa kahi pilikia i hoʻohui ʻia kahi lawelawe hou, ʻokoʻa iki mai kahi lawelawe i loaʻa. A ma kahi o ka hoʻololi ʻana i kahi module e kū nei, pono ʻoe e hana i kope o ia mea a hoʻohui i nā hoʻololi e pono ai.

ʻOiaʻiʻo, ʻaʻole ʻōlelo maoli ʻo Terraform. He hoʻolaha kēia. Inā pono mākou e haʻi i kekahi mea, a laila haʻi mākou. A hana nā mea a pau.

I kekahi manawa, i ka wā e kūkākūkā ai i kekahi o kaʻu mau noi huki, ua ʻōlelo kekahi o kaʻu mau hoa hana ʻaʻole pono e hana i nā hau hau. Ua noʻonoʻo au i kāna ʻōlelo. Aia kekahi ʻike ʻepekema i ka honua ʻaʻohe ʻelua mau hau hau like, he liʻiliʻi lākou a pau, akā ʻokoʻa. A i koʻu lohe ʻana i kēia, ʻike koke wau i ke kaumaha piha o ke code Terraform. No ka mea i ka wā i koi ʻia ai e neʻe mai kahi mana a i kekahi mana, ua koi ʻo Terraform i kahi hoʻololi kaulahao haki, ʻo ia hoʻi, ʻaʻole kūpono ke code me ka mana aʻe. A pono wau e hana i kahi noi huki, kahi i uhi ʻia ma kahi o ka hapalua o nā faila i loko o ka ʻōnaehana, i mea e lawe ai i ka ʻōnaehana i ka mana hou o Terraform.

A ma hope o ka puka ʻana mai o kēlā ʻano hau hau, ʻo nā code Terraform āpau a mākou i hoʻololi ai i puʻu hau nui.

No ka mea hoʻomohala waho i waho o ka hana, ʻaʻole ia he mea nui iā ia, no ka mea, ua hana ʻo ia i kahi noi huki, hoʻomaka kāna kumu waiwai. A ʻo ia ka mea, ʻaʻole kāna hopohopo. A ʻo ka hui ʻo DevOps e hōʻoiaʻiʻo i ka maikaʻi o nā mea āpau e pono e hana i kēia mau hoʻololi āpau. A ua hoʻonui nui ʻia ke kumukūʻai o kēia mau hoʻololi me kēlā me kēia hau hau hou.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Aia kekahi moʻolelo e pili ana i ke kaha ʻana o kekahi haumāna ma kahi seminar i ʻelua pōʻai kūpono me ka paʻakai ma ka papa ʻeleʻele. A haʻohaʻo ke kumu i kona hiki ʻana ke kaha kiʻi maʻalahi me ka ʻole o ka panana. Pane ka haumāna: "He mea maʻalahi loa ia, ua hoʻololi au i kahi mīkini ʻiʻo no ʻelua makahiki i ka pūʻali."

A mai loko mai o nā makahiki ʻehā aʻu i hana ai ma kēia papahana, ua hana wau i Terraform no ʻelua mau makahiki. A, ʻoiaʻiʻo, loaʻa iaʻu kekahi mau hoʻopunipuni, kekahi mau ʻōlelo aʻoaʻo e pili ana i ka hoʻomaʻamaʻa ʻana i ke code Terraform, e hana pū me ia e like me ka ʻōlelo papahana a hoʻemi i ke kaumaha o nā mea hoʻomohala pono e mālama i kēia code i kēia lā.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka mea mua aʻu e makemake ai e hoʻomaka me Symlinks. He nui nā code repetitive o Terraform. No ka laʻana, ʻo ke kāhea ʻana i kahi mea hoʻolako ma kahi kokoke i kēlā me kēia wahi a mākou e hana ai i kahi ʻāpana o ka ʻōnaehana like. A he mea kūpono ke kau ʻana i loko o kahi papa ʻokoʻa. A ma nā wahi a pau e pono ai ka mea hoʻolako e hana i nā Symlinks i kēia faila.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

No ka laʻana, hoʻohana ʻoe i ke kuleana i ka hana ʻana, e hiki ai iā ʻoe ke loaʻa nā kuleana komo i kekahi moʻokāki Amazon waho. A ma ka hoʻololi ʻana i hoʻokahi faila, e loaʻa i nā mea i koe i loko o ka kumu kumu nā kuleana i makemake ʻia i ʻike ʻo Terraform i ka māhele Amazon e komo ai.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma hea ʻaʻole hana ʻo Symlinks? E like me kaʻu i ʻōlelo ai, loaʻa iā Terraform nā faila mokuʻāina. A ʻoluʻolu loa lākou. Akā ʻo ka mea ʻoiaʻiʻo ʻo Terraform e hoʻomaka i ka backend i ka mea mua. A ʻaʻole hiki iā ia ke hoʻohana i kekahi mau ʻokoʻa i kēia mau ʻāpana, pono e kākau mau ʻia ma ka kikokikona.

A ʻo ka hopena, ke hana kekahi i kahi kumuwaiwai hou, kope ʻo ia i kahi ʻāpana o ke code mai nā waihona ʻē aʻe. A hiki iā ia ke hana hewa me ke kī a i ʻole ka bākeke. No ka laʻana, hana ʻo ia i kahi mea pahu mai loko mai o kahi pahu one, a laila hana ia i ka hana. A no laila hiki ke hoʻohana ʻia ka bākeke i ka hana ʻana mai ka pahu one. ʻOiaʻiʻo, e loaʻa koke iā lākou. Hiki ke hoʻoponopono i kēia, akā naʻe, he hoʻopau manawa a, ma kekahi ʻano, nā kumuwaiwai.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

He aha kā mākou e hana ai? Ma mua o ka hana ʻana me Terraform, pono ʻoe e hoʻomaka. I ka manawa hoʻomaka, hoʻoiho ʻo Terraform i nā plugins āpau. I kekahi manawa, ua haki lākou mai kahi monolith i kahi hoʻolālā microservice. A pono ʻoe e hana i ka Terraform init i mea e huki ai i nā modula āpau, nā plugins āpau.

A hiki iā ʻoe ke hoʻohana i kahi script shell, ʻo ia ka mea mua, hiki ke loaʻa i nā ʻano like ʻole. ʻAʻohe palena o ka palapala Shell. A ʻo ka lua, ʻo ke ala. Inā mākou e hoʻohana mau i ke ala i loko o ka waihona e like me ke kī i ka faila mokuʻāina, a laila, e like me, e kāpae ʻia ka hewa ma aneʻi.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma hea e loaʻa ai ka ʻikepili? JSON waihona. ʻAe ʻo Terraform iā ʻoe e kākau i nā ʻōnaehana ʻaʻole wale ma ka hcl (HashiCorp Configuration Language), akā ma JSON pū kekahi.

He maʻalahi ka heluhelu ʻana iā JSON mai kahi palapala shell. No laila, hiki iā ʻoe ke kau i kahi faila hoʻonohonoho me kahi bākeke ma kekahi wahi. A e hoʻohana i kēia bākeke ma ke code Terraform a ma ka script shell no ka hoʻomaka ʻana.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

No ke aha he mea nui ka loaʻa ʻana o kahi bākeke Terraform? No ka mea aia kekahi mea e like me nā faila moku'āina mamao. ʻO ia hoʻi, i ka wā e hoʻāla ai au i kekahi kumuwaiwai, i mea e haʻi aku ai iā Amazon: "E ʻoluʻolu e hoʻāla i kahi hiʻohiʻona", pono wau e kuhikuhi i nā ʻāpana he nui.

A mālama ʻia kēia mau ʻike i loko o kekahi waihona ʻē aʻe. A hiki iaʻu ke lawe a ʻōlelo aku: "Terraform, e ʻoluʻolu e holo i ka faila mokuʻāina o kēlā kumu waiwai a e kiʻi mai iaʻu i kēia mau mea hōʻike." A no laila aia kekahi ʻano hoʻohui ma waena o nā ʻāpana like ʻole a i ʻole nā ​​​​kaiapuni.

ʻAʻole hiki ke hoʻohana i kahi faila mokuʻāina mamao. No ka laʻana, ua hana lima ʻoe i VPC. A ʻo ka code Terraform nāna i hoʻokumu i ka VPC e hana i kahi VPC ʻokoʻa e lōʻihi loa ana ka manawa a pono ʻoe e hoʻoponopono i kekahi i kekahi, no laila hiki iā ʻoe ke hoʻohana i kēia hoʻopunipuni.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ia hoʻi, e hana i kahi module, e like me ia, e hana ai i ka VPC a hāʻawi iā ʻoe i nā mea ʻike, akā ʻoiaʻiʻo, aia wale nō kahi faila me nā waiwai hardcoded hiki ke hoʻohana ʻia e hana i ka mea like.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻAʻole pono e mālama i ka faila mokuʻāina i ke ao. No ka laʻana, i ka hoʻāʻo ʻana i nā modules, hiki iā ʻoe ke hoʻohana i ka hoʻomaka ʻana i hope, ke mālama ʻia ka faila ma ka disk i ka manawa o ka hoʻāʻo.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

I kēia manawa e pili ana i ka hoʻāʻo. He aha ka mea hiki ke hoʻāʻo ʻia ma Terraform? Malia paha, nui ka hiki, akā e kamaʻilio wau e pili ana i kēia mau mea 4.

Loaʻa iā HashiCorp ka hoʻomaopopo ʻana i ke ʻano o ka hoʻopili ʻana i ka code Terraform. A ʻo Terraform fmt hiki iā ʻoe ke hōʻano i ke code āu e hoʻoponopono ai e like me kēlā manaʻoʻiʻo. No laila, pono e nānā nā hoʻokolohua inā pili ka hoʻohālikelike ʻana i ka mea a HashiCorp i hāʻawi ai, i ʻole ʻoe e hoʻololi i kahi o nā brackets, etc.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka mea aʻe ʻo Terraform validate. He ʻoi aku ka liʻiliʻi ma mua o ka nānā ʻana i ka syntax - ala, ua hui pū ʻia nā bracket āpau. He aha ka mea nui ma ʻaneʻi? Loaʻa iā mākou kahi ʻōnaehana lahilahi. He nui nā waihona like ʻole. A i kēlā me kēia mea pono ʻoe e holo i ka Terraform validate.

No laila, no ka wikiwiki ʻana i ka hoʻāʻo ʻana, holo mākou i nā kaʻina hana like me ka parallel.

He mea ʻoluʻolu loa ʻo Parallel, e hoʻohana.

Akā i kēlā me kēia manawa i hoʻomaka ʻia ʻo Terraform, hele ia i HashiCorp a nīnau, "He aha nā plugins hou loa? A ʻo ka plugin aʻu i loko o ka cache - ʻo ia ka mea a ʻaʻole paha? A ua lohi i kēlā me kēia ʻanuʻu.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Inā haʻi ʻo Terraform iā ʻoe i kahi o nā plugins, e ʻōlelo ʻo Terraform: "ʻAe, ʻo ia paha ka mea hou loa. ʻAʻole au e hele i kahi, e hoʻomaka koke wau e hōʻoia i kāu code Terraform."

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

I mea e hoʻopiha ai i ka waihona me nā plugins pono, loaʻa iā mākou kahi code Terraform maʻalahi e pono e hoʻomaka. Eia, ʻoiaʻiʻo, pono ʻoe e kuhikuhi i nā mea hoʻolako āpau i komo i kāu code, inā ʻaʻole e ʻōlelo ʻo Terraform: "ʻAʻole wau ʻike i kekahi mea hāʻawi, no ka mea ʻaʻole ia i loko o ka cache."

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka mea aʻe ka hoʻolālā Terraform. E like me kaʻu i ʻōlelo ai, he cyclical ka hoʻomohala ʻana. Hana mākou i ke code me nā loli. A laila pono ʻoe e ʻike i nā loli i hoʻolālā ʻia no ka ʻōnaehana.

A i ka nui loa o ka ʻōnaehana, hiki iā ʻoe ke hoʻololi i hoʻokahi module, hoʻoponopono i kahi ʻano hoʻāʻo a i ʻole kekahi ʻāpana kikoʻī, a wāwahi i kahi mea kokoke. No laila, pono e hana ʻia kahi hoʻolālā Terraform no ka ʻōnaehana holoʻokoʻa a hōʻike i nā loli i hoʻolālā ʻia.

Hiki iā ʻoe ke hana ma ke ala akamai. No ka laʻana, ua kākau mākou i kahi palapala Python e hoʻoholo ai i nā hilinaʻi. A ma muli o ka mea i hoʻololi ʻia: kahi modula Terraform a i ʻole kahi mea kikoʻī wale nō, hana ia i nā hoʻolālā no nā waihona hilinaʻi āpau.

Pono e hana ʻia ka hoʻolālā Terraform ma ke noi. ʻO ia ka mea a mākou e hana ai.

ʻO nā hoʻāʻo, ʻoiaʻiʻo, maikaʻi ke hana no kēlā me kēia hoʻololi, no kēlā me kēia hana, akā he mea pipiʻi nā hoʻolālā. A ke ʻōlelo nei mākou ma ka noi huki: "E ʻoluʻolu e hāʻawi mai iaʻu i nā hoʻolālā." Hoʻomaka ka lopako. A hoʻouna i nā manaʻo a i ʻole e hoʻopili i nā hoʻolālā āpau i manaʻo ʻia mai kāu mau loli.

He mea pipiʻi ka papahana. Loaʻa ka manawa no ka mea e hele ana ʻo Terraform i Amazon a nīnau, "Ke mau nei anei kēia hihia? Loaʻa i kēia autoscale nā ​​ʻāpana like?". A i mea e wikiwiki ai, hiki iā ʻoe ke hoʻohana i kahi ʻāpana e like me refresh=false. ʻO kēia ke ʻano e hoʻopau ʻo Terraform i ka mokuʻāina S3. A e manaʻoʻiʻo e kūlike ka mokuʻāina i ka mea ma Amazon.

ʻOi aku ka wikiwiki o ia hoʻolālā Terraform, akā pono ka mokuʻāina e hoʻohālikelike i kāu ʻoihana, ʻo ia hoʻi, ma kahi, i kekahi manawa pono e hoʻomaka ka Terraform refresh. Hana pololei ʻo Terraform refresh, no laila e kūlike ka mokuʻāina i nā mea i loko o ka ʻōnaehana maoli.

A pono wau e ʻōlelo e pili ana i ka palekana. ʻO kēia kahi i hoʻomaka ai. Ma kahi āu e holo ai ʻo Terraform a me Terraform e hana pū me kāu ʻoihana, aia kahi nāwaliwali. ʻO ia hoʻi, ke hoʻokō nei ʻoe i ke code. A inā loaʻa i ka noi huki kekahi ʻano code malicious, a laila hiki ke hoʻokō ʻia ma kahi ʻoihana i loaʻa nui loa. No laila, e makaʻala i kahi āu e hoʻomaka ai i ka hoʻolālā Terraform.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka mea aʻe aʻu e makemake ai e kamaʻilio e pili ana i ka hoʻāʻo ʻana i ka ʻikepili hoʻohana.

He aha ka ʻikepili hoʻohana? Ma Amazon, ke hana mākou i kahi laʻana, hiki iā mākou ke hoʻouna i kekahi ʻano leka mai ka laʻana - meta data. Ke hoʻomaka ʻia kahi laʻana, ʻike mau ʻia ke ao init ma ia mau manawa. Heluhelu ʻo Cloud init i kēia leka a ʻōlelo ʻo ia: "ʻAe, i kēia lā he mea kaulike au." A e like me kēia mau kauoha, hana ʻo ia i kekahi mau hana.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Akā, ʻo ka mea pōʻino, ke hana mākou i ka hoʻolālā Terraform a pili ʻo Terraform, ʻike ʻia ka ʻikepili hoʻohana me kēia slurry o nā helu. ʻO ia, hoʻouna wale ʻo ia iā ʻoe i kahi hash. A ʻo nā mea a pau āu e ʻike ai ma ka hoʻolālā ʻana inā he mau loli a i ʻole e mau ka hash.

A inā ʻaʻole ʻoe e hoʻolohe i kēia, a laila hele paha kekahi faila kikokikona i Amazon, i ka ʻōnaehana maoli.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO kahi ʻē aʻe, hiki iā ʻoe ke kuhikuhi ʻaʻole i ka ʻōnaehana holoʻokoʻa i ka wā o ka hoʻokō ʻana, akā ʻo ka template wale nō. A i loko o ke code, e ʻōlelo: "E ʻoluʻolu e hōʻike mai iaʻu i kēia template." A ʻo ka hopena, hiki iā ʻoe ke kiʻi i kahi paʻi o ke ʻano o kāu ʻikepili ma Amazon.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO kahi koho ʻē aʻe ka hoʻohana ʻana i kahi module e hana i ka ʻikepili hoʻohana. E hoʻohana ʻoe i kēia module. E kiʻi i ka faila ma ka disk. E hoʻohālikelike me ka kuhikuhi. A no laila, inā hoʻoholo kekahi jun e hoʻoponopono i kahi mea hoʻohana-ʻikepili liʻiliʻi, a laila e ʻōlelo kāu mau hoʻāʻo: "ʻAe, aia kekahi mau loli ma ʻaneʻi a ma laila - he mea maʻamau kēia."

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ka mea aʻe aʻu e makemake ai e kamaʻilio e pili ana iā Automate Terraform.

ʻOiaʻiʻo, he mea weliweli loa ke hana ʻo Terraform i ke ʻano maʻalahi, no ka mea, ʻo wai ka mea ʻike i nā loli i hiki mai i laila a pehea e pōʻino ai lākou i kahi ʻōnaehana ola.

No kahi kaiapuni hoʻāʻo, maikaʻi kēia. ʻO ia hoʻi, kahi hana e hoʻokumu i kahi hoʻokolohua hoʻokolohua ka mea e pono ai nā mea hoʻomohala āpau. A ʻo ka ʻōlelo e like me "ua hana nā mea āpau iaʻu" ʻaʻole ia he meme ʻakaʻaka, akā ʻo ka hōʻoia ʻana ua huikau kekahi kanaka, hoʻāla ʻia kahi pūʻulu, hoʻomaka i kekahi mau hoʻāʻo ma kēia waihona. A ua hōʻoia ʻo ia ua maikaʻi nā mea āpau a ʻōlelo ʻo ia: "ʻAe, ua hoʻāʻo ʻia ke code aʻu i hoʻokuʻu ai."

Ma ka hana ʻana, sandbox, a me nā kaiapuni ʻē aʻe i ʻoi aku ka koʻikoʻi o ka ʻoihana, palekana ke hoʻohana hapa i kekahi mau kumuwaiwai no ka mea ʻaʻole ia e make kekahi. ʻO kēia: nā hui autoscale, nā hui palekana, nā kuleana, route53 a ma laila ka nui o ka papa inoa. Akā e makaʻala i nā mea e hana nei, e heluhelu i nā hōʻike o nā noi maʻalahi.

Ma kahi o ka pilikia a weliweli paha ke hoʻohana, no ka laʻana, inā he mau kumuwaiwai hoʻomau kēia, mai kahi waihona, a laila e kiʻi i nā hōʻike e loaʻa ana nā loli i hoʻohana ʻole ʻia i kekahi ʻāpana o ka ʻoihana. A ua mālama ʻia ka ʻenekinia i nā hana e noi ai a hana paha mai kāna console.

Loaʻa iā Amazon kahi mea e like me ka Terminate protection. A hiki iā ia ke pale i kekahi mau hihia mai nā loli i koi ʻole ʻia no ʻoe. No laila ua hele ʻo Terraform i Amazon a ʻōlelo ʻo "Pono wau e pepehi i kēia hihia e hana i kekahi". A ʻōlelo ʻo Amazon, "E kala mai, ʻaʻole i kēia lā. Loaʻa iā mākou ka palekana Terminate.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

A ʻo ka icing ma luna o ka pōpō he code optimization. Ke hana mākou me Terraform code, pono mākou e hāʻawi i kahi helu nui loa o nā ʻāpana i ka module. ʻO kēia nā ʻāpana e pono ai no ka hana ʻana i kekahi ʻano waiwai. A huli ke code i nā papa inoa nui o nā ʻāpana e pono e hāʻawi ʻia mai ka module a i ka module, mai ka module a i ka module, ʻoi aku ka nui inā hoʻopaʻa ʻia nā modules.

A paʻakikī loa ka heluhelu ʻana. Paʻakikī loa ka nānā ʻana i kēia. A ʻike pinepine ʻia ke nānā ʻia nei kekahi mau ʻāpana a ʻaʻole lākou ka mea e pono ai. A he manawa a me ke kālā e hoʻoponopono ai ma hope.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

No laila, manaʻo wau e hoʻohana ʻoe i kahi mea e like me kahi ʻāpana paʻakikī e loaʻa ai kekahi kumulāʻau waiwai. ʻO ia hoʻi, pono ʻoe i kahi ʻano waihona kahi i loaʻa iā ʻoe nā waiwai āpau āu e makemake ai e loaʻa ma kekahi ʻano kaiapuni.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

A ma ke kāhea ʻana i kēia module, hiki iā ʻoe ke kiʻi i kahi kumulāʻau i hana ʻia i hoʻokahi module maʻamau, ʻo ia hoʻi, i loko o kahi module maʻamau e hana like no ka ʻōnaehana holoʻokoʻa.

Ma kēia module, hiki iā ʻoe ke hana i kekahi mau helu me ka hoʻohana ʻana i kahi hiʻohiʻona hou ma Terraform ma ke ʻano he kamaʻāina. A laila i loko o hoʻokahi huahana, e hoʻopuka i kekahi ʻano ʻano paʻakikī, hiki ke komo i nā hashes, arrays, etc.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

Ma keia, ua pau na mea maikai a pau i loaa ia'u. A makemake wau e haʻi i kahi moʻolelo e pili ana iā Columbus. I kona ʻimi ʻana i kālā no kāna huakaʻi e ʻike iā India (e like me kāna i manaʻo ai i kēlā manawa), ʻaʻohe mea i manaʻoʻiʻo iā ia a manaʻoʻiʻo he hiki ʻole. A laila ʻōlelo ʻo ia: "E mālama ʻoe ʻaʻole e hāʻule ka hua." Ua ho'āʻo ka poʻe panakō a pau, ka poʻe waiwai a akamai paha, e hoʻokomo i ka hua ma kekahi ʻano, a hāʻule i nā manawa a pau. A laila lawe ʻo Columbus i ka hua, kaomi iki. Ua ʻōniʻoniʻo ka pūpū a ʻaʻole i ʻoni ka hua. 'Ōlelo lākou, "ʻAe, maʻalahi loa kēlā!" A pane akula ʻo Columbus: “ʻAe, maʻalahi loa. A i koʻu wehe ʻana i India, e hoʻohana nā mea āpau i kēia ala kalepa. "

A ʻo nā mea aʻu i haʻi aku nei iā ʻoe he mau mea maʻalahi a me nā mea liʻiliʻi. A ke ʻike ʻoe e pili ana iā lākou a hoʻomaka e hoʻohana iā lākou, aia ia i ka hoʻonohonoho o nā mea. No laila e hoʻohana. A inā he mau mea maʻamau kēia iā ʻoe, a laila ʻike ʻoe i ka waiho ʻana i kahi hua i ʻole ia e hāʻule.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

E hōʻoia kāua:

  • E ho'āʻo e pale i nā hau hau. A ʻo ka liʻiliʻi o nā hau hau, ʻoi aku ka liʻiliʻi o nā kumuwaiwai āu e pono ai e hoʻololi i kāu ʻōnaehana nui holoʻokoʻa.
  • Hoʻololi mau. ʻO ia hoʻi, i ka wā i loaʻa ai kekahi mau hoʻololi i ke code, pono ʻoe e lawe i kāu ʻōnaehana i ka laina me kēia mau hoʻololi i ka hiki. ʻAʻole pono kahi kūlana ke hele mai kekahi i ʻelua a ʻekolu mau mahina e nānā iā Elasticsearch, hana i kahi hoʻolālā Terraform, a he nui nā loli āna i manaʻo ʻole ai. A nui ka manawa e hoʻihoʻi i nā mea a pau.
  • Nā ho'āʻo a me ka automation. ʻOi aku ka nui o kāu code i uhi ʻia me nā hoʻāʻo a me nā chips, ʻoi aku ka nui o kou hilinaʻi e hana nei ʻoe i nā mea āpau. A e hoʻonui ka hoʻouna ʻakomi i kou hilinaʻi i nā manawa he nui.
  • Pono e like ke code no ka ho'āʻo a me ka hana ʻana. Maikaʻi, no ka mea ma hope o nā mea a pau, he ʻokoʻa iki ka hana ʻana a aia kekahi mau nuances e hele ma mua o ke kaiapuni hoʻāʻo. Akā naʻe, hiki ke hāʻawi ʻia ka hoʻohui a i ʻole ka liʻiliʻi.
  • A inā he nui kāu code Terraform a he nui ka manawa e hoʻomau i kēia code a hiki i kēia lā, a laila ʻaʻole i lōʻihi ka hoʻoponopono hou ʻana a lawe mai i ke ʻano maikaʻi.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

  • ʻoihana hoʻololi ʻole. Hāʻawi ʻia ʻo AMI ma ka papa manawa.
  • Hoʻonohonoho ʻia no ka route53 inā loaʻa iā ʻoe nā helu he nui a makemake ʻoe e hoʻonohonoho mau lākou.
  • E hakakā me nā palena helu API. ʻO kēia ka manawa i ʻōlelo ai ʻo Amazon, "ʻO ia, ʻaʻole hiki iaʻu ke ʻae i nā noi hou aku, e ʻoluʻolu e kali." A ke kali nei ka hapalua o ke keʻena a hiki iā ia ke hoʻomaka i kāna ʻoihana.
  • nā hiʻohiʻona kiko. ʻAʻole ʻo Amazon kahi hanana maʻalahi a ʻae nā wahi iā ʻoe e mālama nui. A ma laila hiki iā ʻoe ke haʻi i kahi hōʻike holoʻokoʻa e pili ana iā ia.
  • Nā kuleana palekana a me IAM.
  • E ʻimi i nā kumuwaiwai nalowale, inā loaʻa iā ʻoe nā manawa i ʻike ʻole ʻia ma Amazone, ʻai lākou i ke kālā. ʻOiai inā he $100-150 i kēlā me kēia mahina, ʻoi aku ia ma mua o $1 i kēlā me kēia makahiki. ʻO ka loaʻa ʻana o ia mau kumuwaiwai he ʻoihana waiwai.
  • A mālama ʻia nā manawa.

Nā hiʻohiʻona i Terraform e hakakā i ka haunaele a me ka hana maʻamau. Maxim Kostrikin (Ixtens)

ʻO ia wale nō iaʻu. He ʻoluʻolu loa ka Terraform, e hoʻohana. Mahalo iā ʻoe!

ʻO kāu mau nīnau

Mahalo no ka hōʻike! Loaʻa iā ʻoe kahi faila mokuʻāina ma S3, akā pehea ʻoe e hoʻoponopono ai i ka pilikia e hiki ai i kekahi poʻe ke lawe i kēia faila mokuʻāina a hoʻāʻo e kau?

ʻO ka mea mua, ʻaʻole mākou e wikiwiki. ʻO ka lua, aia nā hae, kahi a mākou e hōʻike nei e hana ana mākou i kekahi ʻāpana code. ʻO ia hoʻi, ʻoiai ʻo ka nui o ka ʻoihana, ʻaʻole ia he manaʻo e hoʻohana mau ana kekahi i kekahi mea. A i ka wā i loaʻa ai kahi hana hana, he pilikia kēia, mālama mākou i nā faila mokuʻāina ma Git. He mea nui kēia, inā ʻaʻole e hana kekahi i kahi faila mokuʻāina, a pono mākou e hōʻiliʻili lima iā lākou i kahi puʻu i mea e hoʻomau ai. I kēia manawa ʻaʻohe pilikia like. Ma keʻano laulā, ua hoʻoponopono ʻo Terraform i kēia pilikia. A inā e loli mau ana kekahi mea, a laila hiki iā ʻoe ke hoʻohana i nā laka e pale ai i kāu ʻōlelo.

Ke hoʻohana nei ʻoe i ka open source a i ʻole ʻoihana?

ʻAʻohe ʻoihana, ʻo ia hoʻi, nā mea āpau āu e hele ai a hoʻoiho no ka manuahi.

ʻO Stanislav koʻu inoa. Ua makemake au e hoʻohui iki. Ua kamaʻilio ʻoe e pili ana i ka hiʻohiʻona Amazon e hiki ai iā ʻoe ke hana i kahi hiʻohiʻona unkillable. Aia kēia i loko o Terraform pono'ī, i ka poloka Life Second, hiki iā ʻoe ke kuhikuhi i ka pāpā ʻana i ka loli, a i ʻole ka pāpā ʻana i ka luku.

Ua kaupalena ʻia ka manawa. ʻO kahi maikaʻi.

Ua makemake hoʻi au e nīnau i ʻelua mea. ʻO ka mua, ua kamaʻilio ʻoe e pili ana i ka hoʻāʻo. Ua hoʻohana anei ʻoe i nā mea hana hoʻāʻo? Ua lohe au e pili ana i ka plugin Test Kitchen. He mea ʻē aʻe paha. A makemake wau e nīnau e pili ana i nā Waiwai Kūloko. Pehea lākou i ʻokoʻa ai mai nā Input Variables? A no ke aha e hiki ʻole ai iaʻu ke hoʻohālikelike i kekahi mea ma o nā Waiwai Kūloko wale nō? Ua ho'āʻo wau e pili i kēia kumuhana, akā ʻaʻole wau i ʻike iaʻu iho.

Hiki iā mākou ke kamaʻilio hou e pili ana i kēia lumi. ʻO nā mea hana hoʻāʻo kā mākou hana ponoʻī piha. ʻAʻohe mea ma laila e hoʻāʻo ai. Ma keʻano laulā, aia nā koho i ka wā e hoʻokiʻekiʻe ai nā hoʻāʻo ʻakomi i ka ʻōnaehana ma kahi wahi, e nānā i ka OK, a laila e luku i nā mea āpau me kahi hōʻike e maikaʻi ana kāu ʻōnaehana. ʻAʻole loaʻa iā mākou kēlā no ka mea e holo ana nā waihona hoʻāʻo i kēlā me kēia lā. A lawa kēlā. A inā hoʻomaka kekahi mea e haki, a laila hoʻomaka ia e haki me ka ʻole o kā mākou nānā ʻana ma kahi ʻē.

E pili ana i nā Waiwai Kūloko, e hoʻomau kākou i ke kamaʻilio ʻana ma waho o ke anaina.

Aloha! Mahalo no ka hōʻike! ʻIke loa. Ua ʻōlelo ʻoe he nui nā ʻano code like ʻole e wehewehe i ka ʻōnaehana. Ua noʻonoʻo paha ʻoe e hana i kēia code?

Nīnau nui, mahalo! ʻO ka manaʻo, ke hoʻohana mākou i nā ʻōnaehana ma ke ʻano he code, manaʻo mākou e nānā mākou i ke code a hoʻomaopopo i ke ʻano o nā ʻōnaehana e waiho nei ma hope o kēia code. Inā hoʻokumu ʻia ke code, a laila pono mākou e noʻonoʻo i ke code e hana ʻia i mea e hoʻomaopopo ai i ke ʻano o nā ʻōnaehana e loaʻa ai. A i ʻole mākou e hoʻopuka i ke code, hana a, ʻoiaʻiʻo, loaʻa iā mākou ka mea like. No laila, hele mākou i ke ʻano a mākou i kākau ai, loaʻa iā mākou. Eia kekahi, ua ʻike ʻia nā mea hana ma hope iki, i ka wā i hoʻomaka ai mākou e hana. A ua lohi loa ka loli.

Ua lohe paha ʻoe iā jsonnet?

No.

E nana, he mea maikai loa keia. ʻIke wau i kahi hihia kikoʻī kahi e hiki ai iā ʻoe ke hoʻohana a hana i kahi hoʻolālā data.

Maikaʻi nā mea hana ke loaʻa iā ʻoe, e like me ka ʻakaʻaka e pili ana i ka mīkini kahi. ʻO ia hoʻi, ʻo ka manawa mua he ʻokoʻa ka helehelena, akā he helehelena like kēlā me kēia kanaka. He ʻoluʻolu loa nā mea hana. Akā, pōʻino, ʻokoʻa iki ko mākou mau helehelena. He pilikia kēia.

Nānā wale. Mahalo iā ʻoe!

ʻO Maxim koʻu inoa, no Sberbank wau. Ua ʻōlelo iki ʻoe ua hoʻāʻo ʻoe e lawe iā Terraform i kahi analogue o kahi ʻōlelo papahana. ʻAʻole maʻalahi ka hoʻohana ʻana iā Ansible?

He mau mea okoa loa keia. Hiki iā Ansible ke hana i nā kumuwaiwai, a hiki i ka Puppet ke hana i nā kumuwaiwai ma Amazon. Akā ʻoi loa ka ʻoi loa o Terraform.

Loaʻa iā ʻoe ʻo Amazon wale nō?

ʻAʻole ia he Amazon wale nō kā mākou. Kokoke loaʻa iā mākou ʻo Amazon wale nō. Akā ʻo ka hiʻohiʻona nui ka hoʻomanaʻo ʻana o Terraform. Ma Ansible, inā ʻoe e ʻōlelo: "E koho iaʻu i 5 mau manawa", a laila e ala aʻe, a laila ʻōlelo ʻoe: "A i kēia manawa pono wau i 3". A e ʻōlelo ʻo Terraform: "ʻAe, e pepehi wau iā 2", a ʻōlelo ʻo Ansible: "ʻAe, eia ʻo 3 no ʻoe." Huina 8.

Aloha! Mahalo no kāu hōʻike! He mea hoihoi loa ka lohe ʻana e pili ana iā Terraform. Makemake wau e hana i kahi ʻōlelo liʻiliʻi e pili ana i ka ʻoiaʻiʻo ʻaʻole i loaʻa i ka Terraform kahi hoʻokuʻu paʻa, no laila e makaʻala loa me Terraform.

Puna maikaʻi no ka ʻaina ahiahi. ʻO ia hoʻi, inā makemake ʻoe i kahi hoʻonā, a laila hoʻopanee ʻoe i ka mea paʻa ʻole, a me nā mea ʻē aʻe, akā hana ia a kōkua iā mākou.

ʻO ka nīnau. Ke hoʻohana nei ʻoe i ka hope hope, ke hoʻohana nei ʻoe iā S 3. No ke aha ʻoe e hoʻohana ʻole ai i ka hope hope?

Oihana?

Kapua Terraform.

I ka manawa hea i puka mai ai?

4 mahina aku nei.

Inā ua ʻike ʻia ʻo ia i 4 mau makahiki i hala, a laila, inā paha, ua pane wau i kāu nīnau.

Aia kekahi hana i kūkulu ʻia a me nā laka, a hiki iā ʻoe ke mālama i kahi faila mokuʻāina. E hoao. Akā ʻaʻole wau i hoʻāʻo.

Aia mākou ma ke kaʻaahi nui e neʻe nei me ka wikiwiki. A ʻaʻole hiki iā ʻoe ke lawe wale a hoʻolei i kekahi mau kaʻa.

Ke kamaʻilio nei ʻoe no ka hau hau, no ke aha ʻoe i hoʻohana ʻole ai i ka lālā? No ke aha i hana ʻole ai pēlā?

Loaʻa iā mākou ke ʻano o ka ʻōnaehana holoʻokoʻa i hoʻokahi waihona. ʻO Terraform, Puppet, nā palapala āpau e pili ana i kēia, aia lākou a pau i ka waihona hoʻokahi. Ma kēia ala hiki iā mākou ke hōʻoia e hoʻāʻo ʻia nā hoʻololi i hoʻohui ʻia. Inā he pūʻulu lālā, a laila aneane hiki ʻole ke mālama ʻia kēlā papahana. ʻEono mahina i hala, a ua hoʻokaʻawale loa lākou he ʻano hoʻopaʻi wale nō. ʻO kēia ka mea aʻu i makemake ai e holo ma mua o ka refactoring.

ʻo ia hoʻi, ʻaʻole hana?

ʻAʻole hana iki.

Ma ka lālā, ʻoki au i ka paheʻe waihona. ʻO ia hoʻi, inā ʻoe e hana no kēlā me kēia hoʻāʻo ʻana, no ka laʻana, aia ka hui A i kona makuakāne ponoʻī, ʻo ka hui B kona makuakāne ponoʻī, a laila ʻaʻole pono kēia. Ua hana mākou i kahi code kaiapuni hoʻāʻo hoʻokahi i hiki ke kūpono i nā mea a pau. ʻO ia hoʻi, ua lawelawe mākou i hoʻokahi code.

Aloha! ʻO Yura koʻu inoa! Mahalo no ka hōʻike! Nīnau e pili ana i nā modules. Ke ʻōlelo nei ʻoe ke hoʻohana nei ʻoe i nā modula. Pehea ʻoe e hoʻoholo ai i ka pilikia inā hoʻololi ʻia i hoʻokahi module i kūpono ʻole me ka hoʻololi ʻana o kekahi kanaka? Ke hoʻololi nei i nā modula a i ʻole e hoʻāʻo e lawe i kahi prodigy e hoʻokō i nā koi ʻelua?

ʻO kēia ka pilikia puʻu hau nui. ʻO kēia ka mea a mākou e pilikia ai i ka wā e hiki ai i kekahi hoʻololi hewa ke uhaʻi i kekahi ʻāpana o ka ʻoihana. A e ʻike ʻia ma hope o kekahi manawa lōʻihi.

ʻO ia hoʻi, ʻaʻole i hoʻoholo ʻia?

Hana ʻoe i nā modula honua. E pale i ka hau hau. A e holo pono nā mea a pau. ʻO ka hapa ʻelua o ka hōʻike e pili ana i ka pale ʻana.

Aloha! Mahalo no ka hōʻike! Makemake au e wehewehe. Ma hope o nā hiʻohiʻona he puʻu nui, kahi aʻu i hele mai ai. Pehea e hoʻohui ʻia ai ka Puppet a me ke kuleana?

ʻikepili hoʻohana.

ʻO ia hoʻi, ke kuha wale nei ʻoe i ka faila a hoʻokō i ia mea?

ʻO ka mea hoʻohana-ʻikepili kahi memo, ʻo ia hoʻi ke hana mākou i kahi clone kiʻi, a laila ala ʻo Daemon ma laila a hoʻāʻo e ʻike ʻo wai ʻo ia, heluhelu ʻo ia i kahi leka he mea hoʻohālikelike ukana.

ʻO ia hoʻi, he ʻano hana kaʻawale paha i hāʻawi ʻia?

ʻAʻole mākou i haku. Hoʻohana mākou.

Aloha! He nīnau wale nō kaʻu e pili ana i ka Mea hoʻohana - data. Ua ʻōlelo ʻoe aia nā pilikia ma laila, e hoʻouna paha kekahi i kahi mea i kahi hewa. Aia kekahi ala e mālama ai i ka mea hoʻohana - ʻikepili i ka Git like, i maopopo mau i ka mea a ka User-data e pili ana?

Hoʻokumu mākou i ka ʻikepili hoʻohana mai ka template. ʻO ia hoʻi, aia kekahi helu o nā mea hoʻololi i laila. A hana ʻo Terraform i ka hopena hope loa. No laila, ʻaʻole hiki iā ʻoe ke nānā wale i ka template a haʻi i ka mea e hana nei, no ka mea, pili nā pilikia āpau i ka manaʻo o ka mea hoʻomohala e hele ana ʻo ia i kahi kaula i kēia ʻano hoʻololi, a laila hoʻohana ʻia kahi array. A ʻo ia - bang a ʻo wau - pēlā-a-peia, pela-a-peia, ka laina aʻe, a ua haki nā mea a pau. Inā he kumuwaiwai hou kēia a hoʻāla ke kanaka, ʻike ʻaʻole hana kekahi mea, a laila hoʻoholo koke ʻia kēia. A inā ua hōʻano hou ʻia kēia pūʻulu autoscale, a laila i kekahi manawa e hoʻomaka ke pani ʻia nā manawa o ka hui autoscale. A paʻipaʻi, ʻaʻole hana kekahi mea. Eha.

ʻIke ʻia ʻo ka hoʻāʻo wale nō?

ʻAe, ʻike ʻoe i ka pilikia, hoʻohui ʻoe i nā ʻanuʻu hoʻāʻo ma laila. ʻO ia hoʻi, hiki ke hoʻāʻo ʻia ka huahana. Malia paha ʻaʻole maʻalahi, akā hiki iā ʻoe ke kau i kekahi mau hōʻailona - e nānā i ka mea hoʻohana-data i kui ʻia ma aneʻi.

ʻO Timur koʻu inoa. Maikaʻi loa ka loaʻa ʻana o nā hōʻike e pili ana i ka hoʻonohonoho pono ʻana iā Terraform.

ʻAʻole wau i hoʻomaka.

Manaʻo wau i ka ʻaha kūkā e hiki mai ana, aia paha. He nīnau maʻalahi kaʻu. No ke aha ʻoe e hoʻopaʻa nei i ka waiwai ma kahi module ʻokoʻa ma mua o ka hoʻohana ʻana i nā tfvars, ʻo ia hoʻi he module me nā waiwai ʻoi aku ka maikaʻi ma mua o nā tfvars?

ʻO ia hoʻi, pono wau e kākau maanei (paheʻe: Production/environment/settings.tf): domain = variable, domain vpcnetwork, vpcnetwork variable and stvars - loaʻa ka mea like?

Hana pololei mākou i kēlā. Ke nānā nei mākou i ka module kumu hoʻonohonoho, no ka laʻana.

ʻOiaʻiʻo, he tfvars kēia. Maikaʻi loa ʻo Tfvars i kahi ʻano hoʻāʻo. Loaʻa iaʻu nā tfvars no nā manawa nui, no nā mea liʻiliʻi. A hoʻolei au i hoʻokahi faila i loko o ka waihona. A loaʻa kaʻu mea i makemake ai. I ko mākou ʻike ʻana i nā ʻoihana, makemake mākou e ʻike a hoʻomaopopo koke i nā mea āpau. A no laila, pono ʻoe e nānā maanei, a laila e nānā i nā tfvars.

ʻIke ʻia aia nā mea a pau ma kahi hoʻokahi?

ʻAe, ʻo nā tfvars ke loaʻa iā ʻoe hoʻokahi code. A hoʻohana ʻia ia ma nā wahi like ʻole me nā nuances like ʻole. A laila e hoʻolei ʻoe i nā tfvars a loaʻa kāu mau nuances. A ʻo mākou nā ʻōnaehana ma ke ʻano he code ma kāna ʻano maʻemaʻe. Nānā a hoʻomaopopo.

Aloha! Ua ʻike paha ʻoe i nā kūlana i hoʻopilikia ai ka mea hāʻawi kapua i kāu mea i hana ai me Terraform? E ʻōlelo mākou e hoʻoponopono mākou i ka meta-data. Aia nā kī ssh. A hoʻolele mau ʻo Google i kāna meta-data, kāna mau kī ma laila. A kākau mau ʻo Terraform he mau loli. Ma hope o kēlā me kēia holo, ʻoiai inā ʻaʻohe mea e loli, ʻōlelo mau ʻo ia e hoʻonui ʻo ia i kēia kahua i kēia manawa.

Me nā kī, akā - ʻae, ua hoʻopili ʻia kahi ʻāpana o ka ʻoihana e ia mea, ʻo ia hoʻi, ʻaʻole hiki ke hoʻololi ʻo Terraform i kekahi mea. ʻAʻole hiki iā mākou ke hoʻololi i kekahi mea me ko mākou mau lima. I ko kakou noho ana me ia.

ʻO ia hoʻi, ua ʻike ʻoe i kēia, akā ʻaʻole i loaʻa i kekahi mea, pehea ʻo ia e hana ai a hana iā ia iho?

Minamina ʻae.

Aloha! ʻO Stanislav Starkov koʻu inoa. Leka. en Hui. Pehea ʻoe e hoʻoponopono ai i ka pilikia me ka hana ʻana i kahi hōʻailona ma ..., pehea ʻoe e hoʻohele ai i loko? E like me kaʻu e hoʻomaopopo ai, ma o ka mea hoʻohana - ʻikepili, e kuhikuhi i ka inoa hoʻokipa, hoʻoulu i ka Puppet? A ʻo ka ʻāpana ʻelua o ka nīnau. Pehea ʻoe e hoʻoponopono ai i kēia pilikia ma SG, ʻo ia hoʻi, ke hoʻopuka ʻoe iā SG, hoʻokahi haneli o nā ʻano like, pehea e inoa pololei ai?

ʻO kēlā mau hiʻohiʻona koʻikoʻi iā mākou, e kapa mākou iā lākou me ka nani. ʻO ka poʻe i pono ʻole, aia kahi postscript he hui autoscale kēia. A ma ka manaʻo hiki ke kui, a loaʻa i kahi hou.

ʻO ka pilikia me ka tag, ʻaʻohe pilikia, akā aia kahi hana. A hoʻohana nui mākou i nā hōʻailona, ​​​​no ka mea, nui a pipiʻi ka ʻōnaehana. A pono mākou e nānā i ke kālā i hoʻolilo ʻia, no laila e ʻae nā tags iā mākou e wehewehe i ka mea a me kahi i hele ai. A no laila, ʻo ka ʻimi ʻana i kahi mea ma ʻaneʻi he nui ke kālā i lilo.

He aha hou aʻe ka nīnau?

Ke hana ʻo SG i hoʻokahi haneli mau hihia, pono anei lākou e hoʻokaʻawale ʻia ma kekahi ʻano?

ʻAʻole, mai. Loaʻa i kēlā me kēia manawa kahi luna e haʻi mai iaʻu he pilikia koʻu. Inā hōʻike ka luna, a laila ʻike ka luna e pili ana iā ia a, ma ka liʻiliʻi loa, aia kāna IP address. Hiki iā ʻoe ke holo. ʻO ka lua, hoʻohana mākou i ke Kanikela no Discovery, kahi ʻaʻohe Kubernetes. A hōʻike pū ke Kanikela i ka helu IP o ka hihia.

ʻO ia hoʻi, ke huli pono nei ʻoe i ka IP, ʻaʻole ka inoa host?

ʻAʻole hiki ke hoʻokele ma ka inoa hoʻokipa, ʻo ia ka nui o lākou. Loaʻa nā mea hōʻike - AE, etc. Hiki iā ʻoe ke loaʻa ma kahi, hiki iā ʻoe ke hoʻolei iā ia i ka huli.

Aloha! Ua ʻike au he mea maikaʻi ʻo Terraform, i hoʻohālikelike ʻia i nā ao.

ʻAʻole wale.

ʻO kēia ka nīnau hoihoi iaʻu. Inā hoʻoholo ʻoe e neʻe, e ʻōlelo, i Bare Metal en masse me kāu mau manawa āpau? E pilikia paha? A i ʻole pono ʻoe e hoʻohana i nā huahana ʻē aʻe, no ka laʻana, ka Ansible like i ʻōlelo ʻia ma aneʻi?

ʻO Ansible kahi mea e pili ana i kekahi mea ʻē aʻe. ʻO ia hoʻi, ke holo nei ʻo Ansible i ka wā i hoʻomaka ai ka laʻana. A hana ʻo Terraform ma mua o ka hoʻomaka ʻana o ka hana. ʻAʻole ʻo ka hoʻololi ʻana i Bare Metal.

ʻAʻole i kēia manawa, akā hiki mai ka ʻoihana a ʻōlelo: "E hele mai."

Ke hoʻololi nei i kahi ao ʻē aʻe - ʻae, akā aia kahi hiʻohiʻona ʻokoʻa ma aneʻi. Pono ʻoe e kākau i ka code Terraform ma ke ʻano e hiki ai iā ʻoe ke hoʻololi i kekahi ao ʻē aʻe me ka liʻiliʻi o ka hoʻokahe koko.

I ka hoʻomaka ʻana, ʻo ka hana he agnostic kā mākou ʻoihana holoʻokoʻa, ʻo ia hoʻi, maikaʻi kekahi ao, akā i kekahi manawa ua haʻalele ka ʻoihana a ʻōlelo: "ʻAe, i nā makahiki e hiki mai ana ʻaʻole mākou e hele i kahi, hiki iā ʻoe ke hoʻohana i nā lawelawe mai Amazon ".

ʻAe ʻo Terraform iā ʻoe e hana i nā hana Front-End, hoʻonohonoho i ka PagerDuty, data docs, etc. He nui nā huelo. Hiki iā ia ke hoʻomalu i ka honua holoʻokoʻa.

Mahalo no ka hōʻike! Ua wili pū wau iā Terraform no 4 mau makahiki i kēia manawa. I ka pae o ka hoʻololi maʻalahi i Terraform, i ka ʻenehana, i kahi wehewehe wehewehe, ua alo mākou i kahi kūlana kahi e hana ai kekahi i kekahi mea ma ka lima, a ke hoʻāʻo nei ʻoe e hana i kahi hoʻolālā. A loaʻa iaʻu kekahi hewa ma laila. Pehea ʻoe e hana ai me ia mau pilikia? Pehea ʻoe e ʻike ai i nā kumuwaiwai nalowale i hōʻike ʻia?

ʻO ka hapa nui me ko mākou mau lima a me nā maka, inā ʻike mākou i kahi mea ʻē aʻe i loko o ka hōʻike, a laila e loiloi mākou i ka mea e hana nei ma laila, a i ʻole e pepehi wale mākou. Ma keʻano laulā, he mea maʻamau nā noi huki.

Inā he hewa, e hoʻihoʻi paha ʻoe? Ua ho'āʻo anei ʻoe e hana i kēia?

ʻAʻole, he hoʻoholo kēia a ke kanaka i kēia manawa ke ʻike ʻo ia i ka pilikia.

Source: www.habr.com