SlideShare a Scribd company logo
1 of 41
1 | Copyright © 2019
Lowering the risk of Monolith to
Microservices Migration with
Envoy Proxy and GraphQL
@christianposta
2 | Copyright © 2019 @christianposta
CHRISTIAN POSTA
• Field CTO @ solo.io
• Author of a few books
• Contributor to many open-source projects
• Architect, blogger, speaker, mentor, leader
https://bit.ly/istio-in-action
@christianposta
christian@solo.io
https://blog.christianposta.com
https://slideshare.net/ceposta
3 | Copyright © 2019 @christianposta
Risk
“The existence of more than one possibility. The “true” outcome/state/result/value is not know”
“A state of uncertainty where some of the possibilities involve a loss, catastrophe, or other
undesirable outcome”
- Douglas Hubbard
4 | Copyright © 2019 @christianposta
Monolith
An existing large application developed over the course of many years by different
teams that provides proven business value. Its structure has eroded insofar it
has become very difficult to update and maintain.
5 | Copyright © 2019 @christianposta
Microservice
A highly distracting word that serves to confuse developers, architects,
and IT leaders into believing that we can actually have a utopian application
architecture.
6 | Copyright © 2019 @christianposta
Microservice
A highly distracting word that serves to confuse developers, architects,
and IT leaders into believing that we can actually have a utopian application
architecture.
An architecture optimization that treats the modules of an application
as independently owned and deployed services for the purposes of
increasing an organization’s velocity
7 | Copyright © 2019 @christianposta
Moving monolith to microservices
• Identify boundaries / APIs
• Async or Sync communication patterns?
• What to do with data?
• Need new tools!
• Debugging
• Observability
• Resilience
• Infrastructure optimized for this pattern
8 | Copyright © 2019
Move fast, safely
https://puppet.com/resources/whitepaper/state-of-devops-report
9 | Copyright © 20199 | Copyright © 2019
Controlling the application network
to strangle the monolith
10 | Copyright © 2019 @christianposta
Strangler Pattern
“gradually create a new system around the edges of the old”
https://martinfowler.com/bliki/StranglerFigApplication.html
11 | Copyright © 2019 @christianposta
12 | Copyright © 2019 @christianposta
13 | Copyright © 2019 @christianposta
14 | Copyright © 2019 @christianposta
15 | Copyright © 2019 @christianposta
16 | Copyright © 2019 @christianposta
17 | Copyright © 2019 @christianposta
18 | Copyright © 201918 | Copyright © 2019
Envoy Proxy
19 | Copyright © 2019 @christianposta
Meet Envoy Proxy
http://envoyproxy.io
20 | Copyright © 2019 @christianposta
Envoy Proxy
• service proxy
• written in C++, highly parallel, non-blocking
• L3/4 network filter
• out of the box L7 filters
• HTTP 1.1/2, gRPC, websockets, Kafka, AMQP, NATS
• baked in service discovery/health checking
• advanced load balancing
• stats, metrics, tracing
• dynamic configuration through xDS
21 | Copyright © 2019 @christianposta
Envoy Proxy implements:
• zone aware, least request load balancing
• circuit breaking
• outlier detection
• retries, retry policies
• timeout (including budgets)
• traffic shadowing
• rate limiting
• access logging, statistics collection
• Many other features!
22 | Copyright © 2019 @christianposta
23 | Copyright © 201923 | Copyright © 2019
The API is what we care about
24 | Copyright © 2019 @christianposta
25 | Copyright © 2019 @christianposta
26 | Copyright © 2019 @christianposta
API Gateway Pattern
“A service that’s the entry point into the microservices-
based application … is responsible for request routing,
API composition, protocol translation …
and edge functions like authentication,
authorization, rate limiting, caching, et. al.”
See also:
https://microservices.io/patterns/apigateway.html
https://www.manning.com/books/microservices-patterns
27 | Copyright © 2019 @christianposta
API Gateway pattern built on Envoy
https://github.com/solo-io/gloo
28 | Copyright © 2019 @christianposta
What is Gloo?
● Open-source; ASLv2
● Built on Envoy Proxy
● Routing engine for “function” composition
● SOAP, Swagger/REST, gRPC, HTTP/1, HTTP/2,
WebSockets
● Transformations
● Powerful discovery mechanisms
● Extensible control plane
https://gloo.solo.io
29 | Copyright © 2019 @christianposta
What is Gloo?
● Weighted routing, canary releases
● Offload authentication/authorization
● OAuth flows
● Plugin in to platform auth services
● TLS termination, passthrough, mTLS
● Rate limiting
● Dynamic configuration
● Deploy to any infrastructure
● Kubernetes native (when deployed to Kubernetes)
https://gloo.solo.io
30 | Copyright © 2019 @christianposta
Gloo composes functions
● Request path
● Method
● Headers
● Body shape/type
● AWS Lambdas
● Google Cloud Functions
● Azure Functions
func updateShoppingCart(custId int, item Item)
Cart
31 | Copyright © 2019 @christianposta
Gloo composes functions
● Request path
● Method
● Headers
● Body shape/type
● AWS Lambdas
● Google Cloud Functions
● Azure Functions
32 | Copyright © 2019 @christianposta
Functions?
● Request path
● Method
● Headers
● Body shape/type
● AWS Lambdas
● Google Cloud Functions
● Azure Functions
33 | Copyright © 2019 @christianposta
Gloo control plane
34 | Copyright © 2019 @christianposta
Use Gloo to build a API Gateway
foo.io/customer foo.io/order bar.io/account bar.io/order
Monolith Microservice
s
Cloud Functions Hybrid Application
35 | Copyright © 201935 | Copyright © 2019
Composing APIs with GraphQL
36 | Copyright © 2019 @christianposta
GraphQL: provide query API for API gateway
Query
Monolith Microservice
s
Cloud Functions
Result
37 | Copyright © 2019 @christianposta
Gloo companion project: Sqoop
Query
Monolith Microservice
s
Cloud Functions
Result
https://sqoop.solo.io
38 | Copyright © 2019 @christianposta
Gloo companion project: Sqoop
https://sqoop.solo.io
● OpenSource GraphQL engine built on top of Gloo
● Configure GraphQL Schemas and Resolvers
● Default use Gloo upstreams as resolvers
● Leverage Gloo
○ Caching
○ Transformations
○ Security
○ Routing
○ Observability
● Can extend resolvers
• Part of newly announced GraphQL Foundation
http://bit.ly/graphql-foundation
39 | Copyright © 2019 @christianposta
Check out Gloo!
https://gloo.solo.io https://sqoop.solo.io https://supergloo.solo.io
40 | Copyright © 2019 @christianposta
CHRISTIAN POSTA
@christianposta
christian@solo.io
https://blog.christianposta.com
https://slideshare.net/ceposta
41 | Copyright © 201941 | Copyright © 2019
@soloio_inc

