Xylos brands

DevOps : Van 4 releases per jaar naar 300...

Introductie

Ooit al van "DevOps" gehoord? Voor sommigen is dit het meest voor de hand liggende iets ter wereld. En voor anderen is het totaal onbekend... Desondanks gaat het "DevOps"-gedachtegoed al een heel tijdje mee... In 2009 is de beweging gestart, weliswaar in België! In essentie draait "DevOps" rond het volgende ;

DevOps (a clipped compound of development and operations) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.

Als je het wiskundig zou gaat bezien, heeft "DevOps" voor ogen om drie gebieden bijéén te brengen ; Development, Operations ("Infrastructuur") & Quality Assurance.

Devops.svg

Dit met als einddoel om ervoor te zorgen dat ;

  • De "time-to-market" van veranderingen aanzienlijk verlaagd wordt
  • De kwaliteit van het IT landschap wordt verhoogd
  • Er is een goede audit trail naar alle veranderingen toe

Hoe wordt dit dan gerealiseerd? Door een methodologie te gebruiken die op de volgende fases geënt is ;

  • Source : Eén pad voor alle veranderingen... Om zo te weten wie wat wanneer gedaan heeft.
  • Build : Vanuit die broncode worden scripts onmiddellijk uitgevoerd (tegen een labo omgeving). Dit om ervoor te zorgen dat fouten (die immer onvermijdelijk zijn!) zo snel mogelijk gedetecteerd worden.
  • Test : Als de code op zich technisch goed zit, dan wordt deze vervolgens door getest. Het kan zijn dat de syntax van de code klopt, maar dat deze functioneel toch niet doet wat deze moet doen.
  • Release : Als de kwaliteit goed zit, dan kan de verandering uitgerold worden. Voor sommige omgevingen kan dit eventueel vol automatisch, waar het in een groot aantal scenario's nog steeds moet gebeuren na een zekere vorm van goedkeuring.

Winops

Als het beestje al enkele jaren bestaat, waarom komen jullie er dan nu pas mee af?

Zeer goede vraag! Gans de "DevOps"-beweging heeft zich de laatste jaren voornamelijk gemanifesteerd in de Linux wereld. Hier heeft het zijn sporen meer dan verdiend. Alleen moeten we ook eerlijk zijn, en toegeven dat de Belgische market voornamelijk bestaat uit omgevingen waar Windows het grootste gewicht in de schaal legt. Over die laatste statement kunnen we natuurlijk nog een tijdje religieus discussiëren, maar laten we dit gegeven even als een feit parkeren voor de rest van het verhaal.

Wat geeft dan net nu de kentering? Met de focus op Azure, en de komst van Windows 2016, legt Microsoft een enorme nadruk op de kracht van Windows Nano. Dit operating systeem is qua "footprint" een lichtgewicht als je dit vergelijkt met de vroegere versies van Windows. Deze versie noemt Microsoft zeer trots hun "Cloud Operating System". Deze server versie is "headless", wat wil zeggen dat deze geen GUI heeft. Neen, het is geen nieuwe versie van Windows Core, het gaat nog fundamenteler... Je kan een machine met Windows Nano enkel aanspreken door middel van Powershell.

Powershell you say? Dat klopt. De visie van Microsoft is dat Powershell de allereerste insteek is voor alle acties die je in de Microsoft wereld wil bekomen. Bij deze geef ik u even de kans dat te laten bezinken... Want dat is voor iemand die gewoon is met Microsoft te werken een enorme (!) verandering. Dit impliceert immers dat Microsoft zelf de focus legt op "command line", en alles van GUI/Portals/... als "ondergeschikt" zal aanschouwen. Waar dit misschien even schrikwekkend overkomt, ontketent dit nu net hetgeen wat de Windows community nodig had om ook te bewegen richting het "DevOps"-gedachtegoed!

Tooling niet primair

In het vorige hoofdstuk heb'k nog wel enkele technische termen in de mond genomen, zoals bijvoorbeeld ; powershell. Desondanks is één van de belangrijkste lessen die ik u kan meegeven dat "DevOps" NIET om tooling draait! Het is in eerste instantie een verandering in de cultuur en in de mindset van mensen. Het gaat om het samenbrengen van mensen en het aanpassen van de processen waarmee je veranderingen doorheen de organisatie gaat introduceren. Hier gaat een tool zeker bij helpen, maar het gaat het menselijke en procesmatige niet voor je oplossen! Het kan bijvoorbeeld zijn dat je plots gebruik gaat maken van een Kanban-bord en deze effectief fysiek / visueel in het midden van de kamer zet. Plots ga je mensen vanuit "operations" vanaf dag één bij een verandering betrekken.... Hier moet ik toegeven dat dit aspect al jaren "leeft" bij iedereen, alleen gaat de omgekeerde beweging ook gedaan worden. "Development" zal ook mee betrokken worden in de productie release en support nadien. Waar dit enkele lijntjes tekst zijn in een artikel, kan u zich ongetwijfeld voorstellen dat dit voor sommige mensen ook wel een revolutie kan zijn?

Infrastructure-as-Code

