Tag Archives: Docker

Cloud computing leugen

IT dienstverleners zijn het er wel over eens. Cloud computing heeft de toekomst. En die toekomst is inmiddels gearriveerd.  Veel consumenten en bedrijven gebruiken al producten “Uit de Cloud”. Ook overwegen ze bestaande IT diensten naar een Cloud omgeving te migreren. Hierbij spelen nog wel issues als “Safe Harbor“, maar uiteindelijk lijken ook deze bezwaren overkomelijk. Cloud computing belooft dat we “los” komen van de infrastructuur. Dat we ons eindelijk kunnen richten op de kern van de (IT) zaak, namelijk functionaliteit. Tegelijkertijd is het risico dat we verder in infrastructuur verzeilen. De Cloud computing leugen.

Cloud computing

Big change

Cloud computing brengt ons vele voordelen. Natuurlijk begrijpen we dat we voor daadwerkelijk gebruik betalen (van Capex naar Opex), dat capaciteit schaalbaar is (scale out en scale in) en dat deployment en management van servers geautomatiseerd is (Puppet of Ansible). Echter achter al deze details gaat de werkelijke verandering schuil. We besteden minder energie aan de infrastructuur. Infrastructuur wordt een gegeven. Het is er en het doet het. Geen disks wisselen, systemen in racks schroeven en netwerkkabels aansluiten. Geen gedoe met ijzer, dat regelt de Cloud provider. Eindelijk kunnen we ons richten op  functionaliteit. Dat is namelijk waar bedrijven en consumenten het voor doen. Niemand draait een operating systeem “just for the fun of it”.

Containers en microservices

Als de nadruk op functionaliteit komt te liggen en de steeds sneller ontwikkelen noodzaak is, dan ligt het voor de hand steeds kleinere stukjes functionaliteit te maken. Dit verklaart de populariteit van de microservices. Maar als gevolg hiervan wordt de overhead van het (gevirtualiseerde) operating systeem relatief wel steeds groter. Container technologie zoals Docker verlaagt deze overhead weer. De onderliggende hardware wordt zo beter benut. Amazon gaat nog een stap verder met de AWS Lambda Model (hier mee lijkt het overigens op Red Hat’s Open Shift). De applicatie draait met nog minder overhead op het onderliggende cloud platform.

DevOps en agile

Het is dan ook niet verwonderlijk dat deze technologische ontwikkelingen een andere manier van werken vereisen. Met het verdwijnen van de infrastructuur en het bijbehorende beheer, komt de DevOps discussie in een ander licht te staan. Het wordt noodzakelijk (maar nu ook  mogelijk) om agile te gaan werken. Microservices worden sneller ontwikkeld en traditionele constructies zoals OTAP verlaten. Spotify bijvoorbeeld, doet software ontwikkeling in tribes. Het een kan niet zonder het ander lijkt wel.

Cloud computing leugen

Sneller software ontwikkelen en minder “last” van de infrastructuur zijn goed nieuws voor bedrijven en organisaties. Kortere doorlooptijden en er efficiënter werken het gevolg. We kunnen ontwikkelen tegen lagere kosten en klanten worden slagvaardiger. Ook betekent het dat IT bedrijven zich eindelijk bezig kunnen houden met alles op, of boven, de infrastructuur. Tenzij je natuurlijk deel wil uitmaken van een steeds kleinere groep infrastructuur specialisten. En dit is de Cloud computing leugen. Veel IT bedrijven die nu bezig zijn met Cloud, zijn eigenlijk bezig met infrastructuur. Is dat nog wel zo interessant?

Linux revolutie onderweg

Al jaren wacht ik op de Linux (en open source) revolutie in de IT markt. Linux op desktops, Linux op servers en Linux op telefoons. De wereld zou overspoeld worden en Linux zou overal te vinden zijn. Hoe kunnen bedrijven met hun commerciële software hiermee concurreren? 

Microsoft_loves_Linux

Geen revolutie

Niets was echter minder waar. Linux op de desktop zette niet door. Niet dat het ontbrak aan goede Linux desktop distributies en ook niet aan goede software. Bovendien steeds meer applicaties werden web-based. Een Linux desktop was een prima alternatief. Eindgebruikers stoorden zich toch aan kleine visuele verschillen en bleven Microsoft Windows trouw. Vreemd genoeg waren het vaak juist deze eindgebruikers die het geen probleem vonden over te stappen maar OS X.