More Related Content

What's hot

Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
confluent
 

What's hot (20)

GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
 
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
Performance Analysis and Optimizations for Kafka Streams Applications (Guozha...
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
 
Vault - Secret and Key Management
Vault - Secret and Key ManagementVault - Secret and Key Management
Vault - Secret and Key Management
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Kong API Gateway
Kong API Gateway Kong API Gateway
Kong API Gateway
 
HashiCorp's Vault - The Examples
HashiCorp's Vault - The ExamplesHashiCorp's Vault - The Examples
HashiCorp's Vault - The Examples
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
 
Cilium - Network security for microservices
Cilium - Network security for microservicesCilium - Network security for microservices
Cilium - Network security for microservices
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
eBPF - Observability In Deep
eBPF - Observability In DeepeBPF - Observability In Deep
eBPF - Observability In Deep
 
How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?
 
Hashicorp Vault ppt
Hashicorp Vault pptHashicorp Vault ppt
Hashicorp Vault ppt
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
How to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah CrowleyHow to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah Crowley
 
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito Pact
 
IPFS introduction
IPFS introductionIPFS introduction
IPFS introduction
 

Similar to Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microservice Migration

Role of edge gateways in relation to service mesh adoption
Role of edge gateways in relation to service mesh adoptionRole of edge gateways in relation to service mesh adoption
Role of edge gateways in relation to service mesh adoption
Christian Posta
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
Christian Posta
 

Similar to Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microservice Migration (20)

Role of edge gateways in relation to service mesh adoption
Role of edge gateways in relation to service mesh adoptionRole of edge gateways in relation to service mesh adoption
Role of edge gateways in relation to service mesh adoption
 
Service Mesh in the Real World [Raleigh NC Meetup]
Service Mesh in the Real World [Raleigh NC Meetup]Service Mesh in the Real World [Raleigh NC Meetup]
Service Mesh in the Real World [Raleigh NC Meetup]
 
The Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneThe Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data Plane
 
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdNavigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
 
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshService-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
 
Chaos Debugging for Microservices
Chaos Debugging for MicroservicesChaos Debugging for Microservices
Chaos Debugging for Microservices
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on Containers
 
Why reinvent the wheel at Criteo?
Why reinvent the wheel at Criteo? Why reinvent the wheel at Criteo?
Why reinvent the wheel at Criteo?
 
The Current And Future State Of Service Mesh
The Current And Future State Of Service MeshThe Current And Future State Of Service Mesh
The Current And Future State Of Service Mesh
 
Running Consul on Kubernetes and Beyond
Running Consul on Kubernetes and BeyondRunning Consul on Kubernetes and Beyond
Running Consul on Kubernetes and Beyond
 
Optimize All the Things WCOC 2019
Optimize All the Things WCOC 2019Optimize All the Things WCOC 2019
Optimize All the Things WCOC 2019
 
Leveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud OrchestrationLeveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud Orchestration
 
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
 
Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)
 
