De weg naar effectief platformengineering

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Platformengineering brengt een revolutie teweeg in softwareontwikkeling door hulpmiddelen en werkwijzen te standaardiseren voor maximale productiviteit en schaalbaarheid, ondersteund door solide DevOps, strategisch testen en een focus op automatisering.

Softwareprofessionals zijn berucht om hun talent voor het bedenken van coole namen voor dingen die eigenlijk vanzelfsprekend zijn. “Platformengineering” is een recent voorbeeld, waarbij gevestigde principes worden gecombineerd met de innovatie van cloud-native raamwerken.

In de kern draait platformengineering om het stroomlijnen van softwareontwikkeling door een consistente, beheerde toolset te gebruiken en zo de basis te leggen voor een hogere teamproductiviteit. Meer volwassen sectoren 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. Het omvat het beheren van fysieke en cloudgebaseerde infrastructuur, het automatiseren van processen, het integreren van verschillende tools, het waarborgen van beveiliging en compliance, het monitoren van prestaties en het handhaven van een hoge beschikbaarheid en herstel na calamiteiten.

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

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

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

Have an account? Log In

De verschuiving van individuele uitmuntendheid naar collectieve deskundigheid

Een individuele ontwikkelaar, ofwel een ‘softwarevakman’, kan een collectief aanvankelijk overtreffen met zijn eigen gereedschapskist. De eisen van een groeiende softwareonderneming geven echter al snel voorrang aan de kunst van samenwerking: 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 frameworks zoals Kubernetes te integreren en een selfserviceomgeving te bevorderen die ontwikkelaars meer mogelijkheden biedt. 

Het vakmanschapsprincipe geldt ook voor testen: een competente, automatiseringsgerichte exploratieve tester is waarschijnlijk de effectiefste QA-specialist die je kunt vinden. De uitdaging ligt echter in schaalbaarheid. Testautomatisering bestaat vaak in silo’s, waarbij individuen oplossingen ontwikkelen met tools zoals Selenium op hun eigen manier. Het vertrek of de promotie van deze personen leidt er vaak toe dat hun opvolgers bestaande systemen volledig opnieuw opbouwen, omdat zij de tools mogelijk op een andere manier gebruiken. 

Gedeelde testplatforms: samenwerking bevorderen

Een gedeeld testplatform zou daarentegen 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 transparantie bij de kwaliteitsbeoordeling bevorderen. Met infrastructuur als code (nog zo’n coole naam voor iets vanzelfsprekends) kunnen testomgevingen efficiënt in de cloud worden geïmplementeerd, waardoor alle belanghebbenden op aanvraag toegang en transparantie krijgen.

In het tijdperk van microservices moet de functionaliteit van afzonderlijke componenten, georkestreerd door platforms zoals Docker en Kubernetes, kritisch worden bekeken op cognitieve belasting en impact op gebruikers. Hier komen de principes van Site Reliability Engineering (SRE) om de hoek kijken: ze zorgen ervoor dat systemen betrouwbaar zijn en dat operationele teams beschikken over robuuste waarschuwingstools zoals Puppet en monitoringoplossingen om de observeerbaarheid te handhaven.

Uitdagingen van platformengineering

Ondanks de duidelijke voordelen kent platformengineering ook uitdagingen. Het vereist nauwgezet beheer en voortdurende ontwikkeling. Veel bekwame productbedrijven hebben moeite om een gemeenschappelijk platform voor hun producten te ontwikkelen, waardoor het onrealistisch is om te verwachten dat IT-afdelingen deze capaciteiten van nature bezitten. Daarom winnen brede, hoogwaardige applicatieplatforms, zoals Salesforce, en ontwikkelaarsplatforms, zoals Git of Azure DevOps, aan 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 dit platform van doorslaggevend 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 voorop blijft lopen 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 meer gebaseerd is op bedrijfsprocessen en van nature end-to-endtesten omvat.

Kwaliteit gedurende de gehele levenscyclus van het platform waarborgen

Nu organisaties cloudnative benaderingen omarmen, is de robuustheid van hun platform van doorslaggevend belang. Elk probleem binnen het platform kan verstrekkende gevolgen hebben. Daarom is een duidelijke scheiding tussen platformtesten en applicatietesten cruciaal. Deze scheiding maakt een gerichte aanpak van schaalbaarheid en prestaties mogelijk, waarbij het eerste zich richt op technische aspecten zoals API's en het tweede op functionaliteit voor eindgebruikers.

More Articles

Software en hulpmiddelen voor platformengineering uitgelegd


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

Neem een hulpmiddel als Postman. Postman werd oorspronkelijk ontwikkeld als een zijproject om API-werkstromen tijdens ontwikkeling en testen te vereenvoudigen en is een uitstekend hulpmiddel voor individuele testers. Wanneer het hulpmiddel echter wordt geïntegreerd in een werkstroom voor continue integratie/continue levering (CI/CD), worden de mogelijkheden ervan aanzienlijk uitgebreid en krijgt het hulpmiddel een breder doel binnen een cloudplatform. Het hulpmiddel maakt het mogelijk om snel en eenvoudig API's te testen, waarbij de gebruiker direct feedback ontvangt.

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

Andere belangrijke hulpmiddelen voor platformengineering zijn:

  • Hulpmiddelen 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 in clusters van hosts worden geautomatiseerd.
  • Hulpmiddelen voor infrastructuur als code (IaC):
    • Terraform: Wordt gebruikt om infrastructuur veilig en efficiënt op te bouwen, te wijzigen en te versioneren.
    • Ansible: Een opensourcetool voor softwarevoorziening, configuratiebeheer en het implementeren van applicaties.
    • Puppet: Nog een populair hulpmiddel voor configuratiebeheer.
  • Hulpmiddelen 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.
  • Hulpmiddelen voor monitoring en observeerbaarheid:
    • Prometheus: Een opensourcemonitoringsysteem met een tijdreeksdatabase.
    • Grafana: Voor het visualiseren en monitoren van metrieken.
    • 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.
  • Hulpmiddelen 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.
  • Hulpmiddelen voor servicemeshes:
    • Istio: Een open platform om microservices te verbinden, te beheren en te beveiligen.
    • Linkerd: Biedt observeerbaarheid, betrouwbaarheid en beveiliging voor microservices.
  • Frameworks voor serverloze toepassingen:
    • AWS Lambda: Maakt het mogelijk code uit te voeren zonder servers in te richten of te beheren.
    • Serverless Framework: Vereenvoudigt het bouwen van toepassingen met serverloze architecturen.
  • Databasebeheer:
    • MongoDB: Een populaire NoSQL-database.
    • PostgreSQL: Een geavanceerde relationele opensourcedatabase.

De belofte van platformengineering

Hoewel platformengineering een hogere productiviteit voor ontwikkelaars belooft, is het realiseren van dit potentieel eenvoudiger gezegd dan gedaan. Het platform moet zorgvuldig 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 testmethoden en een op automatisering gerichte gereedschapsset zijn voorwaarden voor succesvolle platformengineering.

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

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like