Infrastructure sekodhi: kutanga kuzivana

Kambani yedu iri munzira yekukwira timu yeSRE. Ndakapinda munyaya iyi yese kubva kudivi rebudiriro. Mukuita kudaro, ndakauya nemafungiro uye maonero andinoda kugovera nevamwe vanogadzira. Muchinyorwa chino chekufungisisa ndinotaura nezve zviri kuitika, kuti zviri kuitika sei, uye kuti munhu wese angaramba achirarama sei nazvo.

Infrastructure sekodhi: kutanga kuzivana

Kuenderera mberi kwenhevedzano yezvinyorwa zvakanyorwa zvichibva pakutaura pachiitiko chedu chemukati DevForum:

1. Katsi yaSchrödinger isina bhokisi: dambudziko rekubvumirana muhurongwa hwakagoverwa.
2. Infrastructure sekodhi. (Uri pano)
3. Chizvarwa cheTypescript zvibvumirano uchishandisa C# mhando. (Munzira...)
4. Nhanganyaya kuRaft consensus algorithm. (Munzira...)
...

Takafunga kugadzira timu yeSRE, tichiita mazano google sre. Vakatora vagadziri vepurogiramu kubva pakati pevagadziri vavo uye vakavatumira kunodzidzisa kwemwedzi yakati wandei.

Chikwata chaive neanotevera mabasa ekudzidzisa:

  • Rondedzera zvivakwa zvedu, izvo zvakanyanya muMicrosoft Azure muchimiro chekodhi (Terraform uye zvese zvakatenderedza).
  • Dzidzisa vanogadzira maitiro ekushanda nezvivakwa.
  • Gadzirira vanogadzira basa.

Isu tinosuma iyo pfungwa yeInfrastructure sekodhi

Mune yakajairwa modhi yenyika (classical manejimendi), ruzivo nezve zvivakwa ruri munzvimbo mbiri:

  1. Kana muchimiro chezivo mumisoro yenyanzvi.Infrastructure sekodhi: kutanga kuzivana
  2. Kana kuti mashoko aya ari pane mamwe matapureta, mamwe acho anozivikanwa nenyanzvi. Asi hachisi chokwadi kuti munhu wekunze (kana timu yedu yese ikangoerekana yafa) ichakwanisa kuona kuti chii chinoshanda uye kuti chinoshanda sei. Panogona kuve neruzivo rwakawanda pamushini: accessories, cronjobs, kutya (ona. disk mounting) dhisiki uye runyoro rusingaperi rwezvinogona kuitika. Zvakaoma kunzwisisa zviri kuitika chaizvo.Infrastructure sekodhi: kutanga kuzivana

Muzviitiko zvese izvi, tinozviwana tabatwa mukuva vanovimba:

  • kana kubva kumunhu anofa, ari pasi pekurwara, kuwira murudo, kushanduka kwemafungiro uye kungosiya basa;
  • kana kubva pamushini unoshanda wenyama, unodonhawo, unobiwa, uye unopa zvinoshamisa uye kusagadzikana.

Zvinoenda pasina kutaura kuti zvese zvinofanirwa kushandurirwa mukodhi-inoverengeka, inochengeteka, yakanyorwa-zvakanaka.

Nekudaro, zvivakwa sekodhi (Incfastructure seCode - IaC) irondedzero yezvivakwa zvese zviripo muchimiro chekodhi, pamwe nemidziyo ine chekuita nekushanda nayo uye kuita zvivakwa zvechokwadi kubva mairi.

Sei uchishandura zvese kuita kodhi?Vanhu havasi michina. Havagoni kurangarira zvose. Kuita kwemunhu nemuchina kwakasiyana. Chero chinhu chine otomatiki chinogona kukurumidza kupfuura chero chinhu chinoitwa nemunhu. Chinhu chinonyanya kukosha inzvimbo imwe chete yechokwadi.

Mainjiniya matsva eSRE anobva kupi?Saka, takafunga kuhaya mainjiniya matsva eSRE, asi tovatora kupi? Bhuka nemhinduro dzechokwadi (Google SRE Book) inotiudza: kubva kuvagadziri. Mushure mezvose, vanoshanda nekodhi, uye iwe unowana iyo yakakodzera mamiriro.

