Amayederun bi koodu: akọkọ acquaintance

Ile-iṣẹ wa wa ni ilana ti wiwọ ẹgbẹ SRE kan. Mo wa sinu gbogbo itan yii lati ẹgbẹ idagbasoke. Ninu ilana naa, Mo wa pẹlu awọn ero ati awọn oye ti Mo fẹ pin pẹlu awọn idagbasoke miiran. Ninu nkan iṣaro yii Mo sọrọ nipa ohun ti n ṣẹlẹ, bii o ṣe n ṣẹlẹ, ati bii gbogbo eniyan ṣe le tẹsiwaju lati gbe pẹlu rẹ.

Amayederun bi koodu: akọkọ acquaintance

Ilọsiwaju ti lẹsẹsẹ awọn nkan ti a kọ da lori awọn ọrọ ni iṣẹlẹ inu wa DevForum:

1. Schrödinger's cat lai apoti: iṣoro ti ipohunpo ni awọn ọna ṣiṣe ti a pin.
2. Amayederun bi koodu. (O wa nibi)
3. Iran ti Typescript siwe lilo C # si dede. (Ni ilọsiwaju...)
4. Ifihan si Raft ipohunpo alugoridimu. (Ni ilọsiwaju...)
...

A pinnu lati ṣẹda ẹgbẹ SRE kan, imuse awọn imọran google sre. Wọn gba awọn olupilẹṣẹ lati ọdọ awọn olupilẹṣẹ tiwọn wọn si ranṣẹ si ikẹkọ fun ọpọlọpọ awọn oṣu.

Ẹgbẹ naa ni awọn iṣẹ ikẹkọ wọnyi:

  • Ṣe apejuwe awọn amayederun wa, eyiti o jẹ julọ ni Microsoft Azure ni irisi koodu (Terraform ati ohun gbogbo ni ayika).
  • Kọ awọn olupilẹṣẹ bi o ṣe le ṣiṣẹ pẹlu awọn amayederun.
  • Mura Difelopa fun ojuse.

A ṣafihan ero ti Awọn amayederun bi koodu

Ni awoṣe deede ti agbaye (isakoso kilasika), imọ nipa awọn amayederun wa ni awọn aaye meji:

  1. Tabi ni irisi imọ ni awọn olori awọn amoye.Amayederun bi koodu: akọkọ acquaintance
  2. Tabi alaye yii wa lori diẹ ninu awọn onkọwe, diẹ ninu eyiti awọn amoye mọ. Ṣugbọn kii ṣe otitọ pe alade kan (ti o ba jẹ pe gbogbo ẹgbẹ wa lojiji ku) yoo ni anfani lati ṣawari ohun ti o ṣiṣẹ ati bi o ṣe n ṣiṣẹ. Alaye pupọ le wa lori ẹrọ kan: awọn ẹya ẹrọ, cronjobs, ẹru (wo. iṣagbesori disk) disk ati ki o kan ailopin akojọ ti awọn ohun ti o le ṣẹlẹ. O soro lati ni oye ohun ti n ṣẹlẹ gaan.Amayederun bi koodu: akọkọ acquaintance

Ni awọn ọran mejeeji, a rii ara wa ni idẹkùn ni di igbẹkẹle:

  • tabi lati ọdọ eniyan ti o ku, ti o wa labẹ aisan, ti o ṣubu ni ifẹ, awọn iyipada iṣesi ati irọrun banal layoffs;
  • tabi lati inu ẹrọ ti n ṣiṣẹ ni ti ara, eyiti o tun ṣubu, ti ji, ti o ṣafihan awọn iyanilẹnu ati awọn aibalẹ.

O lọ laisi sisọ pe apere ohun gbogbo yẹ ki o tumọ si kika eniyan, ṣetọju, koodu kikọ daradara.

Nitorinaa, awọn amayederun bi koodu (Incfastructure as Code - IaC) jẹ apejuwe ti gbogbo awọn amayederun ti o wa tẹlẹ ni irisi koodu, ati awọn irinṣẹ ti o jọmọ fun ṣiṣẹ pẹlu rẹ ati imuse awọn amayederun gidi lati ọdọ rẹ.

Kilode ti o tumọ ohun gbogbo sinu koodu?Eniyan kii ṣe ẹrọ. Wọn ko le ranti ohun gbogbo. Ihuwasi ti eniyan ati ẹrọ kan yatọ. Ohunkohun ti adaṣe jẹ iyara yiyara ju ohunkohun ti eniyan ṣe lọ. Ohun pataki julọ ni orisun kan ti otitọ.

