De voordelen en uitdagingen van (backend)ontwikkeling in de cloud

5 min read

De backend is het deel van een applicatie, digitaal platform of website dat voor de gebruiker niet zichtbaar is, maar wel een essentiële rol speelt bij het leveren van een goede functionaliteit en performance. Tegenwoordig zien we dat steeds meer organisaties hun backends ontwikkelen en hosten in de cloud. De sterke groei van een platform als AWS bewijst dit.

Die ontwikkeling is logisch en verklaarbaar als je kijkt naar de voordelen die het ontwikkelen en managen van backends in de cloud heeft, bijvoorbeeld op het vlak van flexibiliteit en schaalbaarheid. Maar wat komt er allemaal kijken bij het ontwikkelen van backends in de cloud? Wat zijn, naast de voordelen, specifieke uitdagingen waarmee je te maken krijgt? Welke frameworks zijn er? En hoe pakt Oberon het aan? Je leest het op deze pagina.

De voordelen van backendontwikkeling in de cloud

Backendontwikkeling in de cloud heeft diverse praktische en functionele voordelen. Een overzicht van de belangrijkste.

Serveronderhoud uitbesteden

Je eigen serveronderhoud regelen is een klus die veel tijd en energie kost. Met backendonderhoud in de cloud besteed je dit uit aan een gespecialiseerde partij. Het niet zelf hoeven te regelen van het serveronderhoud scheelt je kostbare uren die je kunt besteden aan je core business. Daarnaast vereist het onderhoud specifieke kennis die niet altijd in-house aanwezig is.

Flexibel en schaalbaar

Door je backend te ontwikkelen in een cloudplatform als AWS, profiteer je van optimale flexibiliteit. Je kunt meerdere programmeertalen of database-oplossingen gebruiken en naast elkaar draaien binnen een project. Zonder cloud is dat in principe ook mogelijk, maar omdat je dan ook het beheer moet doen, is het minder waarschijnlijk dat je daarvoor kiest.

Meer weten over (backend) ontwikkeling in de cloud?

Makkelijker strategisch meegroeien

Backendontwikkeling in de cloud maakt het makkelijker om strategisch mee te groeien met veranderende markt- en klantbehoeften en technologische innovaties. De cloud biedt namelijk de technologische flexibiliteit die on-premisesoplossingen veelal missen.

De uitdagingen

Naast die zeker niet geringe voordelen, heeft het ontwikkelen van backends in de cloud ook zijn uitdagingen. In AWS Lambda, maar ook veel andere platforms voor het ontwikkelen van backends, heb je bijvoorbeeld te maken met harde limieten. Denk bijvoorbeeld aan de limieten op de duur en grootte van een respons en request bij een API-call. Die limieten zijn niet altijd even goed gedocumenteerd en dus best ‘tricky’.

Een ander aandachtspunt is dat de AWS-console en dashboards er vaak automatisch vanuit gaan dat je als account toegang hebt tot alle delen van het ecosysteem. Dit brengt binnen AWS een aantal issues met zich mee die je niet van zo'n groot platform zou verwachten. Het is dus met name belangrijk om de rechten goed in te stellen met de juiste mix van werkbaarheid en need-to-know informatie.

Gelukkig zijn dit uitdagingen die met een goed beleid en slimme keuzes prima beheersbaar zijn. Het is daarom belangrijk dat ontwikkelaars voldoende tijd steken in het goed opzetten van hun accounts. Zo stap je niet in de valkuil van ‘we maken iedereen admin en zo ben je van het probleem af’. Zorg ervoor dat iedereen toegang heeft tot de juiste informatie en de delen van het ecosysteem die nodig zijn voor het ontwikkelen en testen van de backendomgeving. Ook het goed kennen van de limieten is natuurlijk van belang: weet dat ze bestaan en breng in kaart wat er binnen de limieten mogelijk is. Loop je bijvoorbeeld aan tegen te grote payloads in je response? Dan kun je kiezen voor paginering, maar ook data wegschrijven naar S3 en je frontend doorverwijzen naar die service.

Frameworks voor het ontwikkelen van backends

Voor het ontwikkelen van een backend gebruik je een framework. Dit kun je zien als een kader met kant-en-klare softwarecomponenten waarmee je een applicatie, platform of website bouwt. Er zijn zowel speciale frontend- als backend-frameworks. Laravel en Symfony zijn momenteel een paar van de populairste en meest gebruikte PHP-frameworks voor het bouwen van backends in de cloud.

Laravel is het grootste en heeft als belangrijk pluspunt dat je veel functionaliteiten gelijk out of the box kunt inzetten. Het is open source en door de gedetailleerde richtlijnen en het beperkte configuratiewerk snel te gebruiken. Toch heeft die lage instapdrempel ook een nadeel. Laravel wordt lastiger te onderhouden als een project echt complex wordt. Je loopt eerder tegen grenzen aan dan bij sommige andere frameworks het geval is.

Symfony is een opensource-framework voor het bouwen van geavanceerde webapplicaties en API’s. Vergeleken met Laravel oogt Symfony complexer. Er is meer bouw- en configuratiewerk nodig, waardoor het wat meer tijd en technische kennis vergt om met het framework te leren werken.

