Infrastructure like code: ʻike mua

Ke hana nei kā mākou hui i kahi hui SRE. Ua komo au i kēia moʻolelo holoʻokoʻa mai ka ʻaoʻao hoʻomohala. Ma ke kaʻina hana, ua loaʻa iaʻu nā manaʻo a me nā ʻike aʻu e makemake ai e kaʻana like me nā mea hoʻomohala ʻē aʻe. Ma kēia ʻatikala noʻonoʻo e kamaʻilio wau e pili ana i ka mea e hana nei, pehea ia e hana nei, a pehea e hiki ai i nā mea a pau ke hoʻomau i ka noho ʻana me ia.

Infrastructure like code: ʻike mua

Ka hoʻomau ʻana o nā ʻatikala i kākau ʻia ma muli o nā haʻiʻōlelo ma kā mākou hanana kūloko DevForum:

1. ʻO ka pōpoki a Schrödinger me ka pahu ʻole: ka pilikia o ka ʻae ʻana i nā ʻōnaehana puʻupuʻu.
2. Hoʻolālā like code. (Aia ʻoe)
3. Hoʻokumu ʻia nā ʻaelike Typescript me ka hoʻohana ʻana i nā hiʻohiʻona C#. (Ke holo nei...)
4. Introduction to the Raft consensus algorithm. (Ke holo nei...)
...

Ua hoʻoholo mākou e hana i kahi hui SRE, e hoʻokō ana i nā manaʻo google sre. Ua kiʻi lākou i nā polokalamu polokalamu mai waena o kā lākou mau mea hoʻomohala a hoʻouna iā lākou e hoʻomaʻamaʻa no kekahi mau mahina.

Ua loaʻa i ka hui nā hana aʻo penei:

  • E wehewehe i kā mākou ʻoihana, ʻo ia ka hapa nui ma Microsoft Azure ma ke ʻano o ke code (Terraform a me nā mea āpau a puni).
  • E aʻo i nā mea hoʻomohala pehea e hana ai me nā ʻōnaehana.
  • E hoʻomākaukau i nā mea hoʻomohala no ka hana.

Hoʻokomo mākou i ka manaʻo o Infrastructure e like me ke code

Ma ke kumu hoʻohālike maʻamau o ka honua (classical administration), aia ka ʻike e pili ana i ka ʻoihana ma nā wahi ʻelua:

  1. A i ʻole ma ke ʻano o ka ʻike ma nā poʻo o nā loea.Infrastructure like code: ʻike mua
  2. A i ʻole aia kēia ʻike ma kekahi mau mīkini paʻi, a ʻike ʻia kekahi o ia mau mea i ka poʻe akamai. Akā ʻaʻole ia he ʻoiaʻiʻo e hiki i kahi mea ʻē aʻe (inā make koke kā mākou hui holoʻokoʻa) hiki ke ʻike i ka hana a me ke ʻano o ka hana. Hiki ke nui ka ʻike ma ka mīkini: nā mea komo, cronjobs, hoʻoweliweli (e ʻike. kau ʻana diski) disk a me kahi papa inoa pau ʻole o nā mea hiki ke hana. He paʻakikī ke hoʻomaopopo i ka mea e hana maoli nei.Infrastructure like code: ʻike mua

Ma nā hihia ʻelua, ʻike mākou ua paʻa mākou i ka hilinaʻi:

  • a i ʻole mai ke kanaka make, i loaʻa i ka maʻi, hāʻule i ke aloha, naʻau a me nā hana hoʻomaha maʻamau;
  • a i ʻole mai kahi mīkini hana kino, hāʻule pū, ʻaihue ʻia, a hōʻike mai i nā mea kupanaha a me nā pilikia.

ʻAʻole ia e ʻōlelo ʻia e unuhi ʻia nā mea a pau i ka helu kanaka hiki ke heluhelu ʻia, mālama ʻia, kākau maikaʻi ʻia.

