SlideShare a Scribd company logo
Developer-first workflows (for
microservices) on Kubernetes
Richard Li
datawire.io
● Building a cloud application using
microservices in 2013
● Distributed systems engineers
● Multiple services
● Prototyping was really fast
● … then velocity slowed down by a lot
when we started getting users and
needing to add more features
2
Microservices at Datawire ...
datawire.io
Part 1: How do I gain the
benefits of microservices?
(How do I break up my monolith?)
(How do I architect my app with microservices?)
(What infrastructure do I need in place before I
can benefit from microservices?)
3
datawire.io 4
Stability/Maturity
Velocity
Prototype Production Mission critical
datawire.io 5
Stability/Maturity
Velocity
Prototype Production Mission critical
datawire.io
How do I break up my monolithic architecture?
How do I break up my monolithic process into
multiple independent processes?
6
datawire.io 7
Define
Code
Test
Release
Prod
datawire.io 8
Define
Code
Test
Release
Prod
Centralized process
● Specialized teams
● Fixed policies (e.g.,
release criteria)
datawire.io 9
Microservices lets you run multiple processes!
datawire.io 10
Industrial Revolution.
datawire.io
Microservices is a distributed
development architecture
workflow.
11
datawire.io 12
Stability/Maturity
Velocity
Prototype Production Mission critical
● How do I get to Continuous Deployment incrementally?
● How do I limit the scope of PCI (audit process)?
● How do I ship feature X as fast as possible?
datawire.io
Microservices is ...
● Multiple workflows
○ Including your existing workflow!
○ Workflows designed for different
stability/velocity tradeoffs
● Simultaneous workflows
13
datawire.io
Doing things this way shifts how people operate!
● Specialists become generalists → design better holistic systems
● Dev vs Ops vs QA → roadmap / API conversations
● Challenging for engineers → More fun!
14
datawire.io
Part 2: How do I create multiple,
simultaneous workflows?
15
datawire.io
Create self-sufficient, autonomous
software teams.
16
datawire.io
Why self-sufficiency and autonomy?
● Self-sufficient
○ Team does not need to rely on other teams to achieve its goals
● Autonomy
○ Team is able to independently make (process) decisions on how to achieve its goals
17
datawire.io
Centralized specialist functions are a common barrier
to self-sufficiency and autonomy
18
Centralized architecture
Centralized infrastructure / ops*
(You might need a platform team,
eventually)
datawire.io 19
datawire.io 20
Monolith
datawire.io 21
Monolith
(soon-to-be) self-sufficient,
autonomous team
datawire.io
I’m stranded on API island. Do I have to
build my workflow from scratch?
22
datawire.io
No! Kubernetes / Docker / Envoy give you the infra you
need
23
datawire.io
Docker
● A consistent build/runtime for your
service
● Run locally or in Kubernetes cluster
● Massive community & ecosystem
○ 14M Docker hosts
○ 3300+ contributors
○ Lots of third party tools
24
datawire.io
Kubernetes
● Cloud POSIX
● Declarative definition of your cloud
infrastructure
● Supported by all major vendors:
Google, Microsoft, Mesos, Docker,
Oracle, Red Hat, IBM all support it
● … except for Amazon.
○ Yet 62% of K8S workloads on AWS
25
datawire.io
Envoy
● Modern L7 proxy, designed for cloud
applications
○ Resilience: global rate-limiting, circuit
breakers
○ APIs for managing fleets of Envoys
○ L7 observability (incl distributed tracing)
● Fast growing ecosystem &
community
○ Maintained by Lyft
○ Google, IBM, Apple, Datawire, Verizon
○ CNCF project
26
datawire.io
Cloud Native Compute Foundation
27
● Istio
● SPIFFE
● App dev
datawire.io
Summary
1. Microservices is a distributed workflow: multiple & simultaneous processes.
2. Start building your distributed workflow by creating a self-sufficient, autonomous
team.
3. Kubernetes / Docker / Envoy give you the basic operational primitives you need.
28
datawire.io
Part 3: How do I actually use these
technologies to build my workflow?
29
datawire.io 30
Monolith
Prototype new feature, FAST
datawire.io 31
Stage 1: Prototyping
Existing workflow: Designed for
mature app, not prototyping
Challenge: Prototyping workflow that
is fast but not one-off
Strategies:
● Dev infra ~= Prod infra
● Self-service operational
infrastructure
datawire.io
Strategy: Dev infrastructure ~= Prod infrastructure
32
● End-to-end
○ Have developers access the service the same way as end users (e.g., through an
API Gateway, ingress, etc.)
● Environmental consistency
○ Insure that your dev runtime is the same as your initial production runtime
○ Environmental differences between dev & prod will cause bugs. So eliminate
them upfront.
Your dev infrastructure should resemble your production
infrastructure as much as possible.
datawire.io
Strategy: Self-service operational infrastructure
33
Infrastructure needs to be configured by the service team, not by
operations (otherwise, there’s a bottleneck.)
Service team needs to be able to
publish new services, without
operations.
Service team has access to the
Kubernetes manifest (maybe they
use a standard template).
datawire.io
Implementing Stage 1 strategies
● Eliminate environmental differences
○ Containerize your service and use the same container for dev & prod
○ Template your Kubernetes manifests so you can use the same manifest for dev & prod
● End-to-end
○ Use an API Gateway for dev and prod (you can even use the same one)
● Self-service operational infrastructure
○ Expose the right configuration options, in a rational way, for your infrastructure to the service
team
■ Kubernetes manifest
■ Configuring your API Gateway
34
datawire.io 35
Monolith
Now in production, and need to
ITERATE
datawire.io 36
Stage 2: Production users
Existing workflow: App-level
integration testing & roll out;
dedicated QA team; unit tests
Challenge: Update service quickly,
while not letting bugs impact the end
user
Strategies:
● Software redundancy
datawire.io
Strategy: Multiple versions for software redundancy
37
End user
Primary version
Canary version
Dev version
datawire.io 38
Stage 3 Internal service consumption
Existing workflow: None
Challenge: Communicate to
consumers the service contract, and
support that contract in the service
Strategy:
● Service level objectives
● Network-level observability &
resilience
datawire.io
● Define the target level of your service as part of your API
● Common SLOs relate to throughput, latency, and availability
○ This API will support up to 5,000 requests per second per consumer
○ The expected latency at p50, p90, p99
● Simple implementation of SLOs can be via monitoring
Strategy: Service level objectives
39
datawire.io
Strategy: Network level observability & resilience
● Observability
○ Figure out which service is causing the problem
○ Need visibility at a network level
○ Distributed tracing (e.g., Jaeger, Zipkin)
● Resilience
○ Avoid cascade failure
○ Network-level rate limiting, circuit breaking, etc.
● Service mesh
○ Strategy for implementing network-level observability & resilience that’s transparent to end users
○ Istio just proposed to the CNCF
40
datawire.io
Summary
1. Microservices is a distributed workflow.
2. Start building your distributed workflow by creating a self-sufficient, autonomous
team.
3. Kubernetes / Docker / Envoy give you the basic operational primitives you need.
4. Your workflow requirements depend on your service maturity (prototype,
production, internal dependencies).
5. Strategies for building your workflow
a. Prototype: Dev ~= Prod, self-service operational infrastructure
b. Production: Software redundancy
c. Internal dependencies: Service level objectives, network-level observability/resilience
41
datawire.io
So how does this work in practice?
42
datawire.io
Your traditional monolith workflow ...
● Intended for iterative improvement & prevent downtime
○ Code locally in dev environment
○ Pull request
○ Branch for release
○ QA branch & integration test on staging environment
○ Release on production environment
● Different environments, specialized teams
43
datawire.io
Versus microservice infrastructure & workflow ...
● Eliminate environmental differences
○ Container -- same run time environment
○ Kubernetes -- same deployment environment
● Self-service operational infrastructure
○ Templated Kubernetes manifest
○ Self-service API Gateway
● Multiple versions for software redundancy
○ Facilitated by API Gateway / router
44
Will let you prototype / launch / update a microservice with a
workflow that’s tailored to feature development.
datawire.io
Thank you!
● richard@datawire.io
● Getting ready to launch hands-on tutorials on building your own distributed
workflow. If you’re interested in being notified, sign up here:
○ https://d6e.co/montrealk8s
● If you’re interested in any of our open source tools, check them out:
○ https://forge.sh for deployment
○ https://www.telepresence.io for real-time live coding
○ https://www.getambassador.io self-service API Gateway built on Envoy
45
END

