maandag 27 juni 2016

Kubernetes: Geautomatiseerde container implementatie, opschaling en management

In de posts 'Betekent containerisatie het einde van virtuele machines?' en 'Zakelijke mogelijkheden met containerisatie' heb ik de voordelen van de technologie containerisatie besproken. Het ontkoppelen van applicaties van de infrastructuur creëert nieuwe mogelijkheden. Wil je profiteren van de complete voordelen van containerisatie? Kubernetes geeft je de kans.
Het Kubernetes project is gestart door Google in 2014. Het is een 100 procent open-source systeem. De naam Kubernetes stamt af van het Grieks en betekent 'helmsman' of 'piloot', wat aanduidt dat dit systeem als een bewindvoerder fungeert.

Platform en infrastructuur

Robuuste automatisering is belangrijk als je op grote schaal bezig bent. Kubernetes is daarom op z'n minst een platform for het automatiseren van implementatie, opschalen en management. Het maakt het mogelijk om containers in te plannen, draaien en beheren op virtuele en fysieke machines. Het is o.a. ontworpen om te dienen als een platform voor het bouwen van een ecosysteem van componenten en tools. Zo voldoet het aan een aantal algemene behoeften van applicaties in lopende productie.
Echter, Kubernetes is ook een infrastructuur voor containers, met een hoop functionaliteit. Het maakt het mogelijk voor ontwikkelaars om de 'draad' tussen applicaties en virtuele en fysieke machines door te knippen, waardoor er van een 'host-centric' infrastructuur naar een 'container-centric' infrastructuur wordt gegaan (en met een enkele applicatie per container staat het managen van containers gelijk aan het managen van de implementatie van de applicatie). Dit verschaft je de volledige voordelen van containers. Kubernetes biedt je dus zowel de eenvoud van PAAS als de flexibiliteit van IAAS.

Cloud applicaties draaien wordt eenvoudiger

Het doel van Kubernetes is het bevorderen van een ecosysteem van componenten en tools die de lasten van het draaien van applicaties in public en private clouds verlichten. Het zorgt ervoor dat je snel en efficiënt kan voorzien in de behoeften van de klant doordat je applicaties snel en voorspelbaar kan implementeren en ze  'on-the-fly' kunt schalen, naadloos nieuwe features kunt uitrollen, en het hardware gebruik kunt optimaliseren door alleen de middelen te gebruiken die je echt nodig hebt.
Volgende week meer over de features.

maandag 20 juni 2016

Het outsourcen van IT infrastructuur inclusief management.

Vorige week heb ik het gehad over turnkey outsourcing. Wat voor soort functies in een organisatie komen daarvoor in aanmerking? Hier een voorbeeld van hoe dit concept benut kan worden.

Case voor outsourcen van IT infrastructuur inclusief management

Stel je ontwikkelt applicaties en biedt deze als een dienst aan via je eigen cloud platform, zodat de klant gebruik kan maken van de apps zonder de bijbehorende infrastructuur te hoeven aanschaffen. In dit geval ligt de kracht van het bedrijf in het ontwikkelen van goede apps voor de gebruikers en deze gemakkelijk beschikbaar maken. Je richt je op een specifieke groep klanten en je weet alle ins en outs van hun branche. Daardoor kan je apps ontwikkelen die precies aansluiten op hun behoeften en deze aanbieden via een gebruiksvriendelijke interface. 
Wat hier belangrijk is, is dat de IT infrastructuur robuust en flexibel genoeg is om de apps als kwalitatieve dienst te kunnen bieden en om uit te kunnen breiden als het klantenbestand groeit. Hoe ga je dit bewerkstelligen?

Turnkey infrastructuur aanschaffen

Je kunt hiervoor een aantal IT-ers aannemen, die een ontwerp maken voor de infrastructuur, systemen inkopen en implementeren, en het platform managen. Hiervoor moet je budget reserveren, weten welke IT-ers voldoende gekwalificeerd zijn om de plannen van het bedrijf te ondersteunen, en het proces managen. Dit kost veel tijd en geld, doet af aan de focus van het bedrijf (want het is niet je core business), en levert hoogstwaarschijnlijk niet de kwaliteit op die je zou krijgen als je het aan een bedrijf overliet die hierin gespecialiseerd is.
Voor de aanschaf van de IT infrastructuur kun je ook een externe partij inhuren. Zij kunnen je adviseren over welke technologie geschikt is en op welke manier deze ingezet dient te worden. Als je voor een partij kiest die ook echt turnkey systemen levert, dan behoeft het outsourcing proces nog minder management. Naast duidelijk aangeven welke zakelijke doelen je hebt, is het verder namelijk zo goed als een kwestie van de apparatuur ontvangen en op de 'aan'-knop drukken.

IT management outsourcen

