Infrastructure li code: thawj acquaintance

Peb lub tuam txhab yog nyob rau hauv tus txheej txheem ntawm onboarding ib pab neeg SRE. Kuv tuaj rau hauv tag nrho zaj dab neeg no los ntawm kev txhim kho sab. Hauv cov txheej txheem, kuv tuaj nrog kev xav thiab kev nkag siab uas kuv xav qhia rau lwm tus tsim tawm. Hauv tsab xov xwm no kuv tham txog dab tsi tshwm sim, nws tshwm sim li cas, thiab yuav ua li cas txhua tus tuaj yeem ua neej nyob nrog nws.

Infrastructure li code: thawj acquaintance

Kev txuas ntxiv ntawm cov kab lus sau los ntawm cov lus hais ntawm peb qhov kev tshwm sim sab hauv DevForum:

1. Schrödinger's miv tsis muaj lub thawv: qhov teeb meem ntawm kev pom zoo hauv kev faib khoom.
2. Infrastructure li code. (Koj nyob ntawm no)
3. Tsim cov ntawv cog lus Typescript siv C# qauv. (Nyob rau hauv kev kawm ...)
4. Taw qhia rau Raft kev pom zoo algorithm. (Nyob rau hauv kev kawm ...)
...

Peb txiav txim siab los tsim ib pab neeg SRE, ua raws li cov tswv yim google ua. Lawv nrhiav cov programmers los ntawm lawv tus kheej cov neeg tsim khoom thiab xa lawv mus rau kev cob qhia ob peb lub hlis.

Pab neeg no muaj kev cob qhia cov haujlwm hauv qab no:

  • Piav txog peb cov infrastructure, uas feem ntau yog nyob rau hauv Microsoft Azure nyob rau hauv daim ntawv ntawm code (Terraform thiab txhua yam nyob ib ncig ntawm).
  • Qhia developers yuav ua li cas ua hauj lwm nrog infrastructure.
  • Npaj cov neeg tsim khoom rau lub luag haujlwm.

Peb qhia txog lub tswvyim ntawm Infrastructure li code

Nyob rau hauv lub niaj zaus qauv ntawm lub ntiaj teb no (classical tswj), kev paub txog infrastructure nyob rau hauv ob qhov chaw:

  1. Los yog nyob rau hauv daim ntawv ntawm kev paub nyob rau hauv lub taub hau ntawm cov kws txawj.Infrastructure li code: thawj acquaintance
  2. Los yog cov ntaub ntawv no yog nyob rau ntawm qee lub tshuab ntaus ntawv, qee qhov paub rau cov kws tshaj lij. Tab sis nws tsis yog qhov tseeb tias tus neeg sab nraud (yog tias peb pab pawg tag nrho tam sim ntawd tuag) yuav tuaj yeem paub qhov ua haujlwm thiab nws ua haujlwm li cas. Yuav muaj ntau cov ntaub ntawv ntawm lub tshuab: accessories, cronjobs, hem (saib. disk mounting) disk thiab tsuas yog ib daim ntawv teev tsis kawg ntawm dab tsi tuaj yeem tshwm sim. Nws nyuaj rau kev nkag siab tias muaj dab tsi tshwm sim.Infrastructure li code: thawj acquaintance

Hauv ob qho xwm txheej, peb pom peb tus kheej nyob rau hauv kev vam khom:

  • los yog los ntawm ib tug neeg uas yog neeg ntiaj teb, raug mob, poob rau hauv kev hlub, mus ob peb vas swings thiab tsuas banal layoffs;
  • los yog los ntawm lub tshuab ua haujlwm lub cev, uas tseem ntog, raug nyiag, thiab nthuav tawm kev xav tsis thoob thiab tsis yooj yim.

Nws mus yam tsis tau hais tias qhov zoo tshaj plaws txhua yam yuav tsum tau muab txhais ua tib neeg-nyeem tau, khaws tau, sau tau zoo.

