10min Devops

HashiCorp brengt stacks naar Terraform en belooft optimale schaalbaarheid

Cloud-native specialist heeft zijn zinnen gezet op de groten der aarde

HashiCorp brengt stacks naar Terraform en belooft optimale schaalbaarheid

HashiCorp heeft zijn productreeks weer een stukje verder verbeterd en uitgebreid met een keur aan nieuwe features. De toevoegingen wijzen één kant op: meer gebruikers richting betaalde versies krijgen, meer functionaliteiten als eerste beschikbaar maken voor betalende klanten en volop inzetten op het managed service-aanbod van het HashiCorp Cloud Platform.

Uiteraard blijven de bestaande (gratis en open-source) community-versies van tools als Terraform, Packer, Nomad en Vault bestaan, maar dan vooral ter kennismaking. Bedrijven die hun cloud-native applicatieontwikkeling naar een hoger plan willen tillen en daarbij toegang willen tot geavanceerde features als policy-as-code, remote state management en multi-tenant-mogelijkheden, moeten toch echt overstappen naar de enterprise-versies van de genoemde tools.

Of liever nog: het gehele HashiCorp Cloud Platform (HCP) omarmen. Dat laatste is de managed service waarmee het bedrijf zijn klanten allerhande operationele taken uit handen neemt bij het provisionen, beveiligen, verbinden en ontmantelen van cloud-workloads.

‘Veel klanten denken aanvankelijk dat ze infrastructuur beter kunnen doen dan wij’, verklapt CEO Dave McJannet tijdens een onderonsje met de pers op HashiConf, het jaarlijkse evenement van het bedrijf dat dit jaar in Boston plaatsvindt. ‘Uiteindelijk zijn er velen die zeggen: doen jullie het maar.’ En zo ziet McJannet het graag, want zijn bedrijf schuift steeds meer op richting grote enterprises waarmee het ‘een langdurige relatie aangaat’. Lees: managed services aan levert.

Klanten uit de Fortune 500

Tegelijk zijn veel nieuwe features nog ‘slechts’ in public bèta. HashiCorp, dat zich erop laat voorstaan dat 205 van de ruim 4700 betalende klanten Fortune 500-bedrijven zijn, zal uiteindelijk alle mooie nieuwe toevoegingen tot general availability ofwel algemene beschikbaarheid moeten brengen, als ze dergelijke bedrijven zo ver willen krijgen deze functionaliteiten met vertrouwen in gebruik te nemen.

Het bedrijf erkent zoveel in antwoord op vragen vanuit ons, maar onderstreept dat diezelfde klanten niets minder willen dan het beste product dat HashiCorp kan leveren. Dat vereist uitgebreid testen en een lange bèta-fase als dat nodig is. Wat de meeste klanten zoeken is een manier om hun cloud-native workloads met zo weinig mogelijk risico te draaien en zo schaalbaar mogelijk. In dat licht moeten we alle HashiCorp-ontwikkelingen zien, aldus het bedrijf.

Tip: Met Infrastructure Cloud vindt HashiCorp zijn hele productportfolio opnieuw uit

Om alle twijfel weg te nemen over de richting die HashiCorp opgaat: de nieuwe functionaliteiten komen alléén beschikbaar in de HCP- of enterprise-versies van de HashiCorp-tools. In dit artikel staan de mogelijkheden centraal die HashiCorp schaart onder de ‘infrastructure’-pijler. Ofwel alles wat te maken heeft met het bouwen, deployen en managen van cloud-native infrastructuren. Security is de andere pijler waaronder HashiCorp een deel van zijn productreeks schaart. Om het een en ander overzichtelijk te houden, komen die in een ander artikel aan bod.

Terraform-stacks

Een van de belangrijkste nieuwe toevoegingen is de mogelijkheid om stacks te maken binnen infrastructure-as-code tool Terraform. Dat maakt het mogelijk verschillende modules samen te voegen en daarmee hun onderhoud en onderlinge dependency te vereenvoudigen. Deze functionaliteit is niet écht nieuw, het was immers al een jaartje beschikbaar in private preview, maar komt nu uit in public bèta. De feature verhindert dat de complexiteit van gebruikte configuraties ‘weglekt’ naar het werkproces, (Hebben alle instanties van een bepaalde app in hun verschillende workspaces de meest up-to-date configuratie?) maar beperkt deze complexiteit tot de gebruikte code aan het begin van het proces, ofwel Day 0, zoals HashiCorp zelf zou zeggen.

Alle onderdelen binnen een stack krijgen hun marsorders vanuit dezelfde configuratie, wat allerlei handmatige aanpassingen, input, tracking en het inrichten van dependencies over configuraties heen overbodig maakt. Dat gebeurt eenvoudigweg allemaal via de gebruikte Terraform-config.