No laila, ʻo ka ʻōnaehana e like me ke code (Incfastructure as Code - IaC) kahi wehewehe o ka ʻōnaehana holoʻokoʻa i ke ʻano o ke code, a me nā mea hana e pili ana no ka hana ʻana me ia a me ka hoʻokō ʻana i nā ʻōnaehana maoli mai ia mea.

No ke aha e unuhi ai i nā mea a pau i ke code?ʻAʻole nā ​​kānaka he mīkini. ʻAʻole hiki iā lākou ke hoʻomanaʻo i nā mea a pau. ʻOkoʻa ka hopena o ke kanaka a me ka mīkini. ʻOi aku ka wikiwiki o nā mea a pau i hana ʻia e ke kanaka. ʻO ka mea nui he kumu hoʻokahi o ka ʻoiaʻiʻo.

No hea mai nā ʻenekinia SRE hou?No laila, ua hoʻoholo mākou e hoʻolimalima i nā ʻenekini SRE hou, akā ma hea e kiʻi ai iā lākou? E puke me nā pane pololei (Buke SRE Google) haʻi mai iā mākou: mai nā mea hoʻomohala. Ma hope o nā mea a pau, hana lākou me ke code, a loaʻa iā ʻoe ke kūlana kūpono.

Ua ʻimi mākou no ka manawa lōʻihi no lākou ma ka mākeke limahana ma waho o kā mākou hui. Akā pono mākou e ʻae ʻaʻole i loaʻa iā mākou kekahi i kūpono i kā mākou noi. Pono wau e ʻimi i waena o koʻu poʻe ponoʻī.

Pilikia Infrastructure like code

I kēia manawa, e nānā kākou i nā hiʻohiʻona o ka hiki ke hoʻopaʻa ʻia ka ʻōnaehana i loko o ke code. Ua kākau maikaʻi ʻia ke code, kūlana kiʻekiʻe, me nā ʻōlelo a me nā indentations.

Laʻana code mai Terraforma.

Infrastructure like code: ʻike mua

Laʻana code mai Ansible.

Infrastructure like code: ʻike mua

E nā keʻena, inā he maʻalahi loa! Aia mākou i ka honua maoli, a ua mākaukau mau ia e kāhāhā iā ʻoe, e hāʻawi iā ʻoe i nā mea pīhoihoi a me nā pilikia. ʻAʻole hiki ke hana me ka ʻole o lākou ma ʻaneʻi.

1. ʻO ka pilikia mua, ʻo ia ma ka hapa nui o IaC kekahi ʻano dsl.

A ʻo DSL, ʻo ia ka wehewehe ʻana o ka hale. ʻOi aku ka pololei, he aha kāu e loaʻa ai: Json, Yaml, nā hoʻololi ʻana mai kekahi mau hui nui i hele mai me kā lākou dsl ponoʻī (hoʻohana ʻia ʻo HCL ma terraform).

ʻO ka pilikia, ʻaʻole hiki ke loaʻa nā mea maʻamau e like me:

  • nā hoʻololi;
  • nā kūlana;
  • ma kahi ʻaʻohe manaʻo, no ka laʻana, ma Json, ʻaʻole i hāʻawi ʻia;
  • nā hana;
  • ʻAʻole wau e kamaʻilio e pili ana i nā mea kiʻekiʻe e like me nā papa, ka hoʻoilina a me nā mea a pau.

2. ʻO ka lua o ka pilikia me ia code, ʻo ia ka mea pinepine he ʻano like ʻole. Noho maʻamau ʻoe a hana pū me C#, ʻo ia hoʻi. me hoʻokahi ʻōlelo, hoʻokahi ahu, hoʻokahi kaiaola. A eia ʻoe he ʻano ʻenehana nui loa.

