Download - Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

Transcript
Page 1: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Een infra DevOpsCI/CD straat

Ronald van Vugt

Page 2: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Ronald van Vugt

nl.linkedin.com/in/ronaldvanvugt

ir. Ronald van Vugt

[email protected]

Cloud Architect bij Metis IT

VCAP / AWS Architect

Metis IT is een onafhankelijke infrastructuurspecialist uit Delft en adviseert, ontwerpt en implementeert infrastructuren voor grote organisaties.

https://www.metisit.com

www.metisit.com/author/ronald

Page 3: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Agenda

• Waarom?• Demo• Gitlab• Ansible Tower• Jenkins• Het resultaat

Page 4: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Waarom een CI/CD straat voorinfrastructuur?

Page 5: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is CI/CD?

ContinuousIntegration

• Commit code• Geautomatiseerde build &test

ContinuousDelivery

• Uitrol naar diverse omgevingen• Acceptatietesten

ContinuousDeployment

• Uitrol naar productie

Geau

tom

atise

erd

proc

es d

oor C

I/CD

tool

s

Page 6: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Dit is waar we naartoe bewegen

Page 7: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Maar dit is vaak de huidige realiteit …

Page 8: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat betekent dit voor Ops?

• Traditionele applicatie stacks (zoals LAMP, J2EE en .NET) zijn nog steeds nodig

• Uitrol kan door het Ops-team ook op een CI/CD manier ingericht worden, zodat er een betere integratie met App generatie 3.0 bereikt wordt

• De basis is het beschrijven van de gehele stack in een configuratie management tool die dan vervolgens geautomatiseerd getest en uitgerold kan worden door middel van CI/CD tooling

Page 9: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

De infrastructuur CI/CD Cycle

Ontwikkel

Test

Deploybasisinfra

Deployconfig

Gebruik/Monitoring

CI/CD

Page 10: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

De demo

Page 11: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat gaan we deployen?

CentOS 7 Linux server

NGINX Server index.html

http://<ip-adres>

Page 12: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

De CI/CD Straat

GitlabAnsible playbook

Jenkins

Ansible Tower

vRA Plugin

1

Commitplaybook

3

Testplaybook

4 Deployblueprint

5Infodeployment

6

Createjob

7Runjob

Playbooknaar Ansible

tower2

Page 13: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

De producten

• Tijdens het draaien van de demo ga ik dieper in op de producten die gebruikt worden tijdens de demo• Doel is inzicht verschaffen hoe de eenvoudige demo infra CI/CD

straat opgebouwd is en werkt• Zodat je hierna zelf aan de slag kunt om een eigen infra CI/CD

straat op te zetten die helemaal aan jouw eisen en wensen voldoet

Page 14: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

De start

Page 15: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is GitLab?

GitLab is a single application for the complete DevOps lifecycleToepassingen in deze demo• Een web GUI bovenop een centrale GIT server• Gedistribueerd versiebeheer systeem

• Integratie met veel services, waaronder Jenkins

Page 16: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is GitLab

Page 17: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Ansible?

• Een simpele automation language die de state van een server en applicatie beschrijft in een Ansible playbook• Een open source engine die agentless playbooks uitvoert voor

onder andere:• Configuration Management• Application Deployment• Security & Compliance

Page 18: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Ansible Tower?

• Een enterprise framework met een UI en REST API voor:• Beheren• Controleren• Beveiligen• Notificeren

van Ansible automation/playbooks

Page 19: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Ansible Tower

Page 20: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Jenkins?

• Open Source Continuous Integration / Continuous Delivery Server• Maar meer nog een orchestrator server,• met meer dan 1000 plugins en honderden integraties met build,

test, en deployment tools,• om een eigen CI/CD straat op te zetten

Page 21: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Jenkins?

Page 22: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Wat is Jenkins

Page 23: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Jenkins – de pipelinePipeline: where the magic happens…

Page 24: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Jenkins – de pipeline

Page 25: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Jenkins – de pipeline

Page 26: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Jenkins – de pipeline

Page 27: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Jenkins – de pipeline

Page 28: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Het resultaat

Page 29: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018

Page 30: Een infra DevOps CI/CD straat - vMA TechCon · 2018-09-28 · vMA TechCon 2018 #vmatechcon2018 Wat betekent dit voor Ops? • Traditionele applicatie stacks (zoals LAMP, J2EE en .NET)

vMATechCon2018 #vmatechcon2018