AWS benadrukt belang van fundering en Well Architected Framework

Abonneer je gratis op Techzine!

Net zoals elk ander bedrijf kan ook AWS geen fysieke events organiseren. Daarom kwam het bedrijf met een virtuele conferentie, waarbij CTO Werner Vogels uiteindelijk de meeste interessante uitspraken deed. Hij benadrukt het belang van een goed fundament wanneer je applicaties ontwikkelt. Alleen op een goed ontworpen fundament kan je snel innoveren en ontwikkelen.

Veel ontwikkelaars zullen meteen aan hun favoriete frameworks denken, waarmee ze dagelijks in de weer zijn om nieuwe applicaties te ontwikkelen. Amazon Web Services (AWS) doelt met dit framework meer op het ontwerp van je infrastructuur, daarvoor heeft AWS het Well Architected Framework bedacht.

Vogels omschrijft het Well Architected Framework als een betrouwbare fundering waarmee applicaties gebouwd kunnen worden voor de lange termijn. Applicaties gebouwd met dit framework zijn in de basis stabiel, veilig en efficiënt. Zowel in prestaties als in kosten, aldus Vogels. Bij het ontwerpen en het bouwen van een cloud-nativeapplicatie komt tegenwoordig een hoop kijken. AWS biedt honderden diensten aan die applicatieontwikkeling en het in productie nemen van de applicatie kunnen versnellen, efficiënter maken of simpelweg goedkoper. Tot een efficiënt ontwerp komen dat goed voor je businessmodel en applicatie werkt, is niet eenvoudig. Daar is wel wat verdieping voor nodig. De documentatie rond het Well Architected Framework en bijbehorende tooling kan daarbij helpen. Als daar geen tijd voor is, kan ook nog een externe cloudarchitect worden ingeschakeld die zeer bekend is met het Well Architected Design-principe.

De basisprincipes van het Well Architected Framework

Het ontwerpen van een applicatiearchitectuur is voor een simpele applicatie op zich niet zo complex. Ga je echter een grote SaaS-oplossing bouwen, of een applicatie met miljoenen gebruikers, dan lopen de kosten al snel op en is een goed ontworpen architectuur enorm belangrijk. Het kan een groot verschil betekenen in de gebruiksvriendelijkheid en snelheid van de applicatie, maar ook in de kosten om de applicatie te draaien.

Het Well Architected Framework kent vijf pilaren die allemaal even belangrijk zijn bij het ontworpen van een architectuur. Deze pilaren zijn:

  • Operational Excellence, de mogelijkheid om systemen uit te voeren en te monitoren zodat ze waarde toevoegen maar ook om processen te kunnen verbeteren;
  • Security, de mogelijkheid om informatie en systemen te beveiligen en tegelijk inschattingen te maken van de risico’s en mogelijke verbeteringen in de beveiligingsstrategie;
  • Reliability, de mogelijkheid om een systeem te herstellen bij mogelijke storingen, maar ook het op- en afschalen van resources bij drukke en minder drukke periodes. Daarnaast voorzien in oplossingen bij fouten in de configuratie of netwerkproblemen;
  • Performance Efficiency, de mogelijkheid om computing resources efficiënt in te zetten en te voldoen aan de minimale systeemeisen. Tegelijk moet die efficiency behouden blijven bij een wisselende vraag naar resources;
  • Cost optimization, tot slot de mogelijkheid om kosten te besparen door systemen te laten draaien tegen de laagste kosten.

Op basis van deze vijf pilaren kan een applicatie worden ontworpen die voldoet aan de wensen van een businessmodel. Wel blijven er altijd afwegingen binnen dit framework. Je kan er als bedrijf voor kiezen om bijvoorbeeld kosten te besparen door wat in te leveren op de betrouwbaarheid. Er is een groot verschil of je alles in meerdere regio’s uitrolt of slechts in één regio’s met daarnaast wat offsite-backups. Of dit zinvol is, is natuurlijk ook weer afhankelijk van hoe kritiek de workloads zijn. Een ziekenhuis zal mogelijk opteren voor meerdere regio’s omdat het altijd beschikbaar moet zijn, terwijl een kleine retailorganisatie er wel mee kan leven als ze bij een grote storing even niet beschikbaar zijn.

Belangrijkste ontwerpregels

