Slide 1

Slide 1 text

© 2017 Mesosphere, Inc. All Rights Reserved. PROS AND CONS OF CI/CD IN A DISTRIBUTED WORLD 1 Michael Hausenblas, Distributed Systems Jester | 2017-02-07 | ConfigManagementCamp, Ghent

Slide 2

Slide 2 text

© 2017 Mesosphere, Inc. 2 research.google.com/pubs/pub35290.html

Slide 3

Slide 3 text

© 2017 Mesosphere, Inc. 3 $$$

Slide 4

Slide 4 text

© 2017 Mesosphere, Inc. 4 What does this mean for a developer? appops

Slide 5

Slide 5 text

© 2017 Mesosphere, Inc. All Rights Reserved. 5 appops The person who writes an app is also the person responsible for operating the app in prod.

Slide 6

Slide 6 text

© 2017 Mesosphere, Inc. All Rights Reserved. 6 T h i s i s n o t a b o u t provisioning a VM, setting up a Kubernetes cluster or replacing a faulty HDD …
 
 … this would be on the infrastructure team. appops

Slide 7

Slide 7 text

© 2017 Mesosphere, Inc. All Rights Reserved. DEVELOPING IN A DISTRIBUTED SETUP 7

Slide 8

Slide 8 text

© 2017 Mesosphere, Inc. All Rights Reserved. ARTIFACTS 8 examples layer source artifacts .scala, .py, .rb, .go, .sh, …
 config files packaging Dockerfile, ACI, OCI runtime Kubernetes replication controller, Marathon app spec,
 Docker compose file

Slide 9

Slide 9 text

© 2017 Mesosphere, Inc. All Rights Reserved. ALTERNATIVE WAYS TO DEVELOP IN A DISTRIBUTED SETUP 9 hackernoon.com/how-we-develop-in-and-with-distributed-systems-66c71e918735 remote local cluster dev cluster dev cluster dev dev cluster pure off-line proxied live pure on-line

Slide 10

Slide 10 text

© 2017 Mesosphere, Inc. All Rights Reserved. ALTERNATIVE WAYS TO DEVELOP IN A DISTRIBUTED SETUP 10 hackernoon.com/how-we-develop-in-and-with-distributed-systems-66c71e918735 DC/OS Vagrant Docker Mac/Windows Minikube, Minishift no need to maintain cluster no costs off-line and fast dev cycles limited scale not really a distributed system not all functionality might be available pure off-line

Slide 11

Slide 11 text

© 2017 Mesosphere, Inc. All Rights Reserved. ALTERNATIVE WAYS TO DEVELOP IN A DISTRIBUTED SETUP 11 hackernoon.com/how-we-develop-in-and-with-distributed-systems-66c71e918735 DC/OS Tunnel kubectl proxy/apiserver proxy almost the real thing (distributed system) fast dev cycles have to maintain cluster/cost limited off-line development proxied

Slide 12

Slide 12 text

© 2017 Mesosphere, Inc. All Rights Reserved. ALTERNATIVE WAYS TO DEVELOP IN A DISTRIBUTED SETUP 12 hackernoon.com/how-we-develop-in-and-with-distributed-systems-66c71e918735 Artifactory + Bamboo + Marathon GitLab CR + Jenkins + OpenShift Quay.io + TeamCity + Tectonic the real thing (distributed system) have to maintain cluster/cost very limited off-line development slow dev cycles live

Slide 13

Slide 13 text

© 2017 Mesosphere, Inc. All Rights Reserved. ALTERNATIVE WAYS TO DEVELOP IN A DISTRIBUTED SETUP 13 hackernoon.com/how-we-develop-in-and-with-distributed-systems-66c71e918735 Google Cloud Shell/GCR/GKE Katacoda Koding the real thing (distributed system) low/no costs scales well no off-line development limited customization/control pure on-line

Slide 14

Slide 14 text

© 2017 Mesosphere, Inc. All Rights Reserved. AND WHAT ABOUT … 14 • Reverse access paths • Logging • Debugging • Load testing • Tracing

Slide 15

Slide 15 text

© 2017 Mesosphere, Inc. All Rights Reserved. LEARNING RESOURCES 15

Slide 16

Slide 16 text

© 2017 Mesosphere, Inc. All Rights Reserved. 16 WHERE CAN
 I LEARN MORE? 16 usenix.org/conference/lisa16/conference-program/presentation/eckhardt Courtney Eckhardt, Heroku

Slide 17

Slide 17 text

© 2017 Mesosphere, Inc. All Rights Reserved. 17 WHERE CAN
 I LEARN MORE? 17 some.ops4devs.info

Slide 18

Slide 18 text

© 2017 Mesosphere, Inc. All Rights Reserved. Q & A 18 • @mhausenblas • mhausenblas.info https://dcos.io