Toch een revolutie

Hoewel het minder zichtbaar was, kwam Linux toch in elk bedrijf en in elke huiskamer binnen. Routers, firewalls, NAS en andere appliances werden steeds vaker voorzien van Linux. Dit is begrijpelijk, Linux kost niets en is eindeloos aanpasbaar. Ook kwam er goedkope PC hardware (Raspberry pi) op de markt en daarop draaide natuurlijk Linux. Ineens gingen naar mijn idee mensen om me heen zonder enige Linux geschiedenis daar gewoon mee experimenteren. De drempel is blijkbaar toch laag.

Microservices en Cloud computing

De invloed van web gebaseerde technieken op de IT ontwikkelingen deed zich gelden. Het werd steeds interessanter geen grote applicaties te bouwen, maar kleine stukjes functionaliteit, zogenaamde microservices. Deze microservices maken het mogelijk dat development sneller kan plaats vinden en met minder risico’s en impact op eindgebruikers. Ook de bijbehorende development methoden werden geadapteerd, zoals continuously delivery, agile en scrum. Tegelijkertijd raakten bedrijven overtuigt van het nut van virtualisatie van infrastructuur (getuige het grote succes van VMware). De stap van virtualisatie naar Cloud Computing is daarom geen al te grote technische stap. De open source community volgde rap met bijvoorbeeld OpenStack.

Datacenter automation

Hoewel Cloud Computing technisch geen al te grote stap betekende, mist het zijn effect op de IT niet. Alles binnen een Cloud omgeving laat zich scripten en daarmee automatiseren. Of het nu gaat om de deployment van virtuele servers, de configuratie daarvan of het schalen van capaciteit (scale in en scale out). Dit wordt wel aangeduid met datacenter automation. Het verklaart de populariteit van tools als Puppet en Ansible. Het laat zich raden dat die zich goed laten combineren met het idee van de microservices. Men spreekt hier wel over de verandering van “server as pets” naar “servers as cattle”.

Alle ingrediënten samen

De principes van “scale out” en “scale in” en de microservices samen stelden steeds minder eisen aan de features van het operating systeem. Een OS wordt steeds eenzijdiger ingezet. Linux leent zich hier wederom erg goed voor. Het lijkt eerder een doos met Lego blokjes waaruit je zelf iets kan maken, dan een kant en klaar product. Het is naar mijn idee hier dat Linux revolutionair zal blijken. Naast dat bijna alle cloud infrastructuren op Linux gebouwd worden (zoals bijvoorbeeld Amazon, maar ook OpenStack) is de keuze voor Linux als OS binnen de Cloud ook logisch. Voordelen zijn bijvoorbeeld: lage kosten, geen licentie problematiek en de aanpasbaarheid.

Nog eenvoudiger

Het toepassen van microservices in Cloud infrastructuur verlangt verdere afslanking. De overhead van een virtuele server is nog steeds te groot. Hier biedt het gebruik van container technologie, zoals Docker uitkomst , zeker in combinatie met datacenter automation. Het OS hoefde nog minder features – en dus complexiteit – te hebben. Ook het update mechanisme kon vereenvoudigd worden. De grote Linux distributeurs kwamen met “uitgeklede” versies van hun OS met aangepast update mechanisme (zoals Ubuntu Snappy Core en Red Hat’s Atomic).

d.d. 7 december 2015
Aanvulling, Vandaag kwam ik dit artikel tegen over unikernels. Dit sluit precies aan bij de zoektocht naar kleinere OS-en, een kernel die slechts een applicatie draait.

Features

Kon commerciële software voorheen met Linux concurreren op basis van features, dan zie ik de grond daarvoor nog verder verdwijnen. De aanpasbaarheid en kwaliteit maken Linux tot een onweerstaanbare keuze voor bedrijven – nog los van kostenvoordelen. De schaalbaarheid en automatisering daarvan schreeuwt om open source software. Linux “loves Cloud Computing”. Deze revolutie is in alle hevigheid los gebarsten.

Docker, Dev-Ops bijna opgelost..

Nu grote- en middel grote organisaties de inzet van Linux en Open Source software niet vreemd meer vinden, maken zij zich op voor de volgende stap. De een noemt het “State config”, de ander noemt het “Datacenter automation”. Ongeacht de naam die het krijgt, verandering zit in de lucht.

