Redactie - 26 juli 2016

Blog: uw eigen cloud

Steeds meer applicaties zijn geschikt om direct op een cloud-platform te functioneren. We spreken dan over cloud native-applicaties die voornamelijk gebaseerd zijn op open source code. Het begrip ‘open source’ ontstond in 1998 nadat Netscape had besloten de broncode van zijn browser Navigator vrij te geven. Tijdens de ‘Freeware summit’ datzelfde jaar, werd de term ‘Open Source’ gekozen als naam voor software waarvan de code openbaar is.

Open Source foundations
Cloud computing steunt sterk op open source code en heeft wat betreft next-generation applicaties het van de commerciële codeertalen gewonnen. Succesvolle open source projecten trekken zelfs durfkapitaal aan, waardoor er enorm veel ontwikkeling op dit gebied gaande is. Het wordt soms een competitie tussen start-ups en de deelnemende bedrijven die al die open source software snel in hun eigen voordeel willen gebruiken. Daarom wordt, als een open source project belangrijk lijkt te worden, al snel een foundation opgericht als neutraal platform opdat niemand de ontwikkeling kan controleren en de openheid gegarandeerd blijft.

Een voorbeeld hiervan is Docker, een bedrijf dat Linux containers ontwikkelt en daar heel succesvol mee werd. Concurrerende start-ups ontstonden en dat heeft vorig jaar geleid tot het Open Container Initiatief, om een standaard container file format en een runtime-standaard na te streven.

Hetzelfde gebeurde rond de ontwikkeling van cloud native computing. Om die ontwikkeling te ondersteunen, is vorig jaar de Native Cloud Computing Foundation opgericht. Deze organisatie wil het ontwikkelen en gebruiken van cloud native-applicaties stimuleren, dat zijn applicaties of services die uit micro-services bestaan, dynamisch kunnen worden ingezet en container-based kunnen zijn.

Continuous Innovation
De vele open source-projecten zijn er niet om simpelweg alternatieven te bouwen voor commerciële applicaties. Het is gedreven door de wens ‘continuous innovation’ mogelijk te maken. De wens – en steeds vaker noodzaak – om steeds sneller software te kunnen aanpassen, updaten of te verbeteren. Sommige cloud-toepassingen worden veertig keer per dag geüpdate. Niet in zijn geheel, maar telkens weer een andere microcode van de grote verzameling microservices waar de cloud-toepassing uit is opgebouwd. Amazon zegt zelfs dat het gemiddeld elke zeven seconden een micro-update doet van een onderliggende microservice.

Waarom doen ze dat? Om een open cloud-platform mogelijk te maken, om elk device te kunnen connecteren, om elke toepassing mogelijk te maken. Als iedereen met iedereen moest overleggen – ontwikkelaars en IT-operations – dan zou men veel te veel tijd kwijt zijn om te weten en te begrijpen hoe elk stukje open source-code met elk ander stukje open source-code kan samenwerken.

Cloud Foundry, Docker, Kubernetes (het Google container orkestratie-systeem), Mesos (container management dat Twitter, Apple en Airbnb gebruiken) en andere containerprojecten hebben ‘continuous innovation’ als onderliggend doel. De microservices moeten slim van zichzelf zijn.

Cloud native
Slechts multi-vendor projecten die een nieuw platform of een nieuwe set componenten ontwikkelen die op open wijze samen kunnen werken, hebben nog een kans van slagen om werkelijk een verandering in de wereld van cloud-services te bewerkstelligen. Cloud native-applicaties zijn bedoeld om te leven in een wereld gebaseerd op open cloud-standaarden die eenduidig en flexibel zijn. Applicaties kunnen dan op elk cloud-platform worden ontwikkeld en toegepast op welk ander cloud-platform ook.

Cloud native-applicaties zijn bedoeld als ‘prescriptive software stacks’, ontworpen voor bedrijven die te druk zijn om al die kleine services op een formele wijze samen te bouwen tot een geheel. De microservices moeten zelf zorgen dat ze in het grotere geheel – hoe dat ook is opgebouwd – kunnen (blijven) werken. Cloud native betekent het creëren van een omgeving voor gebruiker-gedreven diensten, welke zijn opgebouwd uit standaardbouwstenen, die op standaardwijze worden uitgerold met standaard operationele procedures.

Native Cloud platformen
De enorme ontwikkeling van cloud native-applicaties heeft geleid tot de behoefte aan native cloud-platformen die men op elke plaats kan neerzetten. Elke cloud is tenslotte uiteindelijk hardware die ‘ergens’ moet staan en functioneert. Sinds 2010 is Cloud Foundry een belangrijk, open source gebaseerd, cloud native-platform geworden dat applicaties ‘infrastructure unaware’ kan laten functioneren. Het vraagt slechts een elastische commodity-infrastructuur die vraaggericht is en zelfservice mogelijk maakt.

Dit soort nieuwe infrastructuren is niet meer gebaseerd op de oude architectuur van servers, switches en storage-componenten, maar op een geïntegreerde verzameling van processoren en (tegenwoordig) flashdrives die worden aangestuurd vanuit één overkoepelende softwarelaag. Worden uit server, switch en storage-componenten opgebouwde systemen ‘converged’ genoemd, de nieuwe cloud native-platformen hebben de naam ‘hyperconverged’ gekregen en zijn werkelijk commodity-hardware geworden.

Hybride Cloud-platformen
Elk cloud-platform bestaat uit een onderliggende infrastructuur die als service wordt aangevraagd en gebruikt (IaaS) met daarop een platform dat infrastructuur-onafhankelijk is en alle gereedschappen en mogelijkheden heeft om daarop data-management, analyses, berekeningen en onderzoek te doen en daarnaast services, applicaties en dashboards te bouwen (PaaS) die op elk ander cloudplatform (ook) werken. In feite nieuwe, cloud gebaseerde middleware, die de bovenliggende business-services mogelijk maken en ondersteunen.

Omdat open source hybridegebruik van infrastructuren toelaat – private clouds, enterprise clouds, public clouds – en deze nieuwe platformen geschikt zijn voor zowel tweede (conventioneel gevirtualiseerd) als derde platform (cloud native) applicaties, worden dit tegenwoordig hybride platformen genoemd.

Transformatie
Wat tien jaar geleden startte bij de grote bedrijven als Google en Amazon, die hun eigen infrastructuren gingen bouwen op basis van deze cloud- en open source-ideeën, is het nu mogelijk geworden diezelfde bouwstenen in eigen datacenters of in datacenters van service-providers toe te passen. Met hetzelfde gemak, even grote elasticiteit en tegen dezelfde prijzen als de grote public cloud-providers. De cloud-standaard is intussen overal toepasbaar. Nu moeten we aan het werk om de transformatie ernaar toe daadwerkelijk te laten gebeuren… Iedereen zijn eigen cloud!

Blog: Hans Timmerman, CTO EMC Nederland