Skip to main content

Softwareprofessionals zijn berucht om hun vermogen om coole namen te bedenken voor zaken die eigenlijk vanzelfsprekend zijn. “Platformengineering” is een recent voorbeeld, waarbij gevestigde principes worden gecombineerd met de innovatie van cloudnative raamwerken.

In de kern draait platformengineering om het stroomlijnen van softwareontwikkeling door een consistente, beheerde gereedschapsset te gebruiken en zo de basis te leggen voor een hogere teamproductiviteit. Meer volwassen bedrijfstakken weten dit al tientallen jaren.

Wat is platformengineering?

Platformengineering is het ontwerpen, bouwen en beheren van de onderliggende software-infrastructuur en systemen voor applicaties en diensten. Hieronder vallen het beheren van fysieke en cloudgebaseerde infrastructuur, het automatiseren van processen, het integreren van verschillende tools, het waarborgen van beveiliging en naleving, het monitoren van prestaties en het handhaven van een hoge beschikbaarheid en noodherstel.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Dit vakgebied is cruciaal voor het waarborgen van robuuste, schaalbare en veilige technische omgevingen die efficiënte applicatieontwikkeling en -implementatie mogelijk maken.

Platformengineering markeert de evolutie van geïsoleerde inspanningen naar een geharmoniseerd ecosysteem, waardoor de ontwikkelaarservaring en operationele efficiëntie worden verbeterd.

Get regular tech leadership wisdom for delivering better software and systems.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form

De verschuiving van individuele uitmuntendheid naar collectieve deskundigheid

Een individuele ontwikkelaar, of 'softwareambachtsman', kan een collectief aanvankelijk overtreffen met diens eigen gereedschapsset. De eisen van een groeiende softwareonderneming geven echter al snel prioriteit aan de kunst van teamwork: communicatie, samenwerking en het strategisch delen van tools en processen.

Platformengineering is een geavanceerd antwoord op deze schaalbaarheidsdilemma's. Het omvat het samenstellen en beheren van een reeks applicaties en tools die als gemeenschappelijke basis dienen, zodat ontwikkelaars kunnen innoveren door bestaande modules te integreren en daarop voort te bouwen.

De rol van een platformengineeringteam is het creëren van een intern ontwikkelaarsplatform (IDP) dat de beperkingen van traditionele applicatieontwikkeling overstijgt door raamwerken zoals Kubernetes te integreren en een selfserviceomgeving te bevorderen die ontwikkelaars in staat stelt zelfstandig te werken. 

Het ambachtsprincipe is ook van toepassing op testen: een bekwame, automatiseringsvaardige exploratieve tester is waarschijnlijk de meest effectieve QA-specialist die je kunt vinden. De uitdaging ligt echter in schaalbaarheid. Testautomatisering bestaat vaak in silo's, waarbij individuen oplossingen creëren met tools zoals Selenium op hun eigen manier. Het vertrek of de promotie van deze personen leidt er vaak toe dat hun opvolgers de bestaande systemen volledig herzien, omdat zij de tools mogelijk op een andere manier gebruiken. 

Gedeelde testplatforms: samenwerking bevorderen