AWS heeft ook een aantal belangrijke ontwerpregels opgenomen die gelden bij het bouwen van een moderne cloudapplicatie. Zeker in tegenstelling tot het draaien van een applicatie on-premise is er veel veranderd. Een van de belangrijkste regels is dat je niet meer vooraf gaat inschatten hoeveel capaciteit je nodig hebt om de applicatie goed te draaien. Je zorgt ervoor dat een applicatie kan schalen, zodat de cloud middels autoscaling extra resources kan inzetten wanneer er meer en minder vraag is naar resources. Als een applicatie eenmaal draait en je in kaart kan brengen wat je basis load is, dan kan je gaan kijken naar kostenoptimalisaties. Het belangrijkste is dat je niet op voorhand al gaat besluiten hoeveel VM’s je gaat inzetten.

Verder is het belangrijk om systemen goed te testen. Niet met een handje vol gebruikers, maar gewoon op productie schaal. Zo kan je zien hoe je architectuur reageert bij zwaardere workloads. Dat is de enige manier om tijdig eventuele bottlenecks te vinden en op te lossen. Doordat je in de cloud kan betalen voor workloads per minuut, kan je met een zware simulatie van 10 a 15 minuten heel goed in kaart brengen waar je bottlenecks zitten, zonder dat het meteen vraagt om forse investeringen.

Pas waar mogelijk automation toe om je architectuur op te bouwen of uit te bouwen. Hierdoor kan je zonder handmatige handelingen sneller reageren op veranderde omstandigheden. Daarnaast kan je dit proces eenvoudig monitoren en waar nodig bijschaven.

Het belangrijkste is uiteindelijk open blijven staan voor nieuwe innovaties en hier rekening mee houden in je architectuur. Probeer elk onderdeel in je architectuur ook los te zien van het geheel. Als je het min of meer als bouwblokken behandelt, kan je bij nieuwe innovaties ook gaan testen met nieuwe technologieën en mogelijk een compleet bouwblok vervangen door een moderner alternatief dat efficiënter, sneller of goedkoper is. In het verleden werden architectuurkeuzes vaak definitief gemaakt: er is gekozen voor een MySQL-database, dus daar wordt alle data in opgeslagen. Inmiddels zijn er vele alternatieven beschikbaar. Primaire data staat mogelijk nog steeds in MySQL, maar voor cachig of timingdata zijn hele mooie oplossingen beschikbaar die dat beter, sneller en goedkoper kunnen.

Dat er nu honderden diensten en oplossingen zijn die je kan gebruiken om een applicatie te bouwen, betekent niet dat je ze maar allemaal moet gaan gebruiken. Het verstandigste is om bepaalde delen van een applicatie goed te analyseren, testen te doen en op basis van de data te besluiten wat de beste architectuuroplossing is voor die situatie.

Om de juiste keuzes hierin te maken of je te voorzien van advies wat mogelijke goede alternatieve zijn heeft AWS de Well Architected Framework Tool ontworpen. Die kan op basis van je huidige applicatie en gebruikte resources een advies bieden in waar mogelijk nog verbeteringen zijn te boeken.

Deze tool beschikt over enorm veel best practices die AWS bij al zijn klanten heeft opgedaan en kan op die manier adviezen bieden hoe workloads beter kunnen worden ingezet. Deze tool is gewoon in de console te vinden en zal bij gebruik de nodige vragen stellen over de workload die je momenteel in gebruik hebt en op basis van die antwoorden en de vergelijking met alle best practices vervolgens met een advies komen. Op basis van advies kan je verder gaan ontwerpen en testen of er ook inderdaad verbeteringen te boeken zijn.

AWS Well Architected Framework kan innovatie versnellen

Je applicatiearchitectuur ontwerpen volgens het Well Architected Framework is niet iets dat je even in een weekje onder de knie hebt. Het vraagt om een serieuze verdiepingsslag, waarbij we in dit artikel niet verder zijn gegaan dan een beknopte samenvatting. Als je veel gebruikmaakt van AWS, maar ook van andere clouddiensten, is het zeker de moeite waard om je hierin te verdiepen. Het verandert de manier waarop je applicaties ontwerpt en ontwikkelt, maar tegelijk geeft het je ook de mogelijkheid om sneller te innoveren, kosten te besparen en meer rekening te houden met beveiliging. Daardoor kan je meer resultaat halen uit de cloud. Hoewel het AWS Well Architected Framework vooral op AWS is gebaseerd, is het ook zeer leerzaam en toepasbaar voor bedrijven met een multi-cloudstrategie. Uiteindelijk gaat het in de kern om het ontwerpen van een goede cloud-nativeapplicatie.

Wil je alles weten over het Well Architected Framework, volg dan deze gratis cursus van AWS.