Zomangamanga monga code: kudziwana koyamba

Kampani yathu ili mkati mokweza gulu la SRE. Ndabwera munkhani yonseyi kuchokera kumbali yachitukuko. Pochita izi, ndinabwera ndi malingaliro ndi zidziwitso zomwe ndikufuna kugawana ndi opanga ena. M’nkhani yosinkhasinkha imeneyi ndikufotokoza zimene zikuchitika, mmene zikuchitikira, ndi mmene aliyense angapitirizire kukhala nazo.

Zomangamanga monga code: kudziwana koyamba

Kupitilira mndandanda wa zolemba zolembedwa kutengera zolankhula pazochitika zathu zamkati DevForum:

1. Mphaka wa Schrödinger wopanda bokosi: vuto la mgwirizano mu machitidwe ogawidwa.
2. Zomangamanga ngati code. (Muli pano)
3. Kupanga ma contract a Typescript pogwiritsa ntchito mitundu ya C #. (Zili mkati...)
4. Chiyambi cha Raft consensus algorithm. (Zili mkati...)
...

Tinaganiza zopanga gulu la SRE, ndikukhazikitsa malingaliro google sre. Iwo adalemba anthu opanga mapulogalamu awo omwe adawapanga ndikuwatumiza kuti akaphunzitse kwa miyezi ingapo.

Gululi linali ndi ntchito zophunzitsira izi:

  • Fotokozani zomangamanga zathu, zomwe nthawi zambiri zimakhala mu Microsoft Azure mumtundu wa code (Terraform ndi chilichonse chozungulira).
  • Phunzitsani omanga momwe angagwiritsire ntchito ndi zomangamanga.
  • Konzani oyambitsa ntchito.

Timayambitsa lingaliro la Infrastructure ngati code

Muchitsanzo chanthawi zonse chapadziko lonse lapansi (makonzedwe apamwamba), chidziwitso chokhudza zomangamanga chili m'malo awiri:

  1. Kapena mu mawonekedwe a chidziwitso m'mitu ya akatswiri.Zomangamanga monga code: kudziwana koyamba
  2. Kapena chidziwitsochi chili pamataipi ena, ena omwe amadziwika ndi akatswiri. Koma sizowona kuti wakunja (ngati gulu lathu lonse lifa mwadzidzidzi) lidzatha kudziwa zomwe zimagwira ntchito komanso momwe zimagwirira ntchito. Pakhoza kukhala zambiri zambiri pamakina: zowonjezera, ma cronjobs, mantha (onani. kukwera kwa disk) disk ndi mndandanda wopanda malire wa zomwe zingachitike. N’zovuta kumvetsa zimene zikuchitikadi.Zomangamanga monga code: kudziwana koyamba

Muzochitika zonsezi, tikupeza kuti takodwa mu kudalira:

  • kapena kuchokera kwa munthu amene amafa, kudwala, kugwa m'chikondi, kusinthasintha kwa maganizo ndi kungosiya ntchito;
  • kapena kuchokera ku makina ogwira ntchito, omwenso amagwa, amabedwa, ndipo amapereka zodabwitsa ndi zosokoneza.

Ndizosaneneka kuti zonse ziyenera kumasuliridwa m'makhodi owerengeka, osungika, olembedwa bwino ndi anthu.

Chifukwa chake, zomangamanga monga kachidindo (Incfastructure as Code - IaC) ndikufotokozera zonse zomwe zilipo mumtundu wa code, komanso zida zogwirizana nazo zogwirira ntchito ndikukhazikitsa maziko enieni kuchokera pamenepo.

Chifukwa chiyani kumasulira zonse kukhala ma code?Anthu si makina. Sangakumbukire chilichonse. Zochita za munthu ndi makina ndizosiyana. Chilichonse chopangidwa ndi makina chimakhala chachangu kuposa chilichonse chopangidwa ndi munthu. Chinthu chofunika kwambiri ndi gwero limodzi la choonadi.

Kodi mainjiniya atsopano a SRE amachokera kuti?Chifukwa chake, tidaganiza zolemba ganyu mainjiniya atsopano a SRE, koma tiwapeza kuti? Buku ndi mayankho olondola (Buku la Google SRE) imatiuza: kuchokera kwa opanga. Kupatula apo, amagwira ntchito ndi code, ndipo mumakwaniritsa malo abwino.