Virtualisatie

De eerste grote slag vond plaats toen virtualisatie gemeengoed werd. Het maakte mogelijk dat hardware beter benut kon worden en onderhoud op de hardware uitgevoerd kon worden zonder down time van applicaties. Feitelijk werden server-installaties los gekoppeld van de hardware. In  sommige organisaties ontstond er zelfs een nieuwe groep van beheerders, zij die zich exclusief bezig hielden met deze virtualisatie. Nadeel van virtualisatie was wel dat nieuwe (virtuele) servers te makkelijk uitgerold konden worden. Dit leide veelal tot ongecontroleerde groei van servers. Immers, het aanvraag proces van nieuwe servers en de aanschaf van hardware waren ook ontkoppeld.

Puppet

Virtualisatie van servers vraagt om software en tooling waarmee dit beheerd kan worden. De servers zijn niet meer zichtbaar en het worden er wel heel veel. Het walhalla is hierbij natuurlijk dat servers volledig middels templates beschreven zijn en op commando geautomatiseerd gedeployed kunnen worden. Puppet is bij uitstek software die dit mogelijk maakt. Veel organisaties op dit moment zijn nu wakker voor deze ontwikkeling en het verklaart de populariteit van Puppet. Overigens zijn er veel meer initiatieven (software producten) die dit kunnen, te denken valt aan Ansible, Chef, MAAS, JuJu, Landscape e.t.c. Interessant is dat deze ontwikkelingen veelal vanuit de Open Source hoek lijken te komen. Duidelijk wordt dat traditioneel systeembeheer een veel grotere programmeer-component krijgt.

Cloud Computing

Als virtualisatie gecombineerd wordt met datacenter automation, dan komen we in het gebied van Cloud Computing. Hierbij gaat de ontkoppeling van de hardware nog een stap verder. De kosten worden volledig operationeel (opex – Operational Expenditures) en de capaciteit volledig elastisch. Bij de cloud aanbieders zijn het de grote IT bedrijven die de toon zetten. Met name Amazon met haar EC2 cloud mag genoemd worden. De EC2 cloud is voor velen nog steeds het lichtende voorbeeld van hoe een cloud zou moeten functioneren. Bij de aanbieders van cloud software wordt het peloton aangevoerd door Open Stack een project waaraan alle belangrijke software vendors inmiddels aan meewerken. Het is mogelijk een “Kip ei” vraagstuk of Cloud Computing of datacenter automation eerder was. Het zijn in ieder geval technieken die hand in hand gaan. Red Hat heeft dit zien aankomen en heeft Puppet in haar Red Hat Satelite product geïntegreerd en maakt met Cloud Forms mogelijk om orkestratie over verschillende Cloud- en virtualisatie platforms uit te voeren.

Docker

En op het moment dat de IT markt denkt de ontwikkelingen begrepen te hebben, komt er een game changer langs. Docker is een combinatie van container virtualisatie en applicatie virtualisatie. Dit verandert vreemd genoeg veel. De lichtere vorm van virtualisatie maakt dat er minder overhead is en er dus efficiënter gebruik van de hardware kan worden gemaakt. Het is niet strijdig met Cloud Computing, maar, bouwt daar juist op voort. De echte grote verandering is daarom niet technisch van aard, maar organisatorisch. Doordat ontwikkelaars de Docker pakketten maken wordt het traditionele systeembeheer gepasseerd.  Het traditionele IT afdelingen hebben de “Boot gemist”, de business heeft ze nauwelijks meer nodig. Na jarenlang barrières op te hebben geworpen, heeft de business zich nu onafhankelijk gemaakt van de IT afdeling. De aansluiting met de business is hierdoor eenvoudiger – een vraagstuk dat de IT al jaren teistert. Het is wel de vraag wat de IT beheer afdeling nu gaat doen. Resteert het hen de hardware te beheren en te onderhouden?

Nieuwe kansen

Er zijn ook wel weer kansen. De ontwikkelaars zijn nu “In charge” en daarmee ook van security – en daar zijn ze traditioneel niet erg goed in. Het is zaak om het traditioneel IT beheer te herzien en  aan te sluiten bij development afdelingen en te participeren in security vraagstukken – mits je niet alleen kapotte harddisks wil wisselen.