He kūlana maoli ia i ka wā e hoʻomaka ai ka bash me ka python i kahi kaʻina i hoʻokomo ʻia ai ʻo Json. Hoʻopili ʻoe iā ia, a laila hana kekahi mea hana ʻē aʻe i 30 faila. No kēia mau mea a pau, loaʻa nā mea hoʻololi komo mai Azure Key Vault, i huki pū ʻia e kahi plugin no drone.io i kākau ʻia ma Go, a hele kēia mau ʻano i ka yaml, i hana ʻia ma muli o ka hanauna mai ka mīkini template jsonnet. He mea paʻakikī ka loaʻa ʻana o ke code i wehewehe maikaʻi ʻia inā loaʻa iā ʻoe kahi ʻano like ʻole.

ʻO ka hoʻomohala kuʻuna i loko o ke kāʻei o hoʻokahi hana me ka ʻōlelo hoʻokahi. Maʻaneʻi mākou e hana me ka nui o nā ʻōlelo.

3. ʻO ke kolu o ka pilikia ʻo ka hoʻokani ʻana. Hoʻohana mākou i nā mea hoʻoponopono hoʻomaha (Ms Visual Studio, Jetbrains Rider) e hana i nā mea āpau no mākou. A inā he naʻaupō mākou, e ʻōlelo lākou ua hewa mākou. He mea maʻamau a kūlohelohe.

Akā ma kahi kokoke i VSCode, aia kekahi mau plugins i hoʻokomo ʻia, kākoʻo ʻia a ʻaʻole kākoʻo ʻia. Ua puka mai nā mana hou a ʻaʻole i kākoʻo ʻia. ʻO kahi hoʻololi banal i ka hoʻokō ʻana i kahi hana (ʻoiai inā aia ia) e lilo i pilikia paʻakikī a ʻaʻohe pilikia. ʻO kahi inoa maʻalahi o kahi ʻano hoʻololi he replay i kahi papahana o nā faila he ʻumi. Laki ʻoe inā waiho ʻo ia i kāu mea e pono ai. ʻOiaʻiʻo, aia ka backlighting ma ʻaneʻi a ma laila, aia ka auto-completion, ma kahi kahi e hoʻopili ai (ʻoiai ʻaʻole ia i hana iaʻu i ka terraform ma Windows).

I ka manawa o keia kakau ana vscode-terraform plugin ʻaʻole i hoʻokuʻu ʻia e kākoʻo i ka mana 0.12, ʻoiai ua hoʻokuʻu ʻia no 3 mau mahina.

ʻO ka manawa kēia e poina ai...

  1. Debugging.
  2. Mea hana hana hou.
  3. Hoʻopau ʻakomi.
  4. Ke ʻike nei i nā hewa i ka wā o ka hōʻuluʻulu ʻana.

He mea ʻakaʻaka, akā hoʻonui kēia i ka manawa hoʻomohala a hoʻonui i ka nui o nā hewa i hiki ʻole ke kū.

ʻO ka mea ʻino loa, ʻaʻole mākou e noʻonoʻo e pili ana i ka hoʻolālā ʻana, hoʻonohonoho i nā faila i loko o nā waihona, decompose, mālama i ke code, hiki ke heluhelu ʻia, a pēlā aku, akā pehea e hiki ai iaʻu ke kākau pololei i kēia kauoha, no ka mea, ua kākau hewa wau. .

Ma ke ʻano he hoʻomaka, ke hoʻāʻo nei ʻoe e aʻo i nā terraforms, a ʻaʻole kōkua ka IDE iā ʻoe. Ke loaʻa nā palapala, e komo i loko a nānā. Akā inā ʻoe e komo ana i kahi ʻōlelo hoʻolālā hou, e haʻi ka IDE iā ʻoe aia kekahi ʻano like, akā ʻaʻohe mea like. Ma ka liʻiliʻi ma ka pae int a i ʻole ke kaula. Pono pinepine kēia.

Pehea na hoao ana?

Nīnau ʻoe: "Pehea e pili ana i nā hoʻokolohua, nā haku polokalamu polokalamu?" Hoʻāʻo nā kānaka koʻikoʻi i nā mea a pau ma ka hana ʻana, a paʻakikī. Eia kekahi laʻana o ka hoʻāʻo ʻāpana no kahi module terraform mai ka pūnaewele Microsoft.

