Minor DevOps - AIM & InfoSupport

Inleiding

In deze minor leren ICT-studenten moderne ICT-technieken voor Continuous Delivery volgens een DevOps aanpak. Studenten bouwen in teamverband samen een geintegreerd software product, waarbij ze kijken naar zowel software en de onderliggende software architectuur als de te gebruiken infrastructuur (hardware) en de architectuur en configuratie daarvan.

Minor DevOps: je leert DevOps tools en DevOps concepten

In de volgende sectie een kort overzicht, aan de hand van enkele kreten. De sectie daarna licht de fasering van de minor toe en toetsing. De tot slot volgende secties werken deze drie fases uit.

Figuur 1: Promo video minor DevOps HAN i.s.m. InfoSupport

Minor DevOps: Let's do some major DevOps!

Wait, DevOps is just cooperation!? 'Always has been' meme
Figuur 2: DevOps=cooperation (bron: imgflip.com)

Dev en Ops studenten leren in deze minor samenwerken aan applicaties door een 'containerized' aanpak, die het mogelijk maakt veel Ops processen te automatiseren, op grote(re) schaal te werken vanuit een gedeelde backlog en hierbij oude silo's te doorbreken voor een snellere 'time to market' ('shift left').

Dus onthoud: DevOps is Cooperation (zie figuur 2).

Concreet aan de slag met non-functional requirements

