In dit artikel gaan we in op de ontwikkelingen van Internal Developer Platforms (IDP’s), het steeds populairder wordende concept van ‘Gouden Paden’, en hoe IDP’s deze Gouden Paden mogelijk kunnen maken binnen ondernemingen.
Highlights
- Ondernemingen starten met investeren in Internal Developer Platforms (IDP) om de benodigde kennis en inspanning van developers in de cloud-native wereld te verminderen.
- Op basis van de ‘Platform as a Product’-benadering worden goed ontworpen platforms gebouwd en gebruikt.
- Succesvolle organisaties maken gebruik van IDP’s om ‘Gouden Paden’ te bouwen voor hun developers.
De problemen van een post-DevOps-wereld
De afgelopen tien jaar is de invoering van DevOps binnen ondernemingen aanzienlijk toegenomen. Deze trend werd aangewakkerd door de komst van de cloud en bedrijven zagen het voordeel van het gebruik van cloud diensten of ten minste het bouwen van soortgelijke diensten op locatie. Daarnaast was er de trend om over te stappen op microservices-architecturen, en de invoering van containers en infrastructure as code-praktijken. Openbare cloud-providers bieden ons een steeds groter aantal diensten aan uit hun aanbod. Open-source platforms zoals Kubernetes zijn volwassen geworden, en er vond een explosieve toename plaats van cloud-native tools en technologie op de markt. Het cloud-native tijdperk was geboren.
Deze tools maakten het mogelijk om de spreekwoordelijke muur tussen Dev en Ops af te breken, wat een goede zaak leek te zijn. De werkelijkheid bleek echter iets anders te zijn. De toename van hulpmiddelen, technologie en denkprocessen vergrootte de cognitieve overbelasting, vooral op het gebied van de productiviteit van developers. Developers moesten plotseling inzicht krijgen in complexe cloud-native toolchains, alleen maar om een kleine fix of wijziging in hun applicatie te implementeren.
De opkomst van de Platform Engineer
Terwijl de meeste bedrijven inspeelden op de belofte van DevOps (en dat nog steeds doen), begonnen sommige toonaangevende tech bedrijven met het bouwen van interne platformteams om de daaruit resulterende inspanningen van developers te verlichten. Platform Engineering als vakgebied werd voor het eerst geïntroduceerd door internetbedrijven als Netflix en Google. Platform Engineers ontwerpen en bouwen toolchains en workflows die selfservice mogelijkheden mogelijk maken voor software developers in het cloud-native tijdperk.
Het rapport ‘State of DevOps’ van Puppet uit 2021 laat duidelijk een verband zien tussen de prestaties van teams en de invoering van interne platforms. Daarin wordt gesteld: “Platform teams vormen de sleutel tot succes at scale“, waaraan wordt toegevoegd: “Het bestaan van een platform team zorgt niet automatisch voor hoger ontwikkelde DevOps; uitstekende platformteams vergroten echter wel de voordelen van DevOps-initiatieven.“
Wat is een IDP?
Een Internal Developer Platform (IDP) bestaat uit een complete verzameling tools en technologie – samengevoegd en onderhouden door een Platform Engineering team – dat developers een Gouden Pad biedt. Het platform is zo gebouwd dat selfservice door developers mogelijk is zonder de context te verwijderen of de onderliggende technologie ontoegankelijk te maken. De bedoeling is de cognitieve belasting voor developers te verlagen. De belangrijkste voorwaarde voor een IDP is dat het intern is, d.w.z. niet naar buiten of naar de klant gericht. De klant ervan is intern: de ontwikkelaar van applicaties. Goed ontworpen IDP’s volgen een ‘Platform as a Product’-aanpak, waarbij het platformteam het IDP bouwt en verbetert op basis van best practices en de uitgangspunten van productbeheer.
Kant-en-klare DevOps-platforms, PaaS-oplossingen zoals Heroku, portals voor developers of soortgelijke oplossingen die zich richten op een bepaalde subset van de delivery-cyclus kunnen niet worden beschouwd als IDP. IDP’s daarentegen worden op maat gemaakt door een platformteam. Daarbij worden verschillende tools en technologieën (diensten, open source, zelfontwikkeld, enz.) gecombineerd met de bedoeling de productiviteit en snelheid van de developers te verhogen.
IDP’s helpen ondernemingen om hun DevOps-initiatieven op te schalen en de complexiteit van moderne softwareontwikkeling te verminderen. Iedereen is het erover eens dat een IDP de volgende aspecten van software-engineering ondersteunt:
- Beheer van applicatieconfiguratie;
- Milieuvoorzieningen op basis van codes;
- Orkestratie van de infrastructuur;
- Taakgebaseerde toegangscontrole.
Een IDP zou bijvoorbeeld kunnen bestaan uit een beheerd Kubernetes platform zoals AKS (Azure Kubernetes Service), Terraform voor geautomatiseerde provisioning, Argo CD voor declaratieve Gitops, Helm voor pakketbeheer, Keycloak voor toegangsbeheer, enzovoort.
Elke organisatie is echter anders en heeft unieke culturen en uitdagingen. Dit betekent dat het platformteam een IDP moet bouwen dat gericht is op de vereisten van de specifieke omgeving, waardoor het uniek is voor die organisatie.
Daarom ben ik van mening dat kant-en-klare producten waarvan wordt beweerd dat ze een end-to-end DevOps-oplossing vormen, waarschijnlijk geen bevredigende oplossing zullen bieden voor je problemen. Organisaties kunnen echter een beroep doen op de diensten van externe integratiebedrijven en deskundigen om hun interne platforms te helpen opzetten.
Het platform behandelen As A Product
Een platformteam opzetten en een platform laten bouwen is nog maar het begin. Hoe verschilt dit platformteam van een traditioneel DevOps team of Infrastructuurteam? Om werkelijk zinvol te zijn, moet het platform een probleem oplossen. Het moet met deze intentie worden gebouwd en worden ontwikkeld in overeenstemming met de behoeften van de gebruiker. Dit is vergelijkbaar met het bouwen van een product voor een klant, die in dit geval toevallig je interne ontwikkelingsteam is.
In de praktijk betekent ‘Platform als product’ dat het platformteam uiterst klantgericht moet zijn. Dat begint met goed onderzoek onder de gebruikers. Het platformteam luistert naar de feedback van de hele organisatie en gebruikt die feedback om het platform voortdurend verder te ontwikkelen. Organisaties die overwegen een IDP op te zetten, moeten oppassen dat ze geen DevOps- of Operations-team in een silo-structuur creëren of hun bestaande platform als IDP bestempelen. In plaats daarvan moeten ze zich richten op workflows voor developers en het mogelijk maken van self-service.
Gouden Paden, oftewel DevOps op steroïden
Zodra een IDP is ingevoerd, kunnen developers eindelijk volledig verantwoordelijk zijn voor hun diensten. Volwassen organisaties stoppen niet op dit punt. Nadat de developers autonoom zijn geworden, richt het platformteam zich op het bieden van praktische best practices en richtlijnen om dingen te doen die vaak binnen de hele organisatie worden herhaald. Het concept van ‘Gouden Paden’ werd voor het eerst uitgevonden bij de engineering-afdeling van Spotify, en werd al snel opgepikt door andere early adopters die er verschillende namen aan gaven.
Het algemene idee achter het concept van ‘Gouden Pad’ is dat het IDP op maat gemaakte en ondersteunde benaderingen biedt voor het bouwen en implementeren van een bepaald soort software. Het ontwikkelingsteam dat dit ‘Gouden Pad’ blijft bewandelen, kan het in zijn voordeel gebruiken om de snelle weg naar productie te realiseren, waarbij het platformteam ondersteuning biedt. Een volwassen platformteam zal geavanceerde ‘Gouden Paden’ creëren die goed zijn ontworpen en afgestemd op terugkerende workflows, waarbij best practices en uniformiteit in het hele applicatieportfolio worden vastgesteld.
Gouden Paden zullen de ontwikkeling en levering van applicaties versnellen, een soort DevOps op steroïden. Gouden Paden zijn een relatief nieuwe ontwikkeling waarin door industrieleiders fors wordt geïnvesteerd. Ze moeten echter nog verder rijpen, zodat ze binnenkort door ondernemingen kunnen worden ingevoerd. Industrie-expert Charity Majors bespreekt Gouden Paden in haar baanbrekende blog. Ze verklaart:
Platform Engineering en IDP’s zorgen voor een revolutie in de ontwikkeling van bedrijfssoftware. Industrieanalisten van Gartner erkennen het belang van selfservice voor developers en de impact van Platform Engineering in de cloud-native wereld. Platform Engineering wordt genoemd in de Gartner Emerging Technology Hype Cycle 2022, en wordt gedefinieerd als “het vakgebied van het bouwen en exploiteren van selfservice platforms voor interne developers (IDP’s) voor het leveren en het beheer tijdens de levenscyclus van software“.
IDP’s als concept vormen een nog opkomende trend, maar hun waarde is al duidelijk en dit stimuleert de invoering door organisaties. Deze organisaties zullen hun bestaande Ops- of Infrastructuurteams willen inzetten om IDP’s uit te bouwen en hun eerste Gouden Pad in orde te brengen.
Backstage en Project Unox
IDP’s als concept zijn een opkomende trend, maar de waarde is al duidelijk en dit stimuleert de adoptie door ondernemingen. Deze ondernemingen zullen hun bestaande Ops of Infrastructure teams willen inzetten om IDP’s uit te bouwen en om hun eerste Gouden Pad goed te krijgen.
Bij Devoteam Nederland hebben we dit al vroeg onderkend. In de zomer van 2022 hadden we een intern project voor ogen (met de codenaam Unox; niets te maken met het Nederlandse voedselmerk), waarin we een showcase voor een modern platform wilden bouwen. Het project omvat alle bouwstenen voor een IDP, dat is gebouwd met onze eigenzinnige set technologieën. Het middelpunt van dit platform is een ontwikkelaarsportaal dat is gebouwd met behulp van Backstage. Backstage is een open source platform om ontwikkelaarsportalen te bouwen, en een softwarecatalogus voor alle infrastructuur in een organisatie. We zullen in volgende blogs meer vertellen over Project Unox en Backstage.