More Related Content

What's hot (20)

PDF
Immutable Awesomeness by John Willis and Josh Corman
Docker, Inc.
 
PPTX
Microservices and Best Practices
Weaveworks
 
PDF
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
Ambassador Labs
 
PDF
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Docker, Inc.
 
PPTX
LlinuxKit security, Security Scanning and Notary
Docker, Inc.
 
PDF
QCon SF 2017 - Microservices: Service-Oriented Development
Ambassador Labs
 
PPTX
How to Install and Use Kubernetes by Weaveworks
Weaveworks
 
PDF
Back to the Future: Containerize Legacy Applications
Docker, Inc.
 
PDF
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
Docker, Inc.
 
PDF
Modernizing Java Apps with Docker
Docker, Inc.
 
PDF
DCEU 18: 5 Patterns for Success in Application Transformation
Docker, Inc.
 
PDF
DockerCon SF 2015: Ben Golub's Keynote Day 1
Docker, Inc.
 
PPTX
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
PPTX
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
Docker, Inc.
 
PDF
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Docker, Inc.
 
PDF
Building Containers: How Many Ways Are Too Many?
Vietnam Open Infrastructure User Group
 
PPTX
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Patrick Chanezon
 
PDF
Troubleshooting tips from docker support engineers
Docker, Inc.
 