Oracle Blockchain Experience Day
Oracle Blockchain Experience DayOracle Blockchain Experience Day
Oracle Blockchain Experience Day
 
Integrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelIntegrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and Camel
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Rebuilding Web Tracking Infrastructure for Scale
Rebuilding Web Tracking Infrastructure for ScaleRebuilding Web Tracking Infrastructure for Scale
Rebuilding Web Tracking Infrastructure for Scale
 

More from Christian Posta

API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
Christian Posta
 
Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
Christian Posta
 

More from Christian Posta (20)

Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Understanding Wireguard, TLS and Workload Identity
Understanding Wireguard, TLS and Workload IdentityUnderstanding Wireguard, TLS and Workload Identity
Understanding Wireguard, TLS and Workload Identity
 
Compliance and Zero Trust Ambient Mesh
Compliance and Zero Trust Ambient MeshCompliance and Zero Trust Ambient Mesh
Compliance and Zero Trust Ambient Mesh
 
Cilium + Istio with Gloo Mesh
Cilium + Istio with Gloo MeshCilium + Istio with Gloo Mesh
Cilium + Istio with Gloo Mesh
 
Multi-cluster service mesh with GlooMesh
Multi-cluster service mesh with GlooMeshMulti-cluster service mesh with GlooMesh
Multi-cluster service mesh with GlooMesh
 
Multicluster Kubernetes and Service Mesh Patterns
Multicluster Kubernetes and Service Mesh PatternsMulticluster Kubernetes and Service Mesh Patterns
Multicluster Kubernetes and Service Mesh Patterns
 
Cloud-Native Application Debugging with Envoy and Service Mesh
Cloud-Native Application Debugging with Envoy and Service MeshCloud-Native Application Debugging with Envoy and Service Mesh
Cloud-Native Application Debugging with Envoy and Service Mesh
 
Deep Dive: Building external auth plugins for Gloo Enterprise
Deep Dive: Building external auth plugins for Gloo EnterpriseDeep Dive: Building external auth plugins for Gloo Enterprise
Deep Dive: Building external auth plugins for Gloo Enterprise
 
Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1
 
API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
 
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
 
PHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh LandscapePHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh Landscape
 
Intro to Knative
Intro to KnativeIntro to Knative
Intro to Knative
 
API World: The service-mesh landscape
API World: The service-mesh landscapeAPI World: The service-mesh landscape
API World: The service-mesh landscape
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
 
