Slide 1

Slide 1 text

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

Slide 27

Slide 27 text

Questions? 6 18 DECEMBER 2019