Che cos'è DevNetOps?

Che cos'è DevNetOps?

DevNetOps è l'applicazione della filosofia e dei principi e comportamenti DevOps alle operazioni di rete (NetOps). Le filosofie DevOps sono nate con la cultura del software engineering e con la rivoluzione della cosiddetta produzione snella, avvenuta tra gli anni Ottanta e Duemila. Questi principi sono comunemente noti come CALMS, ovvero "culture, automation, lean, measurement and sharing" (cultura, automazione, snellire, misurare e condividere).

Uno dei principi DevOps più citati si contrappone al metodo a cascata, in cui ampi cicli di progettazione, sviluppo e collaudo si susseguono in lunghe fasi progressive. Come documentato nel manuale DevOps, la ricerca DevOps ha dimostrato che, per i settori IT e manifatturieri, dei deployment più ridotti e frequenti si traducono in maggiore velocità operativa, agilità e migliore qualità.

Affinché le aziende riescano a raggiungere rapidamente i loro obiettivi, l'affidabilità è un requisito fondamentale! La velocità senza sostenibilità porta al fallimento, e gli errori commessi in tempi brevi sono utili alle aziende solo se tra un'iterazione e l'altra possono migliorare. Fortunatamente, una recente e apprezzata implementazione di DevOps è il ruolo di ingegnere dell'affidabilità del sito (SRE). Analogamente, DevNetOps è implementato dall'ingegnere dell'affidabilità della rete (NRE).

Che cos'è una pipeline DevNetOps?

Pipeline DevNetOps

Pipeline DevNetOps

Per ridurre il lasso di tempo tra sviluppo e deployment e lavorare in cicli più brevi e più rapidi con prodotti che comportino minori modifiche nel deployment, la pipeline DevNetOps automatizza la fase tra modifiche tecniche e implementazioni di prodotto.

La trasmissione a un repository dei codici versionato favorisce una pipeline di integrazione continua (CI) delle fasi progressive di sviluppo e collaudo. Attraverso una serie di valutazioni automatiche e manuali, i carichi utili candidati alla distribuzione sono testati in ambienti virtuali, simulazioni e laboratori per acquisire lo stato di distribuzione affidabile confermata. Lo stato di pipeline di distribuzione continua (CD) garantisce che la distribuzione confermata sia sempre in uno stato implementabile. Il deployment continuo è il push automatico alla gestione temporanea e quindi alla produzione.

Tuttavia, prima che le modifiche vengano introdotte in un ambiente di runtime (come ad esempio la gestione temporanea e la produzione), è importante realizzare delle micro unità architetturali delle modifiche e un'infrastruttura immutabile. Delle grosse modifiche monolitiche non sono sicure, e sono più lente da creare e convalidare. Inoltre, a differenza che con i pacchetti di modifiche più ridotti, identificare i problemi diventa piuttosto difficile.

Prima del deployment continuo, l'infrastruttura immutabile è altrettanto importante. Implementare, e quindi avere, un ingegnere che altera il senso di ciò che viene effettivamente implementato non è né efficiente né utile. Per poter verificare le modifiche in modo sicuro e determinare come si possano migliorare le problematiche, i runtime di produzione devono essere riproducibili.

Monitoraggio continuo, misurazione e risposta costituiscono l'ultima parte di DevNetOps. Durante la produzione, gli indicatori di feedback sul livello del servizio sono utilizzati per apportare modifiche reattive o proattive allo stato transitorio della rete. Inoltre, la telemetria analizzata, gli incidenti e le richieste di modifica esterne fanno confluire continui miglioramenti nello stato codificato dei sistemi di rete.

Riepilogo pipeline DevNetOps automatizzata

Strumenti

Processo

Persone

Rete come codice

Repository di segreti di configurazione, artefatti e gitOps

Diramazione, revisione, accoppiamento, Agile

Competenze di codificazione (non necessariamente programmazione)

Orchestrazione pipeline

Strumenti pipeline CI/CD, framework di prova

TDD, valutazioni di misura

Sviluppo e debug delle competenze, vantaggi della pipeline

Architettura micro e immutabile

Prodotti per ZTP, rifrattori venditori

Commit/deployment a piccole fasi

Hands-off CLI/TTY

Aggiornamenti orchestrati

ZTD, virtualizzazione, laboratori, drenaggio del traffico

Gestione temporanea e analisi canary di simulazione

Manutenzione in ore, roll back o forward

Design di resilienza e drill

Generazione del traffico, DoS, chaos monkey

Chaos windows, limiti di documento

Forzare il guasto per comprendere

Misurazione continua

Big data analytics, ML, integrazione ITops

Playbook degli incidenti, pianificazione della capacità

Gestione tramite statistiche, misurazioni, efficienza

Risposta continua

Riparazione automatica, FaaS, statistiche predittive

Sorvegliare il self-driving

Ingegnere telemetria, indicatori, self-healing

Miglioramento continuo

Aggiornamenti, funzionalità, correzioni, modifiche

Integrare l'informazione locale nella conoscenza globale

Analisi retrospettive attive con mente aperta

Vantaggi di DevNetOps

  • Una cultura e dei comportamenti conformi all'ingegneria dell'affidabilità, associati a deployment più ridotti e frequenti, portano a team e aziende più performanti1.
  • DevNetOps consente un'integrazione più rapida dei sistemi dei venditori, in particolare aggiornamenti e patch software. Spinge i venditori a effettuare le distribuzioni in carichi utili più ridotti e con una maggiore frequenza, risolvendo il problema dei tempi troppo lunghi impiegati per funzionalità e correzioni. Riduce drasticamente il gap tra il time-to-market del venditore e il deployment dell'operatore.
  • Per gli ingegneri, DevNetOps riduce lo stress (ansia del deployment) e aumenta la soddisfazione nel lavoro.

Qual è il rapporto tra NRE, DevNetOps, e DevOps?

Gli ingegneri DevOps e DevOps sono associati allo sviluppo e al funzionamento delle applicazioni aziendali. Per il networking, in particolare per alcuni tipi di networking definiti da software (SDN), esiste un ruolo nell'esecuzione dei cluster delle applicazioni. Tuttavia, le reti esistono anche all'interno delle imprese e dei service provider che non appartengono al settore dello sviluppo e dell'esecuzione delle applicazioni e piattaforme software2. Alcuni esempi di reti NetOps che si concentrano sulle applicazioni aziendali sono: backbone ad ampio raggio, trasporto, backhaul e reti underlay di data center.

Per differenziare i DevOps e i DevNetOps, la separazione dei Dev-Ops del networking è tra venditore e cliente anziché tra i team della stessa azienda. Alcuni obiettivi DevOps, come l'iterazione rapida delle funzionalità e la sperimentazione dei prodotti, non sono obiettivi tipici per l'infrastruttura di base delle reti. Tuttavia, i principi e i vantaggi DevOps valgono anche per il networking.

Mentre DevNetOps, come DevOps, è una raccolta di filosofie, principi e best practice, l'ingegneria dell'affidabilità della rete (NRE) li implementa. Gli obiettivi "Dev" e "Ingegneria" sono gli stessi. Tuttavia, mentre i principi DevOps aumentano la velocità dell'iterazione e dell'evoluzione verso l'apprendimento continuo, NRE si concentra principalmente sull'obiettivo dell'affidabilità. Si tratta di due obiettivi complementari: un cosa e un perché.