Tinawasaka kwambiri kwa nthawi yayitali pamsika wa anthu ogwira ntchito kunja kwa kampani yathu. Koma tiyenera kuvomereza kuti sitinapeze aliyense woyenerera zopempha zathu. Ndinayenera kufufuza pakati pa anthu amtundu wanga.

Mavuto Infrastructure monga code

Tsopano tiyeni tiwone zitsanzo za momwe zomangamanga zingasinthire kukhala ma code. Khodiyo imalembedwa bwino, yapamwamba kwambiri, yokhala ndi ndemanga ndi zolembera.

Chitsanzo cha code kuchokera ku Terraforma.

Zomangamanga monga code: kudziwana koyamba

Chitsanzo cha code kuchokera ku Ansible.

Zomangamanga monga code: kudziwana koyamba

Amuna, zikanakhala zosavuta! Tili m'dziko lenileni, ndipo nthawi zonse zimakhala zokonzeka kukudabwitsani, kukupatsani zodabwitsa komanso zovuta. Sindingachite popanda iwo panonso.

1. Vuto loyamba ndiloti nthawi zambiri IaC ndi mtundu wina wa dsl.

Ndipo DSL, nawonso, ndikufotokozera za kapangidwe kake. Momwemonso, zomwe muyenera kukhala nazo: Json, Yaml, zosintha kuchokera kumakampani akuluakulu omwe adabwera ndi dsl yawo (HCL imagwiritsidwa ntchito ngati terraform).

Vuto ndiloti silingakhale ndi zinthu zodziwika bwino monga:

  • zosintha;
  • mikhalidwe;
  • penapake palibe ndemanga, mwachitsanzo, mu Json, mwachisawawa samaperekedwa;
  • ntchito;
  • ndipo sindikunena ngakhale za zinthu zapamwamba monga makalasi, cholowa ndi zonse izo.

2. Vuto lachiwiri ndi code yotere ndiloti nthawi zambiri ndi malo osasinthika. Nthawi zambiri mumakhala ndikugwira ntchito ndi C #, i.e. ndi chinenero chimodzi, mulu umodzi, chilengedwe chimodzi. Ndipo apa muli ndi mitundu yayikulu yaukadaulo.

Ndizochitika zenizeni pamene bash ndi python ayambitsa njira yomwe Json amayikidwa. Mukusanthula, ndiye jenereta ina imapanga mafayilo ena 30. Pa zonsezi, zosintha zolowera zimalandiridwa kuchokera ku Azure Key Vault, zomwe zimakokedwa pamodzi ndi pulogalamu yowonjezera ya drone.io yolembedwa mu Go, ndipo zosinthazi zimadutsa yaml, yomwe idapangidwa chifukwa cha m'badwo kuchokera ku injini ya jsonnet template. Ndizovuta kukhala ndi code yofotokozedwa bwino mukakhala ndi malo osiyanasiyana.

Kukula kwachikhalidwe mkati mwa ntchito imodzi kumabwera ndi chilankhulo chimodzi. Apa timagwira ntchito ndi zilankhulo zambiri.

3. Vuto lachitatu ndikusintha. Tidazolowera kuziziritsa okonza (Ms Visual Studio, Jetbrains Rider) omwe amatichitira chilichonse. Ndipo ngakhale titakhala opusa, amatiuza kuti ndife olakwa. Zikuwoneka zachilendo komanso zachilengedwe.

Koma kwinakwake pafupi pali VSCode, momwe muli mapulagini omwe amaikidwa mwanjira ina, amathandizidwa kapena osathandizidwa. Mabaibulo atsopano anatuluka ndipo sanathandizidwe. Kusintha kwa banal pakukhazikitsa ntchito (ngakhale itakhalapo) imakhala vuto lovuta komanso losavuta. Kutchulanso kosavuta kwa zosinthika ndikubwerezanso pulojekiti yamafayilo khumi ndi awiri. Mudzakhala ndi mwayi ngati ayika zomwe mukufuna. Zachidziwikire, pali kuwunikiranso apa ndi apo, pali kumalizitsa, kwinakwake pali masanjidwe (ngakhale sikunandigwire ntchito pa Windows).

