Zo laat je applicaties optimaal presteren

06-11-2017

Je moet opnieuw nadenken over hoe je software schrijft die slim gebruik maakt van de cloud infrastructuur.

Elk bedrijf is tegenwoordig een softwarebedrijf. Om onderscheidend te zijn moet je als modern bedrijf razendsnel inspelen op ontwikkelingen en unieke features uitrollen. Dat kan door op een moderne manier applicaties te ontwikkelen, maar op welke infrastructuur functioneren die applicaties optimaal?

Tot ongeveer vijf jaar geleden was complexe infrastructuur nodig om beschikbaarheid en performance te garanderen, stelt Stefan Månsby, Innovation Officer bij Basefarm. Scenario's als bij uitval overschakelen naar een andere server of tweede datacenter, dynamisch op- en afschalen afhankelijk van capaciteitsbehoefte, of constant de gevraagde performance leveren, waren geen onderdeel van de software. "Omdat de software het niet ondersteunde moest het via de infrastructuur geregeld worden," gaat Månsby verder. "Er waren hoge investeringen nodig en je moest specialistische kennis in huis hebben op dit gebied. De infrastructuur compenseerde de tekortkomingen van de software." Gelukkig ligt dat nu anders.

Slim omgaan met infrastructuur

Tegenwoordig kan de software dit soort situaties wel zelf oplossen. Door tijdens het ontwikkelen gebruik te maken van standaard componenten die beschikbaar zijn, heb je geen ingewikkelde infrastructuur meer nodig. "Dit heeft ervoor gezorgd dat infrastructuur de laatste jaren steeds meer een commodity is geworden," licht Månsby toe. "Je hoeft geen specialistische kennis in huis te hebben, hoge investeringen zijn overbodig geworden en je kunt je tijd eindelijk besteden aan wat echt belangrijk is." Dankzij onder andere SaaS, PaaS en IaaS hoef je je als ontwikkelaar totaal niet bezig te houden met de onderliggende infrastructuur. Dat scheelt enorm veel complexiteit. "Je kunt je volledig concentreren op de unieke functionaliteit die je als bedrijf nodig hebt. Je plaatst je eigen code simpelweg bovenop de standaard-componenten."

Opvallend is dat er ook anders met infrastructuur wordt omgegaan. Månsby: "Of je nu van het cloud platform van Amazon, Microsoft, of Google gebruik maakt, je houdt er tegenwoordig rekening mee dat een VM er ineens mee kan stoppen. Dat geeft niet, want het is supereenvoudig om meteen weer een nieuwe te starten." Dat is meteen ook de reden waarom je als bedrijf opnieuw moet nadenken over hoe je software schrijft die slim van cloud-infrastructuur gebruik maakt.

"Via een paar regels code maak je software ervan bewust dat resources af en toe zomaar kunnen verdwijnen. Is Ierland niet beschikbaar, dan schakel je automatisch over naar Londen of Parijs." Behalve eenvoudig is het ook efficiënter vanuit financieel oogpunt. "Je hoeft niet langer te investeren in peperdure infrastructuren. Hoe je de cloud slim gebruikt, is daarmee een essentiële verschuiving in perceptie die je moet zien te maken."

Het beste platform voor jouw software

In theorie klinkt het makkelijk, maar hoe werkt het in de praktijk? Een populaire strategie is om te ontwikkelen volgens micro services oriented architecture. Je schrijft dan niet één stuk software waarin alle features zitten, maar werkt met losse componenten. Zodat je features eenvoudig kunt toevoegen, wijzigen of verwijderen, zonder dat het invloed heeft op de overige functionaliteit. Micro services praten nooit rechtstreeks met elkaar. Altijd via API's. Månsby: "Het is hierbij essentieel dat je bij elke wijziging de onderlinge relaties controleert. Dus moet je onder andere goed bijhouden welke componenten je nodig hebt en welke versies dat dan zijn. Zeer complex om zelf bij te houden. Daar heb je orchestratie software bij nodig, zoals bijvoorbeeld OpenShift."

Werken met micro services en orchestratie stelt je daarnaast in staat om op een slimme manier te bepalen op welke cloud-infrastructuur je een workload draait. "Geen enkel cloud-platform is altijd de beste keuze," benadrukt Månsby. "Het verschilt per situatie. Jouw software draait momenteel misschien optimaal in Azure, maar zodra je een nieuwe release met extra features uitrolt kan Amazon ineens een betere keuze zijn." Daarnaast verandert de performance van cloud-platformen over de tijd. "Het ultieme platform dat het snelst is en de beste prijs-prestatie levert bestaat dus niet. Alleen de beste cloud-omgeving op dit moment en in deze specifieke situatie."

Cloud onafhankelijk ontwikkelen

Het advies van Månsby is dan ook om je software geschikt te maken voor alle grote cloud infrastructuren. "In OpenShift kun je de beslissing wat je waar draait baseren op parameters die je zelf instelt." Vervolgens wordt dit door OpenShift voor je georchestreerd. Ontwikkelaars hoef je hier dus nooit mee lastig te vallen. "OpenShift kan ook een geautomatiseerde herstart van een workload op een ander cloud platform doen. Bijvoorbeeld omdat er iets misgaat, of wanneer de performance onder een bepaalde drempelwaarde zakt."

De mindset van tegenwoordig is dat je een workload niet permanent op een cloud platform onderbrengt. Later zal je het nog willen verplaatsen naar de beste cloud-omgeving van dat moment. De beste infrastructuurstrategie is dan ook, dat elke workload eenvoudig verplaatst moet kunnen worden tussen cloudproviders. Normaal is dat nogal gecompliceerd omdat cloudproviders elk hun eigen API's gebruiken. "Gelukkig roep je resources in OpenShift aan via een neutrale programmeertaal die eenvoudig te leren is. Je hoeft dus nooit de integraties met de cloud provider te herschrijven. Doordat de infrastructuur volledig geabstraheerd is, zijn workloads makkelijk en snel uitwisselbaar en voorkom je een lock-in."

contact

Neem contact op met een van onze specialisten voor meer informatie en hoe wij kunnen u helpen.

btn-top