Infrastructure like code: ʻike mua

Loaʻa iā lākou nā palapala maikaʻi. Ua makemake mau au iā Microsoft no kona hoʻokokoke ʻana i ka palapala a me ke aʻo ʻana. Akā ʻaʻole pono ʻoe e lilo ʻo ʻAnakala Bob no ka hoʻomaopopo ʻana ʻaʻole kēia he code kūpono. E nānā i ka hōʻoia ʻana ma ka ʻākau.

ʻO ka pilikia me kahi hoʻāʻo ʻāpana ʻo ʻoe a hiki iaʻu ke nānā i ka pololei o ka puka Json. Ua hoʻolei au i 5 mau ʻāpana a ua hāʻawi ʻia iaʻu i kahi lole wāwae Json me nā laina 2000. Hiki iaʻu ke kālailai i nā mea e hana nei ma ʻaneʻi, hōʻoia i ka hopena hōʻike...

He paʻakikī ke hoʻopau iā Json ma Go. A pono ʻoe e kākau ma Go, no ka mea he hana maikaʻi ka terraform ma Go no ka hoʻāʻo ʻana i ka ʻōlelo āu e kākau ai. He nāwaliwali loa ka hoʻonohonoho ʻana o ke code ponoʻī. I ka manawa like, ʻo kēia ka hale waihona puke maikaʻi loa no ka hoʻāʻo ʻana.

Ua kākau ʻo Microsoft i kāna mau modula, e hoʻāʻo iā lākou ma kēia ʻano. ʻOiaʻiʻo ʻo Open Source. Hiki iā ʻoe ke hele mai e hoʻoponopono i nā mea a pau aʻu e kamaʻilio nei. Hiki iaʻu ke noho i lalo a hoʻoponopono i nā mea a pau i loko o hoʻokahi pule, open source VS code plugins, terraforms, hana i kahi plugin no ka mea holo. E kākau paha i ʻelua mau mea loiloi, hoʻohui i nā linters, hāʻawi i kahi waihona no ka hoʻāʻo. Hiki iaʻu ke hana i nā mea a pau. Akā ʻaʻole ʻo ia kaʻu e hana ai.

ʻO nā hana maikaʻi ʻo Infrastructure e like me ke code

E neʻe kāua. Inā ʻaʻohe hoʻāʻo ma IaC, ʻino ka IDE a me ke kani ʻana, a laila pono e loaʻa nā hana maikaʻi loa. Ua hele wale au i Google Analytics a hoʻohālikelike i ʻelua mau nīnau hulina: Terraform best practices and c# best practices.

Infrastructure like code: ʻike mua

He aha kā mākou e ʻike nei? ʻAʻole maikaʻi nā helu ʻino iā mākou. Ua like ka nui o na mea. I ka hoʻomohala ʻana o C#, ʻaʻahu wale mākou i nā mea, loaʻa iā mākou nā hana maikaʻi loa, aia nā puke i kākau ʻia e ka poʻe akamai, a me nā puke i kākau ʻia ma nā puke e nā poʻe akamai ʻē aʻe e hoʻohewa nei i kēlā mau puke. He kai o nā palapala mana, nā ʻatikala, nā papa hoʻomaʻamaʻa, a i kēia manawa hoʻi i ka hoʻomohala kumu.

No ka IaC noi: eia ʻoe e hoʻāʻo nei e hōʻiliʻili i ka ʻike mai nā hōʻike kiʻekiʻe a i ʻole HashiConf, mai nā palapala mana a me nā pilikia he nui ma Github. Pehea e puunaue ai i keia mau modules ma ke ano nui, he aha ka hana me lakou? Me he mea lā he pilikia maoli kēia ... Aia kahi kaiāulu, nā keonimana, kahi no kekahi nīnau e hāʻawi ʻia iā ʻoe i nā manaʻo 10 ma Github. Akā ʻaʻole pololei.

ʻO ka mea pōʻino, i kēia manawa, ke hoʻomaka nei nā poʻe akamai e puka mai. He kakaikahi loa lakou i keia manawa. A ke kau nei ke kaiāulu ponoʻī ma ka pae kumu.

