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