Tag Archives: Linux

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.

Open Source Software tussen wal en schip bij Architectuur denken

Het is voor bedrijven noodzakelijk om de snelle veranderingen in onze maatschappij te volgen. Consequentie  hiervan is dat zij hun ICT voorzieningen snel aan moeten kunnen passen zonder daarmee consessies te doen aan de beschikbaarheid en veiligheid van systemen en gegevens. Om dit te bereiken worden er afspraken gemaakt over waaraan dergelijke veranderingen moeten voldoen of onder welke condities deze uitgevoerd mogen worden. Deze afspraken, of wel principes, worden architectuur genoemd. Het architectuur denken is heel gebruikelijk bij grote bedrijven en organisaties omdat niemand alleen in staat is deze complexiteit te overzien. De interne IT organisatie, externe leveranciers en dienstverleners hebben zich allen te conformeren aan deze (enterprise) architectuur, het zogenaamde: werken onder architectuur.

Architectuur als middel
Voor wat betreft de (infrastructurele) architectuur kunnen dit afspraken zijn over, gegevens, informatie beveiliging, applicaties, interfaces en de infrastructuur zelf. Zo kunnen bijvoorbeeld het aantal operating systemen of databases beperkt worden. Met dergelijke beperkingen wordt de infrastructuur beter te overzien en de organisatie is daardoor beter in staat het beheer uit te voeren. Ook consequenties van wijzigingen zijn zo beter te overzien. Architectuur is daarmee geen doel op zich, maar heeft tot doel een consistente en veilige ICT te realiseren waarop efficiënt wijzigingen doorgevoerd kunnen worden. De architectuur ontwikkelt zich ook in de tijd en zal kan niet statisch zijn. Enterprise architecten zijn verantwoordelijk voor het naleven van de bestaande architectuur en het ontwikkelen daarvan.

Enterprise architecten
Veel enterprise architecten zijn echter onbekend met Open Source Software en de (detail) mogelijkheden die dit biedt voor de architectuur. Als Linux al een platform binnen de architectuur is (en dat komt steeds vaker voor) dan is het een uitzondering op verschillende vlakken. De meeste organisaties hebben bijvoorbeeld centraal gebruiker beheer ingericht op basis van Microsoft Active Directory. Linux servers worden veelal niet gekoppeld (maar kunnen dat overigens wel). Linux gebruikers worden of lokaal aangelegd, of er wordt een LDAP gebaseerde structuur naast Microsoft Active Directory gebouwd. Deze Linux systemen worden dan meestal gebruikt voor web sites of content management systemen zodat er geen noodzaak is voor eindgebruikers daarop in te loggen. Het wordt als platform toegestaan, maar het is wel een uitzondering. Je zou kunnen stellen dat het geïsoleerd ingezet wordt.

Gemiste kansen
Naar mijn idee past Open Source Software juist heel goed binnen het architectuur denken. Er zijn talloze tools die het naleven van afspraken juist veel makkelijker maken. Er zijn tools waarmee het management van Linux systemen gestandaardiseerd en geautomatiseerd kunnen worden zoals bijvoorbeeld, Red Hat Satelite voor deployment en Puppet voor management. Standaard biedt Linux talloze bouwblokken om systemen te hardenen zoals bijvoorbeeld Secure Shell (SSH) dat encrypted toegang tot systemen kan geven, of Secure Copy (SCP) waarmee bestanden encryped tussen Linux systemen gekopieerd kunnen worden. SSH en SCP kunnen eenvoudig verder beveiligd worden door root acces te weigeren en gebruikers alleen met een RSA of DSA key te laten inloggen. Beiden maken standaard deel uit van ieder Linux installatie. Verder kunnen middels het SUDO mechanisme (sudoers file) root rechten aan users gegeven worden op specifieke commando’s. Wanneer men echt hecht aan sucurity (en dat doen enterprise architecten) dan mogen zeker Security Enhanced Linux (SELinux) en AppArmour niet vergeten worden. Op basis hiervan kunnen de rechten van processen op systemen verder beperkt worden. Als laatste zou ik de CIS Benchmark voor Red Hat systemen willen noemen. Dit is een uitgebreide beschrijving van (mogelijk) te nemen maatregelen die een Red Hat Linux systeem veiliger maken. Van iedere maatregel is beschreven hoe deze geïmplementeerd moet worden, waarom het systeem veiliger wordt en bovenal hoe het gecontroleerd (audit) kan worden.

Een veiliger infrastructuur
De beschreven mogelijkheden zijn maar een greep uit de mogelijkheden die Open Source Software biedt om een IT omgeving veilig en beheersbaar te houden. Bedrijven die al bekend zijn met Linux en Open Source Software kennen deze mogelijkheden ongetwijfeld. Ik zou daarom graag een pleidooi willen houden voor Linux en Open Source Software bij enterprise architecten. Verdiep U in de mogelijkheden en probeer ze toe te (laten) passen. Maak ze in al haar mogelijkheden onderdeel van de (enterprise) architectuur. De organisatie waarvoor u werkt zal u dankbaar zijn.

