L'automatizazione per i zitelli. Parte zero. Pianificazione

SDSM hè finitu, ma u desideriu incontrullabile di scrive ferma.

L'automatizazione per i zitelli. Parte zero. Pianificazione

Per parechji anni, u nostru fratellu hà patitu di fà u travagliu di rutina, incruciate i so dite prima di cummette è manca di sonnu per via di rollbacks di notte.
Ma i tempi scuri sò ghjunti à a fine.

Cù questu articulu, principiaraghju una seria nantu à cumu l'automatizazione hè vista.
In u caminu, avemu da capisce i tappe di l'automatizazione, l'almacenamiento di variabili, u cuncepimentu di furmalizazione, RestAPI, NETCONF, YANG, YDK è faremu assai prugrammazione.
Per mè significa chì a) ùn hè micca una verità objetiva, b) ùn hè micca incondizionatamente u megliu approcciu, c) a mo opinione, ancu durante u muvimentu da u primu à l'ultimu articulu, pò cambià - per esse onestu, da u stadiu di u prugettu à pubblicazione, aghju riscritto tuttu completamente duie volte.

Cuntenuti

  1. Scopi
    1. A reta hè cum'è un unicu organismu
    2. Test di cunfigurazione
    3. Versioning
    4. Monitoraghju è auto-guarigione di servizii

  2. Fondi
    1. Sistema di inventariu
    2. Sistema di gestione di u spaziu IP
    3. Sistema di descrizzione di serviziu di rete
    4. Meccanisimu di inizializazione di u dispusitivu
    5. Mudellu di cunfigurazione agnosticu di u venditore
    6. Interfaccia di driver specifica di u venditore
    7. Meccanismu per furnisce a cunfigurazione à u dispusitivu
    8. CI / CD
    9. Meccanismu di salvezza è ricerca di deviazioni
    10. Sistema di monitoraghju

  3. cunchiusioni

Pruvaraghju di fà ADSM in un formatu pocu sfarente di SDSM. Articuli grossi, detallati, numerati cuntinueghjanu à apparisce, è trà elli publicheraghju picculi note da a sperienza di ogni ghjornu. Pruvaraghju di cumbatte u perfeccionismu quì è ùn liccate micca tutti.

Cume hè divertente chì a seconda volta avete da passà per u listessu percorsu.

À u principiu, aghju avutu à scrive articuli nantu à e rete per via di u fattu chì ùn eranu micca in RuNet.

Avà ùn pudia truvà un documentu cumpletu chì sistematizà l'approcciu di l'automatizazione è analizà e tecnulugia di sopra cù esempi pratichi simplici.

Puderaghju esse sbagliatu, allora per piacè furnite ligami à risorse utili. In ogni casu, questu ùn cambierà micca a mo determinazione di scrive, perchè u scopu principale hè di amparà qualcosa per mè stessu, è rende a vita più faciule per l'altri hè un bonu piacevule chì accarezza u genu per sparta l'esperienza.

Pruvaremu di piglià un centru di dati LAN DC mediu è travaglià tuttu u schema d'automatizazione.
Fararaghju alcune cose quasi per a prima volta cun voi.

Ùn seraghju micca originale in l'idee è l'arnesi descritti quì. Dmitry Figol hà un eccellente canale cù flussi nantu à questu tema.
L'articuli si sovrapponenu cun elli in parechji aspetti.

A LAN DC hà 4 DC, circa 250 switches, una meza duzina di routers è un paru di firewall.
Micca Facebook, ma abbastanza per fà pensà profondamente à l'automatizazione.
Ci hè, però, l'opinione chì s'è vo avete più di 1 dispusitivu, l'automatizazione hè digià necessariu.
In fatti, hè difficiule d'imagine chì qualchissia pò avà campà senza almenu un pacchettu di script di ghjinochju.
Ancu s'è aghju intesu chì ci sò uffizii induve l'indirizzi IP sò guardati in Excel, è ognunu di i millaie di dispusitivi di rete hè cunfiguratu manualmente è hà a so cunfigurazione unica. Questu, sicuru, pò esse passatu cum'è l'arti mudernu, ma i sentimenti di l'ingegnere saranu definitivamente offesi.

