Wat is DevNetOps?

Wat is DevNetOps?

DevNetOps is de toepassing van DevOps-filosofieën, -principes en -gedragingen op netwerkoperaties (NetOps). DevOps-filosofieën zijn ontstaan in de software engineering en de lean manufacturing-revolutie die plaatsvond in de jaren 1980-2000. Deze principes zijn algemeen bekend als CALMS: culture (cultuur), automation (automatisering), lean (slank), measurement (meting) en sharing (delen).

Een van de meest gebruikte DevOps-principes gaat in tegen de watervalmethode. Dit is een methode waarbij de ontwikkeling door enkele lange, opeenvolgende fasen loopt: planning, bouw en testen. Zoals beschreven in het DevOps Handboek, heeft DevOps-onderzoek aangetoond dat voor de IT en verwerkende industrieën, kleinere, meer frequente implementaties zorgen voor een grotere operationele snelheid, wendbaarheid/flexibiliteit, en verbeterde kwaliteit.

Voor organisaties die de doelstellingen voor hun bedrijf snel willen bereiken, is betrouwbaarheid essentieel! Snelheid zonder duurzaamheid leidt tot mislukking, en iets wat snel mislukt is alleen gunstig voor organisaties als zij de kans hebben om zich tussen iteraties te verbeteren. Een recente en populaire implementatie van DevOps is toevallig de rol van site reliability engineer (SRE). Tegelijkertijd wordt DevNetOps geïmplementeerd door de rol van network reliability engineer (NRE).


Wat is een DevNetOps Pipeline?

DevNetOps Pipeline

DevNetOps Pipeline

Om de doorlooptijd tussen ontwikkeling en implementatie te verkorten, en te werken in kortere, snellere cycli met kleinere implementatiewijzigingen, automatiseert de DevNetOps Pipeline de voortgang tussen technologische aanpassingen en productie-implementaties.

Het vastleggen van een uitvoeringscode zorgt voor een continuous integration (CI)-pipeline (voortdurende integratie) van progressieve opbouw en testen. Door een reeks automatische en handmatige beoordelingen worden candidate delivery payloads getest in virtuele omgevingen, simulaties en laboratoria, op weg naar een toegezegde betrouwbare levering. De continuous delivery (CD)-pipeline (voortdurende levering) zorgt ervoor dat de toegezegde levering altijd inzetbaar is. Continuous deployment (voortdurende implementatie) is het automatisch pushen naar staging en dan productie.

Voordat wijzigingen echter naar het uitvoeringsstadium gaan (zoals staging en productie), is het belangrijk om architectuureenheden van micro-formaat voor wijzigingen en een onveranderlijke infrastructuur te realiseren. Grote monolithische veranderingen zijn niet veilig, en zijn langzamer te vormen en goed te keuren. Bovendien zijn problemen moeilijker vast te stellen in vergelijking met kleinere veranderingen.

Een onveranderlijke infrastructuur is net zo belangrijk voor continuous deployment. Het is niet efficiënt of nuttig om iets te implementeren, en dan door een engineer de betekenis te laten veranderen van datgeen wat werkelijk is geïmplementeerd. De productieduur moet reproduceerbaar zijn om veranderingen veilig te kunnen testen en te bepalen hoe problemen kunnen worden verbeterd.

Voortdurende monitoring, meting, en reactie vormen het laatste onderdeel van DevNetOps. De feedback tijdens de productie naar indicatoren van het servicelevel worden gebruikt om reactieve of proactieve aanpassingen aan de transitieve netwerktoestand door te voeren. Ook de geanalyseerde telemetrie, incidenten en externe wijzigingsverzoeken voeden voortdurende verbeteringen in de gecodificeerde conditie van de netwerksystemen.

Samenvatting van de geautomatiseerde DevNetOps Pipeline

Tooling

Proces

Mensen

Netwerk als code

Invorderen van configuratie-geheimen, artefacten, en gitOps