Nibo ni awọn onimọ-ẹrọ SRE tuntun ti wa?Nitorinaa, a pinnu lati bẹwẹ awọn onimọ-ẹrọ SRE tuntun, ṣugbọn nibo ni lati gba wọn lati? Iwe pẹlu awọn idahun to pe (Google SRE Iwe) sọ fún wa: lati kóòdù. Lẹhin ti gbogbo, ti won ṣiṣẹ pẹlu awọn koodu, ati awọn ti o se aseyori awọn bojumu ipinle.

A wa ọpọlọpọ fun igba pipẹ fun wọn lori ọja eniyan ni ita ile-iṣẹ wa. Ṣugbọn a ni lati gba pe a ko rii ẹnikẹni ti o baamu awọn ibeere wa. Mo ni lati wa laarin awọn eniyan mi.

Awọn iṣoro Amayederun bi koodu

Bayi jẹ ki a wo awọn apẹẹrẹ ti bii awọn amayederun ṣe le jẹ koodu lile sinu koodu. Awọn koodu ti wa ni daradara kọ, ga didara, pẹlu comments ati indentations.

Apeere koodu lati Terraforma.

Amayederun bi koodu: akọkọ acquaintance

Apeere koodu lati Ansible.

Amayederun bi koodu: akọkọ acquaintance

Awọn arakunrin, ti o ba jẹ pe o rọrun pupọ! A wa ni aye gidi, ati pe o ṣetan nigbagbogbo lati ṣe iyanu fun ọ, ṣafihan pẹlu awọn iyanilẹnu ati awọn iṣoro. Ko le ṣe laisi wọn nibi boya.

1. Iṣoro akọkọ ni pe ni ọpọlọpọ igba IaC jẹ diẹ ninu iru dsl.

Ati DSL, ni ọna, jẹ apejuwe ti eto naa. Ni deede diẹ sii, kini o yẹ ki o ni: Json, Yaml, awọn iyipada lati awọn ile-iṣẹ nla kan ti o wa pẹlu dsl tiwọn (HCL ni lilo ni terraform).

Iṣoro naa ni pe o le ni irọrun ko ni iru awọn nkan ti o faramọ gẹgẹbi:

  • awọn oniyipada;
  • awọn ipo;
  • nibiti ko si awọn asọye, fun apẹẹrẹ, ni Json, nipa aiyipada wọn ko pese;
  • awọn iṣẹ;
  • ati pe Emi ko paapaa sọrọ nipa iru awọn ohun ipele giga bi awọn kilasi, iní ati gbogbo iyẹn.

2. Awọn keji isoro pẹlu iru koodu ni wipe julọ igba o jẹ a orisirisi eniyan ayika. Nigbagbogbo o joko ati ṣiṣẹ pẹlu C #, i.e. pẹlu ede kan, akopọ kan, ilolupo eda abemi kan. Ati pe nibi o ni ọpọlọpọ awọn imọ-ẹrọ pupọ.

O jẹ ipo gidi pupọ nigbati bash pẹlu Python ṣe ifilọlẹ ilana diẹ ninu eyiti o fi sii Json. O ṣe itupalẹ rẹ, lẹhinna olupilẹṣẹ miiran ṣe agbejade awọn faili 30 miiran. Fun gbogbo eyi, awọn oniyipada titẹ sii ni a gba lati Azure Key Vault, eyiti o fa papọ nipasẹ ohun itanna kan fun drone.io ti a kọ sinu Go, ati awọn oniyipada wọnyi kọja nipasẹ yaml, eyiti o jẹ ipilẹṣẹ bi abajade ti iran lati inu ẹrọ awoṣe jsonnet. O jẹ ohun ti o soro lati ni muna daradara apejuwe koodu nigba ti o ba ni iru kan Oniruuru ayika.

Idagbasoke aṣa laarin ilana ti iṣẹ kan wa pẹlu ede kan. Nibi a ṣiṣẹ pẹlu nọmba nla ti awọn ede.

3. Awọn kẹta isoro ni yiyi. A lo lati dara awọn olootu (Ms Visual Studio, Jetbrains Rider) ti o ṣe ohun gbogbo fun wa. Ati paapa ti a ba jẹ aṣiwere, wọn yoo sọ pe a ṣe aṣiṣe. O dabi deede ati adayeba.

Ṣugbọn ibikan nitosi VSCode wa, ninu eyiti awọn afikun wa ti o ti fi sii bakan, atilẹyin tabi ko ṣe atilẹyin. Awọn ẹya titun wa jade ati pe wọn ko ni atilẹyin. Iyipada banal si imuse iṣẹ kan (paapaa ti o ba wa) di iṣoro eka ati ti kii ṣe bintin. Orukọ ti o rọrun ti oniyipada jẹ atunwi ninu iṣẹ akanṣe ti awọn faili mejila kan. Iwọ yoo ni orire ti o ba gbe ohun ti o nilo. Nitoribẹẹ, ina ẹhin wa nibi ati nibẹ, ipari-laifọwọyi wa, ibikan ni ọna kika (botilẹjẹpe ko ṣiṣẹ fun mi ni terraform lori Windows).

