Kayayyakin aiki azaman lambar: sanin farko

Kamfaninmu yana kan aiwatar da hawan ƙungiyar SRE. Na shigo cikin wannan labarin gaba daya daga bangaren ci gaba. A cikin wannan tsari, na zo da tunani da fahimta waɗanda nake so in raba tare da sauran masu haɓakawa. A cikin wannan labarin tunani na yi magana game da abin da ke faruwa, yadda yake faruwa, da yadda kowa zai iya ci gaba da rayuwa tare da shi.

Kayayyakin aiki azaman lambar: sanin farko

Ci gaba da jerin kasidu da aka rubuta bisa jawabai a taron mu na cikin gida DevForum:

1. Schrödinger's cat ba tare da akwati ba: matsalar yarjejeniya a cikin tsarin rarraba.
2. Kayayyakin aiki azaman code. (Kuna nan)
3. Ƙirƙirar kwangilolin Typescript ta amfani da nau'ikan C#. (Ana kai...)
4. Gabatarwa ga raft consensus algorithm. (Ana kai...)
...

Mun yanke shawarar ƙirƙirar ƙungiyar SRE, aiwatar da ra'ayoyin google sre. Sun dauki ma'aikatan shirye-shirye daga cikin masu haɓakawa kuma sun tura su horo na watanni da yawa.

Tawagar tana da ayyukan horo kamar haka:

  • Bayyana kayan aikin mu, wanda galibi ke cikin Microsoft Azure ta hanyar lamba (Terraform da duk abin da ke kewaye).
  • Koyawa masu haɓaka yadda ake aiki da abubuwan more rayuwa.
  • Shirya masu haɓakawa don aiki.

Muna gabatar da ra'ayi na Kayayyakin aiki azaman code

A cikin tsarin al'ada na duniya (gwamnatin gargajiya), ilimi game da abubuwan more rayuwa yana cikin wurare biyu:

  1. Ko kuma ta hanyar ilimi a cikin shugabannin masana.Kayayyakin aiki azaman lambar: sanin farko
  2. Ko kuma wannan bayanin yana kan wasu na’urori masu rubutu, wasu daga cikinsu masana sun san su. Amma ba gaskiya ba ne cewa baƙon (idan duk ƙungiyarmu ta mutu ba zato ba tsammani) za su iya gano abin da ke aiki da yadda yake aiki. Ana iya samun bayanai da yawa akan na'ura: kayan haɗi, cronjobs, tsoratarwa (duba. faifai hawa) faifai kuma kawai jerin abubuwan da zasu iya faruwa. Yana da wuya a gane ainihin abin da ke faruwa.Kayayyakin aiki azaman lambar: sanin farko

A cikin duka biyun, mun sami kanmu tarko wajen zama masu dogaro:

  • ko daga mutumin da ke da mutuwa, mai fama da rashin lafiya, soyayya, yanayin yanayi da kuma sallamar banal kawai;
  • ko daga na'ura mai aiki da jiki, wacce ita ma ta fado, ana sacewa, kuma tana gabatar da abubuwan ban mamaki da rashin jin daɗi.

Ya tafi ba tare da faɗi cewa a zahiri komai ya kamata a fassara shi cikin lambar da mutum zai iya karantawa, mai iya kiyayewa, ingantaccen rubutu.

Don haka, ababen more rayuwa a matsayin lambar (Incfastructure as Code - IaC) shine bayanin duk abubuwan da ke akwai a cikin nau'in lamba, da kuma kayan aikin da ke da alaƙa don aiki tare da shi da aiwatar da abubuwan more rayuwa na gaske daga gare ta.

Me yasa fassara komai zuwa lamba?Mutane ba inji ba ne. Ba za su iya tuna komai ba. Halin mutum da na'ura ya bambanta. Duk wani abu mai sarrafa kansa yana da yuwuwar sauri fiye da duk abin da ɗan adam ya yi. Abu mafi mahimmanci shine tushen gaskiya guda ɗaya.

