DevOpsSuccesfactoren in DevOps, deel 4A: techniek

In onze reeks blogs over de ‘Succesfactoren van DevOps’ zijn we alweer toe aan de vierde en laatste factor, namelijk techniek. In het eerste deel van een tweeluik behandelen we achtereenvolgens de architectuur van applicaties, het belang van security tijdens het ontwikkelproces en van versiebeheer bij het opzetten van nieuwe, schone omgevingen.

DevOps: techniek, tooling en tips

Architectuur van de applicatie

De architectuur van een applicatie moet het mogelijk maken om alle stappen in een ontwikkeltraject te kunnen automatiseren, zoals testen en overhevelen naar een productieomgeving. Dat is in de regel het geval bij software die is opgebouwd uit veel kleine componenten. Monolithische applicaties hebben daarentegen, deels vanwege de sterke onderlinge samenhang, vaak maar één zware executable. Omdat je bij monolieten de volledige applicatie zou moeten testen, is dit geen haalbare kaart.

Security

Net als architectuur is security idealiter iets waar je al tijdens het ontwerpen en bouwen van applicaties rekening mee houdt en controleert. En dus niet achteraf test om te kijken of de applicatie voldoet aan de security eisen. Dat betekent onder meer dat security medewerkers vooraf groen licht moeten geven voor het gebruik van third-party componenten en bijvoorbeeld bepaalde libraries. Om direct en over de volle breedte zicht te krijgen op de security van je software, moeten er tijdens het bouwen en testen regelmatig geautomatiseerde security tests worden uitgevoerd. De kans dat er dan bij ad-hoc scans of bij periodieke penetratietests achteraf nog narigheid aan het licht komt, is dan erg klein.

Versiebeheer

Binnen DevOps moet je te allen tijde in alle fases van de OTAP-straat een nieuwe omgeving kunnen opzetten, bijvoorbeeld omdat een server het begeeft of om op te schalen. Bij het teruggrijpen naar een vorige, schone versie gaat het niet alleen om de code, wat de meeste bedrijven wel op orde hebben, maar ook om de applicatieconfiguratie, systeemconfiguratie en de infrastructuur. Bij dat laatste gaat het vooral om scripts om het bouwen en configureren van de omgeving te automatiseren. Zijn er bijvoorbeeld tussentijds al dan niet handmatig bepaalde configuratiebestandjes geïnstalleerd of rechten gewijzigd, dan kunnen die in de nieuwe versie roet in het eten gooien.

Geautomatiseerd uitrollen

Om ook bij het uitrollen van software duur en foutgevoelig ‘handwerk’ te voorkomen, wil je tot slot ook deze stap automatiseren. De voor het geautomatiseerd uitrollen benodigde, laagdrempelige tooling is, net als bij de voorgaande aspecten, volop beschikbaar in Azure DevOps en GitHub. Mits goed ingericht kan vrijwel iedereen, van product owner tot tester, de knoppen bedienen en op elk moment van de dag een nieuwe versie lanceren.

Mis je in dit verhaal uitleg over continuous integration, geautomatiseerd testen en testdata management? Dat kan kloppen. Die thema’s komen in de volgende blog nog uitgebreid aan bod.

Kun jij wel wat hulp gebruiken bij het efficiënt inzetten van tooling om jouw ontwikkelproces te versnellen? Neem dan contact op met Miquel Asmus via miquela@delta-n.nl of op 085 487 52 20.

Bekijk ook deel 1 over cultuur, deel 2 over meten en monitoren en deel 3 over proces als succesfactoren in DevOps.

  • Wil jij ook werken aan een Modern Ontwikkelproces bij klanten? Bekijk vacatures!