Pa nthawi yolemba izi vscode-terraform pulogalamu yowonjezera sizinatulutsidwebe kuti zithandizire mtundu wa 0.12, ngakhale watulutsidwa kwa miyezi itatu.

Yakwana nthawi yoti muiwale ...

  1. Kulakwitsa.
  2. Refactoring chida.
  3. Kumaliza basi.
  4. Kuzindikira zolakwika pakuphatikiza.

Ndizoseketsa, koma izi zimawonjezeranso nthawi yachitukuko ndikuwonjezera kuchuluka kwa zolakwika zomwe zimachitika mosapeweka.

Choyipa kwambiri ndichakuti timakakamizika kuganiza osati momwe tingapangire, kukonza mafayilo kukhala mafoda, kuwola, kupanga code kukhala yosasinthika, yowerengeka, ndi zina zotero, koma za momwe ndingalembe lamuloli molondola, chifukwa ndidalemba molakwika. .

Monga woyamba, mukuyesera kuphunzira terraforms, ndipo IDE sikukuthandizani konse. Pakakhala zolembedwa, lowani ndikuyang'ana. Koma ngati mukulowetsa chinenero chatsopano, IDE ingakuuzeni kuti pali mtundu wotere, koma palibe chinthu choterocho. Osachepera pa int kapena chingwe msinkhu. Izi nthawi zambiri zimakhala zothandiza.

Nanga mayesowo?

Mumafunsa kuti: "Nanga bwanji mayeso, okonza mapulogalamu?" Anyamata ozama amayesa chilichonse pakupanga, ndipo ndizovuta. Nachi chitsanzo cha mayeso a mayunitsi a gawo la terraform kuchokera patsamba Microsoft.

Zomangamanga monga code: kudziwana koyamba

Iwo ali ndi zolemba zabwino. Ndakhala ndimakonda Microsoft chifukwa cha njira yake yolembera zolemba ndi maphunziro. Koma simukuyenera kukhala amalume Bob kuti mumvetsetse kuti iyi si code yabwino. Onani kutsimikizira kumanja.

Vuto ndi kuyesa kwa unit ndikuti inu ndi ine titha kuwona kulondola kwa zomwe Json adatulutsa. Ndidaponya magawo 5 ndikupatsidwa nsalu ya Json yokhala ndi mizere 2000. Nditha kusanthula zomwe zikuchitika pano, kutsimikizira zotsatira za mayeso...

Ndizovuta kuwerengera Json mu Go. Ndipo muyenera kulemba mu Go, chifukwa terraform mu Go ndi njira yabwino yoyesera muchilankhulo chomwe mumalemba. Bungwe la code palokha ndilofooka kwambiri. Nthawi yomweyo, iyi ndiye laibulale yabwino kwambiri yoyesera.

Microsoft yokha imalemba ma modules ake, kuwayesa motere. Inde ndi Open Source. Zonse zomwe ndikunena mukhoza kubwera kudzakonza. Ndikhoza kukhala pansi ndi kukonza chirichonse mu sabata, gwero lotseguka VS code mapulagini, terraforms, kupanga pulogalamu yowonjezera kwa wokwera. Mwina lembani ma analyzer angapo, onjezani ma linter, perekani laibulale yoyesa. Ndikhoza kuchita zonse. Koma sizomwe ndimayenera kuchita.

Njira zabwino zoyendetsera Infrastructure monga code

Tiyeni tipitirire. Ngati palibe mayeso mu IaC, IDE ndi kukonza ndizoyipa, ndiye kuti payenera kukhala njira zabwino kwambiri. Ndangopita ku Google Analytics ndikufanizira mafunso awiri osakira: Njira zabwino za Terraform ndi njira zabwino za c#.

Zomangamanga monga code: kudziwana koyamba

Kodi tikuwona chiyani? Ziwerengero zopanda chifundo sizikutikomera. Kuchuluka kwa zinthu ndizofanana. Pachitukuko cha C #, timangokhala ndi zinthu zambiri, tili ndi machitidwe abwino kwambiri, pali mabuku olembedwa ndi akatswiri, komanso mabuku olembedwa pamabuku ndi akatswiri ena omwe amatsutsa mabukuwo. Nyanja ya zolemba zovomerezeka, zolemba, maphunziro ophunzitsira, komanso tsopano komanso chitukuko chotseguka.

