Standaarden zijn vaak de-facto standaarden die worden opgelegd door grote leveranciers. Ontkomen we hieraan in de cloud? En om het nog ingewikkelder te maken: in de hybride cloud? Daar hebben we immers te maken met twee afleverniveau's. Maar waar moeten die standaarden precies over gaan? Op welk niveau leggen die zaken vast? Kunnen we eigenlijk wel tot standaarden komen als elke gsm een andere oplader heeft?
Als er één term is binnen cloud computing die vragen oproept, dan is het wel de ‘hybride cloud’. Daarom niets dan lof voor datacenterdienstenleverancier Equinix en it-vaktitel Computable; samen gaan ze deze week via Twitter vragen over dit fenomeen verzamelen en beantwoorden.
Het zal ook niet verbazen dat een van de eerste reacties die binnenkomt op de oproep gaat over standaarden. Volgens Reza Sarshar, projectleider bij Ictivity, ontbreken er op dit moment standaarden voor het uitwisselen van data tussen oplossingen. Ook zit er nogal wat verschil tussen authenticaties en beveiliging van verschillende cloud providers.
Sarshar heeft wel een punt; de aanwezigheid van een standaard zou nu eenmaal enorm helpen om deze relatief nieuwe (hybride) technologie breed te omarmen. Maar een discussie over standaarden kun je in mijn ogen pas voeren als we weten over welk niveau van uitwisselen we het eigenlijk hebben.
Problemen tussen Word-gebruikers
Het probleem met standaarden is dat die vaak pas worden omarmd als ze door één (dominante) leverancier worden afgedwongen. Denk aan Microsoft, dat een standaard zette in onder meer tekstverwerking- en spreadsheet-programma’s. Het probleem daarvan is dat gebruikers ook volledig afhankelijk zijn van de grillen van deze leverancier. Als deze besluit om het bestandsformaat te wijzigen van .doc naar .docx, dan moet je daar als gebruiker wel aan meedoen. Ook al leverde dat best wel wat problemen op, zelfs tussen Word-gebruikers onderling.
Als we het over de hybride cloud hebben, zijn standaarden met name handig als je vanuit de cloud naar een andere cloud of weer naar on-premises gegevens wilt uitwisselen maar ook als je de plaats waar je applicatie draait, wil wijzigen. Je verwacht dat je in ieder geval binnen dezelfde applicatie gewoon je data over kunt zetten, maar dat blijkt in de praktijk wel wat lastiger. Sommige applicaties hanteren nu eenmaal andere standaarden binnen de cloud dan in de on-premises variant van het pakket. Of het blijkt dat je data niet zo eenvoudig uit de gedeelde database te halen is als je had verwacht.
Vendor lock-in
En als we al hebben bepaald wat de standaard voor gegevensuitwisseling gaat worden, dan dient het volgende probleem zich aan: een standaard moet ook nog onderhouden, bewaakt en uitgedragen worden. Soms lukt dit: TCP/IP is een bijvoorbeeld een wereldwijd gedragen standaard. Maar wat ook vaak voorkomt is dat een standaard leidt tot vendor lock-in, zoals het geval is bij iOS. Ook interessant: hoe gaan we om met het beëindigen van een standaard? Daar heeft niemand het over…
Kortom: het kiezen en onderhouden van een standaard is misschien wel een van de grootste uitdagingen in onze sector. Dat geldt zeker voor een technologie die zo complex is als hybride computing. Het is moeilijk te voorspellen wat de standaard gaat worden, maar het is erg waarschijnlijk dat we uiteindelijk door een van de grootste aanbieders gedwongen worden hun proprietary standaard te volgen, gewoon omdat die het meeste wordt gebruikt.
PaaS
Het zou echter ook zomaar eens kunnen zijn dat we bij de keuze voor standaarden ingehaald worden door de platformdiensten (Platform as a Service: PaaS) die langzaam maar gestaag groeien. Binnen zo’n platform is de discussie over een standaard niet relevant, omdat die gewoon wordt afgedwongen door de PaaS-leverancier (zoals Fore.com, Azure, Amazon en Google). De standaard discussie gaat dan over het uitwisselen van gegevens tussen deze platformen en zal tussen de ‘grote jongens’ worden uitgevochten.
Daarbij zal het marktaandeel waarschijnlijk (zoals altijd) doorslaggevend zijn voor de keuze van de standaard.
Deze bijdrage verscheen eerder op het weblog van Unit4.
Aart,
Als je gaat denken in merken en leveranciers wordt het vinden van standaarden erg moeilijk. Wie echter zijn ontwerp generaliseert krijgt veel meer keuzevrijheid. Het is om deze reden dat we bijvoorbeeld een OSI model hebben zodat niet iedereen zijn eigen protocollen hoeft te bedenken. Op onderste lagen is de integratie dan ook meestal niet zo heel moeilijk, de problemen beginnen pas als je dichter bij de gebruiker komt. Een server of service maakt tenslotte een heel verschil omdat eerste vooral techniek en laatste meer politiek is.
Een hybride oplossing met PaaS lijkt me dus niet zo’n groot probleem zolang je ervoor zorgt dat je applicaties zoveel mogelijk OS angnostic zijn. Maar wat de boer niet kent dat lust hij niet en dus wordt gekozen voor de bekende standaard, niet zelden opgelegd vanuit architectuur principes. En Microsoft SQL of .NET zijn dus niet OS agnostic waardoor keuzevrijheid al direct bij aanvang beperkt is terwijl er vaak meer op licenties is te bezuinigen dan het ijzer.
Data uit een gedeelde database halen is meestal niet moeilijk als je weet hoe het schema in elkaar zit, met een beetje reversed engineering kun je deze dan ook direct normaliseren. En wanneer dit echt onmogelijk is dan hoef je ook niet te zoeken naar een hybride cloud oplossing want die is er niet. Je wordt op dat moment dus gewoon gegijzeld door je data, ook in de cloud nog altijd de beste vendor-lock. Migreren van Amazon naar Azure, Google of vice versa is dan niet onmogelijk maar wordt wel heel duur.
Wat is hybride cloud? In mijn ogen een koppeling tussen on-premises of eigen data center naar een cloud provider. De koppeling bestaat bijvoorbeeld uit een site-to-site vpn-verbinding of andere logische verbindingen die ervoor zorgen dat resources in de cloud direct gekoppeld zijn aan resources on-premises.
Bijvoorbeeld: Een client server applicaties die draait on premises, maar direct de database benaderd die in de cloud gehost wordt. Zonder hybride koppeling zou je dit doen met webservices en dan noem je dus niet Hybride cloud (daar heeft het dus niets mee te maken), met hybride cloud betekend het dat je de verbinding naar de database exact op dezelfde manier legt als dat je het zou doen als de database ook on-premises staat. Volg je me nog?
Het probleem met hybride is de latency en bandbreedte. Maar ja, daar zijn wel standaarden voor, aangenomen dat vpn’s behoorlijk standaard zijn. Maar ook de uitwisselings protocollen en methode zijn ook standaard.
Dus in Hybride cloud computing zijn in mijn ogen juist wel veel standaarden. SOAP/REST/JSON/TCP/IP/XML/IPSEC/SSH/SSL. Die ook nog eens cross platform te gebruiken zijn.
Uiteraard zijn er standaarden op allerlei lagen. Als je kijkt naar databases, dan is elke database weer anders ontworpen.
Als alles standaard zou zijn zou het heel moeilijk worden om te onderscheiden en om te innoveren.
Kortom, ik zie het probleem niet.
Henri,
Uitwisseling van data kan ook op andere manieren, webservices zijn leuk voor de bovenkant. Aan de onderkant komen nu nieuwe services die luisteren naar namen als: MaaS, DRaaS en BRaas en bijna allemaal gebaseerd op (low-level) storage protocollen. De cloud taxonomie veranderd dus nog steeds en biedt hierdoor steeds meer hybride oplossingen.
Eerder schreef ik hier trouwens al wat over: https://www.computable.nl/artikel/opinie/infrastructuur/4527400/2379248/cloud-computing-op-maat-gemaakt.html en ik denk dat de daarin genoemde 3-assen nog steeds geldig zijn.