Ma hea e hele ai kēia mau mea a me ka mea e hana ai

Hiki iā ʻoe ke hāʻule i nā mea āpau a hoʻi i C #, i ke ao o ka mea holo. Akā ʻaʻole. No ke aha ʻoe e pilikia ai e hana i kēia inā ʻaʻole hiki iā ʻoe ke loaʻa kahi hopena. Ma lalo wau e hōʻike i kaʻu mau manaʻo manaʻo. Hiki iā ʻoe ke hoʻopaʻapaʻa me aʻu ma nā ʻōlelo, e hoihoi ia.

ʻO wau iho, ke pili nei au i kekahi mau mea:

  1. Ke holo wikiwiki nei ka hoʻomohala ʻana ma kēia wahi. Eia kahi papa inoa o nā noi no DevOps.

    Infrastructure like code: ʻike mua

    He hype paha ke kumuhana, akā ʻo ka ʻoiaʻiʻo o ka ulu ʻana o ka honua e hāʻawi i kahi manaʻolana.

    Inā ulu wikiwiki kekahi mea, a laila e ʻike maoli ʻia ka poʻe akamai e haʻi iā ʻoe i ka mea e hana ai a me ka mea e hana ʻole ai. ʻO ka piʻi ʻana o ka kaulana e alakaʻi i ka ʻoiaʻiʻo e loaʻa paha i kekahi manawa e hoʻohui hope i kahi plugin i jsonnet no vscode, e hiki ai iā ʻoe ke neʻe i ka hoʻokō ʻana i ka hana, ma mua o ka ʻimi ʻana iā ia ma o ctrl+shift+f. Ke ulu nei nā mea, ʻike ʻia nā mea hou aku. ʻO ka hoʻokuʻu ʻana o kahi puke mai Google e pili ana iā SRE he kumu hoʻohālike maikaʻi loa o kēia.

  2. Aia nā ʻenehana a me nā hana i kūkulu ʻia i ka hoʻomohala maʻamau i hiki iā mākou ke hoʻohana pono ma aneʻi. ʻAe, aia nā nuances me ka hoʻāʻo ʻana a me kahi ʻano heterogeneous, lawa ʻole nā ​​mea hana, akā ua hōʻuluʻulu ʻia ka nui o nā hana i hiki ke kōkua a kōkua.

    ʻO kahi hiʻohiʻona liʻiliʻi: ka hui pū ʻana ma o ka papahana pālua. He kōkua nui ia e ʻike. Ke loaʻa iā ʻoe kahi hoalauna e hoʻāʻo nei e hoʻomaopopo i kekahi mea, e hoʻomaopopo maikaʻi ʻoe.

    ʻO ka hoʻomaopopo ʻana i ka hana ʻana o ka refactoring e kōkua i ka hoʻokō ʻana i loko o ia kūlana. ʻO ia hoʻi, ʻaʻole hiki iā ʻoe ke hoʻololi i nā mea a pau i ka manawa hoʻokahi, akā e hoʻololi i ka inoa, a laila hoʻololi i ka wahi, a laila hiki iā ʻoe ke hōʻike i kekahi ʻāpana, e, akā ʻaʻole lawa nā manaʻo ma aneʻi.

hopena

ʻOiai ka manaʻo o koʻu noʻonoʻo ʻana he pessimistic, ke nānā nei au i ka wā e hiki mai ana me ka manaʻolana a me ka manaʻo maoli e holo maikaʻi nā mea a pau no mākou (a ʻo ʻoe).

Ke hoʻomākaukau ʻia nei ka ʻāpana ʻelua o ka ʻatikala aʻe. Ma loko, e kamaʻilio wau e pili ana i kā mākou hoʻāʻo ʻana e hoʻohana i nā hana hoʻomohala agile e hoʻomaikaʻi i kā mākou kaʻina aʻo a hana pū me nā ʻōnaehana.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka