Wat als uw enterprise network dezelfde architectuur kan hebben als AWS, Google Cloud, Azure en Facebook? Cumulus belooft het eerste open systeem te zijn dat web-scaling mogelijk maakt voor grote én kleinere bedrijven. Omdat we bij Itility geen ontwikkeling willen missen, nodigden we Cumulus uit voor een korte demonstratie. Binnen twee uur waren onze stack engineers unaniem enthousiast.
Cumulus is de new kid on the network block met Cumulus Linux. Het is een Linux gebaseerd op het Open Network OS waarmee men de netwerkapparatuur inzet die men wilt. Van HPE, tot Mellanox, Dell, Edgecore tot Penguin. Vaarwel vendor lock-in, want u installeert Cumulus Linux als nieuwe software op deze hardware. Vanaf dat moment kunt u met deze datacenter-apparatuur hetzelfde doen als wat u met de Linux-servers doet; beheer, monitoring en automation met de tools die u gewend bent.
Nog veel belangrijker, men profiteert van de mogelijkheden die al in de Linux-kernel zitten. Waar anderen vooral de hardware aansturen met hun eigen software, gebruikt Cumulus de bestaande Linux-componenten. Wat u vervolgens in de software programmeert, wordt een-op-een overgenomen in de hardware. Of u nu vanuit Python of Ruby werkt, of liever met Bash, het is allemaal mogelijk. En wilt u gebruikmaken van de technieken zoals vxlan of BGP? De drivers en software zitten standaard in Cumulus Linux. Bij steeds meer bedrijven draait Cumulus Linux, waar ze verschillende segmenten, groottes en verticals bedienen, wat het een bewezen tool maakt.
De voordelen van CumulusVX
Verschillende systemen aan elkaar knopen, terwijl de software los staat van de hardware levert veel voordelen op. Moest een change eerst box voor box, nu kan je het met een enkel commando over je hele netwerk uitvoeren. Ook het testen wordt makkelijker omdat je kan werken met CumulusVX. In deze tool stel je een testomgeving van je beoogde datacenter samen, bijvoorbeeld via een geautomatiseerde pipeline. CumulusVX is een 100 procent virtuele kopie van Cumulus Linux en gedraagt zich dus hetzelfde. Een complete demo-omgeving is beschikbaar om te draaien op je eigen systeem via Vagrant en Virtualbox.
Een complete omgeving testen moet nu met hardware. Hoe makkelijk het gaat zonder hardware, zien we in een demo. Via een Gitrepository werd een change uitgevoerd. Hier hangt een pipeline aan die communiceert met de build-servers. Zij bouwen de omgeving op met behulp van een Ansible-script en voeren diverse tests uit om de configuratie te valideren. Toen bleek dat dit goed was werd de virtuele omgeving afgebroken en werden de changes naar de productieomgeving gepushed. De variabelen die voor de demo handmatig aangepast werden, kunnen ook via een front-end worden aangeleverd in Json.
Netwerkchange binnen minuten
Vm’s opspinnen is in de softwarewereld dagelijkse kost, maar bijzonder in de netwerkwereld. Nu bereiden we een netwerkchange voor met duizend runbooks en checks. En achttien ogen. In normale code is men gewend deze changes erbij te zetten, maar dat werkt niet zo in de netwerkwereld. Tot nu, en dat is echt heel nieuw.
Als men normaal een ip-fabric bouwt, loopt men tegen het probleem dat u vele ip-adressen moet configureren op alle links, die u vervolgens ook nog moet beheren. Een configuratie-template wil men abstract hebben. Met Cumulus kan dat dankzij de toevoeging van BGP unnumbered. Hierdoor hoeft u geen ip-adressen in de interface te configureren, maar gebruikt u de IPv6-adressen die al aanwezig zijn. De backbone-interface is daardoor veel sneller ingericht. Dit is een toevoeging op de RFC van MP-BGP en wordt dus ook ondersteund in Cumulus Linux.
Om de template configuratie zo zuiver mogelijk te maken wilt u zo min mogelijk manueel configureren. Voor elke neighbor configureert u een neighbor statement, die alleen hoeft te verwijzen naar de interface. Bij het definiëren van variabelen zijn er ook hier geen remote adressen nodig. Dat maakt de configuratie heel leesbaar.
De BGP unnumbered zorgt voor een eenvoudige inrichting. Ook voor de vlan bridges gaat dit op. In Linux is elke bridge een apart vlan. Vlan aware Bridge zorgt ervoor dat u maar één STP hoeft te configureren met daaronder meerdere vlans. Ditzelfde model wordt ook gebruikt voor de vxlan VNI-interfaces.
Troubleshooting op lichtsnelheid met NetQ
Misschien wat voorbarig, maar troubleshooting gaat u heel wat tijd schelen als u ook de betaalde applicatie NetQ gebruikt. Een nuttige toevoeging lijkt me, want de stack engineers slaakten tijdens de demo een zucht van verlichting. Het is bijvoorbeeld enorm simpel om uit te zoeken waar een MAC-adres leeft. Wilt u weten hoe iets vanuit een leaf door het netwerk gaat, dan heeft u dat binnen een enkel commando op het scherm. Vroeger moest u hiervoor alle boxen af. Of neem de bekende MTU-mismatch, normaal een tergende klus, nu in een paar seconden inzichtelijk. De historie van de changes is ook te volgen, waardoor u met terugwerkende kracht kan zien hoe dezelfde trace twee uur geleden eruitzag.
Als u werkt met andere systemen dan Linux, verwacht u misschien een interactieve CLI (command line interface). Cumulus heeft hiervoor NCLU, de network command line utility. Dat houdt in dat u alle commando’s die u begint met ‘net’ kunt gebruiken om devices te configureren en show-commando’s te doen. Bijvoorbeeld ‘net show interface all’. Dan krijgt u een overzicht dat te vergelijken is met ‘show interface brief’ op een nx-os device. De informatie wordt direct uit de diverse files en de actieve configuratie gehaald, maar nu in een net-overzicht. De interface werkt intuïtief, met tab completion en een help-functie binnen de context waar u werkt
Leren eenvoudig
Oké, wij zijn enthousiast. Maar hoe moeilijk is het om Cumulus te leren? Als eerste is het belangrijk dat u intensieve kennis hebt van layer 2 en 3. Cumulus heeft hier een crash course voor. Daarna wordt het eenvoudig. Ook hier heeft u geen dure apparatuur nodig om te testen dankzij CumulusVX. Een virtuele kopie van de netwerkomgeving die identiek is met de fysieke configuratie. Als u het downloadt, kunt u direct een tool bouwen in Vagrant. U kunt met zes spines en dertig leaves testen. Hardwareconfiguratie, CI/CD is allemaal op te zetten. Vervolgens kant u via automation de configuratie pushen naar de fysieke productie-of cloudomgeving.
Wanneer niet of wel?
Het open systeem biedt een wereld vol kansen. U moet wel met die vrijheid om kunnen gaan. Twintig tandpasta’s kiezen is nu eenmaal lastiger dan één. Cumulus koppelt met ruim zeventig systemen, en daarvan zijn predefined sets beschikbaar. Maar u kent uzelf wel: als men kán kiezen wil men dat ook. Ruim de tijd reserveren om de juiste systemen bij elkaar te zoeken is dan ook geen slecht plan.
Eerst proberen dan geloven, zeggen we altijd hier. Maar van wat we hebben gezien, hebben we heel veel zin om dat te proberen. We zien namelijk veel kansen om tijd te besparen en vooral de kans om op netwerkgebied richting infra-as-code te groeien, is een sterk punt.