Cumu piglià u cuntrollu di a vostra infrastruttura di rete. Capitulu Quattru. L'automatizazione. Templates

Questu articulu hè u sestu in a serie "Cumu piglià u cuntrollu di a vostra infrastruttura di rete". U cuntenutu di tutti l'articuli in a serie è i ligami ponu esse truvati ccà.

Dopu avè lasciatu parechji temi, decisu di inizià un novu capitulu.

Riturneraghju à a sicurità un pocu dopu. Quì vogliu discutiri un approcciu simplice ma efficace, chì sò sicuru, in una forma o l'altru, pò esse utile à parechji. Questu hè più di una breve storia di cumu l'automatizazione pò cambià a vita di un ingegnere. Parleremu di l'usu di mudelli. À a fine ci hè una lista di i mo prughjetti induve pudete vede cumu funziona tuttu ciò chì hè descrittu quì.

DevOps per a reta

Crià una cunfigurazione cù un script, utilizendu GIT per cuntrullà i cambiamenti à l'infrastruttura IT, "uploading" remota - queste idee venenu prima quandu pensate à l'implementazione tecnica di l'approcciu DevOps. I vantaghji sò evidenti. Ma, sfurtunatamenti, ci sò ancu disadvantages.

Quandu più di 5 anni fà, i nostri sviluppatori sò ghjunti à noi, i networkers, cù queste pruposte, ùn eramu micca piacè.

Devu dì chì avemu ereditatu una reta piuttostu variopinta, custituita da l'equipaggiu da circa 10 venditori differenti. Era cunvenutu per cunfigurà alcune cose attraversu u nostru cli preferitu, ma in altri avemu preferitu aduprà a GUI. Inoltre, u travagliu longu nantu à l'equipaggiu "live" ci hà amparatu à u cuntrollu in tempu reale. Per esempiu, quandu facenu cambiamenti, mi sentu assai più còmode di travaglià direttamente attraversu u cli. In questu modu possu vede rapidamente chì qualcosa hè andatu male è rinvià i cambiamenti. Tuttu chistu era in qualchì cuntradizzione cù e so idee.

Altre dumande sò ancu esse, per esempiu, l'interfaccia pò cambià ligeramente da versione à versione di u software. Questu eventualmente causarà u vostru script per creà a "configurazione" sbagliata. Ùn vogliu micca aduprà a produzzione per "running in".

Or, cumu capisce chì i cumandamenti di cunfigurazione sò stati appiicati currettamente è chì fà in casu d'errore?

Ùn vogliu micca dì chì tutti questi prublemi ùn sò micca solu solu. Solu dicendu "A" hà prubabilmente sensu di dì "B" ancu, è se vulete usà i stessi prucessi per u cuntrollu di u cambiamentu cum'è in u sviluppu, allora avete bisognu à avè ambienti di sviluppu è staging in più di a produzzione. Allora stu approcciu pare cumpletu. Ma quantu costarà ?

Ma ci hè una situazione quandu i disadvantages sò praticamenti livellati, è solu i vantaghji restanu. Parlu di u travagliu di disignu.

U prugettu

Per l'ultimi dui anni, aghju participatu à un prughjettu di custruisce un centru di dati per un grande fornitore. Sò rispunsevuli di F5 è Palo Alto in stu prughjettu. Da u puntu di vista di Cisco, questu hè "equipaggiu di terzu".

Per mè personalmente, ci sò duie tappe distinte in stu prughjettu.

Prima tappa

U primu annu era infinitu occupatu, aghju travagliatu di notte è di fine settimana. Ùn pudia alzà a testa. A pressione da a gestione è u cliente era forte è cuntinua. In una rutina constante, ùn pudia ancu pruvà à ottimisà u prucessu. Ùn era micca solu è micca tantu a cunfigurazione di l'equipaggiu cum'è a preparazione di a documentazione di disignu.

I primi testi sò cuminciati, è mi maravigliu di quanti picculi errori è imprecisioni sò stati fatti. Di sicuru, tuttu hà travagliatu, ma ci era una lettera mancante in u nome, ci era una linea mancante in u cumandamentu... I testi anu continuatu è continuatu, è eru digià in una lotta custante, ogni ghjornu cù errori, testi è documentazioni. .

Questu hè andatu per un annu. U prugettu, quantu aghju capitu, ùn era micca faciule per tutti, ma à pocu à pocu u cliente hè diventatu più è più soddisfatti, è questu hà permessu di cuntrullà ingegneri supplementari chì anu pussutu piglià parte di a rutina stessu.

Avà pudemu guardà un pocu intornu.
È questu era u principiu di a seconda tappa.

Tappa dui

Aghju decisu di automatizà u prucessu.

Ciò chì aghju capitu da a mo cumunicazione cù i sviluppatori in quellu tempu (è duvemu rende u tributu, avemu avutu una squadra forte) hè chì u formatu di testu, ancu s'ellu à prima vista pare qualcosa di u mondu di u sistema operatore DOS, hà un numeru. di pruprietà preziose.
Cusì, per esempiu, u furmatu di testu serà utile s'è vo vulete prufittà sanu di GIT è tutti i so derivati. È vulia.

Ebbè, pare chì pudete simpricimenti almacenà una cunfigurazione o una lista di cumandamenti, ma fà cambiamenti hè abbastanza inconveniente. Inoltre, ci hè un altru compitu impurtante durante u disignu. Duvete avè a documentazione chì descrive u vostru disignu cum'è un sanu (Design Low Level) è implementazione specifica (Piano di Implementazione di a Rete). È in questu casu, l'usu di mudelli pare una opzione assai adattata.