Wat deze feature echt vlees op de botten geeft, is de toevoeging van deferred changes, waarbij deployments die teveel onbekende variabelen tegenkomen toch (deels) kunnen doorgaan zonder dat het gehele proces wordt lamgelegd. Dit moet vooral helpen bij het versnellen van Kubernetes– of VM-workloads, waar de stack-functionaliteit eigenlijk de meeste toegevoegde waarde biedt. Het is hierbij goed in het achterhoofd te houden dat de producten van HashiCorp in de eerste plaats bedoeld zijn voor (vaak kleine) platform-teams die cloudomgevingen inrichten waar vervolgens soms wel duizenden engineers per klant gebruik van maken.

Orkestratie-regels via code

Aanvullend is nu er de mogelijkheid van het inrichten van orkestratie-regels via code. Dat is vooral handig bij repetitieve taken met telkens dezelfde acceptatiecriteria. Voorheen moesten die criteria voor elke actie opnieuw worden gedefinieerd, maar door deze al meteen in de Terraform-workflow te programmeren, gebeurt dit −eenmaal ingesteld− volautomatisch. Daardoor zijn interdependencies van verschillende configuraties automatisch (via code) op elkaar af te stemmen en zijn er geen handmatige aanpassingen achteraf meer nodig.

Het voorbeeld dat CTO Armon Dadgar (op de foto bovenaan) gaf tijdens zijn keynote was die van een app die moet gaan draaien op een Kubernetes-workspace die nog niet bestaat. Omdat het deployen van een bepaalde app afhankelijk is van de nieuw te maken workspace, zou deze een foutmelding geven bij het aanmaken omdat de workspace ontbreekt. Dit vergt vervolgens een actie van de gebruiker. Met de orkestratieregels binnen de stacks-functionaliteit valt dit te automatiseren en herkent Terraform wat er nodig is om dergelijke workloads in gang te zetten. Minder foutgevoelig en bovendien minder handenarbeid. Klanten kunnen in de bèta-fase 500 resources met stacks provisionen.

Voor gebruikers die al workloads hebben draaien in de (gratis) Terraform Community-editie en willen opschalen naar de enterprise- of HCP-versie, kunnen dat nu geautomatiseerd doen. Ook deze feature is in public bèta. Gebruikers kunnen alle details nog nalopen voordat de migratie daadwerkelijk plaatsvindt, maar verder moet de nieuwe functie het arbeidsintensieve en foutgevoelige proces van migratie verregaand vereenvoudigen. Dat gratis gebruikers in zulke gevallen betalende klanten zijn geworden, is voor HashiCorp de kers op de taart.

Module lifecycle management

HashiCorp heeft nog meer in petto voor Terraform, dat inmiddels aardig begint weg te drijven van zijn vorig jaar geforkte broertje OpenTofu. Nóg een feature die vanaf nu beschikbaar is in public bèta betreft module lifecycle management voor apps en omgevingen die inmiddels al volop draaien (ofwel Day 2-functionaliteit in de woorden van HashiCorp). Het blijkt in de praktijk lastig om de veelheid aan modules en apps tijdig te ontmantelen, waardoor er allerlei ongebruikte of verouderde modules ruimte en rekenkracht aan het verspillen zijn en bovendien een security-risico vormen.

Met de nieuwe feature krijgt het team dat voor het beheer hiervan verantwoordelijk is, de mogelijkheid om al aan het begin van het proces −opnieuw, in de code dus− regels in te stellen voor geregelde depreciatie en communicatie naar bijvoorbeeld app-bouwers dat de versie van een module die ze gebruiken, aan een update toe is.

Die boodschap kan via e-mail aankomen, maar ook in de workspace-UI van Terraform zelf. Samen met change requests zijn module depreciation en team notifications alleen beschikbaar in de Plus-versie van HCP Terraform. Wil je serieus bezig zijn met je workflows, dan mag je daar dus best wel wat voor over hebben, aldus HashiCorp.

Kortstondige workspaces

Deze reeks vernieuwingen zou niet compleet zijn zonder er eentje te noemen die eigenlijk al sinds 18 september beschikbaar is. Niet eens in public bèta, maar zelfs algemeen beschikbaar. Dat is de introductie van functionaliteit voor het creëren van zogeheten ephemeral workspaces. Dat laat zich vertalen als vluchtige of kortstondig bestaande workspaces.

Zoals wel vaker met HashiCorp is dit een conceptuele term, er is voor zover wij weten geen functie in Terraform die zegt ‘maak een ephemeral workspace’ aan. Je kunt het gewoon doen met nieuwe, uitgebreide auto-destroy functies die per project te managen zijn. Een app, website, tool of andere toepassing is automatisch −wederom, via code− te vernietigen na een vooraf vastgestelde periode, of bij het behalen van bepaalde criteria. Dat voorkomt dat dergelijke apps hun houdbaarheidsdatum overschrijden of erger nog, verweesd en kwetsbaar blijven rondhangen in systemen.

Nieuwe features voor Packer en Waypoint

