Net zoals voor een nieuw huis, heb je ook voor nieuwe software een plan en architectuur nodig. Eerst ga je nadenken over wie het zal gaan gebruiken. Daarna moet de software (of het huis) zo vorm gegeven worden, dat deze zo goed mogelijk voldoet aan alle wensen en eisen van de gebruikers. Die eisen kunnen functioneel (ik moet erin kunnen koken) of niet-functioneel (het moet klimaatneutraal zijn) van aard zijn.
Cloud Infrastructuur
De basis voor Everdune Cloud is een degelijke infrastructuur. Die is vooral nodig om te voldoen aan de niet-functionele eisen, zoals hoge beschikbaarheid.
Geen eigen hardware
Een cloud infrastructuur bestaat grofweg uit virtuele servers, netwerkapparatuur en opslagmedia. Als Everdune Mobile B.V. beheren wij niet zelf deze hardware. Dienstverleners zoals Amazon (maar ook Microsoft, Google en Alibaba) doen dit heel efficiënt op hele grote schaal, 24/7. Zij zorgen ervoor dat de diensten altijd beschikbaar zijn, zodat jij bijvoorbeeld kan blijven binge-watchen op Netflix. Voor de meeste bedrijven is het dus niet meer interessant om deze hardware zelf te beheren.
Bouwmarkt
Deze cloud-providers zie ik vooral als een soort 24-uurs bouwmarkt. Je kan er allerlei bouwmaterialen kopen/huren, maar niet een compleet huis.
Ook wij kopen cloud-diensten en -capaciteit in bij Amazon en hebben daarmee de Everdune Cloud gemaakt. Op basis van alle wensen en eisen die de afgelopen jaren voorbij zijn gekomen, konden we een goede fundering voor een modelhuis maken. Met ook alle basisaansluitingen die je mag verwachten.
Back-end
Op deze fundering kan de back-end software geïnstalleerd worden. Het back-end bestaat voor elke klant uit twee delen. Een deel dat bestaat uit standaard componenten die vaak nodig zijn voor allerlei soorten apps. En een deel maatwerk software, waarin alle logica zit die op maat is gemaakt voor de klant.
Basis
Het configureerbare basis back-end (modelhuis) bevat de de basisonderdelen die voor vrijwel elke app nodig zijn. Zoals bijvoorbeeld het beheren van gebruikers en hun profielen.
Zoals een laptop een USB aansluiting heeft om bijvoorbeeld foto’s te downloaden van je fotocamera, heeft ook Everdune Cloud een aansluiting. Software ontwikkelaars noemen dat een API (Application Programming Interface). Een REST API is ook een standaard onderdeel van de Everdune Cloud, zodat al onze apps er makkelijk op aangesloten kunnen worden. Ook kan de API gebruikt worden om het back-end eenvoudig te koppelen met andere apparaten of systemen. Bijvoorbeeld een CRM systeem.
Maatwerk
Daarnaast breiden we het basis back-end uit met een maatwerk back-end. Hierin zit alle logica die nodig is voor de unieke mogelijkheden van de aangesloten app. Alle logica wordt opgesplitst in losse functies (microservices). Op basis van aanroepen vanuit de app of andere events worden deze functies uitgevoerd. Deze vorm wordt ook wel een serverless architectuur genoemd, omdat je niet precies weet op welke (virtuele) server de code wordt uitgevoerd. De cloud infrastructuur verzorgt dat helemaal zelf.
Data
Om gegevens uit de apps op te slaan op Everdune Cloud maken we gebruik van verschillende opslagmogelijkheden, zoals NoSQL databases. Door middel van automatische backups naar een fysiek (geografisch) andere locatie, zorgen we ervoor dat de opgeslagen gegevens van gebruikers niet zomaar verloren kunnen gaan. Daarnaast beschermen we de data, waaronder vaak ook persoonsgegevens, met sterke security maatregelen. Hierover binnenkort meer in een apart blog artikel.
Cloud powered app
De apps worden in veel gevallen voorzien van één of meerdere Everdune Cloud app-componenten. Hiermee kunnen verschillende functionaliteiten van Everdune Cloud makkelijker gebruikt en ontsloten worden in de apps. Bijvoorbeeld het registreren, inloggen en uitloggen van gebruikers. Apps die gekoppeld zijn aan Everdune Cloud, noemen wij Cloud-powered apps!