Scopi

Avà stabiliremu i scopi più astratti:

  • A reta hè cum'è un unicu organismu
  • Test di cunfigurazione
  • Versione di u statu di a rete
  • Monitoraghju è auto-guarigione di servizii

In seguitu in questu articulu, avemu da fighjà ciò chì i mezi avemu da aduprà, è in i seguenti, avemu da circà à i scopi è i mezi in detail.

A reta hè cum'è un unicu organismu

A frasa di definizione di a serie, ancu s'ellu à u primu sguardu ùn pare micca cusì significativu: cunfiguremu a reta, micca i dispositi individuali.
In l'ultimi anni, avemu vistu un cambiamentu in l'enfasi versu u trattamentu di a rete cum'è una sola entità, da quì u Software Rivedutu Ritenimentu, Reti guidate intenzioni и Reti autonome.
Dopu tuttu, ciò chì l'applicazioni necessitanu globalmente da a reta: a cunnessione trà i punti A è B (bene, qualchì volta + B-Z) è l'isulazione da altre applicazioni è utilizatori.

L'automatizazione per i zitelli. Parte zero. Pianificazione

È cusì u nostru compitu in questa serie hè custruisce un sistema, mantenendu a cunfigurazione attuale tutta a reta, chì hè digià scomposta in a cunfigurazione attuale nantu à ogni dispusitivu in cunfurmità cù u so rolu è u locu.
sistemu A gestione di a rete implica chì per fà cambiamenti l'avemu cuntattatu, è, à u turnu, calcula u statu desideratu per ogni dispusitivu è u cunfigura.
In questu modu, minimizemu l'accessu manuale à l'CLI à quasi zero - ogni cambiamentu in i paràmetri di u dispositivu o u disignu di a rete deve esse formalizatu è documentatu - è solu dopu allargatu à l'elementi di rete necessarii.

Hè, per esempiu, se avemu decisu chì da avà i switch di rack in Kazan anu da annunzià duie rete invece di una, avemu

  1. Prima documentemu i cambiamenti in i sistemi
  2. Generazione di a cunfigurazione di destinazione di tutti i dispositi di rete
  3. Lanciamu u prugramma di l'aghjurnamentu di a cunfigurazione di a rete, chì calcula ciò chì deve esse eliminatu in ogni node, ciò chì aghjunghje, è porta i nodi à u statu desideratu.

À u listessu tempu, facemu cambiamenti manualmente solu in u primu passu.

Test di cunfigurazione

Hè cunnisciutuchì u 80% di i prublemi sò durante i cambiamenti di cunfigurazione - evidenza indiretta di questu hè chì durante e vacanze di l'annu novu tuttu hè di solitu tranquillu.
Aghju vistu personalmente decine di tempi di inattività globale per l'errore umanu: u cumandamentu sbagliatu, a cunfigurazione hè stata eseguita in u ramu sbagliatu, a cumunità s'hè scurdata, MPLS hè statu demolitu globalmente in u router, cinque pezzi di hardware sò stati cunfigurati, ma l'errore ùn era micca. nutatu nantu à u sestu, vechji cambiamenti fatti da una altra persona sò stati impegnati. Ci hè una tonna di scenarii.

L'automatizazione ci permetterà di fà menu sbagli, ma à una scala più grande. Questu modu pudete brick micca solu un dispositivu, ma tutta a reta in una volta.

Da u tempu immemorial, i nostri missiavu cuntrollanu a correttezza di i cambiamenti fatti cù un ochju attentu, boli d'azzaru è a funziunalità di a reta dopu ch'elli sò stati rotulati.
Quelli missiavu chì u travagliu hà purtatu à downtime è pèrdite catastròfiche lascianu menu prole è duveranu mori fora cù u tempu, ma l'evoluzione hè un prucessu lentu, è per quessa ùn tutti ùn sò micca sempre testendu cambiamenti in u laboratoriu prima.
In ogni casu, in prima linea di u prugressu sò quelli chì anu automatizatu u prucessu di pruvà a cunfigurazione è a so applicazione ulteriore à a reta. In altre parolle, aghju pigliatu in prestu a prucedura CI/CD (Integrazione Continua, Impiegazione Continua) da i sviluppatori.
In una di e parti, guardemu cumu implementà questu utilizendu un sistema di cuntrollu di versione, probabilmente Github.