Come for the traffic management, stay for the security
Come for the traffic management, stay for the securityCome for the traffic management, stay for the security
Come for the traffic management, stay for the security
 
A microservices journey - Round 2
A microservices journey - Round 2A microservices journey - Round 2
A microservices journey - Round 2
 
An eventful tour from enterprise integration to serverless and functions
An eventful tour from enterprise integration to serverless and functionsAn eventful tour from enterprise integration to serverless and functions
An eventful tour from enterprise integration to serverless and functions
 
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservicesLowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microservice Migration

  • 1. 1 | Copyright © 2019 Lowering the risk of Monolith to Microservices Migration with Envoy Proxy and GraphQL @christianposta
  • 2. 2 | Copyright © 2019 @christianposta CHRISTIAN POSTA • Field CTO @ solo.io • Author of a few books • Contributor to many open-source projects • Architect, blogger, speaker, mentor, leader https://bit.ly/istio-in-action @christianposta christian@solo.io https://blog.christianposta.com https://slideshare.net/ceposta
  • 3. 3 | Copyright © 2019 @christianposta Risk “The existence of more than one possibility. The “true” outcome/state/result/value is not know” “A state of uncertainty where some of the possibilities involve a loss, catastrophe, or other undesirable outcome” - Douglas Hubbard
  • 4. 4 | Copyright © 2019 @christianposta Monolith An existing large application developed over the course of many years by different teams that provides proven business value. Its structure has eroded insofar it has become very difficult to update and maintain.
  • 5. 5 | Copyright © 2019 @christianposta Microservice A highly distracting word that serves to confuse developers, architects, and IT leaders into believing that we can actually have a utopian application architecture.
  • 6. 6 | Copyright © 2019 @christianposta Microservice A highly distracting word that serves to confuse developers, architects, and IT leaders into believing that we can actually have a utopian application architecture. An architecture optimization that treats the modules of an application as independently owned and deployed services for the purposes of increasing an organization’s velocity
  • 7. 7 | Copyright © 2019 @christianposta Moving monolith to microservices • Identify boundaries / APIs • Async or Sync communication patterns? • What to do with data? • Need new tools! • Debugging • Observability • Resilience • Infrastructure optimized for this pattern
  • 8. 8 | Copyright © 2019 Move fast, safely https://puppet.com/resources/whitepaper/state-of-devops-report
  • 9. 9 | Copyright © 20199 | Copyright © 2019 Controlling the application network to strangle the monolith
  • 10. 10 | Copyright © 2019 @christianposta Strangler Pattern “gradually create a new system around the edges of the old” https://martinfowler.com/bliki/StranglerFigApplication.html
  • 11. 11 | Copyright © 2019 @christianposta
  • 12. 12 | Copyright © 2019 @christianposta
  • 13. 13 | Copyright © 2019 @christianposta
  • 14. 14 | Copyright © 2019 @christianposta
  • 15. 15 | Copyright © 2019 @christianposta
  • 16. 16 | Copyright © 2019 @christianposta
  • 17. 17 | Copyright © 2019 @christianposta
  • 18. 18 | Copyright © 201918 | Copyright © 2019 Envoy Proxy
  • 19. 19 | Copyright © 2019 @christianposta Meet Envoy Proxy http://envoyproxy.io
  • 20. 20 | Copyright © 2019 @christianposta Envoy Proxy • service proxy • written in C++, highly parallel, non-blocking • L3/4 network filter • out of the box L7 filters • HTTP 1.1/2, gRPC, websockets, Kafka, AMQP, NATS • baked in service discovery/health checking • advanced load balancing • stats, metrics, tracing • dynamic configuration through xDS
  • 21. 21 | Copyright © 2019 @christianposta Envoy Proxy implements: • zone aware, least request load balancing • circuit breaking • outlier detection • retries, retry policies • timeout (including budgets) • traffic shadowing • rate limiting • access logging, statistics collection • Many other features!
  • 22. 22 | Copyright © 2019 @christianposta
  • 23. 23 | Copyright © 201923 | Copyright © 2019 The API is what we care about
  • 24. 24 | Copyright © 2019 @christianposta
  • 25. 25 | Copyright © 2019 @christianposta
  • 26. 26 | Copyright © 2019 @christianposta API Gateway Pattern “A service that’s the entry point into the microservices- based application … is responsible for request routing, API composition, protocol translation … and edge functions like authentication, authorization, rate limiting, caching, et. al.” See also: https://microservices.io/patterns/apigateway.html https://www.manning.com/books/microservices-patterns
  • 27. 27 | Copyright © 2019 @christianposta API Gateway pattern built on Envoy https://github.com/solo-io/gloo
  • 28. 28 | Copyright © 2019 @christianposta What is Gloo? ● Open-source; ASLv2 ● Built on Envoy Proxy ● Routing engine for “function” composition ● SOAP, Swagger/REST, gRPC, HTTP/1, HTTP/2, WebSockets ● Transformations ● Powerful discovery mechanisms ● Extensible control plane https://gloo.solo.io
  • 29. 29 | Copyright © 2019 @christianposta What is Gloo? ● Weighted routing, canary releases ● Offload authentication/authorization ● OAuth flows ● Plugin in to platform auth services ● TLS termination, passthrough, mTLS ● Rate limiting ● Dynamic configuration ● Deploy to any infrastructure ● Kubernetes native (when deployed to Kubernetes) https://gloo.solo.io
  • 30. 30 | Copyright © 2019 @christianposta Gloo composes functions ● Request path ● Method ● Headers ● Body shape/type ● AWS Lambdas ● Google Cloud Functions ● Azure Functions func updateShoppingCart(custId int, item Item) Cart
  • 31. 31 | Copyright © 2019 @christianposta Gloo composes functions ● Request path ● Method ● Headers ● Body shape/type ● AWS Lambdas ● Google Cloud Functions ● Azure Functions
  • 32. 32 | Copyright © 2019 @christianposta Functions? ● Request path ● Method ● Headers ● Body shape/type ● AWS Lambdas ● Google Cloud Functions ● Azure Functions
  • 33. 33 | Copyright © 2019 @christianposta Gloo control plane
  • 34. 34 | Copyright © 2019 @christianposta Use Gloo to build a API Gateway foo.io/customer foo.io/order bar.io/account bar.io/order Monolith Microservice s Cloud Functions Hybrid Application
  • 35. 35 | Copyright © 201935 | Copyright © 2019 Composing APIs with GraphQL
  • 36. 36 | Copyright © 2019 @christianposta GraphQL: provide query API for API gateway Query Monolith Microservice s Cloud Functions Result
  • 37. 37 | Copyright © 2019 @christianposta Gloo companion project: Sqoop Query Monolith Microservice s Cloud Functions Result https://sqoop.solo.io
  • 38. 38 | Copyright © 2019 @christianposta Gloo companion project: Sqoop https://sqoop.solo.io ● OpenSource GraphQL engine built on top of Gloo ● Configure GraphQL Schemas and Resolvers ● Default use Gloo upstreams as resolvers ● Leverage Gloo ○ Caching ○ Transformations ○ Security ○ Routing ○ Observability ● Can extend resolvers • Part of newly announced GraphQL Foundation http://bit.ly/graphql-foundation
  • 39. 39 | Copyright © 2019 @christianposta Check out Gloo! https://gloo.solo.io https://sqoop.solo.io https://supergloo.solo.io
  • 40. 40 | Copyright © 2019 @christianposta CHRISTIAN POSTA @christianposta christian@solo.io https://blog.christianposta.com https://slideshare.net/ceposta
  • 41. 41 | Copyright © 201941 | Copyright © 2019 @soloio_inc

Editor's Notes

  1. …… new challenge….. Let’s come back to that…..
  2. …… new challenge….. Let’s come back to that…..
  3. …… new challenge….. Let’s come back to that…..
  4. …… new challenge….. Let’s come back to that…..
  5. …… new challenge….. Let’s come back to that…..
  6. …… new challenge….. Let’s come back to that…..
  7. …… new challenge….. Let’s come back to that…..
  8. Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  9. Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  10. Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  11. Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  12. \