Ni akoko kikọ yii vscode-terraform itanna ko tii tu silẹ lati ṣe atilẹyin ẹya 0.12, botilẹjẹpe o ti tu silẹ fun oṣu mẹta.

O to akoko lati gbagbe nipa ...

  1. N ṣatunṣe aṣiṣe.
  2. Refactoring ọpa.
  3. Ipari aifọwọyi.
  4. Ṣiṣawari awọn aṣiṣe lakoko akopọ.

O jẹ ẹrin, ṣugbọn eyi tun mu akoko idagbasoke pọ si ati pọ si nọmba awọn aṣiṣe ti o ṣẹlẹ laiṣe.

Ohun ti o buru julọ ni pe a fi agbara mu lati ronu kii ṣe nipa bi a ṣe le ṣe apẹrẹ, ṣeto awọn faili sinu awọn folda, decompose, jẹ ki koodu ṣetọju, kika, ati bẹbẹ lọ, ṣugbọn nipa bii MO ṣe le kọ aṣẹ yii ni deede, nitori pe bakan Mo kọ ni aṣiṣe. .

Gẹgẹbi olubere, o n gbiyanju lati kọ ẹkọ terraforms, ati pe IDE ko ṣe iranlọwọ fun ọ rara. Nigbati iwe ba wa, wọle ki o wo. Ṣugbọn ti o ba n wọle si ede siseto tuntun, IDE yoo sọ fun ọ pe iru iru wa, ṣugbọn ko si iru nkan bẹẹ. O kere ju ni int tabi ipele okun. Eleyi jẹ igba wulo.

Kini nipa awọn idanwo naa?

O beere: “Kini nipa awọn idanwo naa, awọn olutọpa awọn oluṣewadii?” Awọn eniyan pataki ṣe idanwo ohun gbogbo lori iṣelọpọ, ati pe o le. Eyi jẹ apẹẹrẹ ti idanwo ẹyọkan fun module terraform lati oju opo wẹẹbu naa Microsoft.

Amayederun bi koodu: akọkọ acquaintance

Wọn ni awọn iwe aṣẹ to dara. Mo ti nifẹ nigbagbogbo Microsoft fun ọna rẹ si iwe ati ikẹkọ. Ṣugbọn o ko nilo lati jẹ Arakunrin Bob lati loye pe eyi kii ṣe koodu pipe. Akiyesi afọwọsi si ọtun.

Iṣoro pẹlu idanwo ẹyọkan ni pe iwọ ati Emi le ṣayẹwo deede ti iṣelọpọ Json. Mo ju sinu 5 sile ati awọn ti a fun a Json footcloth pẹlu 2000 ila. Mo le ṣe itupalẹ ohun ti n ṣẹlẹ nibi, fọwọsi abajade idanwo…

O soro lati ṣe itupalẹ Json ni Go. Ati pe o nilo lati kọ ni Go, nitori terraform ni Go jẹ adaṣe ti o dara fun idanwo ni ede ti o kọ. Eto ti koodu funrararẹ jẹ alailagbara pupọ. Ni akoko kanna, eyi ni ile-ikawe ti o dara julọ fun idanwo.

Microsoft funrararẹ kọ awọn modulu rẹ, ṣe idanwo wọn ni ọna yii. Dajudaju o jẹ Open Source. Gbogbo ohun ti Mo n sọ nipa rẹ le wa ṣe atunṣe. Mo le joko si isalẹ ki o ṣatunṣe ohun gbogbo ni ọsẹ kan, ṣiṣi awọn afikun koodu VS koodu, awọn terraforms, ṣe ohun itanna kan fun ẹlẹṣin. Boya kọ kan tọkọtaya ti analyzers, fi linters, tiwon a ìkàwé fun igbeyewo. Mo le ṣe ohun gbogbo. Ṣugbọn iyẹn kii ṣe ohun ti o yẹ ki n ṣe.

Awọn amayederun ti o dara julọ bi koodu

Jẹ ki a tẹsiwaju. Ti ko ba si awọn idanwo ni IaC, IDE ati yiyi jẹ buburu, lẹhinna o yẹ ki o kere ju awọn iṣe ti o dara julọ. Mo kan lọ si Awọn atupale Google ati ṣe afiwe awọn ibeere wiwa meji: Terraform awọn iṣe ti o dara julọ ati awọn iṣe c# ti o dara julọ.

Amayederun bi koodu: akọkọ acquaintance