Una volta chì avete abituatu à l'idea di a rete CI / CD, durante a notte u metudu di cuntrollà una cunfigurazione appliendula à una reta di produzzione parerà cum'è ignuranza medievale. Cum'è un battellu di una testata cù un martellu.

Una continuazione organica di idee nantu à sistema a gestione di a rete è CI / CD diventa una versione completa di a cunfigurazione.

Versioning

Assumiremu chì cù qualsiasi cambiamenti, ancu i più minori, ancu nantu à un dispositivu imperceptible, tutta a reta si move da un statu à l'altru.
È ùn avemu micca sempre eseguitu un cumandamentu nantu à u dispusitivu, cambiamu u statu di a reta.
Allora chjamemu queste versioni di stati?

Diciamu chì a versione attuale hè 1.0.0.
L'indirizzu IP di l'interfaccia Loopback in unu di i ToR hè cambiatu? Questa hè una versione minore è serà numerata 1.0.1.
Avemu rivisatu e pulitiche per impurtà rotte in BGP - un pocu più seriu - digià 1.1.0
Avemu decisu di sbarazzarsi di l'IGP è di cambià solu à BGP - questu hè digià un cambiamentu radicale di disignu - 2.0.0.

À u listessu tempu, diverse DC pò avè diverse versioni - a rete hè sviluppata, un novu equipamentu hè stallatu, novi livelli di spine sò aghjuntu in qualchì locu, micca in altri, etc.

nantu versione semantica parleremu in un articulu separatu.

Ripecu - ogni cambiamentu (eccettu per i cumandamenti di debugging) hè un aghjurnamentu di versione. L'amministratori devenu esse notificati di qualsiasi deviazioni da a versione attuale.

U stessu s'applica à i cambiamenti di rolling back - questu ùn hè micca annullatu l'ultimi cumandamenti, questu ùn hè micca un rollback cù u sistema operatore di u dispusitivu - questu porta a reta sana à una nova versione (vechja).

Monitoraghju è auto-guarigione di servizii

Stu compitu evidenti hà righjuntu un novu livellu in e rete muderne.
Spessu, i grandi fornitori di servizii piglianu l'approcciu chì un serviziu fallutu deve esse riparatu assai rapidamente è un novu risuscitatu, invece di calculà ciò chì hè accadutu.
"Moltu" significa chì avete bisognu à esse generosamente rivestitu da tutti i lati cù u surviglianza, chì in pochi sicondi detectà a minima deviazione da a norma.
E quì i metrici di solitu, cum'è a carica di l'interfaccia o a dispunibilità di node, ùn sò più abbastanza. U monitoraghju manuale di elli da l'ufficiale di guardia ùn hè micca abbastanza.
Per parechje cose ci deve esse Autoguariscenza - i lumi di surviglianza sò diventati rossi è andemu è applicà u piantaggiu noi stessu induve ci fece male.

È quì avemu ancu monitorà micca solu i dispositi individuali, ma ancu a salute di tutta a reta, sia whitebox, chì hè relativamente comprensibile, sia blackbox, chì hè più cumplicatu.