Uit het vorige hoofdstuk leren we dat er de mensen en processen primair staan. Over de jaren had ik het volgende mantra opgebouwd ; "Als ik voor de tweede keer iets doe, dan automatiseer ik het!" & "Vooraleer iets in productie gaat dient dit (geautomatiseerd &) volledig door getest te worden!". Deze statements geven de essentiële shift aan qua cultuur aan. Zo gaat iemand vanuit "Infrastructuur" ("Operations") die shift moeten maken naar "Infrastructure-as-Code". In eerste instantie gaat dit willen zeggen dat elke verandering die gedaan wordt geautomatiseerd zal gebeuren (door bijvoorbeeld Powershell of het direct aanroepen van APIs). Deze veranderingen zullen gebundeld worden in een script ("code"") en zal bewaard worden in een versie beheer systeem (Git, Mercurial, TFS, ...). Van daaruit gaan we deze naar de volgende stappen meenemen. Does this sound freaky? Voor sommigen allicht wel... Dat ga ik eerlijk toegeven. Anderzijds kan ik ook aangeven dat ik bij iedereen die ik de beweging heb zien maken, dezelfde reflectie zie terug komen ; "Waarom heb ik ooit anders gewerkt? Die manier van vroeger, daar wil ik niet meer naar toe!". 

Sommige mensen gaan deze statement van mij misschien al wel eens (of meerdere keren?) gehoord hebben ;

Als ik voor dit jaar je één (e)book mag voorstellen om te lezen... Dan is het de volgende "The Release Pipeline Model - Applied to managing Windows Server and the Microsoft Cloud"!

Het boek loodst u doorheen de volgende fases naar het waarom & hoe ;

2016-06-20 08_44_07-The Release Pipeline Model.pdf - Adobe Acrobat Reader DC

Hier kan ik niet hard genoeg de nadruk op leggen. Waarom zal u vragen? Voor mij is het carrière pad voor mensen vanuit "Infrastructure" / "Operations" naar de volgende jaren zeer eenduidig. Ofwel leert u om automatisatie te orkestreren, ofwel zit u in X aantal jaar in een andere sector. Dit mag misschien even zeer gevoelig aankomen, maar dit is gewoon de realiteit. In de geschiedenisboeken hebben we allemaal geleerd over de industriële revolutie en wat voor een effect dit had op België. Nu komt er een tweede periode aan; de robotica revolutie. Als u wel kan accepteren dat Tesla/Google/etc naar de markt komen met voertuigen zonder chauffeur. Is het dan zo bizar om voor te stellen dat de typische "bandwerk"-taken in IT ook geautomatiseerd gaan worden? ;-) Stof om over na te denken zeker?!?

Vacature : DevOps Engineer

De volgende vraag die nu door uw hoofd gaat is van? Sh*t, welke skills heeft zo een "DevOps Engineer" dan? In essentie draait het rond de volgende skills / vaardigheden ;

  • Coding / Scripting : Automatisatie wordt gerealiseerd door code, niet door te klikken...
  • High communication & collaboration ; Iedereen heeft zijn sterktes, de kracht van "DevOps" ligt grotendeels in het inzetten van mensen waar ze sterk zijn en de kruisbestuiving die hierdoor ontstaat.
  • Focus on Business Outcome: Er zijn geen heilige huisjes en geen vakjes. Het maakt niet uit of het Windows/Linux is, of het tool X/Y is, of het Azure/AWS/etc is... De ingesteldheid is "get things done", en gebruik de tooling die hier het meest voor geschikt is.
  • Testing Shrine ; Tests uitschrijven gaat nog het grootste deel van het werk zijn. Want bij de hoge frequentie van de veranderingen wil je zeker zijn dat elke uitzondering gedekt is, en dat de code de deur uit gaat zonder dat je hiervoor uit je bed gebeld wordt. I.p.v. 4x op een jaar, kan je dan mogelijks immers 300x per dag opdraven. ;-)

Is het voor iedere organisatie weggelegd?

Het antwoord hierop is neen... Als uw organisatie zelf eigen ontwikkeling doet, dan is het antwoord luidop ja. Als uw organisatie echter enkel gebruik maakt van aangeleverde software, dan gaat u waarschijnlijk een hoop frustratie tegemoet. Wanneer u gebruik maakt van externe partijen, heeft u immers geen controle op het ontwikkel proces. Zoals u waarschijnlijk ondertussen al door heeft, is dit net de essentie van de zaak om "operations" / "infrastructure" samen te brengen met "development".

Samenvatting

  • DevOps is niet nieuw als concept. Alleen voor de Windows wereld gaat deze beweging nu zijn intrede maken.
  • DevOps draait niet rond tooling. Desondanks dat die wel kan helpen, draait het in eerste instantie rond processen & cultuur.
  • Het IT landschap gaat de volgende jaren goed dooréén geschud worden. We moeten hier geen schrik voor hebben en ons "gewoon" op voorbereiden.
  • Bedrijven vereisen van IT een snellere "Time-to-Market". De typische vier releases per jaar gaan niet meer voldoende zijn. Alle cloud oplossingen doen dit al van nature uit en zullen (impliciet) iedereen opdringen hetzelfde te doen.
  • DevOps is ideaal voor bedrijven die hun eigen ontwikkeling doen. Wanneer u geen controle heeft over het ontwikkelingsproces van de software die u integreert, dan is DevOps niets voor uw organisatie.
Bewaren

Deel dit blogbericht

Also interesting for you

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd.

Breng jouw kennis en skills naar een hoger niveau

Schrijf nu in voor onze nieuwsbrief en krijg maandelijks:

  • Uitnodigingen voor Xylos' events & webinars
  • De laatste blogposts en cases
  • Nieuwste IT-trends