Een gedeeld testplatform zou daarentegen een productieve samenwerking tussen professionele testers, zakelijke gebruikers en ontwikkelaars mogelijk maken. Zo'n platform, zoals Copado's Robot Testing, zou niet alleen het delen en hergebruiken van tests, gegevens en resultaten vergemakkelijken, maar ook de transparantie bij kwaliteitsbeoordeling bevorderen. Met infrastructuur als code (nog zo'n coole naam voor iets vanzelfsprekends) kunnen testomgevingen efficiënt in de cloud worden uitgerold, waardoor alle belanghebbenden op aanvraag toegang en transparantie krijgen.

In het tijdperk van microservices moet de functionaliteit van afzonderlijke componenten, die worden georkestreerd door platforms zoals Docker en Kubernetes, worden onderzocht op cognitieve belasting en impact op gebruikers. Hier komen de principes van sitebetrouwbaarheidsengineering (SRE) om de hoek kijken. Ze zorgen ervoor dat systemen betrouwbaar zijn en dat operationele teams beschikken over robuuste hulpmiddelen voor waarschuwingen, zoals Puppet, en monitoringoplossingen om de observeerbaarheid te behouden.

Uitdagingen van platformengineering

Ondanks de duidelijke voordelen kent platformengineering ook uitdagingen. Het vereist nauwgezet beheer en voortdurende ontwikkeling. Veel deskundige productbedrijven hebben moeite met het ontwikkelen van een gemeenschappelijk platform voor hun producten, waardoor het onrealistisch is om te verwachten dat IT-afdelingen deze mogelijkheden van nature bezitten. Daarom winnen brede, hoogwaardige applicatieplatforms, zoals Salesforce, en ontwikkelaarsplatforms, zoals Git of Azure DevOps, terrein. Hetzelfde gebeurt met testplatforms, maar iets langzamer.

Omdat applicaties worden opgebouwd door componenten van een gedeeld platform samen te voegen, worden de kwaliteit en robuustheid van dat platform van het grootste belang. Elk probleem met het platform kan mogelijk gevolgen hebben voor alle applicaties die erop zijn gebouwd. Daarom moeten het platform en de applicaties zich gelijktijdig ontwikkelen, waarbij het platform altijd vooroploopt om stabiliteit te waarborgen.

Het testen van het platform moet worden gescheiden van het testen van de applicaties, ongeacht of je in productie test of niet. Het eerste is doorgaans technischer en richt zich op unittesten, API's, schaalbaarheid en prestaties, terwijl het tweede van nature meer is gebaseerd op bedrijfsprocessen en end-to-endtesten omvat.

Kwaliteit handhaven gedurende de levenscyclus van het platform

Naarmate organisaties cloud-native benaderingen toepassen, is de robuustheid van hun platform van het grootste belang. Elk probleem binnen het platform kan verstrekkende gevolgen hebben. Daarom is een duidelijke afbakening tussen platformtesten en applicatietesten cruciaal. Deze scheiding maakt een gerichte aanpak van schaalbaarheid en prestaties mogelijk, waarbij eerstgenoemde zich richt op technische aspecten zoals API's en laatstgenoemde op functionaliteit voor eindgebruikers.

Software en tools voor platformengineering uitgelegd


Bij platformengineering beheren en stroomlijnen verschillende softwaretools de processen die betrokken zijn bij het bouwen, implementeren en onderhouden van infrastructuur en applicaties.

Neem een tool als Postman. Postman werd oorspronkelijk ontwikkeld als een zijproject om API-workflows tijdens ontwikkeling en tests te vereenvoudigen en is een uitstekende tool voor individuele testers. Wanneer de tool echter wordt geïntegreerd in een workflow voor continue integratie/continue levering (CI/CD), worden de mogelijkheden ervan aanzienlijk uitgebreid en krijgt de tool een breder doel binnen een cloudplatform. Hiermee kunnen API's snel en eenvoudig worden getest, waarbij de gebruiker direct feedback ontvangt.

Naarmate het team groeit, worden de beperkingen van Postman duidelijk. Hoewel de tool uitstekend geschikt is voor handmatig testen en verkennen, schiet deze tekort in samenwerkingsomgevingen waar geautomatiseerde, herhaalbare en schaalbare tests vereist zijn. Naarmate een softwareoperatie zich uitbreidt, worden aspecten zoals communicatie, delen en hergebruik cruciaal, waarbij ze vaak belangrijker worden dan de prestaties van een individu.

Andere belangrijke tools voor platformengineering zijn:

  • Tools voor containerisatie
    • Docker: voor het maken, implementeren en uitvoeren van applicaties in containers.
    • Kubernetes: een platform voor containerorkestratie waarmee de implementatie, schaalvergroting en werking van applicatiecontainers over clusters van hosts worden geautomatiseerd.
  • Tools voor infrastructuur als code (IaC):
    • Terraform: wordt gebruikt om infrastructuur veilig en efficiënt te bouwen, te wijzigen en van versies te voorzien.
    • Ansible: een opensourcetool voor softwareprovisioning, configuratiebeheer en de implementatie van applicaties.
    • Puppet: een andere populaire tool voor configuratiebeheer.
  • Tools voor continue integratie/continue implementatie (CI/CD):
    • Jenkins: een opensource-automatiseringsserver die wordt gebruikt om delen van softwareontwikkeling te automatiseren.
    • GitLab CI/CD: biedt een gestroomlijnde manier om fasen van de levenscyclus van applicatieontwikkeling te automatiseren.
    • CircleCI: biedt continue integratie en levering om ontwikkelingsteams te helpen code snel uit te brengen.
  • Tools voor monitoring en observeerbaarheid:
    • Prometheus: een opensourcemonitoringsysteem met een tijdreeksdatabase.
    • Grafana: voor het visualiseren en monitoren van metingen.
    • Elasticsearch, Logstash en Kibana (ELK Stack): populair voor het loggen en visualiseren van gegevens.
  • Cloudserviceproviders:
    • Amazon Web Services (AWS): biedt een breed scala aan cloudservices.
    • Microsoft Azure: biedt cloudcomputingservices.
    • Google Cloud Platform (GCP): biedt een reeks cloudcomputingservices.
  • Versiebeheersystemen:
    • Git: een gedistribueerd versiebeheersysteem voor het bijhouden van wijzigingen in broncode.
    • GitHub: een platform voor het hosten en beheren van Git-opslagplaatsen.
  • Tools voor beveiliging en naleving:
    • HashiCorp Vault: voor het beveiligen, opslaan en beheren van toegang tot tokens, wachtwoorden, certificaten, API-sleutels en andere geheimen.
    • SonarQube: beoordeelt de codekwaliteit en identificeert kwetsbaarheden.
  • Tools voor servicemeshes:
    • Istio: een open platform voor het verbinden, beheren en beveiligen van microservices.
    • Linkerd: biedt observeerbaarheid, betrouwbaarheid en beveiliging voor microservices.
  • Serverloze raamwerken:
    • AWS Lambda: maakt het mogelijk code uit te voeren zonder servers te provisionen of te beheren.
    • Serverless Framework: vereenvoudigt het bouwen van applicaties met serverloze architecturen.
  • Databasemanagement:
    • MongoDB: Een populaire NoSQL-database.
    • PostgreSQL: Een geavanceerde open-source relationele database.

De belofte van platformengineering

Hoewel platformengineering een hogere productiviteit van ontwikkelaars belooft, is het realiseren van dit potentieel gemakkelijker gezegd dan gedaan. Het platform moet nauwgezet worden beheerd, op stabiliteit worden getest en mag geen knelpunt worden. Dit ambitieuze doel vereist een gezamenlijke inspanning van DevOps-teams, van de DevOps-engineer tot het productteam. Een succesvolle implementatie hangt af van naadloze orkestratie, de efficiëntie van pipelines en een toewijding aan continue integratie en continue implementatie. Effectieve testpraktijken en een op automatisering gerichte toolkit zijn voorwaarden voor succesvolle platformengineering.

Geïnteresseerd in meer informatie over AI en softwaretesten? Schrijf je in voor de QA Lead-nieuwsbrief voor de nieuwste trends.