Puppet vindt application delivery de nieuwe heilige graal binnen DevOps

Het automatiseren van alle processen voor de complete infrastructuur staat hoog op de agenda in de enterprisemarkt. Verschillende partijen kunnen daar een rol in spelen, waaronder Puppet. Met een uitgebreid pallet aan toepassingen laat het Amerikaanse bedrijf de processen automatisch en snel verlopen. Wel ziet de DevOps-specialist application delivery, en vooral cloud-native binnen containers, in de nabije toekomst belangrijker worden voor bedrijven en gaat hierop nadrukkelijk zijn pijlen richten. Onlangs waren we op het evenement Puppetize Live 2018, waar we meer over Puppet leerden.

Het snel en betrouwbaar automatisch kunnen uitrollen van een gehele infrastructuur en daarbij de kans op menselijke fouten voorkomen, was de grondgedachte toen Luke Kanies in 2005 Puppet oprichtte. Inmiddels is het bedrijf een grote speler binnen de DevOps-markt, met ongeveer 54.000 eindgebruikers wereldwijd. Puppet heeft nu negen kantoren verspreid over de wereld. Dat het bedrijf binnen zijn marktsegment een grote speler is, merkten we niet direct. Er waren ongeveer 200 bezoekers op het evenement in de binnenstad van Amsterdam. Maar dat dit evenement in dezelfde week ook plaatsvond in thuishaven San Francisco en Sydney, zegt wel iets over de grootte van de DevOps-specialist. Ook nam het bedrijf in het afgelopen jaar voor het eerst twee andere spelers over. Het kopen van Distelli en Reflect.io heeft duidelijk groei veroorzaakt.

Wat doet Puppet eigenlijk?

Concreet gaat het in eerste instantie om de toepassing Puppet. Dit is een open source tool voor software configuration management. Het betreft software voor het automatisch configureren en beheren van infrastructuur, of deze nu bare-metal, virtueel, on-premise of in een willekeurige publieke of private cloudomgeving staat. Puppet gebruikt voor configuration management alleen code, waardoor het dus eigenlijk een leverancier van infrastructure as code (IaC) is. Hiermee wordt met code volledig automatisch infrastructuur in datacenters beheerd en van toepassingen voorzien. Het leidt tot minder overhead, snellere uitvoer van processen en risico’s die vermeden worden. Voor bedrijven een manier om snel kosten te besparen.

De IaC van Puppet gebruikt voor het geautomatiseerd uitvoeren van de configuratie-opdrachten zogenoemde declerative definitions. Hiervoor gebruikt de tool een client-server-architectuur, waarbij de client de agent vormt en de server de master. Op de te configureren machines worden de agents geïnstalleerd. Deze communiceren met de master server, pull, om de configuratie-instructies op te halen en uit te voeren. In de code kunnen uitvoerders precies aangeven welke configuratiedoeleinden precies moeten worden uitgevoerd. Puppet gebruikt een zelfontwikkelde code die, naar eigen zeggen, erg eenvoudig valt te gebruiken. Ook eindgebruikers met weinig codekennis moeten ermee overweg kunnen. Of dat echt zo is, valt moeilijk te zeggen. De demo’s tijdens de keynotes hadden vaak toch iets weg van hogeschool codegebruik.

Puppet maakt het mogelijk om systemen te configureren op een platformonafhankelijke wijze. Daarvoor ziet het besturingssystemen als gestructureerde data. Gebruikers geven daardoor niet specifieke commando’s om een bepaalde systeemactie uit te voeren, maar creëren met code zogeheten resources voor deze systeemacties. Deze resources vertaalt de tool automatisch, op basis van zelf vergaarde informatie over het besturingssysteem, het IP-adres en (mogelijke) hardware-eigenschappen, naar systeemspecifieke instructies. Deze worden vervolgens naar de te configureren machines (nodes) verzonden. Tot slot biedt Puppet ook de bibliotheek Puppet Forge. Gebruikers kunnen hier best practices, configuraties en modules van andere eindgebruikers downloaden en naar eigen wens aanpassen. Op dit moment beschikt Puppet Forge over maar liefst 5.700 modules. Om alles zonder al te veel problemen te laten verlopen, heeft Puppet natuurlijk goede samenwerkingen met de verschillende cloudaanbieders. Natuurlijk zijn dat AWS, Google en Azure, maar ook kleinere aanbieders en dataspecialisten als Splunk komen voor.

