Slide 1

Slide 1 text

CI/CD at Zalando Continuous Delivery to Kubernetes at Zalando CI/CD Meetup Berlin LOTHAR SCHULZ 2017-09-20

Slide 2

Slide 2 text

2 Zalando Zalando ~3,6 bn Euro yearly revenue ~ 1800 tech employees Dortmund, Dublin, Helsinki, Erfurt, Hamburg, Mönchengladbach 7 locations in Berlin 7 tech hubs

Slide 3

Slide 3 text

3 Me Engineering Lead at Zalando Code A. https://github.com/zalando B. https://github.com/lotharschulz @lothar_schulz www.lotharschulz.info

Slide 4

Slide 4 text

4 https://www.flickr.com/photos/eyecatcherfotosde/25418973420/

Slide 5

Slide 5 text

5 Why Continuous Delivery Platform ? ● tight integration into Zalando infrastructure e.g. ○ Docker registry ○ IAM ○ Zalando cluster setup ● one file to configure tasks ○ no extra configuration via UI, plugins, configurations etc. ● managing 100+ Jenkins masters plus more agents is quite some effort ● unique build environment ● quick worker feedback ● worker easy scaling up and down ● transparent credential

Slide 6

Slide 6 text

6 Architecture sketch Continuous Delivery Platform delivery.yaml descriptor file Docker Registry

Slide 7

Slide 7 text

7 Continuous Delivery Platform - simplified source code management system Controller code change trigger Builder Proxy Docker Registry Worker VMs token injection schedules and monitors tasks source code checkout task execution image upload

Slide 8

Slide 8 text

8 Main Concepts ● proxy with user transparent credentials ○ untrusted build workers without secrets ○ transparent credential injection for artifact upload and source access in build workers ● deep integration ○ GHE, Zalando Sonarqube, Zalenium, Zalando Kubernetes ● “The Second Best Interface is The One You Already Use” - Joao Santos ● scm-source.json generation out of the box ● all configuration in delivery.yaml file

Slide 9

Slide 9 text

9 Way of Working ● team does informed decisions ○ programming language ○ proxy technology ● weekly presentations (recorded for the whole company) ● weekly stakeholder alignment ● monitoring from the very beginning

Slide 10

Slide 10 text

10 https://www.flickr.com/photos/eyecatcherfotosde/25418973420/ Demo - build https://github.com/zalando/ghe-backup - delivery.yaml - deploy to k8s with Github Enterprise feedback - delivery.yaml https://www.flickr.com/photos/eyecatcherfotosde/25102321260

Slide 11

Slide 11 text

11 https://www.flickr.com/photos/eyecatcherfotosde/25418973420/ - build https://github.com/zalando/ghe-backup - delivery.yaml - deploy to k8s with Github Enterprise feedback - delivery.yaml - (init Container) I’m sure you have questions https://www.flickr.com/photos/eyecatcherfotosde/25397937985