Yog li, infrastructure raws li cov cai (Incfastructure li Code - IaC) yog ib qho kev piav qhia ntawm tag nrho cov infrastructure uas twb muaj lawm nyob rau hauv daim ntawv ntawm cov cai, nrog rau cov cuab yeej muaj feem xyuam rau kev ua hauj lwm nrog nws thiab siv tiag tiag infrastructure los ntawm nws.

Vim li cas thiaj txhais txhua yam rau hauv code?Tib neeg tsis yog tshuab. Lawv nco tsis tau txhua yam. Cov tshuaj tiv thaiv ntawm ib tug neeg thiab lub tshuab yog txawv. Txhua yam automated muaj peev xwm sai dua txhua yam ua los ntawm tib neeg. Qhov tseem ceeb tshaj plaws yog ib qho ntawm qhov tseeb.

SRE engineers tshiab tuaj qhov twg?Yog li, peb txiav txim siab ntiav SRE engineers tshiab, tab sis qhov twg yuav tau txais lawv los ntawm? Phau ntawv nrog cov lus teb kom raug (Google SRE Phau Ntawv) qhia peb: los ntawm cov neeg tsim khoom. Tom qab tag nrho, lawv ua haujlwm nrog cov cai, thiab koj ua tiav lub xeev zoo tagnrho.

Peb tau tshawb nrhiav ntau lub sijhawm ntev rau lawv ntawm cov neeg ua haujlwm ua lag luam sab nraum peb lub tuam txhab. Tab sis peb yuav tsum lees tias peb tsis tau pom ib tus neeg uas haum rau peb qhov kev thov. Kuv yuav tsum tau tshawb nrhiav ntawm kuv tus kheej cov neeg.

Teeb meem Infrastructure li code

Tam sim no cia saib cov piv txwv ntawm yuav ua li cas infrastructure yuav hardcoded rau hauv code. Cov cai sau tau zoo, zoo siab, nrog cov lus pom thiab indentations.

Piv txwv code los ntawm Terraforma.

Infrastructure li code: thawj acquaintance

Piv txwv code los ntawm Ansible.

Infrastructure li code: thawj acquaintance

Gentlemen, yog tias tsuas yog nws yooj yim heev! Peb nyob hauv lub ntiaj teb tiag tiag, thiab nws yeej ib txwm npaj ua rau koj xav tsis thoob, nthuav qhia koj nrog kev xav tsis thoob thiab teeb meem. Ua tsis tau yog tsis muaj lawv ntawm no thiab.

1. Thawj qhov teeb meem yog tias feem ntau IaC yog qee yam dsl.

Thiab DSL, nyob rau hauv lem, yog ib tug piav qhia ntawm tus qauv. Ntau qhov tseeb, koj yuav tsum muaj dab tsi: Json, Yaml, kev hloov kho los ntawm qee lub tuam txhab loj uas tuaj nrog lawv tus kheej dsl (HCL yog siv hauv terraform).

Qhov teeb meem yog tias nws yuav yooj yim tsis muaj xws li cov khoom paub xws li:

  • hloov pauv;
  • tej yam kev mob;
  • qee qhov tsis muaj lus pom, piv txwv li, hauv Json, los ntawm lub neej ntawd lawv tsis muab;
  • muaj nuj nqi;
  • thiab kuv tseem tsis tau hais txog tej yam uas muaj qib siab xws li chav kawm, qub txeeg qub teg thiab txhua yam ntawd.

2. Qhov thib ob qhov teeb meem nrog xws li code yog tias feem ntau nws yog ib tug heterogeneous ib puag ncig. Feem ntau koj zaum thiab ua haujlwm nrog C #, i.e. nrog ib hom lus, ib pawg, ib ecosystem. Thiab ntawm no koj muaj ntau yam technologies.