Daga ina sabbin injiniyoyin SRE suka fito?Don haka, mun yanke shawarar hayar sabbin injiniyoyi na SRE, amma daga ina za mu samo su? Littafin da amsa daidai (Google SRE Littafin) ya gaya mana: daga masu haɓakawa. Bayan haka, suna aiki tare da lambar, kuma kuna cimma kyakkyawan yanayin.

Mun daɗe muna neman su a kasuwar ma'aikata a wajen kamfaninmu. Amma dole ne mu yarda cewa ba mu sami wanda ya dace da buƙatunmu ba. Dole ne in bincika a cikin mutanena.

Matsalolin Kayayyakin Gida azaman code

Yanzu bari mu kalli misalan yadda za a iya ƙera kayan more rayuwa cikin lamba. An rubuta lambar da kyau, inganci mai inganci, tare da sharhi da bayanai.

Misali code daga Terraforma.

Kayayyakin aiki azaman lambar: sanin farko

Misali code daga Mai yiwuwa.

Kayayyakin aiki azaman lambar: sanin farko

'Yan'uwa, da da sauki! Muna cikin duniyar gaske, kuma koyaushe yana shirye don ba ku mamaki, gabatar muku da abubuwan mamaki da matsaloli. Ba za a iya yi ba tare da su a nan kuma.

1. Matsala ta farko ita ce a mafi yawan lokuta IaC wani nau'in dsl ne.

Kuma DSL, bi da bi, shine bayanin tsarin. Daidai daidai, abin da ya kamata ku samu: Json, Yaml, gyare-gyare daga wasu manyan kamfanoni waɗanda suka fito da nasu dsl (ana amfani da HCL a cikin terraform).

Matsalar ita ce mai yiwuwa ba ta ƙunshi abubuwan da aka sani ba cikin sauƙi kamar:

  • masu canji;
  • yanayi;
  • a wani wuri babu sharhi, misali, a Json, ta tsohuwa ba a samar da su ba;
  • ayyuka;
  • kuma ba na ma magana game da manyan abubuwa kamar azuzuwan, gado da duk wannan.

2. Matsala ta biyu tare da irin wannan lambar ita ce mafi yawan lokuta yanayi ne mai ban sha'awa. Yawancin lokaci kuna zama kuna aiki tare da C #, i.e. da harshe ɗaya, tari ɗaya, yanayin muhalli ɗaya. Kuma a nan kuna da fasaha iri-iri iri-iri.

Halin gaske ne lokacin da bash tare da python ya ƙaddamar da wani tsari wanda aka shigar da Json a ciki. Kuna tantance shi, sannan wani janareta ya samar da wasu fayiloli 30. Don duk wannan, ana karɓar masu canjin shigarwa daga Azure Key Vault, waɗanda aka haɗa tare da plugin don drone.io da aka rubuta a cikin Go, kuma waɗannan canje-canjen suna wucewa ta cikin yaml, wanda ya samo asali ne sakamakon ƙira daga injin samfurin jsonnet. Yana da matukar wahala a sami cikakken bayanin lamba lokacin da kuke da irin wannan yanayi iri-iri.

Ci gaban al'ada a cikin tsarin aiki ɗaya yana zuwa da harshe ɗaya. Anan muna aiki tare da babban adadin harsuna.

3. Matsala ta uku shine kunnawa. Ana amfani da mu don kwantar da masu gyara (Ms Visual Studio, Jetbrains Rider) waɗanda ke yi mana komai. Kuma ko da mu wawaye ne, za su ce mun yi kuskure. Da alama al'ada da na halitta.

Amma wani wuri kusa da akwai VSCode, wanda a cikinsa akwai wasu plugins waɗanda aka shigar ko ta yaya, masu tallafi ko ba su da tallafi. Sabbin sigogin sun fito kuma ba a tallafa musu ba. Canjin banal zuwa aiwatar da aiki (ko da akwai shi) ya zama matsala mai rikitarwa kuma mara nauyi. Sauƙaƙan sake suna mai canzawa shine sake kunnawa a cikin aikin fayiloli dozin. Za ku yi sa'a idan ya sanya abin da kuke buƙata. Tabbas, akwai hasken baya nan da can, akwai cikawa ta atomatik, wani wuri akwai tsarawa (ko da yake bai yi min aiki ba a cikin terraform akan Windows).

