Steeds vaker spreek ik met online dienstaanbieders die het hebben over een 2.0 versie van hun succesvolle 1.0 applicatie. Heel veel goede ideeën, maar vaak gestoeld op geleerde lessen vanuit de 1.0 versie en het achterliggende Cloud-platform. Het is tijd om breder te kijken naar de mogelijkheden van Cloud-platformen en even in een luchtballon te stappen: gaat u mee?
Want wat is nu eigenlijk zo’n Cloud-platform? Heel veel succesvolle applicaties die al een tijdje meegaan, zijn ontwikkeld op een server gebaseerd platform: een applicatieserver die communiceert met een database en data haalt van een fileserver. De applicatie wordt geschreven met het platform in gedachten. Vragen als ’welke database en hoe past dat binnen de frontend en backend van de applicatie?’ worden bedacht vanuit de context van het 1.0 Cloud-platform. Ja, schalen kan natuurlijk door meer webservers, een groter database te organiseren. Maar is dit nu echt het beste platform voor de 2.0 versie?
Kijkend naar hoe startups, zonder de 1.0 ervaring (en succes), een applicatie ontwikkelen, gaat dat compleet anders: het Cloud-platform wordt onderdeel van de applicatie. Dit proces van complete integratie zorgt ervoor dat uitrol geautomatiseerd gaat, maar ook dat de afhankelijkheid van een traditionele setup (zoals die met een vaak geziene variant met webserver, databaseserver en fileserver) compleet verdwijnt. De infrastructuur wordt meegeschreven in de code van de applicatie-ontwikkeling in de vorm van een pijplijn. Een zeer groot, maar tegelijk interessant verschil.
Vergelijk dit concept met het onderhouden van een huisdier; het huisdier is gekomen als jong dier, vele jaren opgevoed en onderdeel geworden van het gezin. Als het ziek wordt, heeft dat grote impact. In bijna alle gevallen zie je dat de 1.0 applicatie ook gebruikmaakt van zo’n huisdier: een compleet geconfigureerde server, gepatched en gemonitord en vooral: cruciaal voor de applicatie.
Wat je eigenlijk wil is dat die afhankelijkheid van het huisdier kleiner wordt, en dus dat het huisdier een stuk vee wordt. De vervangbaarheid is een stuk groter dan het jarenlang opgevoede huisdier. Door om te gaan met het Cloud-platform als boerderij met vee, kun je zorgen voor robuustheid, schaalbaarheid en eenvoud: uitval van een server, of service zorgt niet voor onderbreking van de beschikbaarheid van de applicatie; de geïntegreerde applicatie ontwikkelpijplijn zorgt immers voor herstel van de onderdelen.
Binnen alle Cloud-platformen die tegenwoordig beschikbaar zijn, zoeken we binnen Fundaments altijd naar de beste onderdelen die passen bij zo’n 1.0 naar 2.0 uitdaging. Of het nu gaat om een statische applicatie, of juist een applicatie met een grillig gebruikersgedrag; alle scenario’s moeten ondervangen kunnen worden. Kijkende naar publieke cloud zie ik daarin heel veel mooie mogelijkheden met een innovatiesnelheid waar niemand tegenop kan: zo heeft Amazon Webservices al meer dan 1200 diensten waarmee allerlei onderdelen van een applicatie kunnen worden ondersteund.
Maar ook ontwikkelingen op containerisatie met b.v. Kubernetes gaan heel hard: niet gek natuurlijk, want ontwikkelaars willen niet meer afhankelijk zijn van het juist configureren van een traditioneel server platform (al die huisdieren). Maar de sleutel van het succes zit wel in het juist selecteren en integreren van dit soort technieken. Hoe makkelijk het ook lijkt om even een dienst uit de publieke cloud te trekken, kijk ook naar de designimplicaties, zeker komende uit de 1.0 Cloud-platform wereld.
En als we nog hoger met de luchtballon vliegen, wil je eigenlijk zorgen dat het platform werkt voor jou in een applicatie. Vanaf grote hoogte lijkt dat vee een mierenkolonie en dat is wat je wil: een kolonie die onverwoestbaar is; of er nu tientallen of honderden mieren omkomen door welke reden dan ook, of een kolonie wordt overspoeld met water; ze overleven. Dit is ook wat het Cloud-platform voor je moet gaan doen. Dat is ook het ultieme doel dat ik nastreef wanneer we onze klanten meenemen in die transformatie van hun zeer waardevolle applicatie.