Nws yog qhov xwm txheej tiag tiag thaum bash nrog python launches qee cov txheej txheem rau hauv uas Json tau tso. Koj txheeb xyuas nws, ces qee lub tshuab hluav taws xob tsim lwm 30 cov ntaub ntawv. Rau tag nrho cov no, cov tswv yim sib txawv tau txais los ntawm Azure Key Vault, uas tau rub ua ke los ntawm lub plugin rau drone.io sau rau hauv Go, thiab cov kev hloov pauv no dhau los ntawm yaml, uas tau tsim los ntawm kev tsim los ntawm jsonnet template engine. Nws yog qhov nyuaj heev kom tau piav qhia cov cai nruj me ntsis thaum koj muaj qhov chaw sib txawv.

Kev loj hlob ib txwm nyob hauv lub moj khaum ntawm ib txoj haujlwm los nrog ib hom lus. Ntawm no peb ua haujlwm nrog ntau hom lus.

3. Qhov thib peb qhov teeb meem yog kho. Peb tau siv los kho cov neeg kho kom txias (Ms Visual Studio, Jetbrains Rider) uas ua txhua yam rau peb. Thiab txawm yog peb ruam los lawv yuav hais tias peb tsis yog. Nws zoo li qub thiab ntuj.

Tab sis qhov chaw nyob ze muaj VSCode, uas muaj qee qhov plugins uas tau teeb tsa, txhawb lossis tsis txhawb. Cov ntawv tshiab tawm los thiab tsis tau txais kev txhawb nqa. Kev hloov pauv hloov mus rau kev siv lub luag haujlwm (txawm tias nws muaj) dhau los ua qhov teeb meem nyuaj thiab tsis tseem ceeb. Ib qho yooj yim rename ntawm qhov sib txawv yog ib qho replay nyob rau hauv ib qhov project ntawm ib lub kaum os cov ntaub ntawv. Koj yuav muaj hmoo yog nws muab qhov koj xav tau. Tau kawg, muaj backlighting ntawm no thiab muaj, muaj nws pib-ua tiav, qhov chaw muaj formatting (txawm tias nws tsis ua haujlwm rau kuv hauv terraform ntawm Windows).

Thaum lub sijhawm sau ntawv no vscode-terraform plugin tseem tsis tau tso tawm los txhawb nqa version 0.12, txawm hais tias nws tau tso tawm rau 3 lub hlis.

Nws yog lub sijhawm tsis nco qab txog ...

  1. Kev debugging.
  2. Refactoring cuab yeej.
  3. Auto ua tiav.
  4. Tshawb xyuas qhov yuam kev thaum muab tso ua ke.

Nws yog funny, tab sis qhov no kuj nce lub sij hawm kev loj hlob thiab nce tus naj npawb ntawm cov yuam kev uas inevitably tshwm sim.

Qhov phem tshaj plaws yog tias peb raug yuam kom tsis txhob xav txog yuav ua li cas tsim, teeb tsa cov ntaub ntawv mus rau hauv folders, decompose, ua kom cov cai tswj tau, nyeem tau, thiab lwm yam, tab sis hais txog yuav ua li cas kuv thiaj li sau tau cov lus txib no kom raug, vim kuv tau sau qee yam tsis raug. .

Raws li ib tug pib, koj tab tom sim kawm terraforms, thiab IDE tsis pab koj li. Thaum muaj cov ntaub ntawv, mus rau hauv thiab saib. Tab sis yog tias koj tau nkag mus rau cov lus programming tshiab, IDE yuav qhia koj tias muaj hom zoo li no, tab sis tsis muaj qhov zoo li ntawd. Yam tsawg kawg ntawm qib int lossis hlua. Qhov no feem ntau pab tau.

Yuav ua li cas txog cov kev xeem?

Koj nug: "Yuav ua li cas txog qhov kev xeem, cov neeg ua haujlwm siab zoo?" Cov neeg mob hnyav sim txhua yam ntawm kev tsim khoom, thiab nws nyuaj. Ntawm no yog ib qho piv txwv ntawm chav ntsuas rau ib qho terraform module los ntawm lub vev xaib Microsoft.