Allora, quandu si usa YAML è Jinja2, un schedariu YAML cù paràmetri di cunfigurazione cum'è indirizzi IP, numeri BGP AS, ... cumpleta perfettamente u rolu di NIP, mentre chì i mudelli Jinja2 includenu sintassi currispundenti à u disignu, vale à dì, hè essenzialmente un riflessione di LLD.

Pigliò dui ghjorni per amparà YAML è Jinja2. Uni pochi boni esempi sò abbastanza per capisce cumu si travaglia. Dopu ci pigliò circa duie settimane per creà tutti i mudelli chì currispondenu à u nostru disignu: una settimana per Palo Alto è una altra settimana per F5. Tuttu chistu hè statu publicatu in githab corporativu.

Avà u prucessu di cambiamentu pareva cusì:

  • hà cambiatu u schedariu YAML
  • criatu un schedariu di cunfigurazione cù un mudellu (Jinja2)
  • salvate in un repository remoto
  • caricatu a cunfigurazione creata à l'equipaggiu
  • Aghju vistu un errore
  • hà cambiatu u schedariu YAML o u mudellu Jinja2
  • criatu un schedariu di cunfigurazione cù un mudellu (Jinja2)
  • ...

Hè chjaru chì prima assai tempu hè statu passatu nantu à edizioni, ma dopu una settimana o duie questu hè diventatu piuttostu una rarità.

Una bona prova è l'uppurtunità di debug tuttu era u desideriu di u cliente di cambià a cunvenzione di nomi. Quelli chì anu travagliatu cù F5 capiscenu a piccantezza di a situazione. Ma per mè era tuttu abbastanza simplice. Aghju cambiatu i nomi in u schedariu YAML, sguassate tutta a cunfigurazione da l'equipaggiu, generatu un novu è l'aghju carricatu. Tuttu, cumpresi correzioni di bug, hà pigliatu 4 ghjorni: dui ghjorni per ogni tecnulugia. Dopu quì, era pronta per a tappa dopu, à dì a creazione di centri di dati DEV è Staging.

Dev et mise en scène

A messa in scena in realtà replica cumplettamente a produzzione. Dev hè una copia assai spogliata custruita principalmente nantu à hardware virtuale. Una situazione ideale per un novu approcciu. Se aghju isolatu u tempu chì aghju passatu da u prucessu generale, allora pensu chì u travagliu ùn hà pigliatu più di 2 settimane. U tempu principale hè aspittendu l'altru latu è cercanu i prublemi inseme. L'implementazione di 3rd party passò quasi inosservata da l'altri. Ci era ancu tempu per amparà qualcosa è scrive un paru d'articuli nantu à Habré :)

Impariscamu

Allora, chì aghju in u fondu?

  • Tuttu ciò chì aghju da fà per cambià a cunfigurazione hè di cambià un schedariu YAML simplice è chjaramente strutturatu cù paràmetri di cunfigurazione. Ùn aghju mai cambiatu u script python è assai raramente (solu s'ellu ci hè un errore) cambia u calore Jinja2
  • Da un puntu di vista di a documentazione, questa hè una situazione quasi ideale. Cambiate a documentazione (i schedari YAML servenu cum'è NIP) è caricate sta cunfigurazione à l'equipaggiu. In questu modu, a vostra documentazione hè sempre aghjurnata

Tuttu chistu hà purtatu à u fattu chì

  • u tassu di errore hè cascatu à quasi 0
  • U 90 per centu di a rutina hè andata
  • a velocità di implementazione hè aumentata significativamente

PAY, F5Y, ACY

Aghju dettu chì uni pochi di esempi sò abbastanza per capisce cumu si travaglia.
Eccu una versione corta (è naturalmente mudificata) di ciò chì hè statu creatu durante u mo travagliu.

PAY = implementazione Pciao Alto da Yaml = Palo Alto da Yaml
F5Y = implementazione F5 da Yaml = F5 da Yaml (à prestu)
ACY = implementazione ACi da Yaml = F5 da Yaml

Aghju aghjustatu uni pochi di parolle nantu à ACY (da micca esse cunfunditu cù ACI).

Quelli chì anu travagliatu cù ACI sapemu chì stu miraculu (è in una bona manera ancu) ùn hè micca definitu micca creatu da i networkers :). Scurdate di tuttu ciò chì sapete di a reta - ùn serà micca utile per voi!
Hè un pocu esageratu, ma apprussimatamente trasmette a sensazione chì aghju avutu sempre, per l'ultimi anni 3, travagliendu cù ACI.

È in questu casu, ACY ùn hè micca solu l'uppurtunità di custruisce un prucessu di cuntrollu di cambiamentu (chì hè soprattuttu impurtante in u casu di ACI, perchè deve esse a parte cintrali è più critica di u vostru centru di dati), ma ancu vi dà. una interfaccia user-friendly per creà cunfigurazione.

L'ingegneri di stu prughjettu utilizanu Excel per cunfigurà ACI invece di YAML per esattamente i stessi scopi. Ci hè, sicuru, vantaghji à utilizà Excel:

  • u vostru NIP in un schedariu
  • belli segni chì sò piacevuli per u cliente per vede
  • pudete aduprà qualchi strumenti excel

Ma ci hè un minus, è in u mo parè hè sopra à i prufessiunali. U cuntrollu di i cambiamenti è a coordinazione di u travagliu in squadra diventa assai più difficiule.

ACY hè in realtà una applicazione di i stessi approcci chì aghju utilizatu per u terzu partitu per cunfigurà ACI.

Source: www.habr.com

Add a comment