Takavatsvaga kwenguva yakareba pamusika wevashandi kunze kwekambani yedu. Asi tinofanira kubvuma kuti hatina kuwana chero munhu anoenderana nezvikumbiro zvedu. Ndaifanira kutsvaka pakati pavanhu vokwangu.

Matambudziko Infrastructure sekodhi

Zvino ngatitarisei mienzaniso yekuti zvivakwa zvinogona kuomeswa sei mukodhi. Iyo kodhi yakanyorwa zvakanaka, yemhando yepamusoro, ine makomendi uye indentations.

Muenzaniso kodhi kubva kuTerraforma.

Infrastructure sekodhi: kutanga kuzivana

Muenzaniso kodhi kubva kuAnsible.

Infrastructure sekodhi: kutanga kuzivana

Varume dai zviri nyore! Isu tiri munyika chaiyo, uye inogara yakagadzirira kukushamisa iwe, kukupa iwe nekushamisika uye matambudziko. Haukwanise kuita pasina ivo pano zvakare.

1. Dambudziko rekutanga nderekuti kazhinji IaC ndeimwe rudzi rwe dsl.

Uye DSL, zvakare, irondedzero yechimiro. Kunyanya, izvo zvaunofanira kuva nazvo: Json, Yaml, kugadziridzwa kubva kune mamwe makambani makuru akauya neavo dsl (HCL inoshandiswa mune terraform).

Dambudziko nderekuti rinogona kunge risina nyore zvinhu zvakadai se:

  • variables;
  • mamiriro;
  • pane imwe nzvimbo pasina mhinduro, semuenzaniso, muJson, nekusarudzika ivo havana kupihwa;
  • mabasa;
  • uye handisi kana kutaura nezvezvinhu zvepamusoro-soro semakirasi, nhaka uye zvese izvo.

2. Dambudziko rechipiri nekodhi yakadaro nderekuti kazhinji inzvimbo yakasiyana-siyana. Kazhinji iwe unogara uye uchishanda neC #, i.e. nemutauro mumwe, murwi mumwe, imwe ecosystem. Uye pano iwe une hukuru hwakakura hwetekinoroji.

Ndiyo mamiriro chaiwo chaiwo apo bash nepython inotanga imwe nzira iyo Json inoiswa. Iwe unoiongorora, ipapo imwe jenareta inoburitsa mamwe makumi matatu mafaera. Kune zvese izvi, misiyano yekupinda inogamuchirwa kubva kuAzure Key Vault, iyo inodhonzwa pamwe chete neplugin yedrone.io yakanyorwa muGo, uye izvi zvinosiyana zvinopfuura neyaml, iyo yakagadzirwa semhedzisiro yechizvarwa kubva kujsonnet template injini. Zvakaoma kuve nekodhi yakanyatsotsanangurwa kana uine nharaunda dzakasiyana siyana.

Kusimukira kwechivanhu mukati megadziriro yebasa rimwe kunouya nemutauro mumwe. Pano tinoshanda nenhamba huru yemitauro.

3. Dambudziko rechitatu nderekugadzirisa. Isu takajaira kutonhodza vapepeti (Ms Visual Studio, Jetbrains Rider) vanotiitira zvese. Uye kunyange kana tiri mapenzi, vanozoti takanganisa. Zvinoita sezvakanaka uye zvakasikwa.

Asi pane imwe nzvimbo padyo pane VSCode, umo mune mamwe maplugins akaiswa neimwe nzira, anotsigirwa kana asingatsigirwe. Shanduro itsva dzakabuda uye hadzina kutsigirwa. Kuchinja kwebhanari pakuita basa (kunyangwe riripo) rinova dambudziko rakaoma uye risiri diki. Iri nyore zita rekuchinja ndeye replay mupurojekiti yemafaira gumi nemaviri. Uchaita rombo rakanaka kana akaisa zvaunoda. Ehe, kune kuvhenekera pano neapo, kune otomatiki-kupedzisa, kumwe kunenge kune fomati (kunyangwe isina kundiitira terraform paWindows).