Ponena za pempho la IaC: apa mukuyesera kutolera zambiri pang'onopang'ono kuchokera pazambiri kapena malipoti a HashiConf, kuchokera pazolembedwa zovomerezeka ndi nkhani zambiri pa Github. Momwe mungagawire ma module awa ambiri, chochita nawo? Zikuwoneka kuti ili ndi vuto lenileni ... Pali anthu ammudzi, njonda, pomwe pafunso lililonse mudzapatsidwa ndemanga za 10 pa Github. Koma siziri ndendende.

Tsoka ilo, panthawiyi, akatswiri akuyamba kuonekera. Ndi ochepa kwambiri mpaka pano. Ndipo anthu ammudzi pawokha akucheza pamlingo wamba.

Kodi zonsezi zikupita kuti ndi choti tichite

Mutha kusiya chilichonse ndikubwerera ku C #, kudziko la okwera. Koma ayi. Mungavutike bwanji kuchita izi ngati simukupeza yankho. Pansipa ndikuwonetsa malingaliro anga okhazikika. Mutha kutsutsana nane mu ndemanga, zidzakhala zosangalatsa.

Inemwini, ndikuchita kubetcherana pazinthu zingapo:

  1. Chitukuko m'derali chikuchitika mofulumira kwambiri. Nayi dongosolo la zopempha za DevOps.

    Zomangamanga monga code: kudziwana koyamba

    Mutuwu ukhoza kukhala wachipongwe, koma mfundo yakuti gawoli likukula limapereka chiyembekezo.

    Ngati china chake chikukula mwachangu, ndiye kuti anthu anzeru adzawonekera omwe angakuuzeni zoyenera kuchita ndi zomwe simuyenera kuchita. Kuwonjezeka kwa kutchuka kumabweretsa mfundo yakuti mwinamwake wina adzakhala ndi nthawi yoti awonjezere plugin ku jsonnet kwa vscode, zomwe zidzakuthandizani kuti mupitirize kukwaniritsa ntchitoyi, m'malo mozifufuza kudzera pa ctrl + shift + f. Pamene zinthu zikusintha, zinthu zambiri zimawonekera. Kutulutsidwa kwa buku kuchokera ku Google lokhudza SRE ndi chitsanzo chabwino kwambiri cha izi.

  2. Pali njira ndi machitidwe opangidwa mu chitukuko chokhazikika chomwe tingagwiritse ntchito bwino apa. Inde, pali ma nuances okhala ndi kuyezetsa komanso malo osasinthika, zida zosakwanira, koma machitidwe ambiri adasonkhanitsidwa omwe angakhale othandiza komanso othandiza.

    Chitsanzo chaching'ono: mgwirizano pogwiritsa ntchito mapulogalamu awiri. Zimathandiza kwambiri kuzindikira. Mukakhala ndi mnansi pafupi amene akuyeseranso kumvetsetsa chinachake, pamodzi mudzamvetsetsa bwino.

    Kumvetsetsa momwe refactoring imachitikira kumathandizira kuti izi zitheke ngakhale zitakhala choncho. Ndiko kuti, simungasinthe chilichonse nthawi imodzi, koma sinthani dzina, kenaka musinthe malo, ndiye kuti mutha kuwonetsa gawo lina, o, koma palibe ndemanga zokwanira pano.

Pomaliza

Ngakhale kuti malingaliro anga angawoneke ngati opanda chiyembekezo, ndimayang'ana zam'tsogolo ndi chiyembekezo ndikuyembekeza moona mtima kuti zonse zikhala bwino kwa ife (ndi inu).

Mbali yachiwiri ya nkhaniyi ikukonzedwanso. M'menemo, ndilankhula za momwe tidayesera kugwiritsa ntchito njira zachitukuko kuti tipititse patsogolo maphunziro athu ndikugwira ntchito ndi zomangamanga.

Source: www.habr.com

Kuwonjezera ndemanga