Maar ook al kies je voor turnkey IT systemen, het management ervan (zoals monitoring en reparaties doen) moet natuurlijk ook nog gebeuren. Ook hier geldt weer dat je er mensen voor in dienst kunt hebben die deze taak op zich nemen. Nou is het in bepaalde gevallen mogelijk dat je training krijgt van de IT leverancier om het platform te kunnen managen. Maar wie kan het management nou beter doen dan een expert op het gebied van jouw systemen?
Het is ook een optie om een consultant in te huren die inderdaad voldoende expertise en de benodigde middelen heeft om jouw systemen goed te managen, maar dan blijf je nog steeds met een probleem zitten. Om je klanten tevreden te houden moet je voorbereid zijn om IT problemen te allen tijde tijdig en correct op te lossen, onafhankelijk van de tijdzone. Je moet continu up and running zijn, want downtime kost je je reputatie en levert je mogelijk gigantische schadeclaims op. Dit kan een enkel persoon of een klein team binnen je bedrijf niet voor elkaar krijgen. 
Wat een interessante optie is, is het uitbesteden van IT management aan een partij die hierop ingericht is. Zij zullen niet alleen de benodigde expertise en middelen in huis hebben om het management goed uit te voeren, maar zullen ook zorgen dat ze 24 uur per dag, zeven dagen per week, 365 dagen per jaar beschikbaar zijn, in de meeste gevallen op afstand omdat dat voldoende is. Geen last van ziektedagen en vakanties, geen interrupties.
Met name voor een wat kleiner bedrijf die beperkte middelen heeft (zoals management tools, experts en budgetten) kan outsourcing op deze manier een strategisch slimme zet zijn. Je kunt de kennis en ervaring van externe specialisten benutten om jouw plannen te ondersteunen, terwijl je eigen team focust op hetgeen waarmee jullie het verschil maken. Ieder zijn kracht, ieder zijn taak.

maandag 13 juni 2016

Van partial outsourcing naar turnkey outsourcing?

Sarah, een 18 jaar oud meisje die net haar rijbewijs heeft gehaald, kan een super de luxe auto rijden. Ook al heeft ze nauwelijks verstand van auto's (behalve het besturen ervan), ze kan toch profiteren van hoge kwaliteit onderdelen. Het ontwerpen en in elkaar zetten laat ze aan anderen over. Het enige waar zij voor moet zorgen is dat haar doelen worden bereikt. Haar hoofddoel is om zich van A naar B te verplaatsen in comfortabele omstandigheden, terwijl haar subdoel is om zich creatief te uiten. Haar taak is dus dat ze aangeeft dat ze behoefte heeft aan een goede muziekinstallatie, airco en een roze lak die past bij haar stijl. Kent ze het woord airco niet? Geen probleem, ze kan gewoon zeggen dat ze de temperatuur wilt kunnen regelen. Zonder kennis van complexe techniek en voor haar onbekende terminologie kan ze toch haar doelen bereiken. Ze hoeft namelijk alleen maar de sleutel in het slot te steken.

Turnkey outsourcing in IT mogelijk steeds interessanter

Auto's zoals in bovenstaand voorbeeld zijn turnkey producten, omdat ze vooraf gebouwd zijn en als compleet product worden verkocht. Als klant hoef je er alleen maar een uit te kiezen die past bij je wensen, en je kan van start.
In de IT gaat het steeds meer die kant op. Producten worden steeds geavanceerder, en tegelijkertijd eenvoudiger in gebruik doordat de complexiteit wordt 'verstopt'. Denk aan containerisatie, hyper-converged systemen en web-scale IT. Zonder specialistische kennis van zaken, kun je toch die hoge kwaliteit producten en diensten benutten. Je hoeft zelf steeds minder te weten van technologie. Zelfs je aanvragen kunnen i.p.v. in 'bits' en 'bytes', steeds meer in zakelijke termen of andere niet-technologische terminologie gebeuren.
Turnkey producten en diensten benutten kan veel waarde opleveren. Waarom zou je tijd en moeite aan iets specialistisch besteden, met als resultaat een middelmatig product, terwijl je je ook die tijd en moeite kunt besparen, en het geld dat je daarmee overhoudt gebruiken om het uit te besteden aan een specialist?
Toch is outsourcing niet altijd een goede keuze. 

Wel of niet outsourcen?

Activiteiten waarvan het handig kan zijn om ze in aanmerking te laten komen voor outsourcing, zijn activiteiten waarmee je geen sterke concurrentiepositie behaalt als je ze zelf uitvoert en die strategisch gezien niet zo belangrijk zijn. Daaronder vallen dus niet je core business (daar ben je zelf al de specialist in) en andere zaken die je bijv. al significante kostenbesparing opleveren. 
Als je besluit om te outsourcen, dan is er nog de keuze tussen partial en turnkey outsourcing.

Partial outsourcing of turnkey outsourcing?

