Vrijwel iedere organisatie die begint met data science, een datawarehouse gaat opzetten of de bestaande infrastructuur moderniseert, kiest automatisch voor de cloud. En dan kom je meestal uit bij de Grote Drie: Microsoft Azure, Amazon AWS en Google Cloud Platform. Welke is de betere keus? En als je op een later moment toch wilt switchten, kan dat dan wel? Gelet op de steeds strengere privacy- en databeschermingseisen vanuit de EU is de mogelijkheid om te switchen urgenter dan ooit. Tijd voor meer achtergrond bij de cloud.
Door Harmen, CTO & senior data scientist bij Datalab
Wat is de cloud (in het kort…)?
De cloud is een verzamelterm voor een groot aantal sterk geïntegreerde computerdiensten die je afhuurt. Voorheen had je zelf servers in een hok op kantoor, tegenwoordig staan die servers in grote datacentra waarbij het beheer is uitbesteed. Efficiënt want eigen servers staan vaak een lange tijd niets te doen (bijvoorbeeld ‘s nachts, als je niet werkt). In de cloud speelt dat minder, want dan worden de servers gebruikt door klanten aan de andere kant van de wereld (waar het dan dag is). Bovendien kun je makkelijk capaciteit op- of afschalen en heb je zelf minder IT-ers nodig om de boel draaiend te houden.
In de cloud draaien diensten als virtuele machines (waarop Windows draait, bijvoorbeeld), databases (waar je applicatie-data in opgeslagen staat) en allerhande vormen van lijm en plakband om systemen aan elkaar te koppelen. Voor data science werken we vaak met datawarehouses (een variant van databases), data lakes (immense opslagcapaciteit voor ruwe bestanden) en software om data vanuit bronnen te ontsluiten.
Welke cloud moet je kiezen voor data science?
Als je voor de keuze staat om een cloudomgeving te kiezen, stel jezelf dan de volgende vragen:
- Biedt de cloudprovider wat je echt nodig hebt, nu en later?
- Voldoet de cloudprovider aan wettelijke eisen en aan het beleid van je organisatie (privacy, informatiebeveiliging enzovoorts)?
- Welke cloud is het meest kosteneffectief?
- En hoe zit het als je wilt switchen van cloudprovider?
Vraag 1: Biedt de cloudprovider wat je nodig hebt?
Voor data science-omgevingen heb je vaak niet veel nodig. Een plek om data op te slaan (een datawarehouse en een data lake), een manier om de brondata te ontsluiten in het datawarehouse en een manier om de data te ontsluiten. De drie grote aanbieders bieden allemaal eigen tooling om dit mogelijk te maken. Zo werkt Azure met Azure Data Lake, SQL Server en Data Factory. Google Cloud biedt Cloud Storage, Big Query en Cloud Dataflow. AWS, tenslotte, biedt Redshift, S3 en Glue. Wat dit betreft maakt het niet zoveel uit.
Echter, er zijn twee grote ‘maars’…. Allereerst: kies je voor de standaardoplossingen van deze aanbieders, dan zit je min-of-meer voor altijd eraan vast. Migreren tussen clouds kán maar is lastig, prijzig en vereist bovendien omscholing van je medewerkers. De tweede grote ‘maar’ is dat je in de meeste gevallen lastig grip hebt op de kosten. Bijvoorbeeld: voor analytische doeleinden heb je vaak veel performance nodig en daar betaal je grof voor bij Azure SQL Server. Aan de andere kant van het spectrum staat Big Query: een stuk voordeliger maar daar betaal je iedere keer als je data ophaalt en analyseert. Dat loop al snel fors in de papieren…
Naast de eerdergenoemde Grote Drie zijn er nog veel andere vaak gespecialiseerde spelers. Bijvoorbeeld Snowflake Cloud, gericht op data science. Of Intermax, een Nederlandse aanbieder speciaal voor kritische infrastructuur en zaken waarbij (data)veiligheid een grote rol spelen. Ook deze aanbieders hebben weer nadelen zoals hoge kosten (Snowflake) en gebrek aan kant-en-klare data science-oplossingen (Intermax).
Vraag 2: De Cloud en AVG: gaat dat samen?
Van de grote cloudproviders heeft Microsoft de beste papieren ten aanzien van de AVG. Microsoft garandeert dat data binnen de EU blijft, een garantie die Google Cloud (doorgaans) niet wil afgeven en wat bij Amazon een vage belofte lijkt te zijn. Is Microsoft Azure dan automatisch de betere keus? Niet per se, het is een Amerikaans bedrijf en valt dus ook onder Amerikaanse wetgeving. Geen probleem als er geen (hooggevoelige) persoonsgegevens verwerkt worden, of spionagegevoelige technische kennis.
Een functionaris gegevensbescherming of een informatiemanager zal al snel geneigd zijn om dan maar helemaal geen cloudomgeving te gebruiken en alles in een on-premises-oplossing te gieten. Dat kan verstandig zijn maar kent flink wat nadelen, waarbij een gebrek aan schaalbaarheid en het zelfstandig beheer voeren (met alle risico’s van dien) de belangrijkste zijn.
Vraag 3: Hoe zit het met de kosten?
De cloud kwam voor veel bedrijven als geschenk uit de hemel — totdat de eerste facturen binnenkwamen. Cloudproviders hebben naam duur te zijn, en dit kán ook zo zijn. Wanneer je diensten met kortlopende contracten en op ‘ouderwetse manieren’ afneemt, is dit al snel het geval.
Voor alle cloudaanbieders geldt: hoe langer je je vast legt en hoe meer je schaalbaar gebruik maakt van de afgenomen diensten, hoe goedkoper. Niettemin blijft het prijskaartje vaak fors. Wel is het belangrijk om te realiseren dat je een hoop kosten ook niet maakt: je hebt geen of minder ICT-beheerders nodig, je betaalt niet apart voor elektra (denk ook aan de koeling van de servers) en je levert ook geen kostbaar vloeroppervlakte van het kantoor in. Om van beschikbaarheid van derden voor beveiliging of incidentenondersteuning nog maar te zwijgen.
Vergelijken we de cloudaanbieders, dan lijkt Microsoft Azure aan de dure kant van het spectrum te zitten, gevolgd door Amazon AWS. Google Cloud is relatief goedkoop, mede omdat het van de drie groten de kleinste is (in Europa en al helemaal in Nederland).
Wil je onderhandelen over de kosten, dan ontkom je er haast niet aan om via een Service Provider (een intermediair die namens jou zaken inkoopt en desgewenst beheer voert) te werken. Enkel als je zeer veel omzet genereert voor de cloudprovider -meerdere tienduizenden euro’s per maand- heeft direct onderhandelen echt zin. Bedenk de volgende zaken:
- Je vastleggen voor één of twee jaar levert extreme korting op, tot wel 70% op de reguliere maandprijs. Heb je de ultieme flexibiliteit van snel afschalen echt nodig?
- Als je via een Service Provider werkt, onderhandel dan goed met die provider. De prijzen die jij op de factuur van de cloudaanbieder ziet, zélfs als die ingekocht zijn via de service provider, vertellen je niet het hele verhaal. Serviceproviders krijgen tot wel 20% kick-back op alles wat jij bij de cloud afneemt. Gebruik die kennis om met hen te onderhandelen.
Een mooi voorbeeld van hoe vervelend aanbieders van (cloud)software kunnen zijn is een leverancier van min-of-meer ‘s werelds beste databasesysteem. Het salesteam van deze organisatie weet heel goed hun product te verkopen: in het begin tegen lage licentiekosten en met veel support. Ben je echter een tijdje klant (en zit je dus vast aan het product — immers, overzetten naar een ander systeem is kostbaar), dan zul je zien dat de licentiekosten opeens veel hoger worden. Ook een manier van klantbinding, maar niet eentje waar wij bij Datalab van houden.
Vraag 4: Hoe behoud je flexibiliteit?
Kiezen voor een cloudaanbieder brengt een risico met zich mee: als je ontevreden bent, je wensen of eisen veranderen of het wetgevingskader verandert, dan is het overstappen naar een andere aanbieder lastig. Hoe voorkom je dat je vast zit? Drie tips:
- Gebruik als het even kan open standaarden. Een product als Azure Data Factory is mooi, maar is niet over te dragen naar een andere cloudaanbieder. Kies liever voor een open standaard zoals Apache Airflow. In de brede zin raden wij sterk aan om vooral basisinfrastructuur (opslag, berekencapaciteit) af te nemen en deze in te richten middels bijvoorbeeld Docker-containers.
- Overweeg een hybride strategie. Voor opslag van veel gegevens is de cloud een veilige en kosteneffectieve oplossing. Waarom niet die zaken in de cloud beleggen, maar berekencapaciteit lokaal behouden?
- Overweeg een multi-cloud-strategie. Het is prima mogelijk om Azure én Google Cloud of Amazon, of alle drie, te gebruiken.
Voor punten twee en drie geldt wel dat cloudaanbieders dit dondersgoed doorhebben en je ‘stimuleren’ (om het positief te verwoorden) om zoveel mogelijk binnen één cloudaanbieder af te nemen. Dit doen ze, bijvoorbeeld, door hoge egress costs. Dit zijn de kosten die je maakt om data ván een cloudaanbieder naar je lokale omgeving of andere cloudaanbieder te rekenen. Data ín de cloud stoppen is dan vaak wel weer gratis. Tja, een duidelijke strategische keuze aan de kant van de provider.
Samengevat: kies open standaarden en gebruik zaken die elke cloudaanbieder beschikbaar heeft, zoals virtuele machines, open source datawarehouses en gestandaardiseerde data-ontsluitingen.
Wat een gesomber. De cloud is dus eigenlijk een slechte oplossing?
Nee, dat zeker niet. Maar het vereist wel dat je van te voren goed nadenkt over waar je instapt. De keuze voor Microsoft Azure ‘omdat we nu eenmaal alles al bij Microsoft afnemen’ is niet per se fout, maar heeft wel consequenties.
Gebruik de cloud waar het goed voor is: het uitbesteden van het lastige proces van het opzetten van een basisinfrastructuur. Microsoft, Amazon en Google hebben altijd meer en betere IT-engineers dan dat je zelf kunt aantrekken. Gebruik dat en vermijdt de muizenval. Zorg ervoor dat eenmaal in de cloud niet betekent dat je jezelf vastzet.