Het kijken naar het geheel van software én infrastructuur en het hanteren van DevOps principes en -tools stelt studenten in staat om naast functionaliteit voor eindgebruikers ook te kijken naar non-functionele eisen (NFR's) zoals schaalbaarheid, betrouwbaarheid en onderhoudbaarheid. NFR's noemen sommigen liever 'quality attributes' (QA's) omdat bv. goede performance wel degelijk heel functioneel kan zijn voor eindgebruikers, of zelfs essentieel ('performance as a feature').

...met deployment pipelines

Automate all teh things!

Studenten leren om een DevOps proces op te zetten en te werken met een CI/CD pipeline voor geautomatiseerde deployment naar productie en andere runtime omgevingen op basis van de 'desired state' in versiebeheer (GitOps). De resulterende makkelijkere en meer frequente updates maken een focus op betere security ook mogelijk (DevSecOps) en tot slot verbetert goede logging en monitoring (SlackOps) het zicht op prestaties, early warning van fouten en zelfs live bijhouden of je bedrijfsdoelen haalt. Dit gebeurt via applicatiespecifieke KPI's. Er zijn zelfs monitoring tools die inzicht geven of je met klanten gemaakte afspraken (SLA's - Service Level Agreement) nakomt.

...en je verder ontwikkelen als "T-shaped professional"

T-shaped DevOps professional

Figuur 3: 'T-shaped DevOps professional' (plaatje: agilescrumgroup.com)

Dit is zowel een verdiepende als een verbredende minor. Instroom is alleen mogelijk voor ICT studenten die ofwel een Operations achtergrond hebben (Infrastructuur, Security) of een Development achtergrond (Software Development, Web Development of Data Solutions Development. Al deze studenten verbreden hun kennis en leren elkaars taal spreken om interdisciplinair te kunnen werken, maar verdiepen ook hun specialisme door te leren werken in moderne wereld van containers, cloud providers, microservices en Agile systeem development.

De kern van DevOps is samenwerking tussen Dev en Ops. Dus niet per se alles kunnen, zowel Dev als Ops, maar in hetzelfde team werken en vooral voldoende kennis over elkaars werk en veld hebben om tijdig te gaan communiceren. Welbeschouwd is de term 'T-shaped DevOps professional' (figuur 3) dus een pleonasme, om een 'duur woord' te gebruiken.

Fasering: courses en project

Het semester bestaat uit 2 blokken: een course blok en een project blok (zie figuur 4).

Overzicht minor

Figuur 4: Overzicht minor DevOps (NB Ops course nog Work in Progress)

Dev en DevOps volg je tegelijkertijd voor acht weken en in week negen is een week van presentaties en eindbeoordelingen, met de herkanstoets en het orienteren op de praktijkopdracht in het 2e blok.

Hieronder de beschrijving van de verschillende fasen. Nog meer details voor degenen die de minor meedoen staan in de subsecties die je via het menu kunt bekijken.

A. Week 1 t/m 5 - Courses: 'DevOps school'

Wekelijkse theorie, oefeningen en huiswerkopdrachten rondom een thema.

In de eerste vijf weken leer je basiskennis DevOps als voorbereiding op de afsluitende twee vrijere opdrachten. Dit verloopt volgens het flipped classroom model, waarbij student zelf verantwoordelijk is bij te blijven en te zorgen voor voldoende leerervaring. Hierbij bestudeer je zelfstandig thuis online documentatie, blog posts, video's van YouTube of PluralSight of andere online leerplatformen. Deze zijn opgegeven in het huiswerk.

In de les maak je opdrachten en is er kans voor uitwisseling. Hier zijn ook af en toe korte discussies aan de hand van vantevoren bedachte stellingen. Ook zijn er een aantal workshops van InfoSupport. Voor details zie het 'Lesoverzicht'.

B. Week 6 - Onderzoeksopdracht

Individuele Onderzoeksopdracht met als deliverable een blogpost van 800-1500 woorden (2 tot 4 A4).

De blogpost schrijf je als eindtoets voor de course Dev of Ops en doe je individueel. NB: De individueel onderzochte technologie pas je hierna toe in beroepsproduct voor course DevOps. Het onderwerp en te onderzoeken vragen stem je daartoe wel af met docent en beoogd groepsgenoten.

Zie details onder Week 6 - Onderzoek.

C. Week 7 & 8 - Eindopdracht: Beroepsproduct

Grotere programmeeropdracht van een (uitbreiding van) een software systeem, inclusief configuratie, images, dependencies, CI/CD config, db en/of seed scripts en documentatie

Agile project

De eindopdracht geldt voor de course DevOps en doe je in een groep van 4 a 5 personen zoveel mogelijk vergelijkbaar ambitieniveau. Meer info over eisen voor dit beroepsproduct zie onder Week 7 & 8 Beroepsproduct.

D. Week 9 - Eindpresentatie course fase

Eindpresentaties, herkansing, bezoeken van en bespreken project opdrachtgevers.

Old-skool waterval - illustratie
Figuur 6: Iteratieve 'flow' vs old-skool waterval

In week 9 is de definitieve beoordeling en heb je een groepspresentatie met Demo van je in week 7 en 8 gebouwde product (zie 7.3) en toelichting op jullie proces (zie 7.4). Tevens is er een aparte sessie met je groep met toelichting en verantwoording van de individuele bijdrage per teamlid aan het product (zie 7.5).

De beoordelingscriteria hoor je tijdens project en er staat een beoordelingsmodel in iSAS. Maar dit gaat grofweg over kwaliteit en kwantiteit van werk en het toepassen van geleerde DevOps 'Way of Working' (WoW) en DevOps maturity. Conform de DevOps ways proberen beoordelaars dit 'iteratief' en 'incrementeel' te houden. De beoordeling is gebaseerd op observaties van begeleiders en het gemaakte werk, backlog en documentatie gedurende de weken. Maar een zekere mate van WaterScrumFall is hierbij toch niet te vermijden i.v.m. het plannen.

E. Blok 2 - DevOps project...

Totaal 9 weken aan de slag voor een echte klant met begeleiding en beoordeling vanuit InfoSupport (HAN eindverantwoordelijk eindbeoordeling)

Na de courses volgt natuurlijk het project in blok 2. Doel van de hele course fase is ook om je voldoende bagage te geven voor dit project. Hierbij heb je te maken met een echte opdrachtgever. Het is de bedoeling snel iets op te leveren naar een productie omgeving volgens de DevOps principes, en dit hierna in de lucht te houden, en verder te ontwikkelen zowel functionaliteit als implementatie van non functional requirements (realisatie quality attributes).

De volledige formele eisen, competenties en beoordelingscriteria staan in de de OWE. Voor een korte introductie zie opdrachtbeschrijving. Meer informatie over het project in blok 2 en de eisen en beoordeling hierbij volgt in week 9 van de course, waarin je ook kennismaakt met de opdrachtgever. Zie ook de punten onder 8. De beoordelingsmethode is vergelijkbaar als bij de 2-weekse BP opdracht, maar nu in een langer project met een eigen 'microservice applicatie' i.p.v. 'brown field project' in een demo applicatie.

Greenfield project afbeelding van Dall-E

Figuur 7: Het course eindproject is slechts een 'PitStop' naar het grote DevOps 'green field' project in blok 2

Voor meer info kun je nog de eisen eindproject in blok 2 op deze website bekijken

Berekening van de Cijfers

DEV

  1. Theorie Test - 50% van het cijfer
    • 2 deeltoetsen (gemiddelde moet hoger dan 5,5 zijn)
    • Herkansing: 1 grote toets
  2. Beroepsproduct - 50% van het cijfer
    • Blogpost
  3. Weekopdrachten (huisopdrachten)
    • Je moet alleen een vinkje krijgen

DEVOPS

  1. Theorie Test
    • 2 deeltoetsen (gemiddelde moet hoger dan 5,5 zijn)
    • Herkansing: 1 grote toets
  2. Beroepsproduct - 50% van het cijfer
    • 2 weken code
  3. Weekopdrachten
    • 2 weekopdrachten (Linux + RabbitMQ)
    • Alleen een vinkje nodig

Groepsvorming voor wekelijkse opdrachten

Het vormen van paren en inleveren van werk in versiebeheer en iSAS is beschreven op de pagina 'Werkwijze weekopdrachten' op deze website.

Last change: 2025-01-13