Bij partial outsourcing wordt alleen een gedeelte van een functie uitbesteed. Bij turnkey outsourcing ligt de verantwoordelijkheid voor het uitvoeren en coördineren van een volledige functie bij een externe partij.
Turnkey outsourcing is geschikt als je bedrijf geen ervaring heeft met of kennis heeft over een bepaalde taak of er weinig verantwoordelijkheid (zoals coördinatie en integratie) voor wil dragen. Door een gehele functie uit te besteden, worden communicatie- en coördinatie problemen tussen de outsourcer en de externe partij, zoals vertragingen, geminimaliseerd. 
Partial outsourcing is geschikter als het bedrijf meer invloed wil hebben op prijzen en kosten, en op de gebruikte technologie, materialen, het personeel en de kwaliteit ervan. Door niet de gehele functie uit te besteden ben je wat minder afhankelijk van de externe partij.
Ontwikkelingen in de IT maken het interessanter om aan turnkey outsourcing te doen en zo je focus op de core business te houden. Ze maken het steeds beter mogelijk voor bedrijven om te profiteren van technologieën van wereldklasse door het creëren van gebruiksvriendelijke en kant en klare apparaten, zonder dat die bedrijven intern hoeven te beschikken over specialisten op die vlakken (die voor de nieuwste technologieën vaak schaars of onbereikbaar zijn). Dus ga eens na welke turnkey technologische ontwikkelingen er zijn en welke functies in het bedrijf in aanmerking komen voor turnkey outsourcing, zodat je hier zelf ook je voordeel mee kunt doen.

maandag 6 juni 2016

Zakelijke mogelijkheden met containerisatie

Vorige week bleek al dat containers een lichte vorm van virtualisatie zijn, die zeer efficiënt gebruik maken van de onderliggende infrastructuur. Bovendien maken ze het mogelijk om applicaties snel en gemakkelijk te starten, stoppen en verplaatsen naar andere computing omgevingen. Maar wat betekent dit nou eigenlijk voor de organisatie? Hierbij mogelijke zakelijke voordelen die je kunt realiseren met containerisatie.

Ontwikkelaarservaring verbeteren

Het kan een enorm gedoe zijn om een applicatie te ontwikkelen. Bij het testen van een ontwerp kunnen problemen ontstaan doordat de testomgeving anders is dan de ontwerp omgeving, waardoor de applicatie niet meer naar behoren functioneert en er aanpassingen gedaan moeten worden om goed te kunnen testen. Dezelfde soort problemen kunnen ontstaan bij het live maken van een test versie.
Dat ontwerp-, test- en productieomgevingen van elkaar verschillen maakt met containerisatie niet meer uit. Door containerisatie werkt de ontworpen applicatie overal waar Docker draait. Je weet als ontwikkelaar dus wat je kunt verwachten en kunt een hoop stress van foutmeldingen en continu aanpassen aan verschillende omgevingen van je af schudden. 

Gemakkelijk en snel opschalen

Ook opschalen kan gemakkelijk, doordat de containers de volledige runtime-omgeving bevatten en het dus niet uitmaakt dat computing omgevingen van elkaar verschillen. En het gaat nog snel ook, doordat de containers geen OS bevatten en die dus niet iedere keer opgestart hoeft te worden. Wil je heel veel containers uitrollen, dan kan dat eenvoudig met een 'auto-scale' optie, waarbij de containers gekopieerd worden. Dit kan o.a. nuttig zijn als je tijdelijk meer resources nodig hebt, bijvoorbeeld omdat je ticket verkoop doet voor een concert of festival en je wilt dat de piek in gebruikersaantallen opgevangen wordt. Is het niet rendabel om voor tijdelijke pieken resources aan te schaffen? Dan kun je door containerisatie op eenvoudige wijze koppelen aan een datacenter van bijvoorbeeld Google, Amazon of Facebook en tijdelijk van hen de resources benutten die je nodig hebt.

Gebruikerservaring verbeteren

Als een nieuwe versie van een app live gebracht moet worden of er hardware faalt, dan wil je dat de gebruiker daar zo min mogelijk last van heeft. Door containerisatie zal de gebruiker vrijwel geen haperingen ervaren, want containers kunnen enorm snel worden opgestart op een andere machine. Doordat ze geen OS bevatten zijn ze sneller te starten dan VM's en is het overstappen op een andere machine een kwestie van seconden. Dit heb je zelf misschien al ervaren met applicaties van Google. Bij hen gaat er natuurlijk ook wel eens wat stuk of moet er een update gedaan worden, maar omdat de haperingen zo insignificant zijn kun je bijna zeggen dat hun applicaties letterlijk altijd werken.

Time-to-market verkorten

Last but not least kunnen ideeën als gevolg van containerisatie nu super snel van een hersenspinsel naar een bruikba(a)r(e) product of dienst worden vertaald, doordat het ontwikkel- en opschaal proces zoveel sneller gaan. Als er een ontwerp is voor het idee en deze functioneert goed in de ontwerp omgeving, dan zijn er technisch gezien weinig obstakels die nog overwonnen hoeven te worden. Het elimineren van ballast maakt het ontwikkelen van nieuwe producten, diensten en plannen een stuk leuker, waardoor het niet onwaarschijnlijk is dat de kwaliteit ervan ook omhoog gaat en het bedrijf mooie stappen kan maken in het creëren van toevoegde waarde.