LinQer – Conforming IT

Kunnen we met “observability” de grip op software terugkrijgen?

Bekijk alle actualiteiten • Blog
Kunnen we met observability de grip op software terugkrijgen?

In deze blog willen wij de ontwikkeling schetsen van software voor server-gebaseerde software architecturen en voor serverless software architecturen. En de belangrijkste gevolgen daarvan. Kunnen leveranciers nog wel de garantie afgeven, dat de software zich zo blijft gedragen als we gewend zijn? En wie is er verantwoordelijk als er incidenten optreden? Zowel voor klinische fouten als IT-security incidenten? Wat betekent de toepassing van serverless architecturen voor IT-auditors?

Omvangrijker en complexer

De vertrouwde software waar gebruikers mee werken is allang niet meer begrijpelijk en overzichtelijk. Deze software lijkt steeds omvangrijker en complexer te worden.

Nieuwe software lijkt steeds meer op een ijsschots in de oceaan, het zichtbare deel is maar een puntje van de ontwikkelde softwarecode, de gebruikers zien alleen datgene waar ze toegang toe krijgen. Veel blijft onder de oppervlakte. Echter de nieuwe ontwikkelingen maken ook de softwareontwikkelaars tot gebruikers, zij krijgen steeds minder zicht op de complete software en bouwen op een ondergrond, een in de cloud werkzame infrastructuur, die ook voor hen buiten beeld blijft.

Van server-gebaseerde naar serverless software architecturen

Client server architectuur

Voor een beeld van de ontwikkelingen moeten we in de techniek duiken:

Bij vertrouwde software gebaseerd op servers en clients, waren de taken eenvoudigweg verdeeld. Servers staan voor machines met programmatuur, die reageren op vragen van clients, naar functionaliteit of naar data.

Clients, machines met programmatuur voor gebruikers (van business apps) zorgen voor een klantvriendelijke afhandeling van de aanvraag en de presentatie van gegevens. De meest voorkomende clients voor het werken met servers op het Internet waren de Browsers. De programmaatjes, die de info van de server konden vertalen naar beeld en die zelfs complete user interfaces konden voorschotelen. (Met behulp van webservers en HTML en HTTP). Bij de invoering van mobiele technologie en het werken met heel handzame, kleine clients op het internet, ontstaat de keuze om de browser te omzeilen en met de zogenaamde native apps te werken. Deze programmaatjes, die ook op de mobiele apparaten draaien, kwamen in twee smaken Android en IoS. Zij bevatten software voor volledige user interfaces, die geen browsers of webservers meer nodig hebben. Zij communiceren direct met minimale middelen met bijvoobeeld REST en/of API servers.

De client draait in een browser of is een native app

De eerste keuze bij het maken van Apps is: maak je gebruik van een browser (die ook kan draaien op een mobiele telefoon) of van één of meer native apps?

Zolang bedrijven alle servers in huis hebben, of zij machines huren waar hun programma’s op gehost worden, blijft de structuur zeer overzichtelijk. Vaak wordt gebruik gemaakt van software van derden, maar de inhoud van de software is controleerbaar, zeker als het open source software betreft. (Soms komen fouten pas na decennia aan het licht, zoals bij de logging software van Apache log4j, maar de software is in principe controleerbaar).

Identy and Access management (IAM)

Componenten Identity and Access management

De eenvoudige client/server architectuur wordt uitgebreid om het internet efficiënter te maken, maar ook om de toegang voor de gebruikers te regelen op de databases en op de servers. Het checken van de identiteit van gebruikers (authenticatie) en het geven van bevoegdheden (autorisatie) in combinatie met toegang tot andere servers en encryptie werd zo’n complex geheel dat aparte systemen voor IAM werden ontwikkeld en ingepast op de server.

In verband met de omvang van deze blog gaan we niet verder op het plaatje ingaan. Want nieuwe ontwikkelingen dienen zich aan: virtual machines worden volwassen.

Cloud oplossingen

De vertrouwde machines maken plaats voor “niet bestaande, gesimuleerde machines”, die server software draaien plus alle benodigde programmatuur voor opslag, IAM, beheer van standaarden en interoperabiliteit. Hosting gebeurt nu in de cloud.

Dit heeft als groot voordeel voor bedrijven, dat zij geen tijd meer hoeven te besteden aan onderhoud en configuratie van alle achterliggende server-software, en goedkoper is het in principe ook, men betaalt alleen voor het gebruik, niet voor het in de lucht houden van inactieve servers!

De cloud-serviceprovider zorgt voor onderhoud, uptime en incidentbeheer van de infrastructuur. De ontwikkelaar krijgt nu een volledig andere functie, het ontwikkelen van software wordt nu ingebed in de cloudoplossing van de Cloud provider. Gelukkig zijn de Cloud providers veelzijdig en kunnen alle gewenste programmeertalen ondersteunen, zij bieden de tooling om de software na het testen op de juiste manier in de cloud te plaatsen. Met deze serverless architectuur draait het bedrijf voortaan de software voor de klanten. Maar serverless betekent niet dat er geen servers zijn, de server programmatuur biedt services vanuit een machine of een machinepark dat volledig onder beheer staat van de Cloud provider. De ontwikkelaar is nu ook een gebruiker geworden, want deze gebruikt de tooling en mogelijkheden van de cloud.

Serverless cloud oplossing - De client draait in browser of is een native app

Softwareontwikkeling kan op dezelfde “vertrouwde wijze” uitgevoerd worden, maar achter de schermen ook anders in elkaar steken. Cloudoplossingen kunnen inbreken op de verzoeken van clients naar functionaliteit en/of data, en daarmee extra functionaliteit toevoegen of data aftappen of fouten introduceren. En zelfs als de cloud een “private cloud” is en het bedrijf alle controle heeft over de services, kan het ondoorzichtig worden voor de ontwikkelaars wat er precies gebeurt tijdens het runnen van de software.

Observability

De IT-wereld zou de IT-wereld niet zijn, als zij niet een IT-oplossing voor dit probleem zou voorstellen. Weer nieuwe software is de oplossing, die tijdens het draaien van software op strategische plaatsen metingen verricht, terwijl zij runtime met de software meedraait. De gemaakte metingen worden op een intelligente wijze geïnterpreteerd, speciaal afgestemd op de doelen van de organisatie. Zo men zegt: om de mensen te helpen om weer begrip te krijgen van de softwaresystemen. Incidenten kunnen nu beter opgevolgd worden en de precieze plaats van de functionaliteit en van errors kan worden opgespoord. Gartner rapporteert over Application Performance Monitoring and Observability Tools in 2022.[1] Observability wordt gezien als een verbeterde vorm van monitoring, waar monitoring rigide is en geen samenhangend systeem van meten en analyseren biedt, heeft observability de mogelijkheid om steeds nieuwe representaties van de complete software te bieden. Observability is gebaseerd op logs, metrics en traces.

Wat betekent dat voor IT auditing? In hoeverre gaan deze tools ons helpen bij het controleren van de IT-security, bij het signaleren en debuggen van kritieke klinische fouten, bij het inschatten of genomen maatregelen de risico’s afdoende afdekken?

En wie controleert de tooling? Hoeveel en welke garanties kunnen leveranciers van cloudoplossingen en tooling bieden aan de leveranciers van medische software?


[1] https://www.gartner.com/reviews/market/application-performance-monitoring-and-observability