Infrastructure li code: thawj acquaintance

Lawv muaj cov ntaub ntawv zoo. Kuv ib txwm nyiam Microsoft rau nws txoj hauv kev rau cov ntaub ntawv thiab kev cob qhia. Tab sis koj tsis tas yuav yog txiv ntxawm Bob kom nkag siab tias qhov no tsis yog txoj cai zoo meej. Nco ntsoov qhov validation rau sab xis.

Qhov teeb meem nrog kev sim ntsuas yog tias koj thiab kuv tuaj yeem tshawb xyuas qhov tseeb ntawm Json cov zis. Kuv muab pov rau hauv 5 qhov tsis muaj thiab tau muab Json daim ntaub nrog 2000 kab. Kuv tuaj yeem txheeb xyuas qhov tshwm sim ntawm no, ntsuas qhov ntsuas tau ...

Nws nyuaj rau kev txheeb xyuas Json hauv Go. Thiab koj yuav tsum tau sau rau hauv Go, vim tias terraform hauv Go yog qhov kev coj ua zoo rau kev sim ua hom lus uas koj sau. Lub koom haum ntawm txoj cai nws tus kheej tsis muaj zog heev. Nyob rau tib lub sijhawm, qhov no yog lub tsev qiv ntawv zoo tshaj plaws rau kev sim.

Microsoft nws tus kheej sau nws cov modules, sim lawv li no. Tau kawg nws yog Open Source. Txhua yam kuv hais txog koj tuaj yeem kho. Kuv tuaj yeem zaum thiab kho txhua yam hauv ib lub lim tiam, qhib qhov VS code plugins, terraforms, ua lub plugin rau cov neeg caij tsheb. Tej zaum sau ob peb lub ntsuas ntsuas, ntxiv linters, pab lub tsev qiv ntawv rau kev sim. Kuv ua tau txhua yam. Tab sis qhov ntawd tsis yog qhov kuv yuav tsum ua.

Cov kev coj ua zoo tshaj plaws Infrastructure li code

Cia peb mus. Yog tias tsis muaj cov kev xeem hauv IaC, IDE thiab kev kho qhov tsis zoo, ces yuav tsum muaj tsawg kawg yog cov kev coj ua zoo tshaj. Kuv nyuam qhuav mus rau Google Analytics thiab sib piv ob cov lus nug tshawb fawb: Terraform cov kev coj ua zoo tshaj plaws thiab c# kev coj ua zoo tshaj.

Infrastructure li code: thawj acquaintance

Peb pom dab tsi? Kev txheeb cais tsis zoo tsis nyob hauv peb txoj kev nyiam. Tus nqi ntawm cov khoom yog tib yam. Hauv C# txoj kev loj hlob, peb tsuas yog sash hauv cov ntaub ntawv, peb muaj cov kev coj ua zoo tshaj plaws, muaj cov phau ntawv sau los ntawm cov kws tshaj lij, thiab tseem muaj cov ntawv sau rau hauv phau ntawv los ntawm lwm cov kws tshaj lij uas thuam cov phau ntawv. Ib lub hiav txwv ntawm cov ntaub ntawv raug cai, cov khoom, cov kev kawm, thiab tam sim no kuj qhib qhov kev loj hlob.

Raws li kev thov IaC: ntawm no koj tab tom sim sau cov ntaub ntawv me ntsis los ntawm cov ntaub ntawv siab lossis HashiConf, los ntawm cov ntaub ntawv raug cai thiab ntau yam teeb meem ntawm Github. Yuav ua li cas faib cov modules feem ntau, yuav ua li cas nrog lawv? Zoo li qhov no yog qhov teeb meem tiag tiag... Muaj ib lub zej zog, cov txiv neej, qhov twg rau cov lus nug koj yuav raug muab 10 lus rau Github. Tab sis nws tsis yog raws nraim.