Chì avemu bisognu per implementà piani cusì ambiziosi ?

  • Avè una lista di tutti i dispusitivi nantu à a reta, u so locu, roli, mudelli, versioni di software.
    kazan-leaf-1.lmu.net, Kazan, foglia, Juniper QFX 5120, R18.3.
  • Avè un sistema per descrizzione di servizii di rete.
    IGP, BGP, L2/3VPN, Politica, ACL, NTP, SSH.
  • Esse capaci di initialize u dispusitivu.
    Hostname, Gmt IP, Gmt Route, Users, RSA-Keys, LLDP, NETCONF
  • Configurate u dispusitivu è portate a cunfigurazione à a versione desiderata (inclusa l'antica).
  • Pruvate a cunfigurazione
  • Verificate periodicamente l'estatus di tutti i dispositi per i deviazioni da quelli attuali è informate à quale deve esse.
    Durante a notte, qualchissia hà aghjustatu in silenziu una regula à l'ACL.
  • Monitorà u rendiment.

Fondi

Sembra abbastanza complicatu per cumincià à scumpressà u prugettu in cumpunenti.

È ci saranu dece:

  1. Sistema di inventariu
  2. Sistema di gestione di u spaziu IP
  3. Sistema di descrizzione di serviziu di rete
  4. Meccanisimu di inizializazione di u dispusitivu
  5. Mudellu di cunfigurazione agnosticu di u venditore
  6. Interfaccia di driver specifica di u venditore
  7. Meccanismu per furnisce a cunfigurazione à u dispusitivu
  8. CI / CD
  9. Meccanismu di salvezza è ricerca di deviazioni
  10. Sistema di monitoraghju

Questu, per via, hè un esempiu di cumu a vista nantu à i scopi di u ciculu hà cambiatu - ci era 4 cumpunenti in u prugettu.

L'automatizazione per i zitelli. Parte zero. Pianificazione

In l'illustrazione, aghju illustratu tutti i cumpunenti è u dispusitivu stessu.
I cumpunenti intersectanti interagiscenu trà elli.
U più grande u bloccu, u più attente deve esse pagatu à stu cumpunente.

Componente 1: Sistema d'inventariu

Ovviamente, vulemu sapè quale equipamentu hè situatu induve, ciò chì hè cunnessu.
U sistema di inventariu hè una parte integrante di ogni impresa.
A maiò spessu, una impresa hà un sistema d'inventariu separatu per i dispositi di rete, chì risolve i prublemi più specifichi.
Comu parte di sta serie di articuli, a chjameremu DCIM - Data Center Infrastructure Management. Ancu s'è u terminu DCIM stessu, in modu strettu, include assai più.

Per i nostri scopi, guardemu i seguenti infurmazioni nantu à u dispusitivu in questu:

  • Numaru d'inventariu
  • Titulu / Descrizzione
  • mudellu (Huawei CE12800, Juniper QFX5120, etc.)
  • Parametri caratteristiche (schede, interfacce, etc.)
  • Rôle (Leaf, Spine, Border Router, etc.)
  • Locu (regione, cità, data center, rack, unità)
  • Interconnessioni trà i dispusitivi
  • Topulugia di a rete

L'automatizazione per i zitelli. Parte zero. Pianificazione

Hè perfettamente chjaru chì noi stessi vulemu sapè tuttu questu.
Ma questu aiutu per l'automatizazione?
Senza dubbitu.
Per esempiu, sapemu chì in un datu centru di dati nantu à i switch Leaf, s'ellu hè Huawei, ACL per filtrà certu trafficu deve esse appiicatu nantu à a VLAN, è s'ellu hè Juniper, allora nantu à l'unità 0 di l'interfaccia fisica.
O avete bisognu di sparghje un novu servitore Syslog à tutte e fruntiere in a regione.

In questu almacenaremu i dispositi di rete virtuale, per esempiu routers virtuali o riflettori radicali. Pudemu aghjunghje servitori DNS, NTP, Syslog è in generale tuttu ciò chì in una manera o l'altru hè in relazione à a reta.

Componente 2: Sistema di gestione di u spaziu IP

Iè, è oghje ci sò squadre di persone chì tenenu traccia di prefissi è indirizzi IP in un schedariu Excel. Ma l'approcciu mudernu hè sempre una basa di dati, cù un front-end in nginx/apache, API è funzioni estensive per a registrazione di l'indirizzi IP è e rete divisi in VRF.
IPAM - Gestione di l'indirizzu IP.

Per i nostri scopi, almacenaremu l'infurmazioni seguenti in questu:

  • VLAN
  • VRF
  • Reti/Subnets
  • indirizzi IP
  • Aduprà l'indirizzi à i dispositi, a rete à i lochi è i numeri VLAN

L'automatizazione per i zitelli. Parte zero. Pianificazione

In novu, hè chjaru chì vulemu assicurà chì quandu avemu attribuitu un novu indirizzu IP per u loopback ToR, ùn avemu micca stumble nantu à u fattu chì era digià assignatu à qualchissia. O chì avemu usatu u listessu prefissu duie volte à e sfarente estremità di a reta.
Ma cumu questu aiuta cù l'automatizazione?
Facile.
Avemu dumandatu un prefissu in u sistema cù u rolu di Loopbacks, chì cuntene l'indirizzi IP dispunibili per l'assignazione - se si trova, assignemu l'indirizzu, se no, dumandemu a creazione di un novu prefissu.
O quandu crea una cunfigurazione di u dispusitivu, pudemu truvà fora da u stessu sistema in quale VRF deve esse situatu l'interfaccia.
È quandu principia un novu servitore, u script logs in u sistema, scopre in quale switch hè u servitore, quale portu è quale subnet hè assignatu à l'interfaccia - è attribuisce l'indirizzu di u servitore da ellu.

Questu suggerisce un desideriu di cumminà DCIM è IPAM in un sistema per ùn duplicà funzioni è ùn serve micca duie entità simili.
Hè ciò chì faremu.

Componente 3. Sistema per a descrizzione di servizii di rete

Se i primi dui sistemi almacenanu variabili chì anu da sempre esse usatu in qualchì modu, u terzu descrive per ogni rolu di u dispositivu cumu si deve esse cunfiguratu.
Hè vale a pena distingue dui tipi diffirenti di servizii di rete:

  • Infrastruttura
  • Cliente.

I primi sò pensati per furnisce a cunnessione di basa è u cuntrollu di u dispositivu. Questi includenu VTY, SNMP, NTP, Syslog, AAA, protokolli di routing, CoPP, etc.
L'ultimi organizanu u serviziu per u cliente: MPLS L2/L3VPN, GRE, VXLAN, VLAN, L2TP, etc.
Di sicuru, ci sò ancu casi cunfini - induve include MPLS LDP, BGP? Iè, è i protokolli di routing ponu esse utilizati per i clienti. Ma questu ùn hè micca impurtante.

I dui tipi di servizii sò scomposti in primitivi di cunfigurazione:

  • interfacce fisiche è logiche (tag/anteg, mtu)
  • Indirizzi IP è VRF (IP, IPv6, VRF)
  • ACL è pulitiche di trasfurmazioni di trafficu
  • Protocolli (IGP, BGP, MPLS)
  • Politiche di routing (liste di prefissi, cumunità, filtri ASN).
  • Servizi di utilità (SSH, NTP, LLDP, Syslog...)
  • Etc.

Cumu esattamente faremu questu, ùn aghju micca idea. Fighjemu in un articulu separatu.

L'automatizazione per i zitelli. Parte zero. Pianificazione

S'ellu hè un pocu più vicinu à a vita, allora pudemu discriverà questu
U switch Leaf deve avè sessione BGP cù tutti i switch Spine cunnessi, impurta e rete cunnessi in u prucessu, è accetta solu rete da un certu prefissu da i switch Spine. Limite CoPP IPv6 ND à 10 pps, etc.
À u turnu, i spine tenenu sessioni cù tutti i cundizzioni cunnessi, agiscenu cum'è riflettori radicali, è accettanu da elli solu rotte di una certa lunghezza è cù una certa cumunità.

Componente 4: Meccanismu di Inizializazione di Dispositivi

Sottu à sta rubrica, aghju cumminatu assai di l'azzioni chì deve esse accadutu per chì un dispositivu apparisce in radar è accede remotamente.

  1. Entre u dispusitivu in u sistema di inventariu.
  2. Sceglite un indirizzu IP di gestione.
  3. Configurate l'accessu di basa à questu:
    Hostname, indirizzu IP di gestione, rotta à a reta di gestione, utilizatori, chjavi SSH, protokolli - telnet/SSH/NETCONF

Ci sò trè approcci:

  • Tuttu hè completamente manuale. U dispusitivu hè purtatu à u stand, induve una persona orgànica ordinaria entre in i sistemi, cunnette à a cunsola è cunfigurà. Pò travaglià in picculi rete statiche.
  • ZTP - Zero Touch Provisioning. U hardware hè ghjuntu, s'arrizzò, hà ricevutu un indirizzu via DHCP, andò à un servitore speciale, è si cunfigurava.
  • L'infrastruttura di i servitori di cunsola, induve a cunfigurazione iniziale si trova à traversu u portu di a cunsola in modu automaticu.

Parleremu di tutti i trè in un articulu separatu.

L'automatizazione per i zitelli. Parte zero. Pianificazione

Componente 5: mudellu di cunfigurazione agnosticu di u venditore

Finu à avà, tutti i sistemi sò stati patch disparati chì furniscenu variàbili è una descrizzione dichjarazione di ciò chì vulemu vede nantu à a reta. Ma prima o dopu, vi tuccherà à trattà cun specifichi.
In questu stadiu, per ogni dispositivu specificu, primitivi, servizii è variàbili sò cumminati in un mudellu di cunfigurazione chì in realtà descrive a cunfigurazione cumpleta di un dispositivu specificu, solu in una manera neutrale per u venditore.
Chì faci stu passu? Perchè ùn creà micca immediatamente una cunfigurazione di u dispositivu chì pudete semplicemente caricate?
In fatti, questu risolve trè prublemi:

  1. Ùn adattate micca à una interfaccia specifica per interagisce cù u dispusitivu. Sia CLI, NETCONF, RESTCONF, SNMP - u mudellu serà u listessu.
  2. Ùn tenite micca u numeru di mudelli / scripts secondu u numeru di vinditori nantu à a reta, è se u disignu cambia, cambia a listessa cosa in parechji posti.
  3. Caricate a cunfigurazione da u dispusitivu (backup), mette in esattamente u listessu mudellu è paragunate direttamente a cunfigurazione di destinazione cù quella esistente per calculà u delta è preparanu un patch di cunfigurazione chì cambierà solu quelli parti chì sò necessarii o per identificà deviazioni.

L'automatizazione per i zitelli. Parte zero. Pianificazione

In u risultatu di sta tappa, uttene una cunfigurazione indipendente da u venditore.

Componente 6. Interfaccia di driver specificu di u venditore

Ùn duvete micca aduperà cù a speranza chì un ghjornu serà pussibule cunfigurà una ciska in u listessu modu cum'è un Juniper, solu mandendu esattamente i stessi chjamati. Malgradu a pupularità crescente di i whiteboxes è l'emergenza di supportu per NETCONF, RESTCONF, OpenConfig, u cuntenutu specificu chì questi protokolli offrenu difiere da u venditore à u venditore, è questu hè una di e so diffirenzii cumpetitivi chì ùn anu micca rinunciatu cusì facilmente.
Questu hè apprussimatamente u listessu cum'è OpenContrail è OpenStack, chì anu RestAPI cum'è a so interfaccia NorthBound, aspettanu chjamate completamente diverse.

Allora, in u quintu passu, u mudellu indipindente di u venditore deve piglià a forma in quale andarà in hardware.
E quì tutti i mezi sò boni (micca): CLI, NETCONF, RESTCONF, SNMP simpliciamente.

Dunque, avemu bisognu di un cunduttore chì trasfiriu u risultatu di u passu precedente in u formatu necessariu di un venditore specificu: un set di cumandamenti CLI, una struttura XML.

L'automatizazione per i zitelli. Parte zero. Pianificazione

Componente 7. Meccanismu per furnisce a cunfigurazione à u dispusitivu

Avemu generatu a cunfigurazione, ma ancu deve esse furnita à i dispositi - è, ovviamente, micca a manu.
Prima, simu di fronte à a quistione di chì trasportu useremu ? È oghje a scelta ùn hè più chjucu:

  • CLI (telnet, ssh)
  • SNMP
  • NETCONF
  • RESTCONF
  • REST API
  • OpenFlow (ancu se hè un outlier perchè hè un modu di furnisce FIB, micca paràmetri)

Puntemu a t hè quì. CLI hè un legatu. SNMP... tosse tosse.
RESTCONF hè sempre un animale scunnisciutu; l'API REST hè supportata da quasi nimu. Per quessa, avemu da fucalizza nantu à NETCONF in a serie.

In fatti, cum'è u lettore hà digià capitu, da questu puntu avemu digià decisu nantu à l'interfaccia - u risultatu di u passu precedente hè digià prisentatu in u formatu di l'interfaccia chì hè stata scelta.

Siconda, è chì arnesi faremu questu?
Ci hè ancu una grande scelta quì:

  • Scrittura o piattaforma autoscritta. Armemu noi cù ncclient è asyncIO è facemu tuttu. Chì ci costa à custruisce un sistema di implementazione da zero?
  • Ansible cù a so ricca biblioteca di moduli di rete.
  • Salt cù u so pocu travagliu cù a reta è a cunnessione cù Napalm.
  • Attualmente Napalm, chì cunnosci un paru di venditori è basta, addiu.
  • Nornir hè un altru animale chì disseceremu in u futuru.

Quì u preferitu ùn hè ancu statu sceltu - avemu da circà.

Chì altru hè impurtante quì? Consequenze di applicà a cunfigurazione.
Successu o micca. Ci hè sempre accessu à u hardware o micca?
Sembra chì commit vi aiuterà quì cun cunferma è validazione di ciò chì hè stata scaricata à u dispusitivu.
Questu, cumminatu cù l'implementazione curretta di NETCONF, restringe significativamente a gamma di i dispositi adattati - micca assai pruduttori supportanu l'impegni normali. Ma questu hè solu unu di i prerequisiti in RFP. À a fine, nimu ùn hè preoccupatu chì nimu un vinditore russu ùn rispetterà a cundizione di l'interfaccia 32 * 100GE. O hè preoccupatu ?

L'automatizazione per i zitelli. Parte zero. Pianificazione

Cumpunente 8. CI/CD

À questu puntu, avemu digià a cunfigurazione pronta per tutti i dispositi di rete.
Scrivu "per tuttu" perchè parlemu di versione di u statu di a rete. E ancu s'è avete bisognu di cambià i paràmetri di un solu switch, i cambiamenti sò calculati per a reta sana. Ovviamente, ponu esse zero per a maiò parte di i nodi.

Ma, cum'è era digià dettu sopra, ùn simu micca un tipu di barbari chì volenu rotulà tuttu direttamente in produzzione.
A cunfigurazione generata deve prima passà per Pipeline CI/CD.

CI/CD significa Integrazione Continua, Implementazione Continua. Questu hè un approcciu in u quale a squadra ùn solu mette una nova liberazione maiò ogni sei mesi, rimpiazzendu cumplettamente l'antica, ma implementa regularmente in modu incrementale (Deployment) novi funziunalità in picculi porzioni, ognuna di e quali hè testata in modu cumpletu per a cumpatibilità, a sicurità è a sicurezza. prestazione (Integrazione).

Per fà questu, avemu un sistema di cuntrollu di versione chì monitoreghja i cambiamenti di cunfigurazione, un laboratoriu chì verifica s'ellu hè rottu u serviziu di u cliente, un sistema di surviglianza chì verifica stu fattu, è l'ultimu passu hè rolling out cambiamenti à a reta di produzzione.

Cù l'eccezzioni di i cumandamenti di debugging, assolutamente tutti i cambiamenti nantu à a reta devenu passà per u Pipeline CI/CD - questa hè a nostra garanzia di una vita tranquilla è una carriera longa è felice.

L'automatizazione per i zitelli. Parte zero. Pianificazione

Componente 9. Backup è sistema di rilevazione di anomalie

Ebbè, ùn ci hè bisognu di parlà di salvezza di novu.
Semu solu mette in git secondu a corona o nantu à u fattu di un cambiamentu di cunfigurazione.

Ma a seconda parte hè più interessante - qualcunu deve tene un ochju nantu à questi backups. È in certi casi, questu qualchissia deve andà è vultà tuttu cumu era, è in altri, miau à qualchissia chì qualcosa hè sbagliatu.
Per esempiu, se un novu utilizatore hè apparsu chì ùn hè micca registratu in e variàbili, avete bisognu di caccià ellu da u pirate. È s'ellu hè megliu micca tuccà una nova regula di firewall, forsi qualchissia hà ghjustu attivatu u debugging, o forsi u novu serviziu, un bungler, ùn hè micca registratu secondu a regulazione, ma a ghjente hà digià unitu.

Ancora ùn scapperemu di qualchì picculu delta à a scala di tutta a reta, malgradu ogni sistema d'automatizazione è a manu d'acciaio di gestione. Per debug i prublemi, nimu ùn aghjunghje a cunfigurazione à i sistemi in ogni modu. Inoltre, ùn ponu ancu esse inclusi in u mudellu di cunfigurazione.

Per esempiu, una regula di firewall per cuntà u nùmeru di pacchetti per IP specificu per localizà un prublema hè una cunfigurazione temporale completamente ordinaria.

L'automatizazione per i zitelli. Parte zero. Pianificazione

Componente 10. Sistema di surviglianza

À u principiu ùn aghju micca da copre u tema di u monitoraghju - hè sempre un tema voluminoso, cuntruversu è cumplessu. Ma cum'è e cose avanzavanu, hè risultatu chì questu era una parte integrante di l'automatizazione. È hè impussibile di bypassà, ancu senza pratica.

Evolving Thought hè una parte urganica di u prucessu CI/CD. Dopu avè lanciatu a cunfigurazione à a reta, avemu bisognu di pudè determinà s'ellu hè tuttu bè avà.
È ùn parlemu micca solu è micca tantu di i prugrammi di l'usu di l'interfaccia o di a dispunibilità di nodi, ma di e cose più sottili - a presenza di e rotte necessarie, attributi nantu à elli, u numeru di sessioni BGP, vicini OSPF, prestazioni end-to-end. di servizii soprastanti.
I syslogs à u servitore esternu anu cessatu di aghjunghje, o l'agente SFlow si sguassate, o i gocce in e fila cuminciaru à cresce, o a cunnessione trà qualchi paru di prefissi si rompe?

Avemu da riflette nantu à questu in un articulu separatu.

L'automatizazione per i zitelli. Parte zero. Pianificazione

L'automatizazione per i zitelli. Parte zero. Pianificazione

cunchiusioni

Comu basa, aghju sceltu unu di i disinni muderni di rete di centru di dati - L3 Clos Fabric cù BGP cum'è u protocolu di routing.
Sta volta avemu da custruisce a reta nantu à Juniper, perchè avà l'interfaccia di JunOs hè un vanlove.

Facemu a nostra vita più difficiule usendu solu strumenti Open Source è una reta multi-venditore - cusì in più di Juniper, sceglieraghju una persona più furtunata in u caminu.

U pianu per e publicazioni à vene hè qualcosa cum'è questu:
Prima parleraghju di e rete virtuale. Prima di tuttu, perchè vogliu, è secondu, perchè senza questu, u disignu di a reta di l'infrastruttura ùn serà micca assai chjaru.
Allora nantu à u disignu di a rete stessu: topologia, routing, pulitiche.
Assemblamu un stand di laboratoriu.
Pensemu à questu è forse praticate l'inizializazione di u dispusitivu in a reta.
E poi nantu à ogni cumpunente in intimu detail.

È iè, ùn aghju micca prumessu di finisce cù grazia stu ciculu cù una suluzione pronta. 🙂

E ligami utili

  • Prima di passà in a serie, vale a pena leghje u libru di Natasha Samoilenko Python per ingegneri di rete. È forse passà corsu.
  • Serà ancu utile à leghje RFC circa u disignu di fabbriche di centru di dati da Facebook da Petru Lapukhov.
  • A documentazione di l'architettura vi darà una idea di cumu funziona Overlay SDN. Tissu tungstènu (ex Open Contrail).
Grazie

Gola Rumana. Per i cumenti è e modifiche.
Artyom Chernobay. Per KDPV.

Source: www.habr.com

Add a comment