Modern Application Building

Moderne applicatiebouw: modulair en vol voordelen

Moderne applicatiebouw: modulair en vol voordelen

Waar bij applicatiebouw in het verleden altijd een standaard programmeertaal werd gebruikt, en je niet meer loskwam van deze keuze, is dat heden ten dage volledig anders. Doordat we steeds meer onafhankelijk zijn van het onderliggende platform, kunnen moderne applicaties op uiteenlopende manieren en in uiteenlopende talen worden ontwikkeld. Ook kunnen deze instances eenvoudig worden bijgesteld bij pieken of dalen.

 Een overbelaste server of databases die vastlopen? Voorheen bouwden we een machine waar alles op stond – de applicatie, de database et cetera. Vervolgens zorgden we ervoor dat alles ‘redundant’ en ‘high-available’ uitgevoerd werd door middel van een ‘failover’: twee gekoppelde servers die elkaar konden opvangen bij uitval. Met de komst van bijvoorbeeld online winkels en adhoc marketingcampagnes – en daarmee de noodzaak om heel snel te kunnen op en afschalen – is dit model niet meer te handhaven.

Wie bij wil blijven zal een andere koers moeten varen. Je applicatie moet modulair opgebouwd zijn, zodat je snel delen kunt aanpassen en uitbreiden. Deze modulariteit heeft nog twee andere voordelen. Waar in het verleden de developers een of twee programmeertalen leerden, zoekt de huidige ontwikkelaar steeds de beste tool voor zijn oplossing. Misschien is dat vandaag Java, morgen Ruby en overmorgen Go. Het ligt allemaal niet meer vast. Elke module schrijf je in de taal die het beste past bij de gewenste functionaliteit.

Creëer een schaalbare omgeving

Het is ondoenlijk om hiervoor allemaal losse servertjes op te bouwen. Bovendien wil je deze omgeving gezien de huidige technologische mogelijkheden en wensen ten aanzien van flexibiliteit niet puur in de eigen omgeving hebben draaien. Je wilt desgewenst kunnen schalen naar een thirdparty cloudprovider.

Je wilt daarnaast kunnen overschakelen wanneer een andere cloudprovider net een paar tientjes per maand goedkoper is. Zet de server dus op in die andere cloud, installeer er de juiste software op, kopieer de data van a naar b, zet de DNS-namen om en je bent binnen tien minuten klaar. Denk je eens in wat je hiervoor allemaal zou moeten doen binnen een IT-landschap dat gebaseerd is op traditionele servers. Elke SysAdmin zou je voor gek verklaren!

Dit soort uitdagingen schreeuwt om een platform dat werkelijk onafhankelijk is van de omgeving. Je moet het vandaag on-premises kunnen draaien en dezelfde middag nog kunnen uitbreiden naar Azure, AWS, Google Cloud noem maar op. Dit lukt eenvoudig weg niet met traditionele servers, ook al zou je er images voor klaar hebben staan bij een cloudprovider.

Volledig autonoom en onafhankelijk van elkaar

Aangezien toch al de hele programmeerstraat is omgegooid, zetten we ook maar gelijk het laatste stapje: overstappen op containers. Niet die grote stalen bakken, maar kleine instances die draaien op een Linux-server. Je stuurt er data naar toe en je krijgt data terug, die je dan weer kan verwerken in de volgende stap.

Wellicht heb je het plaatje van de walvis met de containers op de rug wel eens langs zien komen? Ondertussen zijn er naast deze zogeheten Docker-containeromgevingen ook alternatieven ontwikkeld. De basisprincipes zijn steeds dezelfde: een container draait autonoom op een operating system en maakt gebruik van de resources van de server. Vanuit de server kun je niet zomaar aan de container frutselen en de containers kunnen elkaar onderling ook niet zien en beïnvloeden.

Deze eerste opbouw is prima voor één container, maar je wilt eigenlijk een aantal van die containers met elkaar verbinden, om door een samenspel van gecontaineriseerde applicaties de gewenste functionaliteit te krijgen. Maar containers kunnen elkaar toch niet zien? Klopt. Althans: niet standaard. Er is een tool voor nodig die dat regelt. Kubernetes van Google is zo’n tool.

Google is al heel lang een grootgebruiker van containers. Elke keer als je inlogt bij Google om bijvoorbeeld je e-mail te lezen spint de applicatie een container op. Wanneer je van Google Mail naar Drive gaat, dan spint die ook dat programma weer een container op, enzovoorts.

Container basis-frame voor developers

