Technologie • 20.12.2021
Technologie
07 januari 2022
In dit artikel gaan we kort in op de voordelen van public cloud platforms en leggen we de drie grootste cloudproviders langs de meetlat: AWS, Microsoft Azure en Google Cloud.
Steeds meer applicaties worden in de cloud ontwikkeld. Hiermee besparen bedrijven kosten en verhogen ze de flexibiliteit van hun applicaties. Het is niet meer de vraag óf je kiest voor ontwikkeling in de cloud, maar voor welk cloud platform je dan gaat. Wanneer je een serverless applicatie ontwikkelt draait deze niet op een eigen fysieke server, maar is deze geheel in beheer van een cloudprovider. Je ontwikkelt dan cloud native, iets wat haaks staat op traditionele software ontwikkeling. Er worden nog wel servers gebruikt bij cloud native software ontwikkeling, alleen zijn deze weggehaald bij de developers en worden zij beheerd door de cloud provider. Maar waarom zou je kiezen voor cloud native ontwikkeling? En voor welk cloud platform kun je het beste kiezen?
Delen
Om het meest geschikte cloudplatform voor je (te ontwikkelen) applicatie te kiezen is het belangrijk de terminologie te snappen. Wat is serverless en cloud native, en wanneer gebruik je welke term?
De term cloud, of cloud computing wordt gebruikt voor het gebruik van applicaties en data, via het internet. Waar deze applicaties en data opgeslagen zijn verschilt, dit kunnen servers in een datacenter zijn, maar ook een computer van een individu, die aan het internet verbonden is.
Cloud native betekent dat de applicatie of data via een public cloud provider beschikbaar worden gesteld aan gebruikers. De bouwer van de applicatie heeft geen invloed op de infrastructuur, maar maakt direct gebruik van de services van de cloud provider om zijn cloud applicatie te bouwen.
Een applicatie wordt serverless genoemd wanneer deze niet fysiek op een eigen server staat. In de development strategie kan er daarnaast gebruik gemaakt worden van cloud functies zoals Amazon Lambda of Google Functions. Deze cloud functies zijn in staat de manier waarop resources die nodig zijn om een cloud applicatie te laten draaien beschikbaar te stellen. Dit is op basis van vraag. Zijn er veel gebruikers, dan worden meer resources beschikbaar gesteld. Wordt de applicatie weinig gebruikt, bijvoorbeeld s’ nachts of in het weekend, dan daalt het aantal resources automatisch. Bij traditionele cloudcomputing, is het vooraf noodzakelijk om grote hoeveelheden resources toe te wijzen, zodat ze beschikbaar zijn indien nodig.
In deze blog leggen we de voor- en nadelen van applicatie ontwikkeling in de cloud verder uit én vergelijken we de drie grootste cloudleveranciers: Amazon Web Services (AWS), Microsoft Azure en Google Cloud.
De manier van software consumeren is de afgelopen jaren enorm veranderd. Dit heeft niet alleen impact op het gebruik van cloud gehad, maar ook op de wijze hoe software wordt ontwikkeld, en vooral doorontwikkeld. Het serverless aanbieden van software is een van de innovaties die terrein wint. Bij serverless computing beheert de cloudprovider op een dynamische manier de resources die nodig zijn om je software te draaien. Zo hoef je als developer niet bezig te zijn met de inrichting van de infrastructuur, maar kan volledig focussen op het ontwikkelen van je applicatie. Door servers, infrastructuur en besturingssystemen in een laag aan te bieden, lijkt het alsof er geen servers aan te pas komen.
Bij serverless betaal je alleen voor de momenten dat de applicatie ook daadwerkelijk gebruikt wordt. Op de momenten dat jouw applicatie geen gebruikers heeft, heb je geen kosten voor het in de lucht houden van je applicatie. Dit kan handig zijn voor tijd- en seizoensgebonden apps, maar ook voor applicaties die gericht zijn op commerce, denk aan klant- en leveranciersportalen. Deze worden op bepaalde tijden veel en bepaalde tijden minder gebruikt, bijvoorbeeld in de nacht. Daardoor zijn over het algemeen de kosten voor het hosten van de applicatie door een cloudprovider lager.Lagere kosten
Infrastructuur is erg belangrijk bij het inrichten van een applicatie. Deze kan klein beginnen, maar uiteindelijk ook uitgroeien naar een ‘viral’ applicatie, denk bijvoorbeeld aan het Uber platform. Dit wordt steeds meer uitgebreid, niet alleen qua gebruikers, maar ook qua functionaliteiten en koppelingen met third party software. De infrastructuur moet hierin meegroeien. Wanneer een applicatie serverless is kan deze in de cloud altijd door blijven groeien, naar de hoeveelheid gebruikers.
Wanneer het serverbeheer van een applicatie bij het development team ligt, zijn er meer dingen waar het team rekening mee moet houden. Denk bijvoorbeeld aan het bijhouden van patches, bugfixes en de nieuwste beveiligingen. Deze verantwoordelijkheid ligt bij serverless development bij het cloudplatform. Hierdoor houden developers tijd over voor de doorontwikkeling van de applicatie, ook dit scheelt tijd en geld.
Uiteindelijk gaat alles om de ervaring van de gebruikers. Zijn deze tevreden, dan is de kans groter dat gebruikers jouw applicatie blijven gebruiken. Wanneer de ervaring niet voldoet aan de verwachtingen, heeft dit automatisch negatieve gevolgen voor de applicatie. Doordat het development team zich niet hoeft bezig te houden met zaken als infrastructuur kan deze zich beter richten op het toevoegen van features die waarde toevoegen voor de eindgebruiker. Dit draagt positief bij aan de ervaring van de gebruiker.
Een applicatie moet integreren met de cloudprovider, maar natuurlijk ook met andere systemen. Deze API’s bouwen kost tijd en zijn vaak complexer dan wanneer deze via een eigen server lopen. Waar eigen servers vaak een monolithische architectuur hebben, moet er nu bij complexe taken gewerkt worden met een microservice architectuur. Dit vergt specifieke kennis van developers.
Wanneer je applicatie eenmaal up-and-running is bij een cloudprovider stap je niet meer zo snel over naar een andere aanbieder. Of je missiekritische functionaliteiten als AWS Lambda wilt vervangen voor de Microsoft tegenhanger Azure Functions is natuurlijk de vraag. Door vooraf goed je architectuur, technologie keuzes en doorontwikkelde wensen in kaart te brengen voorkom je dat je een verkeerde keuze maakt.
Een cloud applicatie bouwen gaat snel, maar soms kan een cloud applicatie een langzame opstart hebben. Zoals hierboven besproken, betaal je alleen voor de (onderdelen van) de applicatie als deze ook daadwerkelijk gebruikt wordt. Zijn er functionaliteiten die een tijd ongebruikt blijven? Deze blijven gehost staan in de cloud, maar wanneer deze na een tijdje weer worden aangesproken starten deze relatief langzaam in de Lambda op. Door de functionaliteiten klein en nauwkeurig te houden kun je dit probleem voorkomen. In de praktijk hoor je van deze langzame start nauwelijks last te hebben bij een website.
Op je eigen server heb je altijd invloed, op de cloud server van een derde partij niet. Je verliest hier een stukje controle, maar krijgt daar ook een stukje zekerheid voor terug in hoge mate van security en uptime. De cloud provider bepaald welke services beschikbaar blijven en welke vervangen worden door andere services. Ook wanneer jij ze nog wel voor een applicatie gebruikt. Daarnaast is het belangrijk dat de keuze voor het serverless ontwikkelen van je applicatie een bewuste keuze is. Het ‘teruggaan’ daar een applicatie op de server ligt vaak ingewikkeld.
AWS is het cloud platform van Amazon. Het is de grootste cloud provider die op dit moment beschikbaar is en een van de meest uitgebreide met meer dan 200 cloud native diensten. Daarnaast heeft AWS tal van mogelijkheden qua servers, opslag, netwerk, mobiele ontwikkeling en hoogstaande beveiliging, is dit platform geschikt voor vrijwel iedere applicatie. Een ander groot voordeel aan AWS zijn de availability zones. Door het grote aantal datacenters verspreid over de hele wereld krijgen gebruikers hun data vanaf de dichtstbijzijnde availability zone. Hierdoor kunnen responsetijden laag gehouden worden.
Daarnaast is AWS ook zeer geschikt voor cloud databases en gegevensbeheer, deze hebben grote rekenkracht en kennen geen downtime. Hierdoor kan jouw applicatie altijd de juiste gegevens bereiken.
Azure is een cloud platform en verzameling cloudservices en ontwikkeld door Microsoft. Dit platform is vooral groot binnen de enterprise markt waar bedrijven al gebruik maken van Microsoft technologie. Veel Microsoft applicaties zoals SharePoint, Dynamics en Office hebben een cloud variant, waardoor het gebruik van de cloud versie een kleine stap is. Azure ondersteunt veel programmeertalen, frameworks, besturingssystemen, databases en apparaten. Dit, met een reeks aan diensten en toepassingen, maakt ook Azure zeer geschikt voor het ontwikkelen van cloud applicaties. Door de virtualisatie-technologie die zij gebruiken is de technologie wendbaarder én toegankelijker voor andere systemen en integraties.
Azure blinkt uit op het gebied van Big Data en AI. Organisaties willen de performance van hun applicatie inzichtelijk maken. Het visualiseren van deze data via bijvoorbeeld Databricks en PowerBI is dan ook makkelijk mogelijk. Wil jouw organisatie zich richten op AI? Met Azure Machine Learning, Microsoft Genomics en Bot Services Is Azure zeer geschikt voor het bouwen van AI applicaties of applicaties met AI onderdelen.
Google Cloud is ontwikkeld door, je raadt het al, Google. Uiteraard gebruikt deze de bestaande Google systemen en infrastructuur voor het aanbieden van de cloud. Ook zij bieden verschillende aan diensten aan, waaronder dataopslag, applicatieontwikkeling en IoT. De huidige diensten van Google kunnen makkelijk geïntegreerd worden met applicaties. Sinds Google Cloud bestaat is deze nog nooit ‘down’ geweest.
Niet voor niets dat bedrijven als Twitter, eBay en Paypal draaien op de Google Cloud. Een USP van Google is de beveiliging. Google heeft een groot team van professionals die zorgen dat het hele netwerk sterk beveiligd is. Alle gegevens die in de cloud staan zijn encrypted. Gebruikers en bedrijven hoeven zich dus geen zorgen te maken over de gegevens in de applicatie.
Nu alle drie de platformen een korte introductie hebben gehad, vergelijken we ze hieronder aan de hand van 4 belangrijke punten: prijs, beschikbaarheid, gebruikers en services. Zo kun je makkelijker de juiste keuze maken voor een cloud platform.
Zowel Azure als AWS begint een cloud oplossing bij zo’n $70 per maand. Vergelijk je dit met Google Cloud, dan is hetzelfde zo’n $52 per maand. De prijs is afhankelijk van het geheugen welke wordt gebruikt door de applicatie, hoe meer geheugen hoe hoger de prijs. Het verschil in prijs kan daardoor dus vrij groot worden. Qua prijs zou Google Cloud de juiste keuze zijn.
Als we kijken naar beschikbaarheid zones staat AWS bovenaan met 88 zones, dit komt neer op praktisch de hele wereld. Azure blijft achter met 54 zones, die overigens een groot deel van de wereld betreffen. Google Cloud heeft op dit moment 22 zones. Deze zones Wanneer het gaat om beschikbaarheid is AWS een logische keuze.
AWS is het langste bezig met cloud. Daarom leveren zij aan een aantal grote namen, denk aan: Netflix, AirBnB, Samsung en BMW. Azure vertegenwoordigt weer 80% van de Fortune 500 bedrijven, zoals: Apple, Fuji en HP. Google blijft wat dit betreft niet achter, met namen als: Domino’s, Paypal en Twitter.
Het vergelijken van services is lastig en vooral maatwerk. Welke services belangrijk en doorslaggevend zijn is verschillend per organisatie. AWS biedt 200+ services aan, Azure 100+ en Google Cloud 60+. Genoeg services dus. Zoek je een compleet pakket? Dan biedt AWS alles wat je nodig hebt.
De beste keuze voor een cloud oplossing? Dat is maatwerk én is sterk afhankelijk van functionaliteiten, budget en koppelingen met andere systemen. Daarom is het verstandig om je goed te verdiepen in alles wat cloud te bieden heeft en advies in te winnen bij specialisten. Wij kunnen niet vertellen wat de beste keuze is, maar wel adviseren in welke oplossing het beste past bij jouw bedrijf en applicatie.
Over het algemeen is AWS het cloudplatform wat het meest toonaangevend is in het bieden van het breedste scala aan functies en volwassenheid. Het is nog steeds de duidelijke marktleider, maar de kloof wordt kleiner. De uitgebreide lijst met tools, services en enterprise features maken AWS een goede keuze voor grote organisaties.
Microsoft is hard bezig de kloof tussen beiden te overbruggen, en blijft het Azure-cloudplatform doorontwikkelen, waarbij de integratie met on-premise software een belangrijk onderdeel is. Voor organisaties die al Microsoft technologie binnen hun bedrijf gebruiken zal Microsoft Azure een sterke propositie zijn.
Dan is er nog Google, die een belangrijke enterprise concurrent kan worden. Het heeft goede vooruitgang geboekt bij hun grote klanten, vooral op het gebied van Kubernetes en machine learning-expertise, maar er moet nog veel werk worden verzet om te bewijzen dat het een concurrerende enterprise cloud oplossing is.
Als Cloud Native agency kiezen wij voor het werken met één van de cloud platformen, namelijk AWS. Zo kunnen wij ons heel specifiek richten op deze techniek en de best presterende schaalbare applicaties bouwen. Daarnaast specialiseren wij ons in het maken van klant- en leveranciers portalen op basis van AWS. Lees meer over wat wij kunnen doen op het gebied van AWS voor uw organisatie. Wilt u samen sparren over de juiste technische keuzes voor uw applicatie? Bel dan met Gert of neem contact met ons op.
Meer weten? Bel ons dan gerust op +31 (0) 6 557 161 80 of stuur een mail naar info@touchtribe.nl.
Delen