Slide 1

Slide 1 text

Managing Microservices at Scale Avan Mathur Global Technical Account Manager - Electric Cloud

Slide 2

Slide 2 text

2 Introductions Avan Mathur @avantika_ec Global Technical Account Manager at Electric Cloud I work with large enterprises to design and implement their DevOps automation and application release pipelines at scale.

Slide 3

Slide 3 text

3 Electric Cloud: Powering Continuous Delivery ElectricFlow Deploy Pipeline & Release Management ElectricAccelerator Build & Test Acceleration DevOps Automation Platform Build DELIVERY Plugs right in to your existing tools CONTINUOUS Build Test DEV OPS

Slide 4

Slide 4 text

Intro Docker

Slide 5

Slide 5 text

5 Containers vs. VMs

Slide 6

Slide 6 text

6 Enter Docker  https://docker.io/  Open Source  Used to wrap LXC, now has its own container implementation  Really, really fast. Start measuring in milliseconds

Slide 7

Slide 7 text

7 Why are people excited about containers?  Builds can be done inside the container, gives file system isolation and reproducibility.  Development/Production Parity. The container is the deployable artifact.  Container start up times measured in milliseconds

Slide 8

Slide 8 text

Microservices

Slide 9

Slide 9 text

9 What are Microservices?  A pattern for building distributed systems: • A suite of services, each running in its own process, each exposing an API • Independently developed • Independently deployable • Each service is focused on doing one thing well “Gather together those things that change for the same reason, and separate those things that change for different reasons.” – Robert Martin

Slide 10

Slide 10 text

10 What’s good/bad about monolithic apps?  Can be easier to test  Can be easier to develop  Can’t deploy anything until you deploy everything  Harder to learn and understand the code  Easier to produce spaghetti code  Hard to adopt new technologies  You have to scale everything to scale anything

Slide 11

Slide 11 text

11 What’s cool about Microservices?  Loose coupling, so each service can: • choose the tooling that’s appropriate for the problem it solves • can be scaled as appropriate, independent of other services • can have its own lifecycle independent of other services  Makes it easier to adopt new technologies  Smaller more autonomous teams are more productive

Slide 12

Slide 12 text

12 Am I ready for Microservices?  If you’re just starting out, stay monolithic until you understand the problem better  You need to be good at infrastructure provisioning  You need to be good at rapid application deployment  You need to be good at monitoring http://martinfowler.com/bliki/MicroservicePrerequisites.html

Slide 13

Slide 13 text

Pipelines

Slide 14

Slide 14 text

14 Designing your pipeline  Independent CI and Deployment pipelines per service  “Automate all things” • plug in all of your toolchain to orchestrate the entire pipeline  Tools/environment agnostic to support each team’s workflow and tool chain  Test automation and service virtualization

Slide 15

Slide 15 text

15 Designing your Pipeline  Record the log of each artifact as it makes its way through the pipeline  Use parameters and modeling of the pipeline components for reusability  Bake compliance into the pipeline by binding certain security checks and acceptance tests  Allow for both automatic and manual approval gates

Slide 16

Slide 16 text

16 Pipeline view and Monitoring  Consistent monitoring across all services  Provide a real-time view of all pipeline statuses  Plug pipeline automation into monitoring so alerts can trigger automatic processes

Slide 17

Slide 17 text

What I’m about to show you

Slide 18

Slide 18 text

18 Microservices Images from https://www.nginx.com/blog/introduction-to- microservices

Slide 19

Slide 19 text

19 All of the above

Slide 20

Slide 20 text

20 All of the above

Slide 21

Slide 21 text

21 Containers Images from http://slides.com/kennycoleman/introdocker

Slide 22

Slide 22 text

22 Weather Dashboard  12 weather widgets  Initially show as a Monolith  CD pipelines for each microservice

Slide 23

Slide 23 text

23 Pipeline

Slide 24

Slide 24 text

A few words before I demo

Slide 25

Slide 25 text

25 Everything can be done via the Community Edition http://electric-cloud.com/downloads/electricflow/communityedition

Slide 26

Slide 26 text

26 But this is not a product pitch

Slide 27

Slide 27 text

Demo!

Slide 28

Slide 28 text

Wrap up

Slide 29

Slide 29 text

29 Thoughts • So much more to explore! So much glossed over. • Separate hosts and environments per microservice • Tools and practices for monitoring • Zero downtime, Rolling deploys and Roll back.

Slide 30

Slide 30 text

@avantika_ec [email protected]