Managing Microservices at Scale

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

Transcript of Managing Microservices at Scale

Page 1: Managing Microservices at Scale

Managing Microservices at ScaleAvan MathurGlobal Technical Account Manager -Electric Cloud

Page 2: Managing Microservices at Scale

2

Introductions

Avan Mathur@avantika_ec

Global Technical Account Manager at Electric CloudI work with large enterprises to design and implement their DevOps automation and application release pipelines at scale.

Page 3: Managing Microservices at Scale

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

Page 4: Managing Microservices at Scale

Intro Docker

Page 5: Managing Microservices at Scale

5

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

Page 6: Managing Microservices at Scale

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

Page 7: Managing Microservices at Scale

7

Docker 102 containers vs. VMs

Page 8: Managing Microservices at Scale

Microservices

Page 9: Managing Microservices at Scale

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

Page 10: Managing Microservices at Scale

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

Page 11: Managing Microservices at Scale

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

Page 12: Managing Microservices at Scale

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

Page 13: Managing Microservices at Scale

Pipelines

Page 14: Managing Microservices at Scale

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

Page 15: Managing Microservices at Scale

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

Page 16: Managing Microservices at Scale

16

Pipeline view and Monitoring

Provide a real-time view of all pipeline statuses Consistent monitoring across all services Plug pipeline automation into monitoring so alerts can

trigger automatic processes

Page 17: Managing Microservices at Scale

What I’m about to show you

Page 18: Managing Microservices at Scale

18

Containers

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

Page 19: Managing Microservices at Scale

19

Microservices

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

Page 20: Managing Microservices at Scale

20

All of the above

Page 21: Managing Microservices at Scale

21

All of the above

Page 22: Managing Microservices at Scale

A few words before I demo

Page 23: Managing Microservices at Scale

23

Everything can be done via the Community Edition

http://electric-cloud.com/downloads/electricflow/communityedition

Page 24: Managing Microservices at Scale

24

But this is not a product pitch

Page 25: Managing Microservices at Scale

Demo!

Page 26: Managing Microservices at Scale

Wrap up

Page 27: Managing Microservices at Scale

27

Thoughts

• So much more to explore! So much glossed over.• Notion of application manifest. • Zero downtime, Rolling deploys and Roll back.

Page 28: Managing Microservices at Scale

Thank you!

@[email protected]