View
215
Download
0
Category
Preview:
Citation preview
Managing Microservices at ScaleAvan MathurGlobal Technical Account Manager -Electric Cloud
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.
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
Intro Docker
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
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
7
Docker 102 containers vs. VMs
Microservices
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
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
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
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
Pipelines
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
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
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
What I’m about to show you
18
Containers
Images from http://slides.com/kennycoleman/introdocker
19
Microservices
Images from https://www.nginx.com/blog/introduction-to-microservices
20
All of the above
21
All of the above
A few words before I demo
23
Everything can be done via the Community Edition
http://electric-cloud.com/downloads/electricflow/communityedition
24
But this is not a product pitch
Demo!
Wrap up
27
Thoughts
• So much more to explore! So much glossed over.• Notion of application manifest. • Zero downtime, Rolling deploys and Roll back.
Thank you!
@avantika_ecamathur@electric-cloud.com
Recommended