Uitbreiding van het productportfolio

Naast de gratis open source versie, is er Puppet Enterprise. Deze betaalde uitvoering bestaat uit de originele open source versie, aangevuld met extra functionaliteit voor enterprisemarkt en ondersteuning. Dit jaar is het productenportfolio, afgezien van de nog steeds beschikbare originele versie, uitgebreid naar meerdere oplossingen die kunnen worden gezien als een drietrapsraket: Puppet Bolt, Puppet Enterprise en Puppet Pipelines. Alle drie de producten kunnen los van elkaar worden gebruikt, zegt VP for Product Matt Waxman in gesprek met Techzine. Maar alle producten maken geautomatiseerd configuratie management mogelijk, alsmede volledige geautomatiseerde application delivery. Over dit laatste later meer.

Puppet Bolt, waarvan versie 1.0 werd gepresenteerd, is de versimpelde multiplatform- en agentless automatiseringsarchitectuur van het bedrijf. Eindgebruikers kunnen deze tool zonder kennis over agent software en Puppet gebruiken om met code welke infrastructuur dan ook te configureren en beheren. Vooral het ontbreken van agents om dit mogelijk te maken, versnelt deze processen aanzienlijk. Veranderingen op de master server worden nu meteen doorgevoerd op de te configureren infrastructuur in plaats van dat de agent op gezette tijden de updates van de master trekt. Puppet Bolt is daarom geschikt om configuraties die niet kunnen wachten, zoals security patches, ‘on the fly’ uit te voeren met een enkel commando in code. Ook kan Bolt de 5.700 modules gebruiken uit de Puppet Forge voor het uitrollen van database servers tot het opzetten van Docker of Kubernetes.

De nieuwe functionaliteit in het vlaggenschip Puppet Enterprise 2019 breidt het aantal veranderingen dat DevOps-teams aan de infrastructuur kunnen toevoegen uit. Belangrijke toevoegingen aan versie 2019 zijn eveneens agentless, het flexibel programmeren van uit te voeren taken, complete encryptie voor secrets management en uitgebreide ondersteuning voor certificatenbeleid. Daarnaast zorgt Continuous Delivery for Puppet Enterprise, versie 2.0, er nu voor dat pipeline automation beschikbaar komt voor infrastructure as a code. Met onder meer Impact Analysis kunnen gebruikers van tevoren inschatten welke impact een verandering binnen hun omgevingen gaat brengen. Hierdoor kunnen zij veranderingen eenvoudiger plannen en veilig en snel uitrollen.

Console Puppet Enterprise 2019

Van configuration management naar application delivery

De grootste verandering die Puppet de bezoekers van het evenement wilde bijbrengen is dat het landschap van configuration managment verandert. Applicaties en infrastructuur zijn op hoge snelheid in elkaar aan het schuiven. Sinds kort is, volgens SVP Sandra Hamilton, de hele stack programmeerbaar. Dit heeft als gevolg dat alles nu als software wordt gezien. Veel DevOps-specialisten leven nu nog in twee werelden, de traditionele wereld waarin infrastructuur en applicaties gescheiden zijn, en de nieuwe waarin alles in containers zit verpakt. Deze laatste cloud-native wereld, waarin alles als software wordt beheerd, groeit echter sneller dan iedereen aanvankelijk dacht. Waar virtuele machines er ongeveer tien jaar over deden om als standaard te worden geaccepteerd, wordt cloud-native in vijf jaar de de-facto standaard voor software. Het is momenteel de grootste verandering voor de IT-wereld. Alles wordt software.

