DevOps Starter

IT-ROCKSTAR MARCO VERVOORT

Van niets tot full DevOps (demo app met GIT repository en CI/CD pipeline) in enkele muiskliks!

DevOps? Jazeker, dat zijn we allemaal.
CI/CD inregelen? Tja, geef me even een paar dagen, dan lukt het wel…
Nou, dat kan nu veel makkelijker en sneller!

Microsoft heeft Azure uitgebreid met ‘DevOps Starter’ (link), een zeer simplistische en krachtige demonstratie van Azure DevOps. Middels een voorbeeld applicatie (of je eigen code in GIT) kun je in enkele muiskliks een volledige Continuous Integration (CI) en Continuous Delivery (CD) pipeline optuigen in Azure DevOps, en tevens laten deployen naar Azure.

Weet je niet wat CI/CD is, en doe je nog right-click-publish? CI/CD is het automatisch compileren (builden) en installeren (deployen) van de software, onafhankelijk van de ontwikkelaar en diens laptop/pc. Dit zorgt voor een consistente en gedocumenteerde manier van installeren van de software (zoals websites, apps, opslag, database, etc.)

No bullshit, let’s go:

1.    Navigeer in de Azure portal naar DevOps Starter (link).
2.    Klik op Create DevOps starter of Add.
3.    Kies je runtime naar keuze, en klik op Next.

3

 

4.    Kies je framework naar keuze, en klik op Next.

4

 

5.    Kies hoe je je applicatie wilt hosten en klik op Next.

5

 

6.    Vul enkele details in: 

  • Azure DevOps: nodig voor het aanmaken van een nieuwe DevOps project.
  • Azure: nodig voor het aanmaken van een Resource Group waarin de applicatie via CI/CD gedeployed zal gaan worden.
6

 

7.    Klik op Done. That was easy!

8.    Na enkele minuten zal er een Azure DevOps Starter pagina gepresenteerd worden, met daarop links naar:

  • DevOps project, dat zojuist is aangemaakt
  • Code, de GIT repository in Azure DevOps
  • Build, de build pipeline in Azure DevOps
  • dev, de release (deployment) pipeline in Azure DevOps
  • Azure resources (zoals de URL van de web-app, de appservice en Application Insights)
8

 

9.    Well, time to rock. Klik op de diverse links om te kijken wat er allemaal is aangemaakt.

10.    Kijk bijvoorbeeld eens naar de build pipeline:

10

 

11.    Of ga naar het resultaat:

11

 

Diversiteit

Afhankelijk van de gekozen runtime, framework en type applicatie, wordt er een ander demo project aangemaakt, met andere resources. Maar laat je maar eens verbazen over het automatisch deployen van een Container Registry tijdens de build, unit tests die tijdens de build meedraaien, functional (GUI) tests die na de release mee draaien.

Gratis?

Nu hoor ik je denken: Ja leuk, maar ik heb geen Azure omgeving om in te spelen…
Geen probleem. Dit is ook uit te voeren met een Azure Free account (link)! Je zult dan de optie voor AKS niet kunnen gebruiken, maar via een app-service is dat geen probleem.

Beperkingen

Je kunt tegen enkele beperkingen aanlopen. Je dient de volgende rechten te hebben:

  • Owner van de Azure subscription
  • Admin van de Azure Active Directory (AAD)
  • Admin van de Azure DevOps organisation

Dit betekend dat je tegen problemen kunt aanlopen als je jouw zakelijk e-mailadres gebruikt, dat gekoppeld is aan AAD van jouw bedrijf, waar je (hopelijk) geen admin van bent. Probeer dan een nieuwe Azure omgeving (subscription met AAD) met ander e-mail aan te maken. 

Vreemde taal?

Verken ook eens een andere/vreemde taal. We hebben allemaal die 1 á 2 talen waar we lekker in gaan. Mij is deze feature erg handig gebleken bij projecten waar ze voor mij minder bekende talen gebruiken zoals Python, C of Java. Binnen enkele minuten kan ik zien hoe de sourcecode opgezet zou kunnen worden, hoe de CI/CD ingericht kan worden, en hoe het resultaat in Azure eruit ziet.

Just the beginning

De DevOps Starter dient ter inspiratie voor het opzetten van CI/CD. Neem niet aan dat je hiermee klaar bent. Wachtwoorden horen in een Key Vault, systemen behoren een pentest te ondergaan, webapps dienen een load-test te ondergaan, storage dient gebackuped te worden, etc. Neem eventueel contact op met Team Rockstars om jouw project tot een hoger niveau te tillen.

Conclusie

DevOps Starter is een prachtig voorbeeld van de naadloze integratie tussen de Azure cloud en Azure DevOps, en de naadloze integratie tussen de diverse onderdelen van DevOps: 

  • Board voor work-items
  • Repo voor GIT source control
  • Pipelines voor build en release aka CI/CD
  • Test Plans voor manueel en automatische GUI tests
  • Artifacts voor opslag van het resultaat van de build

Meer lezen

 

Live long and prosper,

Marco Vervoort
Team Rockstars IT