Panguva yekunyora uku vscode-terraform plugin haisati yaburitswa kutsigira vhezheni 0.12, kunyangwe yakaburitswa kwemwedzi mitatu.

Yasvika nguva yekukanganwa nezve...

  1. Kugadzirisa.
  2. Refactoring tool.
  3. Kupedzisa otomatiki.
  4. Kuona zvikanganiso panguva yekubatanidza.

Zvinosetsa, asi izvi zvinowedzerawo nguva yekusimudzira uye zvinowedzera huwandu hwezvikanganiso zvinongoitika.

Chinhu chakaipisisa ndechokuti isu tinomanikidzwa kufunga kwete pamusoro pekugadzira, kuronga mafaira mumaforodha, kuora, kuita kuti kodhi ichengeteke, inoverengwa, uye zvichingodaro, asi pamusoro pekuti ndinganyora sei murairo uyu nenzira yakarurama, nokuti neimwe nzira ndakainyora zvisiri izvo. .

Sekutanga, uri kuyedza kudzidza terraforms, uye IDE haisi kukubatsira zvachose. Kana pane zvinyorwa, pinda uye utarise. Asi kana iwe waipinda mumutauro mutsva wepurogiramu, IDE yaizokuudza kuti kune rudzi rwakadaro, asi hapana chinhu chakadaro. Zvirinani pane int kana tambo level. Izvi zvinowanzobatsira.

Zvakadini nemiedzo?

Iwe unobvunza: "Zvakadini nemiedzo, machinda mapurogiramu?" Vakomana vakakomba vanoedza zvese pakugadzirwa, uye zvakaoma. Heino muenzaniso weyuniti bvunzo yeterraform module kubva pawebhusaiti Microsoft.

Infrastructure sekodhi: kutanga kuzivana

Vane zvinyorwa zvakanaka. Ini ndagara ndichifarira Microsoft maitiro ayo ekunyora uye kudzidziswa. Asi haufanire kuve Sekuru Bob kuti unzwisise kuti iyi haisi kodhi yakakwana. Cherechedza kusimbiswa kurudyi.

Dambudziko neyuniti bvunzo nderekuti iwe neni tinokwanisa kutarisa iko kurongeka kwekubuda kweJson. Ndakakanda 5 parameters ndokupihwa jira retsoka reJson rine 2000 lines. Ini ndinogona kuongorora zviri kuitika pano, simbisa bvunzo mhinduro ...

Zvakaoma kutsanangura Json muGo. Uye iwe unofanirwa kunyora muGo, nekuti terraform muGo itsika yakanaka yekuyedza mumutauro waunonyora. Sangano rekodhi pacharo harina simba. Panguva imwecheteyo, iyi ndiyo raibhurari yakanakisa yekuyedza.

Microsoft pachayo inonyora mamodule ayo, ichivayedza nenzira iyi. Chokwadi ndeye Open Source. Zvese zvandiri kutaura munogona kuuya kuzogadzirisa. Ndinogona kugara pasi uye kugadzirisa zvese muvhiki, yakavhurika sosi VS kodhi plugins, terraforms, kugadzira plugin yemutasvi. Pamwe nyora akati wandei ma analyzer, wedzera linters, batsira raibhurari yekuyedza. Ndinogona kuita zvose. Asi handizvo zvandinofanira kunge ndichiita.

Zvakanakisa maitiro Infrastructure sekodhi

Ngatienderere mberi. Kana pasina bvunzo muIaC, iyo IDE uye tuning yakashata, saka panofanira kunge paine akanakisa maitiro. Ndangoenda kuGoogle Analytics ndikaenzanisa mibvunzo miviri yekutsvaga: Terraform best practices uye c# best practice.

Infrastructure sekodhi: kutanga kuzivana

Chii chatinoona? Zviverengero zvisina tsitsi hazvitibatsiri. Huwandu hwezvinhu hwakafanana. Mukuvandudzwa kweC#, isu tinongosangana nezvinhu, tine maitiro epamusoro-soro, kune mabhuku akanyorwa nenyanzvi, uyewo mabhuku akanyorwa pamabhuku nedzimwe nyanzvi dzinoshoropodza mabhuku iwayo. Gungwa rezvinyorwa zvepamutemo, zvinyorwa, zvidzidzo zvekudzidzisa, uye ikozvino zvakare yakavhurika sosi kuvandudza.

