Groeien: van Continuous Integration naar Continuous Delivery

Bij Qualogy Caribbean maken we regelmatig gebruik van Continuous Integration (CI): een aanpak waarmee we tijdens het bouwen van software constant op vaste momenten de code kunnen controleren. En we gaan altijd graag een stapje verder: daarom zijn we ook steeds vaker bezig met Continuous Delivery. Wat dit inhoudt en wat de voordelen zijn? Dat vertel ik je graag in deze blog.

Vroeger werd bij software-ontwikkeling de volgende traditionele aanpak gehanteerd:

  • Fase 1: analyseren
  • Fase 2: ontwerpen
  • Fase 3: ontwikkelen
  • Fase 4: testen 

Nu maken we voornamelijk gebruik van de agile-werkwijze. Bij agile wordt een project opgedeeld in korte perioden (meestal één week tot een maand): een sprint. Eén agile-sprint bevat op een gestructureerde wijze alle fasen van de traditionele methode, dat zijn dus: analyseren, ontwerpen, ontwikkelen en testen. Na een sprint heeft de klant een stukje werkende software in handen, in plaats van bijvoorbeeld slechts een ontwerpdocument.

Na oplevering kan de klant de deeloplevering testen en eenvoudig veranderingen aanvragen. Bij de traditionele methode was dit altijd een stuk lastiger. Samen met de klant bepalen we na hoeveel sprints de applicatie precies genoeg functionaliteiten bevat om in productie genomen te worden. 

Continuous Integration

Aan een agile-project werken meerdere ontwikkelaars. En daar komt Continuous Integration om de hoek kijken. Werken de ontwikkelaars afzonderlijk aan verschillende functionaliteiten op hetzelfde project en lukt het niet om de code automatisch samen te voegen of te integreren? Dan krijgen zij ook automatisch een waarschuwing met de locatie van de fout, dankzij Continuous Integration. De ontwikkelaars kunnen dan samen de code herstellen. 

Welke omgevingen zijn er in een standaard CI-ontwikkelproces?

  • Lokale Ontwikkelomgeving (op de machine van een ontwikkelaar)
  •  Quality Assurance Test-omgeving (op een centrale machine)
  •  User Acceptance Test-omgeving (op een centrale machine)
  •  Productieomgeving (bij de klant)

Verdere automatisering met Continuous Delivery

Continuous Delivery (CD) gaat nog een stap verder. In het software-ontwikkelproces wordt de code vaak handmatig geschreven. Hierbij worden er helaas soms ook type-, denk- en interpretatiefouten gemaakt. Dit voorkomt Continuous Delivery, want het zorgt er onder meer voor dat er zo min mogelijk handmatige handelingen nodig zijn voor het opleveren van code naar de juiste omgeving. Met Continuous Delivery kunnen we dus niet alleen de bedrijfsprocessen van een klant zo veel mogelijk automatiseren, maar ook ons eigen ontwikkel- en opleveringsproces. En code herstellen na een fout? Ook dat gaat veel sneller. 

Het CD-ontwikkelproces bestaat uit 5 stappen:

  • Design: ontwerpen en bedenken van de oplossing.
  • Develop: de oplossing omzetten in code, de code wordt door ontwikkelaars geschreven vanuit hun lokale machine.
  • Build: het bouwen vindt plaats op de CI-server, hierbij wordt de code van verschillende ontwikkelaars geïntegreerd en met automatische tests getoetst op fouten.
  •  Deploy: de software wordt naar de Test-, Acceptatie- of Productieomgeving overgezet.
  •  Test: interne test (Quality Assurance Test of een User Acceptance Test die door de klant wordt uitgevoerd).
  •  Ship: een speciale deployment-stap: deployment naar productie. Deze stap volgt na een User Acceptance Test.

De voordelen van CD

Het grote voordeel voor de klant? Een enorme tijdsbesparing. Een project is sneller afgerond en software kan eerder in gebruik worden genomen. En natuurlijk ontzettend belangrijk: het is minder foutgevoelig. Je hoeft als ontwikkelaar tenslotte minder met de hand te doen. Gunstig voor de klant én voor ons als ontwikkelaars. 

Software-ontwikkelproces Software-ontwikkelproces