Dit artikel is ook gepubliceerd op de Computable site op d.d. 29 november 2013

Organiseren, “The Open Source Way”

Op 14 juni 2012 gaf Linus Torvalds een presentatie aan het Aalto University Center for Entrepreneurship. Deze bijeenkomst is gefilmd en op Youtube te vinden. Hij vertel hier hoe hij ooit gestart is met Linux en tot welk een fenomeen het inmiddels is uitgegroeid. Het meest interessant vond ik zelf zijn opmerkingen over hoe hij het (Linux) project managed en hoe het georganiseerd is. Naar mijn stellige overtuiging kunnen we hier wel wat van leren.

“How hard can it be?”

Linus heeft van jongs af aan altijd zijn eigen software (tools) geschreven. Dit is zijn passie. Het kon op verschillende manier gemotiveerd zijn, of de hardware was niet ge-support of hij had niet voldoende geld om de juiste software te kopen. Telkens was het resultaat hetzelfde, hij maakte zijn eigen software. Tegen de tijd dat Linus aan de Universiteit van Helsinki studeerde was dit voor hem een tweede natuur geworden. Toen hij hier in aanraking met UNIX kwam en dit veel te duur bleek, besloot hij zijn eigen UNIX te schrijven.

Linus Torvalds, the founder of Linux operating system.

Zoals hij zelf zegt, “How hard can it be?”.

Snel bleek dat dat naast enthousiaste gebruikers er ook commerciële mogelijkheden werden gezien. Byte Magazine bundelde voor een klein bedrag Linux (op floppy’s). Linus had bereikt wat hij wilde, UNIX was zeer laagdrempelig beschikbaar. De commerciële activiteiten van anderen stelde Linus in de gelegenheid zich te beperken tot datgene dat hij graag wilde, programmeren.

Volgens Linus is dit precies wat het ontwikkelen van Open Source software zo aantrekkelijk maakt. Iedereen heeft andere belangen en heeft zijn eigen interesses. Het Linux Open Source project geeft hiervoor ruimte en iedereen kan precies doen waarin hij goed is. Zo is Linus zelf  geïnteresseerd in het optimaliseren van specifieke onderdelen in Linux (aansturing van hardware). De algemene opvatting in de IT industrie is echter dat je geen micro optimalisatie moet doen. Maar als dat nou precies is wat je leuk vind? Het resultaat is dat er buitengewoon goed geoptimaliseerde code in de Linux kernel te vinden is. Alle gebruikers profiteren daarvan.

De waarde van commercie

Linus is van mening dat alle commerciële activiteiten van anderen (bedrijven o.a.) hem in staat stellen zich te concentreren op het programmeerwerk dat hij leuk vindt. Bovendien is Linux daardoor een veel beter gebalanceerd product geworden. Q&A en user interfaces programmeren vindt Linus niet het leukste werk. En nu doen ander mensen (bedrijven) dat, geweldig!

Inmiddels richt Linus zich steeds meer op het managen van het proces rond de ontwikkeling van de Linux kernel. De organisatie hiervan functioneert als een piramide. Linus heeft een klein groepje vertrouwelingen van wie hij code accepteert. Zijn vertrouwelingen richten zich op een (sub-onder) deel van de kernel en organiseren dat precies op dezelfde wijze. Kern van deze organisatie is dat het is gebaseerd op wederzijds vertrouwen en dat kan alleen met een beperkte groep mensen. Deze manier van organiseren is zo ontstaan en blijkt juist te zijn. Er is verder geen (ander) management, logistiek of planning voor nodig.

Software development is geen gepland proces, maar gebaseerd op toeval. Zo is er enkele jaren geleden veel werk verricht om multi core systemen goed en efficient te laten functioneren. Destijds was daar behoefte aan omdat dit een belangrijk was bij grote main frame systemen. Inmiddels jaren verder, profiteren we daar van met onze smart phones die nu ook multi cores hebben. Dit was vooraf niet te plannen of te bedenken geweest.

“Nvidea, Fuck You!”

Nvidea_fuck_youOok op een ander punt doorbreekt Linus gevestigde opvattingen. Linus staat niet bekend om zijn beleefde en voorzichtige uitlatingen. Hij is van mening dat beleefd zijn niet helpt. De kans op miscommunicatie is veel te groot. Daarom is Linus direct en recht door zee ook wanneer hij mensen daarmee beledigd (zie bijvoorbeeld “Nvidea, fuck you!” op 50.02 minuten in de video).

De bovenstaande zaken laten me achter met de vraag of we deze lessen / methode van werken ook op andere gebieden kunnen toepassen. Eén succesvol project is nog geen bewijs dat het principe universeel toepasbaar is. Toch heb ik sterk het gevoel dat hier iets waardevols is ontdekt.

Voor iedereen die de video zelf wil bekijken, onderstaand is de link te vinden.