A lokacin rubuta wannan labarin vscode-terraform plugin Har yanzu ba a fitar da su don tallafawa nau'in 0.12 ba, kodayake an fitar da shi tsawon watanni 3.

Lokaci yayi da za a manta da...

  1. Ana cire kuskure.
  2. Refactoring kayan aiki.
  3. Kammalawa ta atomatik.
  4. Gano kurakurai yayin haɗawa.

Yana da ban dariya, amma wannan kuma yana ƙara lokacin haɓakawa kuma yana ƙara yawan kurakurai waɗanda ba makawa su faru.

Mafi munin abu shi ne cewa an tilasta mana mu yi tunani ba game da yadda za a zana, tsara fayiloli zuwa manyan fayiloli, bazuwa, sanya code a kiyaye, karantawa, da sauransu, amma game da yadda zan iya rubuta wannan umarni daidai, saboda ko ta yaya na rubuta shi ba daidai ba. .

A matsayinka na mafari, kana ƙoƙarin koyon terraforms, kuma IDE ba ya taimaka maka da komai. Idan akwai takardu, shiga ka duba. Amma idan kuna shigar da sabon yaren shirye-shirye, IDE zai gaya muku cewa akwai irin wannan nau'in, amma babu irin wannan. Akalla a matakin int ko kirtani. Wannan sau da yawa yana da amfani.

Me game da gwaje-gwajen?

Kuna tambaya: "Me game da gwaje-gwajen, masu tsara shirye-shirye?" Maza masu mahimmanci suna gwada komai akan samarwa, kuma yana da wahala. Anan akwai misalin gwajin raka'a don ƙirar terraform daga gidan yanar gizon Microsoft.

Kayayyakin aiki azaman lambar: sanin farko

Suna da kyawawan takardu. A koyaushe ina son Microsoft don tsarinsa na takardu da horo. Amma ba kwa buƙatar zama Uncle Bob don fahimtar cewa wannan ba cikakkiyar lambar ba ce. Kula da tabbatarwa zuwa dama.

Matsalar da ke tattare da gwajin naúrar ita ce, ni da ku za mu iya bincika daidaiton fitowar Json. Na jefa cikin sigogi 5 kuma an ba ni rigar ƙafar Json mai layi 2000. Zan iya nazarin abin da ke faruwa a nan, in tabbatar da sakamakon gwaji...

Yana da wahala a tantance Json a cikin Go. Kuma kuna buƙatar rubutawa a cikin Go, saboda terraform in Go hanya ce mai kyau don gwada yaren da kuke rubutawa. Ƙungiyar lambar kanta tana da rauni sosai. A lokaci guda, wannan shine mafi kyawun ɗakin karatu don gwaji.

Microsoft da kansa yana rubuta kayan aikin sa, yana gwada su ta wannan hanyar. Tabbas Budewar Tushen ne. Duk abin da nake magana game da ku za ku iya zuwa ku gyara. Zan iya zama in gyara komai a cikin mako guda, bude tushen VS code plugins, terraforms, yin plugin don mahayi. Wataƙila rubuta wasu ma'aurata biyu, ƙara linters, ba da gudummawar ɗakin karatu don gwaji. Zan iya yin komai. Amma ba abin da ya kamata in yi ba kenan.

Mafi kyawun ayyuka Infrastructure as code

Mu ci gaba. Idan babu gwaje-gwaje a cikin IaC, IDE da kunnawa ba su da kyau, to yakamata a sami mafi kyawun ayyuka. Na je Google Analytics kawai na kwatanta tambayoyin bincike guda biyu: Terraform mafi kyawun ayyuka da c# mafi kyawun ayyuka.

Kayayyakin aiki azaman lambar: sanin farko