Kana chiri chikumbiro cheIaC: pano uri kuyedza kuunganidza ruzivo zvishoma nezvishoma kubva pakakwirira kana HashiConf mishumo, kubva kuzvinyorwa zvepamutemo uye nyaya dzakawanda paGithub. Nzira yekugovera sei ma modules mune zvese, zvekuita nawo? Zvinoratidzika kuti iyi idambudziko rechokwadi ... Kune nharaunda, varume, apo kune chero mubvunzo iwe uchapiwa 10 mhinduro paGithub. Asi hazvisizvo chaizvo.

Zvinosuruvarisa, panguva ino nenguva, nyanzvi dziri kutanga kubuda. Kune vashoma vavo kusvika ikozvino. Uye nharaunda pachayo iri kurembera padanho rekutanga.

Ko zvese izvi zviri kuenda kupi uye zvekuita

Unogona kudonhedza zvese uye wodzokera kuC #, kune nyika yemutasvi. Asi kwete. Unombozvinetserei kuita izvi kana usingawane mhinduro. Pazasi ini ndinopa yangu subjective mhedziso. Iwe unogona kukakavara neni mumashoko, zvichave zvinonakidza.

Ini pachangu, ndiri kubheja pazvinhu zvishoma:

  1. Budiriro munzvimbo iyi iri kuitika nekukurumidza. Heino hurongwa hwezvikumbiro zveDevOps.

    Infrastructure sekodhi: kutanga kuzivana

    Musoro unogona kunge uri hype, asi chokwadi chekuti nzvimbo iri kukura inopa tariro.

    Kana chimwe chinhu chikakura nekukasira, saka vanhu vakangwara vanozoonekwa vachakuudza zvekuita uye zvekusaita. Kuwedzera kwemukurumbira kunotungamirira kune chokwadi chokuti zvichida mumwe munhu achava nenguva yekupedzisira kuwedzera plugin ku jsonnet ye vscode, iyo inokubvumira kuti uenderere mberi nekuita basa racho, pane kuitsvaga kuburikidza nectrl + shift + f. Sezvo zvinhu zvinoshanduka, zvinhu zvakawanda zvinoonekwa. Kuburitswa kwebhuku kubva kuGoogle nezve SRE muenzaniso wakanaka weizvi.

  2. Pane akagadziridzwa matekiniki uye maitiro mukukura kwakajairika atinogona kubudirira kushandisa pano. Ehe, kune nuances nekuyedza uye nharaunda ine heterogeneous, isina kukwana maturusi, asi huwandu hukuru hwemaitiro akaunganidzwa anogona kubatsira uye kubatsira.

    Muenzaniso usingakoshi: kubatana kuburikidza nemapurogiramu maviri. Zvinobatsira zvikuru kuzvinzwisisa. Kana uine muvakidzani ari pedyo ari kuedzawo kunzwisisa chimwe chinhu, pamwe chete muchanzwisisa zviri nani.

    Kunzwisisa kuti refactoring inoitwa sei kunobatsira kuzviita kunyangwe mumamiriro ezvinhu akadaro. Ndiko kuti, haugone kushandura zvese kamwechete, asi shandura zita, wobva wachinja nzvimbo, ipapo unogona kuratidza chimwe chikamu, o, asi hapana mhinduro dzakakwana pano.

mhedziso

Pasinei nenyaya yekuti kufunga kwangu kungaita sekusina tariro, ndinotarisa kune ramangwana netariro uye netariro yechokwadi kuti zvese zvichatiitira isu (uye iwe).

Chikamu chechipiri chechinyorwa chiri kugadzirirwa chinotevera. Mariri, ini ndichataura nezve maitiro atakaedza kushandisa agile budiriro maitiro kuvandudza maitiro edu ekudzidza uye kushanda nezvivakwa.

Source: www.habr.com

Voeg