PDF
DCSF19 Deploying Istio as an Ingress Controller
Docker, Inc.
 
PDF
DCEU 18: Docker Containers in a Serverless World
Docker, Inc.
 
Immutable Awesomeness by John Willis and Josh Corman
Docker, Inc.
 
Microservices and Best Practices
Weaveworks
 
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
Ambassador Labs
 
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Docker, Inc.
 
LlinuxKit security, Security Scanning and Notary
Docker, Inc.
 
QCon SF 2017 - Microservices: Service-Oriented Development
Ambassador Labs
 
How to Install and Use Kubernetes by Weaveworks
Weaveworks
 
Back to the Future: Containerize Legacy Applications
Docker, Inc.
 
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
Docker, Inc.
 
Modernizing Java Apps with Docker
Docker, Inc.
 
DCEU 18: 5 Patterns for Success in Application Transformation
Docker, Inc.
 
DockerCon SF 2015: Ben Golub's Keynote Day 1
Docker, Inc.
 
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
Docker, Inc.
 
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Docker, Inc.
 
Building Containers: How Many Ways Are Too Many?
Vietnam Open Infrastructure User Group
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Patrick Chanezon
 
Troubleshooting tips from docker support engineers
Docker, Inc.
 
DCSF19 Deploying Istio as an Ingress Controller
Docker, Inc.
 
DCEU 18: Docker Containers in a Serverless World
Docker, Inc.
 

Similar to Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on Kubernetes (20)

PPTX
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
PDF
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
Ambassador Labs
 
PDF
Docker in Production: How RightScale Delivers Cloud Applications
RightScale
 
PDF
Node.js Service - Best practices in 2019
Olivier Loverde
 
PPTX
Docker12 factor
John Zaccone
 
PPTX
Technology insights: Decision Science Platform
Decision Science Community
 
PDF
Cloud Native Applications on Kubernetes: a DevOps Approach
Nicola Ferraro
 
PDF
Free GitOps Workshop
Weaveworks
 
PPT
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
 
PPT
Integration in the Cloud
Rob Davies
 
PDF
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
NRB
 
PDF
Webinar: Code Faster on Kubernetes
Ambassador Labs
 