Me muke gani? Ƙididdiga marasa tausayi ba su a gare mu. Adadin kayan abu ɗaya ne. A cikin ci gaban C #, muna da kayan aiki kawai, muna da mafi kyawun ayyuka, akwai littattafan da masana suka rubuta, da kuma littattafan da wasu masana suka rubuta akan littattafan da ke sukar waɗannan littattafan. Teku na takaddun hukuma, labarai, darussan horo, kuma yanzu ma buɗe tushen ci gaban.

Amma game da buƙatar IaC: anan kuna ƙoƙarin tattara bayanai kaɗan da kaɗan daga babban lodi ko rahotannin HashiConf, daga takaddun hukuma da batutuwa masu yawa akan Github. Yadda za a rarraba waɗannan kayayyaki gaba ɗaya, menene za a yi da su? Da alama wannan matsala ce ta gaske... Akwai al'umma, maza, inda kowace tambaya za a ba ku sharhi 10 akan Github. Amma ba daidai ba ne.

Abin takaici, a wannan lokacin, masana sun fara fitowa. Akwai kadan daga cikinsu ya zuwa yanzu. Kuma ita kanta al’umma tana rataye ne a matakin farko.

Ina duk wannan ke faruwa da abin da za a yi

Kuna iya sauke komai kuma ku koma C #, zuwa duniyar mahayi. Amma a'a. Me yasa ma za ku damu da yin haka idan ba ku sami mafita ba. A ƙasa na gabatar da abin da na ɗauka. Kuna iya jayayya da ni a cikin sharhi, zai zama mai ban sha'awa.

Da kaina, Ina yin fare akan wasu abubuwa:

  1. Ci gaba a wannan yanki yana faruwa cikin sauri. Anan akwai jadawalin buƙatun don DevOps.

    Kayayyakin aiki azaman lambar: sanin farko

    Maudu'in na iya zama abin yabo, amma gaskiyar cewa yanayin yana girma yana ba da bege.

    Idan wani abu ya girma da sauri, to tabbas mutane masu hankali za su bayyana waɗanda za su gaya muku abin da za ku yi da abin da ba za ku yi ba. Haɓakawa a cikin shahararrun yana haifar da gaskiyar cewa watakila wani zai sami lokaci don ƙara plugin zuwa jsonnet don vscode, wanda zai ba ku damar ci gaba da aiwatar da aikin, maimakon neman ta ta hanyar ctrl + shift + f. Yayin da abubuwa ke tasowa, ƙarin kayan suna bayyana. Fitar da wani littafi daga Google game da SRE kyakkyawan misali ne na wannan.

  2. Akwai dabaru da ayyuka da aka haɓaka a cikin ci gaban al'ada waɗanda za mu iya yin amfani da su cikin nasara a nan. Ee, akwai nuances tare da gwaji da yanayi daban-daban, rashin isassun kayan aiki, amma an tattara adadi mai yawa na ayyuka waɗanda zasu iya zama masu amfani da taimako.

    Misali maras muhimmanci: haɗin gwiwa ta hanyar shirye-shiryen biyu. Yana taimakawa sosai don gano shi. Lokacin da kuke da maƙwabci a kusa wanda shi ma yana ƙoƙarin fahimtar wani abu, tare za ku fahimta da kyau.

    Fahimtar yadda ake yin refactoring yana taimakawa wajen aiwatar da shi ko da a irin wannan yanayi. Wato ba za ku iya canza komai a lokaci guda ba, amma canza suna, sannan ku canza wurin, sannan kuna iya haskaka wani bangare, oh, amma babu isassun maganganu a nan.

ƙarshe

Duk da cewa tunani na na iya zama kamar ba shi da kyau, ina duban gaba tare da bege da kuma fatan gaske cewa komai zai yi aiki a gare mu (da ku).

Ana shirya kashi na biyu na labarin na gaba. A ciki, zan yi magana game da yadda muka yi ƙoƙari mu yi amfani da ayyukan haɓaka agile don inganta tsarin ilmantarwa da aiki tare da abubuwan more rayuwa.

source: www.habr.com

Add a comment