18 DECEMBER 2019
Azure Devops Pipelines
Gie Spaepen / Jo Somers
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
WE’RE HIRING!
rombit.be/jobs
Slide 5
Slide 5 text
Agenda
1. DevOps history
2. Jenkins Jungle
3. Targets
4. Azure DevOps
5. Demo time
6. Questions?
2 DECEMBER 2019
Slide 6
Slide 6 text
The small
Rombit
DevOps
history
1
18 DECEMBER 2019
Slide 7
Slide 7 text
The small Rombit DevOps history
▪ Rombit was a PHP-centric company.
▪ CI = Wercker
▪ CD: also Wercker but also manually using
Capistrano
▪ Various flavours depending on the project and
developer.
18/12/2019
… in the beginning
Slide 8
Slide 8 text
▪ Infrastructure standardization Digital Ocean
and AWS EC2.
▪ CI + CD: enter Jenkins.
▪ Organic adoption of multibranch pipelines.
▪ Building a stockpile of technology
18/12/2019
… after some beginning
The small Rombit DevOps history
Slide 9
Slide 9 text
▪ Adaptation of new technologies like mobile
apps (React Native), backend switched to
JVM-based tech (mostly Spring Boot)
▪ Move to Kubernetes
▪ New infra made CI/CD more complex, e.g.:
○ Various testing strategies
○ Ansible
○ Bash scripts …
▪ Jenkins updates & plugin management (being
outdated as a daily routine)
18/12/2019
… and also
The small Rombit DevOps history
Slide 10
Slide 10 text
The
current
Jungle
2
18 DECEMBER 2019
Slide 11
Slide 11 text
Current Jungle
18/12/2019
Jenkins Stack
Slide 12
Slide 12 text
Current Jungle
▪ No governance
▪ Passwords everywhere (Jenkins / Credstash)
▪ No oversight
▪ Limited user management
▪ Ansible Scripts: all logic possible
▪ Jenkins files: Groovy, logic mingled with scripts
▪ Release and pray strategy
▪ Split the CI from the CD (build & deploy)
18/12/2019
Difficult
Slide 13
Slide 13 text
Targets
3
18 DECEMBER 2019
Slide 14
Slide 14 text
Targets
▪ Fast & easy setup of new projects.
▪ Build an artifact and deploy anywhere anytime
& move the artefact around… without
rebuilding.
18/12/2019
Target #1
Slide 15
Slide 15 text
Targets
▪ Proper integration with test automation
▪ Get faster test feedback by deploying more
often into production
▪ Possibility to activate other integrations
18/12/2019
Target #2
Slide 16
Slide 16 text
Targets
▪ Structured, UI driven, managed tool with proper:
○ Access control
○ Pipeline trigger management, also for non tech people ⚡
○ Proper governance and overview ✈
○ Easy versioned plugin management
18/12/2019
Target #3
Slide 17
Slide 17 text
Azure
DevOps
4
18 DECEMBER 2019
Slide 18
Slide 18 text
Azure DevOps
18/12/2019
Azure DevOps stack
Slide 19
Slide 19 text
Azure DevOps
▪ Split CI from CD
▪ Managed service with a proper UI, drag and drop
▪ Password management ability via secrets & keys
▪ Task groups for repeating tasks
▪ Governance
▪ Working now well for:
○ FE apps (React)
○ BE apps (Spring Boot/Node JS)
○ It has a MacOS agent! Yay!
18/12/2019
Lessons learned so far
Slide 20
Slide 20 text
Azure DevOps
▪ Pipeline template setups for default stack projects (also considering yaml files for
templating…)
▪ Movement from Jenkins…. towards Azure DevOps by June 2020.
18/12/2019
Work in progress...
Slide 21
Slide 21 text
Azure DevOps
▪ Getting started:
○ Strategy to split CI/CD for mobile apps with Azure
DevOps and Fastlane
○ Notification strategy via Slack
▪ Getting planned:
○ Automated UI/integration test runs in CI
▪ To be validated:
○ .yaml configuration via Code
18/12/2019
Not doing… yet.
Slide 22
Slide 22 text
Demo time!
5
18 DECEMBER 2019
Slide 23
Slide 23 text
Demo fallback image
18/12/2019
Slide 24
Slide 24 text
Demo fallback image
18/12/2019
Slide 25
Slide 25 text
Yaml Pipelines - VSCode-like editor online with task assistant
18/12/2019
Slide 26
Slide 26 text
Yaml Pipelines - Save to a new branch and create a PR
18/12/2019