Kini a ri? Awọn iṣiro aláìláàánú ko si ni ojurere wa. Iwọn ohun elo jẹ kanna. Ni idagbasoke C #, a ti wa ni irọrun ni awọn ohun elo, a ni awọn iṣe ti o dara julọ, awọn iwe wa ti a kọ nipasẹ awọn amoye, ati awọn iwe ti a kọ sori awọn iwe nipasẹ awọn amoye miiran ti o ṣofintoto awọn iwe yẹn. Okun ti iwe aṣẹ, awọn nkan, awọn iṣẹ ikẹkọ, ati ni bayi tun ṣii idagbasoke orisun.

Bi fun ibeere IaC: nibi o n gbiyanju lati gba alaye diẹ nipasẹ bit lati fifuye giga tabi awọn ijabọ HashiConf, lati awọn iwe aṣẹ osise ati awọn ọran lọpọlọpọ lori Github. Bii o ṣe le pin awọn modulu wọnyi ni apapọ, kini lati ṣe pẹlu wọn? O dabi pe eyi jẹ iṣoro gidi kan… Agbegbe kan wa, awọn arakunrin, nibiti fun ibeere eyikeyi yoo fun ọ ni awọn asọye 10 lori Github. Ṣugbọn kii ṣe deede.

Laanu, ni aaye yii ni akoko, awọn amoye n bẹrẹ lati farahan. Nibẹ ni o wa ju diẹ ninu wọn bẹ jina. Ati pe agbegbe funrarẹ ti wa ni idorikodo ni ipele alakọbẹrẹ.

Nibo ni gbogbo eyi n lọ ati kini lati ṣe

O le ju ohun gbogbo silẹ ki o pada si C #, si agbaye ti ẹlẹṣin. Ṣugbọn rara. Kini idi ti iwọ paapaa yoo ṣe wahala lati ṣe eyi ti o ko ba le wa ojutu kan. Ni isalẹ Mo ṣafihan awọn ipinnu ero-ọrọ mi. O le jiyan pẹlu mi ninu awọn comments, o yoo jẹ awon.

Tikalararẹ, Mo n tẹtẹ lori awọn nkan diẹ:

  1. Idagbasoke ni agbegbe yii n ṣẹlẹ ni iyara pupọ. Eyi ni iṣeto awọn ibeere fun DevOps.

    Amayederun bi koodu: akọkọ acquaintance

    Koko naa le jẹ aruwo, ṣugbọn otitọ pe aaye naa n dagba ni ireti diẹ.

    Ti nkan ba dagba ni iyara, lẹhinna awọn eniyan ọlọgbọn yoo han dajudaju tani yoo sọ fun ọ kini lati ṣe ati kini kii ṣe. Ilọsoke ti gbaye-gbale nyorisi otitọ pe boya ẹnikan yoo ni akoko lati nipari ṣafikun ohun itanna kan si jsonnet fun vscode, eyiti yoo gba ọ laaye lati lọ siwaju si imuse iṣẹ naa, dipo wiwa rẹ nipasẹ ctrl + shift + f. Bi awọn nkan ṣe n dagbasoke, awọn ohun elo diẹ sii han. Itusilẹ iwe kan lati Google nipa SRE jẹ apẹẹrẹ ti o dara julọ ti eyi.

  2. Awọn imuposi ati awọn iṣe ti idagbasoke wa ni idagbasoke aṣa ti a le lo ni aṣeyọri nibi. Bẹẹni, awọn nuances wa pẹlu idanwo ati agbegbe orisirisi, ohun elo irinṣẹ ti ko to, ṣugbọn nọmba nla ti awọn iṣe ti kojọpọ ti o le wulo ati iranlọwọ.

    Apeere bintin: ifowosowopo nipasẹ siseto bata. O ṣe iranlọwọ pupọ lati ro ero rẹ. Nigbati o ba ni aladugbo wa nitosi ti o tun n gbiyanju lati loye nkan kan, papọ iwọ yoo loye daradara.

    Lílóye bí a ṣe ń ṣe àtúnṣe ṣe ń ṣèrànwọ́ láti gbé e jáde àní nínú irú ipò bẹ́ẹ̀. Iyẹn ni, o ko le yi ohun gbogbo pada ni ẹẹkan, ṣugbọn yi orukọ pada, lẹhinna yi ipo pada, lẹhinna o le ṣe afihan apakan kan, oh, ṣugbọn awọn asọye ko to nibi.

ipari

Bíótilẹ o daju pe ero mi le dabi ireti, Mo wo si ojo iwaju pẹlu ireti ati ni ireti otitọ pe ohun gbogbo yoo ṣiṣẹ fun wa (ati iwọ).

Adà awetọ hosọ lọ tọn yin awuwlena to bọdego. Ninu rẹ, Emi yoo sọrọ nipa bii a ṣe gbiyanju lati lo awọn iṣe idagbasoke agile lati mu ilana ikẹkọ wa dara ati ṣiṣẹ pẹlu awọn amayederun.

orisun: www.habr.com

Fi ọrọìwòye kun