Behalve voor paradepaardje Terraform kondigde HashiCorp ook toevoegingen aan voor Packer, de tool voor het geautomatiseerd bouwen van vooraf geconfigureerde images en het daarmee provisionen van virtual machines of containers. Die biedt nu role-based access control (RBAC) op het bucket-niveau, waarmee admins op dat top-level-niveau zeer nauwkeurig de toegang voor gebruikers, devices en applicaties kunnen inrichten op basis van het principe van least privileged-access. De belangrijkste images blijven hiermee buiten bereik van degenen die er vanaf moeten blijven. Dit was al aanwezig in securitytool Vault Secrets, maar komt nu dus ook naar andere tools, als eerste deze.

Verder goed om aan te stippen dat Packer sinds enige tijd CI/CD pipeline metadata biedt waarmee zaken als pipeline ID, commits, details over het gebruikte besturingssysteem en andere zaken kunnen worden gelogd. Dit verhoogt de waarde van Packer voor compliance-doeleinden.

Waypoint: app-uitrol vergemakkelijken

Waypoint is een relatief nieuwe toevoeging aan het HCP-portfolio en vergemakkelijkt het deployen van applicaties (een internal developer platform zoals het heet). Op deze manier kunnen developers die geen deel uitmaken van het platform-team, en dus niet verantwoordelijk zijn voor de onderliggende infrastructuur, tóch bepaalde workflows aanzetten. Die zijn natuurlijk vooraf goedgekeurd door de beheerders van de infrastructuur, die deze vanaf nu ook als sjablonen of add-ons kunnen aanbieden.

Sjablonen (templates) in Waypoint zijn voor het provisionen van de onderliggende infrastructuur, de add-ons voor het managen van de afhankelijkheden van de applicaties. Zowel Waypoint als de nieuwe toevoegingen zijn nu algemeen beschikbaar, maar alleen voor gebruikers van HCP Terraform Plus. In public bèta is overigens ook de functionaliteit om via Waypoint de benodigde acties te definiëren en uit te voeren voor het runnen van applicaties.

Dat wil zeggen dat wanneer een gebruiker van de cloudomgeving een template uitvoert voor het creeren van een (tijdelijke) applicatie, hier meteen acties aan hangen. Om dat wat minder abstract te maken: een actie kan bijvoorbeeld zijn om een webpagina offline te halen voor onderhoud, een softwareversie terug te rollen naar een eerdere versie, een nieuwe deployment of een snapshot maken van een database.

Nvidia-GPU’s beteugelen met Nomad

Om deze reeks aankondigen voor het infrastructuur-gedeelte van HCP af te ronden, staan we nog even stil bij Nomad. Dit is een orkestratietool voor het managen van al dan niet gecontaineriseerde applicaties over verschillende multi-cloud en on-prem omgevingen heen. De tool is nu ook geschikt voor het beheren van resources voor Nvidia-GPU’s die AI-workloads draaien.

Daarmee kunnen gebruikers hun kostbare GPU’s zo efficiënt mogelijk inzetten door precies te bepalen welke GPU’s op welk moment een bepaalde workload draaien voor een keur aan gebruikers. Door het toekennen van quota’s kan bovendien een bovengrens worden gesteld aan het gebruik van GPU’s per namespace of regio. Zo komt onverwacht toch nog AI om de hoek kijken. Dat leek een beetje te ontbreken in de vloedgolf aan berichtgeving.

Waar landen updates het eerst?

Overigens betreft deze update voor Nomad de enterprise-versie 1.9 en niet meteen de HCP-versie. De manier van updaten kan soms wat verwarrend overkomen. Tenzij er een versienummer achter een tool staat, betreft het een update voor de HCP-versie. Alleen voor enterprise-producten gebruikt HashiCorp een versienummer.

Bij HCP ontbreken omdat die, omdat HashiCorp ze zelf beheert en aan de lopende band updatet. Versienummers aan de buitenwereld communiceren is dan niet zo zinvol. Enterprise-tools worden door klanten zelf gehost, die zijn ook zelf verantwoordelijk voor het opzetten van de servers, de inrichting van de databases en upgrades, patches en bugfixes. Doorgaans komen updates van en nieuwe toevoegingen aan enterprise-tools binnen enkele weken beschikbaar voor hun evenknie in HCP. Daar geeft het bedrijf doorgaans geen ruchtbaarheid aan, ‘dat gebeurt gewoon’, zoals een woordvoerder van het bedrijf het zegt.

Uitzondering op de regel hierop is Terraform. Nieuwe features komen éérst in de HCP-versie en pas daarna in de enterprise-versie. En voor weer andere tools zoals HCP Packer geldt dat ze een eigen updateschema hebben dat weer enigszins los staat van het éérst-enterprise-dáárna-HCP-ritueel. ‘Het is ook wel wat verwarrend’, erkent het bedrijf zelf.

Lees ook: Zó bouw je een goede cloudomgeving, zegt HashiCorp