Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From Jenkins to Azure DevOps pipelines

Jo Somers
December 18, 2019

From Jenkins to Azure DevOps pipelines

This presentation is about the key takeaways and things we already tried at Rombit regarding Azure DevOps.

Gie Spaepen: @spaepeng
Jo Somers: @josomers

Jo Somers

December 18, 2019
Tweet

More Decks by Jo Somers

Other Decks in Programming

Transcript

  1. Agenda 1. DevOps history 2. Jenkins Jungle 3. Targets 4.

    Azure DevOps 5. Demo time 6. Questions? 2 DECEMBER 2019
  2. 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
  3. ▪ 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
  4. ▪ 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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...
  11. 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.