Het is ook het pad dat Puppet zelf gaat volgen, zo wordt de bezoekers duidelijk gemaakt. In de toekomst gaat het zich hierop meer richten dan specifiek configuration management. De DevOps-specialist speelt hierop in met Puppet Pipelines. Pipelines richt zich speciaal op de processen voor application delivery. Het vereenvoudigt onder meer de continue levering van applicaties en helpt ontwikkelaars eenvoudig self-automation te bieden. Hierdoor kunnen ze applicaties aanbieden, zonder afhankelijk te zijn van andere stakeholders binnen het DevOps-proces. Verder automatiseert Pipelines de bouw en implementatie van applicaties, zowel traditionele als cloud-native apps containers die bijvoorbeeld in Kubernetes worden uitgevoerd. In de gepresenteerde versie 3.3 van Pipelines for Containers is daarvoor onder meer ondersteuning voor Helm toegevoegd. De open source tool Helm helpt specifiek Kubernetes-applicaties te beheren door deze te definiëren, te installeren en te upgraden.

Dashboard Puppet Insights

Tot slot introduceerde Puppet ook nog enkele bèta-versies van producten waar het in de toekomst veel van verwacht. De belangrijkste hiervan die met veel tamtam werd gepresenteerd was Puppet Insights. Insights is een analyse-tool omdat, in de woorden van de specialist, ‘je niet iets kan verbeteren wat je niet kan meten’. De tool geeft met gelikte dashboards de staat van de DevOps-operaties binnen een bedrijf weer. Hiermee kunnen eindgebruikers zien hoe projecten verlopen, waar projecten moeten worden gestart en waar nodig moet worden bijgestuurd. Insights combineert gegevens van onder meer GitHub, Jira, Travis CI en natuurlijk Puppet Pipelines. Daarnaast geeft de tool op basis van best practices ontwikkelteams tips hoe projecten te verbeteren.

Een andere interessante bèta die werd gepresenteerd was Vulnerability Remediation Beta. De DevOps-specialist geeft met de bèta aan dat het ook security by design serieus neemt en maakt het mogelijk om het proces van het detecteren en herstellen van beveiligingsproblemen te automatiseren. Het zoeken naar eventuele kwetsbaarheden kan worden geïntegreerd met de tools van de beveiligingsspecialisten en partners Qualys, Tenable en Rapid 7. Een definitieve versie van dit product wordt dit jaar nog verwacht.

Wie gebruiken Puppet nu eigenlijk en waarom?

Over wie nu die specifieke gebruikers van de tools van Puppet zijn, was het bedrijf niet al te loslippig. In ieder geval kunnen deze worden gevonden in branches die met grote hoeveelheden data te maken hebben. Denk bijvoorbeeld aan de financiële sector, telco’s en overheden. In ieder geval gaf het programma van het evenement een klein inkijkje met presentaties van onder meer het bekende nucleaire Europese onderzoeksinstituut CERN uit Zwitserland. Uit eigen land kwamen Aegon en KPN voorbij. De verzekeraar gebruikt Puppet al geruime tijd met veel plezier in processen voor configuration en application delivery. Voor de verzekeraar is automatisering van deze processen belangrijk, waar Puppet bij helpt. Door de tool als standaard voor het automatiseren van de infrastructuur te voeren, besteden de IT-specialisten van Aegon minder tijd aan het beheren van de conditie van de on-premise en cloudgebaseerde servers. Hierdoor is de complexiteit van hun heterogene infrastructuur eenvoudiger te beheren. Daarnaast is Puppet voor hen de enige betrouwbare bron die hen controle en inzicht geeft over de complete IT-stack. Tot slot maakt  Puppet het Aegon mogelijk om meer tijd te kunnen besteden aan nieuwe technologie. Ook KPN werkt graag met Puppet als tool om meer inzicht te krijgen in de ontwikkelprocessen en de voortgang hiervan. Vooral door de combinatie van de tool met de software van Puppet-partner Splunk.

Puppet is een interessant bedrijf dat zijn toepassingen langzamerhand, maar met een duidelijke visie, aan het uitbreiden is. Eindgebruikers kunnen hiermee op simpele, kosteneffectieve, transparante en vooral snelle wijze infrastructuur beheren, configureren en van de juiste applicaties voorzien. Vooral de overgang die het bedrijf de komende periode wil maken naar een specialist op het gebied van application delivery met een focus op containers, maken het dat we Puppet voor onze lezers nauwgezet blijven volgen.