PDF
Integration in the Cloud, by Rob Davies
Judy Breedlove
 
PPTX
Application Centric Microservices from Redhat Summit 2015
Ken Owens
 
PDF
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
PDF
Docker Application to Scientific Computing
Peter Bryzgalov
 
PDF
Making Cloud Native CI_CD Services.pdf
Rakuten Group, Inc.
 
PDF
Speed & Agility of Innovation with Docker & Kubernetes
ICS
 
PPTX
CNCF Introduction - Feb 2018
Krishna-Kumar
 
PDF
Efficient platform engineering with Microk8s & gopaddle.pdf
Vinothini Raju
 
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
Ambassador Labs
 
Docker in Production: How RightScale Delivers Cloud Applications
RightScale
 
Node.js Service - Best practices in 2019
Olivier Loverde
 
Docker12 factor
John Zaccone
 
Technology insights: Decision Science Platform
Decision Science Community
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Nicola Ferraro
 
Free GitOps Workshop
Weaveworks
 
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
 
Integration in the Cloud
Rob Davies
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
NRB
 
Webinar: Code Faster on Kubernetes
Ambassador Labs
 
Integration in the Cloud, by Rob Davies
Judy Breedlove
 
Application Centric Microservices from Redhat Summit 2015
Ken Owens
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
Docker Application to Scientific Computing
Peter Bryzgalov
 
Making Cloud Native CI_CD Services.pdf
Rakuten Group, Inc.
 
Speed & Agility of Innovation with Docker & Kubernetes
ICS
 
CNCF Introduction - Feb 2018
Krishna-Kumar
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Vinothini Raju
 
Ad

More from Ambassador Labs (20)

PDF
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Ambassador Labs
 
PDF
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Labs
 
PDF
Cloud native development without the toil
Ambassador Labs
 
PPTX
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Ambassador Labs
 
PDF
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
Ambassador Labs
 
PDF
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
Ambassador Labs
 
PDF
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
Ambassador Labs
 
PDF
What's New in the Ambassador Edge Stack 1.0?
Ambassador Labs
 
PDF
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Ambassador Labs
 
PDF
Ambassador: Building a Control Plane for Envoy
Ambassador Labs
 
PDF
Telepresence - Fast Development Workflows for Kubernetes
Ambassador Labs
 
PDF
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
Ambassador Labs
 
PDF
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
Ambassador Labs
 
PDF
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
Ambassador Labs
 
PDF
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
Ambassador Labs
 
PDF
Ambassador Kubernetes-Native API Gateway
Ambassador Labs
 
PPTX
Micro xchg 2018 - What is a Service Mesh?
Ambassador Labs
 
PDF
MA Microservices Meetup: Move fast and make things
Ambassador Labs
 
PDF
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
Ambassador Labs
 
PDF
2017 Microservices Practitioner Virtual Summit: Move Fast, Make Things: how d...
Ambassador Labs
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Ambassador Labs
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Labs
 
Cloud native development without the toil
Ambassador Labs
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Ambassador Labs
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
Ambassador Labs
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
Ambassador Labs
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
Ambassador Labs
 
What's New in the Ambassador Edge Stack 1.0?
Ambassador Labs
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Ambassador Labs
 
Ambassador: Building a Control Plane for Envoy
Ambassador Labs
 
Telepresence - Fast Development Workflows for Kubernetes
Ambassador Labs
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
Ambassador Labs
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
Ambassador Labs
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
Ambassador Labs
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
Ambassador Labs
 
Ambassador Kubernetes-Native API Gateway
Ambassador Labs
 
Micro xchg 2018 - What is a Service Mesh?
Ambassador Labs
 
MA Microservices Meetup: Move fast and make things
Ambassador Labs
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
Ambassador Labs
 
2017 Microservices Practitioner Virtual Summit: Move Fast, Make Things: how d...
Ambassador Labs
 
Ad

Recently uploaded (20)

PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Tally software_Introduction_Presentation
AditiBansal54083
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 

Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on Kubernetes

  • 2. datawire.io ● Building a cloud application using microservices in 2013 ● Distributed systems engineers ● Multiple services ● Prototyping was really fast ● … then velocity slowed down by a lot when we started getting users and needing to add more features 2 Microservices at Datawire ...
  • 3. datawire.io Part 1: How do I gain the benefits of microservices? (How do I break up my monolith?) (How do I architect my app with microservices?) (What infrastructure do I need in place before I can benefit from microservices?) 3
  • 6. datawire.io How do I break up my monolithic architecture? How do I break up my monolithic process into multiple independent processes? 6
  • 8. datawire.io 8 Define Code Test Release Prod Centralized process ● Specialized teams ● Fixed policies (e.g., release criteria)
  • 9. datawire.io 9 Microservices lets you run multiple processes!
  • 11. datawire.io Microservices is a distributed development architecture workflow. 11
  • 12. datawire.io 12 Stability/Maturity Velocity Prototype Production Mission critical ● How do I get to Continuous Deployment incrementally? ● How do I limit the scope of PCI (audit process)? ● How do I ship feature X as fast as possible?
  • 13. datawire.io Microservices is ... ● Multiple workflows ○ Including your existing workflow! ○ Workflows designed for different stability/velocity tradeoffs ● Simultaneous workflows 13
  • 14. datawire.io Doing things this way shifts how people operate! ● Specialists become generalists → design better holistic systems ● Dev vs Ops vs QA → roadmap / API conversations ● Challenging for engineers → More fun! 14
  • 15. datawire.io Part 2: How do I create multiple, simultaneous workflows? 15
  • 17. datawire.io Why self-sufficiency and autonomy? ● Self-sufficient ○ Team does not need to rely on other teams to achieve its goals ● Autonomy ○ Team is able to independently make (process) decisions on how to achieve its goals 17
  • 18. datawire.io Centralized specialist functions are a common barrier to self-sufficiency and autonomy 18 Centralized architecture Centralized infrastructure / ops* (You might need a platform team, eventually)
  • 22. datawire.io I’m stranded on API island. Do I have to build my workflow from scratch? 22
  • 23. datawire.io No! Kubernetes / Docker / Envoy give you the infra you need 23
  • 24. datawire.io Docker ● A consistent build/runtime for your service ● Run locally or in Kubernetes cluster ● Massive community & ecosystem ○ 14M Docker hosts ○ 3300+ contributors ○ Lots of third party tools 24
  • 25. datawire.io Kubernetes ● Cloud POSIX ● Declarative definition of your cloud infrastructure ● Supported by all major vendors: Google, Microsoft, Mesos, Docker, Oracle, Red Hat, IBM all support it ● … except for Amazon. ○ Yet 62% of K8S workloads on AWS 25
  • 26. datawire.io Envoy ● Modern L7 proxy, designed for cloud applications ○ Resilience: global rate-limiting, circuit breakers ○ APIs for managing fleets of Envoys ○ L7 observability (incl distributed tracing) ● Fast growing ecosystem & community ○ Maintained by Lyft ○ Google, IBM, Apple, Datawire, Verizon ○ CNCF project 26
  • 27. datawire.io Cloud Native Compute Foundation 27 ● Istio ● SPIFFE ● App dev
  • 28. datawire.io Summary 1. Microservices is a distributed workflow: multiple & simultaneous processes. 2. Start building your distributed workflow by creating a self-sufficient, autonomous team. 3. Kubernetes / Docker / Envoy give you the basic operational primitives you need. 28
  • 29. datawire.io Part 3: How do I actually use these technologies to build my workflow? 29
  • 31. datawire.io 31 Stage 1: Prototyping Existing workflow: Designed for mature app, not prototyping Challenge: Prototyping workflow that is fast but not one-off Strategies: ● Dev infra ~= Prod infra ● Self-service operational infrastructure
  • 32. datawire.io Strategy: Dev infrastructure ~= Prod infrastructure 32 ● End-to-end ○ Have developers access the service the same way as end users (e.g., through an API Gateway, ingress, etc.) ● Environmental consistency ○ Insure that your dev runtime is the same as your initial production runtime ○ Environmental differences between dev & prod will cause bugs. So eliminate them upfront. Your dev infrastructure should resemble your production infrastructure as much as possible.
  • 33. datawire.io Strategy: Self-service operational infrastructure 33 Infrastructure needs to be configured by the service team, not by operations (otherwise, there’s a bottleneck.) Service team needs to be able to publish new services, without operations. Service team has access to the Kubernetes manifest (maybe they use a standard template).
  • 34. datawire.io Implementing Stage 1 strategies ● Eliminate environmental differences ○ Containerize your service and use the same container for dev & prod ○ Template your Kubernetes manifests so you can use the same manifest for dev & prod ● End-to-end ○ Use an API Gateway for dev and prod (you can even use the same one) ● Self-service operational infrastructure ○ Expose the right configuration options, in a rational way, for your infrastructure to the service team ■ Kubernetes manifest ■ Configuring your API Gateway 34
  • 35. datawire.io 35 Monolith Now in production, and need to ITERATE
  • 36. datawire.io 36 Stage 2: Production users Existing workflow: App-level integration testing & roll out; dedicated QA team; unit tests Challenge: Update service quickly, while not letting bugs impact the end user Strategies: ● Software redundancy
  • 37. datawire.io Strategy: Multiple versions for software redundancy 37 End user Primary version Canary version Dev version
  • 38. datawire.io 38 Stage 3 Internal service consumption Existing workflow: None Challenge: Communicate to consumers the service contract, and support that contract in the service Strategy: ● Service level objectives ● Network-level observability & resilience
  • 39. datawire.io ● Define the target level of your service as part of your API ● Common SLOs relate to throughput, latency, and availability ○ This API will support up to 5,000 requests per second per consumer ○ The expected latency at p50, p90, p99 ● Simple implementation of SLOs can be via monitoring Strategy: Service level objectives 39
  • 40. datawire.io Strategy: Network level observability & resilience ● Observability ○ Figure out which service is causing the problem ○ Need visibility at a network level ○ Distributed tracing (e.g., Jaeger, Zipkin) ● Resilience ○ Avoid cascade failure ○ Network-level rate limiting, circuit breaking, etc. ● Service mesh ○ Strategy for implementing network-level observability & resilience that’s transparent to end users ○ Istio just proposed to the CNCF 40
  • 41. datawire.io Summary 1. Microservices is a distributed workflow. 2. Start building your distributed workflow by creating a self-sufficient, autonomous team. 3. Kubernetes / Docker / Envoy give you the basic operational primitives you need. 4. Your workflow requirements depend on your service maturity (prototype, production, internal dependencies). 5. Strategies for building your workflow a. Prototype: Dev ~= Prod, self-service operational infrastructure b. Production: Software redundancy c. Internal dependencies: Service level objectives, network-level observability/resilience 41
  • 42. datawire.io So how does this work in practice? 42
  • 43. datawire.io Your traditional monolith workflow ... ● Intended for iterative improvement & prevent downtime ○ Code locally in dev environment ○ Pull request ○ Branch for release ○ QA branch & integration test on staging environment ○ Release on production environment ● Different environments, specialized teams 43
  • 44. datawire.io Versus microservice infrastructure & workflow ... ● Eliminate environmental differences ○ Container -- same run time environment ○ Kubernetes -- same deployment environment ● Self-service operational infrastructure ○ Templated Kubernetes manifest ○ Self-service API Gateway ● Multiple versions for software redundancy ○ Facilitated by API Gateway / router 44 Will let you prototype / launch / update a microservice with a workflow that’s tailored to feature development.
  • 45. datawire.io Thank you! ● [email protected] Getting ready to launch hands-on tutorials on building your own distributed workflow. If you’re interested in being notified, sign up here: ○ https://d6e.co/montrealk8s ● If you’re interested in any of our open source tools, check them out: ○ https://forge.sh for deployment ○ https://www.telepresence.io for real-time live coding ○ https://www.getambassador.io self-service API Gateway built on Envoy 45
  • 46. END