Bij Google hadden ze door dat je aan een enkele container niet heel veel hebt. Tenslotte heb je ook een plek nodig waar je data neergezet kan worden, voor het snel laden van al je databases. Met Kubernetes zorgt Google ervoor dat je storage direct aan een container kunt koppelen, dat twee of meer containers intern kunnen communiceren en dat dit alles via een IP-adres te benaderen is. Alle tools zijn separaat te koppelen. Kost je even tijd, maar dan heb je een mooie omgeving staan.

Maar dan komt het volgende... wanneer je alles hebt draaien, en je containers kunt opspinnen en koppelen, komt de developer in beeld. Als SysAdmin wil je er niet meer werk aan hebben dan het onderhouden van de omgeving en zorgen dat de juiste container basis-frames klaar staan voor de developer. Via een selfservice portal start de developer idealiter zelf de container op, test deze en koppelt er een DNS-naam aan. Als SysAdmin bemoei je je er niet meer mee.

Onder anderen Red Hat levert zo’n beheer van je applicatie-omgeving via het OpenShift-containerplatform. Dit is een kant-en-klaar product dat je on-premises of bij een cloudprovider kunt hebben draaien. Azure, AWS, het op/via RedHat gebaseerde IBM Cloud Paks en ook Google bieden een OpenShift-omgeving aan die ze zelf voor de gebruiker bijhouden. Zo kan de developer inloggen op dit OpenShift-platform en kan de container kiezen die hij voor een project nodig heeft:

  • Koppelt de storage;
  • Geeft aan waar de code staat die in de container geladen moet worden;
  • Start de omgeving op;
  • Kiest hoeveel replica’s hij wil;
  • Bepaalt wat de utilisatie van de containers mag zijn voordat hij er een op- of afschaalt. 

Meld je aan voor ons webinar

Wil je meer weten over dit onderwerp? Op 17 september 2020 houden Ruud Baas, Eelco Audiffred en ik het LIVE webinar ‘Modern Application Building’ waarin we ook vragen beantwoorden die vooraf of tijdens het webinar kunnen worden gesteld.

Schrijf je gratis in!

Meer weten?

Wil je voor 17 september al meer weten over het onderwerp of een duidelijke uitleg over Red Hat en het subscriptiemodel? Neem dan contact op met het Red Hat team van SoftwareONE.

Neem contact op
Jan van Bruggen

Jan van Bruggen

Solution Specialist Red Hat

 jan.vanbruggen@softwareone.com

 +31 6 2446 3315

 LinkedIn

Ruud Baas

Ruud Baas

Solution Specialist Red Hat

 ruud.baas@softwareone.com

 +31 6 5361 2817

 LinkedIn

Eelco Audiffred

Eelco Audiffred

Internal Solution Specialist Red Hat

 eelco.audiffred@softwareone.com

 +31 6 1040 9337

 LinkedIn

  • Software Development

Reageer op dit artikel

Laat een reactie achter om ons te laten weten wat je van dit onderwerp vindt!

Laat een bericht achter

Auteur

Jan van Bruggen

Jan van Bruggen

Solution Specialist Red Hat

 

 jan.vanbruggen@softwareone.com

 +31 6 2446 3315

 LinkedIn

Gerelateerde blogs

Meerlagen EDR (XDR)
  • 30 juli 2020
  • William Jansen
  • Security, Cyber Security, Endpoint Management

What's next: Meerlagen-Endpoint Detection and Response (XDR)

In zijn vorige blog “Next-Gen”- EDR gaf William Jansen de verschillen aan met Endpoint security, SIEM en de uitdagingen met standalone EDR-oplossingen. Nu gaat William in op de trend richting Managed Detection and Response, Cross Layer…

Next-Gen EDR
  • 17 juli 2020
  • William Jansen
  • Cybersecurity
  • Security, Cyber Security, Endpoint Management

What's next: "Next-Gen" Endpoint Detection and Response?

In zijn vorige blog legde William Jansen uit wat EDR betekent en waarom het essentieel is binnen de cybersecurity-oplossingen van een organisatie. Dit tweede artikel gaat in op de verschillen tussen EDR en antivirus, de uitdagingen van…

Office 365 AI & You - Teams Customized Background
  • 16 juli 2020
  • Erik Moll
  • User Productivity, Publisher Advisory
  • AI, Microsoft, Artificial Intelligence, Teams

Microsoft 365 AI & You - Teams Customized Background

An update to Microsoft Teams AI is making your videoconferencing more professional. It ensures that you remain the center of attention – and not the cluttered background.