Branching, beoordeling, koppeling, Agile

Coderingsvaardigheden (niet per se programmering)

Pipeline-inrichting

Pijplijn CI/CD-tools, test-frameworks

TDD, beoordeling van metingen

Vaardigheden in bouwen en debuggen, pipeline professionals

Micro- en onveranderlijke architectuur

Baking deliveries voor ZTP, vendor refractors

Commits/implementatie in kleine stappen

Hands-off CLI/TTY

Geplande upgrades

ZTD, virtualisatie, labs, traffic draining

Staging en simulatie van canary-analyse

Onderhoud tijdens kantooruren, terugdraaien of vooruitzetten

Herstellingsvermogen ontwerp en oefeningen

Verkeersgeneratie, DoS, chaos monkey

Chaos windows, beperking van documenten

Forceer falen voor begrip

Continuous measurement (voortdurende meting)

Big data-analyse, ML, ITops-integratie

Draaiboek voor incidenten, capaciteitsplanning

Management op basis van statistieken, metriek, efficiëntie

Continuous response (voortdurende reactie)

Automatisch herstel, FaaS, voorspellende statistieken

Toezicht houden op zelfsturende modus

Engineer-telemetrie, indicatoren, zelfherstellend

Continuous improvement (voortdurende verbetering)

Upgrades, functies, fixes, veranderingen

Lokale les omzetten in wereldwijde kennis

Actieve ruimdenkendheid post mortems

Voordelen van DevNetOps

  • Teamcultuur en -gedragingen die overeenkomen met reliability engineering in combinatie met kleinere, meer frequente implementaties, leiden tot beter presterende teams en bedrijven1.
  • DevNetOps maakt een snellere integratie van systemen van leveranciers mogelijk, voornamelijk software-upgrades en patches. Het overtuigt de verkopers om sneller en in kleinere hoeveelheden te leveren, waardoor het probleem van een lange doorlooptijd voor functies en fixes wordt opgelost. De kloof tussen de time-to-market van de leverancier en de time-to-deployment van de operator wordt hierdoor drastisch verkleind.
  • Voor engineers vermindert DevNetOps stress (implementatieangst) en verhoogt het de werktevredenheid.

Wat is de relatie tussen NRE, DevNetOps en DevOps?

DevOps en DevOps-engineers worden geassocieerd met de ontwikkeling en operationele activiteiten van bedrijfsapplicaties. Er is wel degelijk een rol weggelegd voor netwerken, vooral voor sommige soorten software-defined netwerken (SDN), bij het uitvoeren van applicatieclusters. Netwerken bestaan ook echter binnen bedrijven en serviceproviders die los staan van het ontwikkelen en uitvoeren van softwareapplicaties en -platforms2. Enkele voorbeelden van NetOps-netwerken die zich richten op bedrijfsapplicaties zijn: wide-area backbone, transport, backhaul, en underlay-netwerken van datacenters.

Er is een verschil tussen DevOps en DevNetOps: de Dev-Ops-netwerken maken een onderscheid tussen leverancier en klant in plaats van tussen teams binnen hetzelfde bedrijf. Sommige doelen van DevOps, zoals snelle iteratie van functies en productexperimenten, zijn geen typische doelstellingen voor de fundamentele infrastructuur van netwerken. De principes en voordelen van DevOps zijn gelijkelijk van toepassing op netwerken.

Hoewel DevNetOps, net als DevOps, een verzameling filosofieën, principes en best practices is, worden deze bij network reliability engineering (NRE) geïmplementeerd. De doelstellingen van 'Dev' en 'Engineering' zijn hetzelfde. De DevOps-principes richten zich echter op het verhogen van snelle iteratie en evolutie naar continuous learning (voortdurend leren), terwijl betrouwbaarheid het belangrijkste doel is voor NRE. Dit zijn twee complementaire doelstellingen: een wat en een waarom.