Hmoov tsis zoo, lub sijhawm no, cov kws tshaj lij tab tom pib tshwm sim. Tam sim no muaj tsawg dhau lawm. Thiab lub zej zog nws tus kheej yog dai tawm ntawm theem rudimentary.

Txhua yam no mus qhov twg thiab yuav ua li cas

Koj tuaj yeem tso txhua yam thiab rov qab mus rau C #, mus rau lub ntiaj teb ntawm tus neeg caij tsheb. Tab sis tsis muaj. Vim li cas koj tseem thab ua qhov no yog tias koj tsis tuaj yeem nrhiav kev daws teeb meem. Hauv qab no kuv nthuav qhia kuv cov lus xaus. Koj tuaj yeem sib cav nrog kuv hauv cov lus, nws yuav nthuav.

Tus kheej, Kuv tabtom twv ntawm ob peb yam:

  1. Kev loj hlob hauv cheeb tsam no tau tshwm sim sai heev. Nov yog lub sijhawm thov rau DevOps.

    Infrastructure li code: thawj acquaintance

    Lub ntsiab lus tej zaum yuav yog hype, tab sis qhov tseeb tias tus kheej loj hlob tuaj ua rau muaj kev cia siab.

    Yog tias ib yam dab tsi loj tuaj sai sai, cov neeg ntse yuav tshwm sim tiag tiag uas yuav qhia koj tias yuav ua dab tsi thiab tsis ua dab tsi. Qhov nce hauv kev muaj koob meej ua rau qhov tseeb tias tej zaum ib tus neeg yuav muaj sijhawm thaum kawg ntxiv lub plugin rau jsonnet rau vscode, uas yuav tso cai rau koj txav mus rau kev siv lub luag haujlwm, tsis yog nrhiav nws ntawm ctrl + ua haujlwm + f. Raws li tej yam evolve, ntau cov ntaub ntawv tshwm. Kev tso tawm phau ntawv los ntawm Google txog SRE yog qhov piv txwv zoo ntawm qhov no.

  2. Muaj cov txheej txheem tsim thiab kev coj ua hauv kev txhim kho cov qauv uas peb tuaj yeem ua tiav ntawm no. Yog, muaj nuances nrog kev sim thiab ib puag ncig heterogeneous, kev siv tsis txaus, tab sis muaj ntau qhov kev coj ua tau sau tseg uas tuaj yeem siv tau thiab pab tau.

    Ib qho piv txwv tsis tseem ceeb: kev sib koom tes los ntawm kev sib koom ua ke. Nws pab tau ntau heev kom paub nws. Thaum koj muaj ib tus neeg nyob ze uas tseem tab tom sim nkag siab qee yam, ua ke koj yuav nkag siab zoo dua.

    Kev nkag siab txog yuav ua li cas refactoring yog ua tau pab ua kom nws tawm txawm nyob rau hauv qhov xwm txheej zoo li no. Ntawd yog, koj tsis tuaj yeem hloov txhua yam hauv ib zaug, tab sis hloov lub npe, tom qab ntawd hloov qhov chaw, tom qab ntawd koj tuaj yeem qhia qee qhov, huag, tab sis tsis muaj lus txaus ntawm no.

xaus

Txawm hais tias qhov tseeb tias kuv qhov kev xav yuav zoo li tsis zoo, kuv saib mus rau yav tom ntej nrog kev cia siab thiab vam tias txhua yam yuav ua haujlwm rau peb (thiab koj).

Qhov thib ob ntawm tsab xov xwm tab tom npaj ua ntej. Hauv nws, kuv mam li tham txog yuav ua li cas peb tau sim siv cov kev coj ua agile los txhim kho peb txoj kev kawm thiab ua haujlwm nrog kev tsim kho vaj tse.

Tau qhov twg los: www.hab.com

Ntxiv ib saib