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é.

Domande frequenti su DevNetOps

Perché DevNetOps è necessario?

Le modifiche alla rete sono complesse, richiedono processi di controllo rigorosi e costosi e sono soggette a problemi e impatti imprevisti. DevNetOps affronta questi problemi con pratiche che garantiscono che i cambiamenti siano piccoli, frequenti ed eseguiti in modo automatizzato e affidabile. Questo approccio migliora la qualità, i risultati e i tempi di implementazione rispetto alla tradizionale metodologia a cascata, che suddivide le attività in lunghe fasi sequenziali, ciascuna dipendente dalla qualità e dall'accuratezza della precedente.

Qual è la differenza tra DevOps e DevNetOps?

Mentre DevOps si occupa principalmente di accelerare i processi di sviluppo software e i tempi di implementazione di un'organizzazione, DevNetOps applica i principi e le pratiche di DevOps per automatizzare le operazioni di rete e trattare l'infrastruttura come codice. Il risultato DevNetOps previsto è un'infrastruttura di rete più flessibile, programmabile e scalabile in grado di supportare il ritmo accelerato delle pratiche DevOps e delle distribuzioni software. 

Sia DevOps che DevNetOps si concentrano sull'abbattimento dei "silos" dipartimentali e funzionali, migliorando la collaborazione tra i team e aumentando l'automazione per maggiore velocità operativa, maggiore agilità e maggiore qualità. Tuttavia, DevOps si concentra sulla collaborazione interna, mentre DevNetOps si occupa più spesso della relazione tra fornitore e cliente. In più, mentre la prima preoccupazione di DevOps è la velocità di iterazione, l'obiettivo principale di DevNetOps è l'affidabilità.

Quali sono i vantaggi di DevNetOps?

L'adozione di DevNetOps ha una moltitudine di vantaggi. Alcuni esempi sono una maggiore efficienza; integrazione più rapida dei sistemi dei fornitori, in particolare aggiornamenti software e patch; tempi di consegna più brevi per funzionalità e correzioni; e un intervallo più breve tra il tempo di commercializzazione del fornitore e il deployment dell'operatore. 

Quali tecnologie/soluzioni/prodotti DevNetOps vengono offerte da Juniper?

Juniper Cloud-Native Contrail Networking (CN2) è una piattaforma di rete software-defined (SDN) che automatizza la creazione e la gestione delle reti virtuali. Fornisce l'infrastruttura come codice, un principio di DevNetOps, per ottenere la qualità del software a un'efficienza e una velocità iperscaler. È testato, qualificato e implementato utilizzando il progetto CN2 basato su Argo con pipeline, un modello GitOps e Continuous Integration/Continuous Delivery (CI/CD) per le NetOps al fine di fornire ingegneria dell'affidabilità alla velocità di un hyperscaler.