Tegelijkertijd heeft Symfony ook duidelijke voordelen ten opzichte van Laravel en andere frameworks:

  • Developers hebben veel controle over het framework. Je kunt in Symfony prima je eigen dingen doen en unieke functionaliteiten ontwikkelen. Symfony leent zich voor zowel simpele als complexe applicaties. Dit maakt het framework flexibel en toekomstbestendig: een applicatie of platform kan meegroeien met een organisatie.
  • De documentatie is in orde. Symfony wordt vaak geprezen om de duidelijke en goed gestructureerde informatie die makkelijk en breed toegankelijk is.
  • Symfony biedt een eigen testlibrary bovenop phpunit om functionele tests te schrijven die automatisch inhaken op diverse onderdelen van het framework.

Uiteindelijk is er geen enorm verschil tussen de verschillende frameworks. De keuze voor het een of de ander is ook niet in steen gebeiteld. Het is een constante afweging die we maken tussen wat de ontwikkelingen zijn, waar onze kracht ligt en naar welke mensen we op zoek zijn.

Serverloos PHP in de cloud met Bref

Bij Oberon hebben we ervoor gekozen om de gehele backendapplicatie als Lambda functie te draaien om snel en soepel moderne en schaalbare applicaties te bouwen in de cloud. Dit heeft als groot voordeel dat er geen kosten zijn voor de hosting op het moment dat de applicatie niet wordt gebruikt. Een handig hulpmiddel bij het gebruik van PHP en Lambda is Bref. Het zorgt voor het kunnen draaien van PHP op een serverloze technologie als je AWS Lambda gebruikt. AWS biedt voor Lambda standaard een aantal runtimes aan om functies mee te schrijven. Denk aan Java, Python, Node en Go. Veel ontwikkelaars gebruiken echter PHP. Zouden zij naar de cloud gaan en geen PHP kunnen gebruiken, dan zou dat enorm onhandig zijn. AWS biedt echter nog een andere optie, namelijk het gebruiken van eigen runtime. Dat is wat Bref doet. Het maakt de PHP runtime beschikbaar voor AWS zodat ontwikkelaars in de voor hun bekende taal en frameworks op AWS Lambda functies kunnen gebruiken.

Natuurlijk loop je ook tegen uitdagingen aan. Die zijn op te lossen door het netwerk van diensten en services dat de cloud is op de juiste manier in te zetten en te verbinden. Die uitdagingen bestaan bijvoorbeeld uit de al eerder genoemde limieten, het hebben van cold starts, sessiebeheer en het gebrek aan fysieke opslag in de Lambda omgeving.

Backend-development bij Oberon

Bij Oberon hosten en bouwen we steeds meer backends in de cloud, een werkwijze waar we in geloven en waar we inmiddels veel ervaring mee hebben. Bij het ontwikkelen van backends, websites en apps in de cloud doorlopen we een aantal vaste stappen:

  1. Architectuurcheck. Wat is er allemaal mogelijk? Aan welke technische en functionele eisen moet de backend van je applicatie of platform voldoen? Hoe sluit dat aan op de rest van je IT-ecosysteem? Met welk framework gaan we ontwikkelen? Bij Oberon hebben we een voorkeur voor en de meeste ervaring met Symfony, maar een andere keuze of oplossing is ook mogelijk als er een goede reden is om die te gebruiken.
  2. Design en UI, als onderdeel van het ontwikkelwerk of vooraf.
  3. Het ontwikkelen in Scrum. Dit gebeurt in sprints en nauwe samenwerking met de klant. We programmeren in Scrum, terwijl het ontwerpen gebeurt als onderdeel van de bovenstaande architectuurfase. Die geeft developers en product owners de mogelijkheid om tijdens het ontwikkelen nog volop bij te sturen voor een beter resultaat. We tonen welke resources er beschikbaar zijn en hoe ver je daarmee kunt komen.
  4. Het minimum viable product (MVP), hoewel dit niet altijd een vaste stap is bij backendontwikkeling. Het MVP is de eerste, met de belangrijkste basisfunctionaliteiten uitgeruste versie van het eindproduct die wordt uitgerold naar de klant. Op basis van feedback en eerste gebruikerservaringen kunnen we het MVP in de laatste fase van het ontwikkeltraject verder perfectioneren.
  5. De livegang en release van het eindproduct.

Een van de onderscheidende eigenschappen van Oberon is dat we bij het ontwikkelen van backends veelal maatwerk leveren. De volgende vraag stellen we standaard: wat heb je nodig en wat wil je specifiek? Wellicht heb je behoefte aan een heel technisch product, maar het kan ook zo zijn dat jouw business en wensen juist vragen om een applicatie die heel content-heavy is. Dit zijn allemaal zaken waar wij terdege rekening mee houden in de architectuurfase.

Wat betreft technologie werken we graag met en zijn we het meest bekend met AWS (het cloudplatform dat er het langst is en de meeste services en functionaliteiten heeft), Symfony en PHP, maar kunnen we ook prima werken met andere platforms, frameworks en programmeertalen als de klant en situatie daarom vragen. In de financiële wereld gebruiken veel organisaties bijvoorbeeld het liefst Python als programmeertaal.

Meer informatie

Wil je ook een modern en toekomstbestendig digitaal platform laten ontwikkelen? En wil je daarbij gebruikmaken van serverloze technologie en een backend in de cloud, zonder dat je je zorgen hoeft te maken over de uitdagingen? Dan helpt Oberon je graag verder. Neem gerust vrijblijvend contact met ons.

Meer weten over (backend) ontwikkeling in de cloud?