SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
IstioIstio  
February 2018
Lee Calcote
as the service proxyas the service proxynginMeshnginMesh
calcotestudios.com/talks
the extensible service meshthe extensible service mesh
Lee CalcoteLee Calcote
linkedin.com/in/leecalcote
@lcalcote
gingergeek.com
lee@calcotestudios.com
clouds, containers, functions,
applications and their management
calcotestudios.com/talks
github.com/leecalcote
MicroservicesMicroservices
The more, the more merrier?The more, the more merrier?
BenefitsBenefits
The first few services are relatively easy
 
 
Democratization of language and technology
choice
 
Faster delivery, service teams running
independently, rolling updates
@lcalcote
ChallengesChallenges
The next 10 or so may introduce pain
 
 
Language and framework specific libraries
 
 
Distributed environments, ephemeral
infrastructure, out-moded tooling
Which is why...Which is why...
 I have a container I have a container
orchestrator.orchestrator.
@lcalcote
CoreCore
CapabilitiesCapabilities
Cluster Management
Host Discovery
Host Health Monitoring
Scheduling
Orchestrator Updates and Host
Maintenance
Service Discovery
Networking and Load-Balancing
Stateful services
Multi-tenant, multi-region
AdditionalAdditional
Key CapabilitiesKey Capabilities
Application Health & Performance
Monitoring
Application Deployments
Application Secrets
@lcalcote
What do we need?What do we need?
• Observability
• Logging
• Metrics
• Tracing
• Traffic Control
• Resiliency
• Efficiency
• Security
• Policy
@lcalcote
a Service Mesha Service Mesh
What is a Service Mesh?What is a Service Mesh?
a dedicated layer for managing service-to-service
communication
@lcalcote
so, a microservices platform?
obviously.
Orchestrators don't bring all that you need
and neither do service meshes,
but they do get you closer.
Missing: application lifecycle management, but not by much
partially.
a services-first networka services-first network
Missing: distributed debugging; provide nascent visibility (topology)
@lcalcote
DEVDEV OPSOPS
Layer 5Layer 5
where Dev and Ops meet
Problem: too much infrastructure code in services
Why use a Service Mesh?Why use a Service Mesh?
to avoid...
Bloated service code
Duplicating work to make services production-ready
load balancing, auto scaling, rate limiting, traffic routing, ...
Inconsistency across services
retry, tls, failover, deadlines, cancellation, etc, for each language, framework
silo'ed implementations lead to fragmented, non-uniform policy application and difficult debugging
Diffusing responsibility of service management
@lcalcote
Help with ModernizationHelp with Modernization
@lcalcote
 
Can modernize your IT inventory without:
Rewriting your applications
Adopting microservices, regular services are fine
Adopting new frameworks
Moving to the cloud
Address the long-tail of IT services
Get there for free
What is Istio?What is Istio?
An open platform to connect, manage, and secure microservices
@lcalcote
Observability
Resiliency
Traffic Control
Security
Policy Enforcement
istio.io github.com/istio@IstioMesh
ObservabilityObservability
is what gets people hooked on service metrics
@lcalcote
GoalsGoals
Metrics without instrumenting apps
Consistent metrics across fleet
Trace flow of requests across services
Portable across metric backend
providers
You get a metric!  You get a metric!  Everyone gets a metric!
Traffic ControlTraffic Control
control over chaos
@lcalcote
Traffic splitting
L7 tag based routing?
Traffic steering
Look at the contents of a request and
route it to a specific set of instances.
Ingress and egress routing
ResilencyResilency
 
Systematic fault injection
Timeouts and Retries with timeout
budget
Circuit breakers and Health checks
Control connection pool size and
request load
 
content-based traffic steering
IstioIstio
ArchitectureArchitecture
IstioIstio
ArchitectureArchitecture
@lcalcote
ControlPlaneDataPlane
Touches every packet/request in the system. Responsible
for service discovery, health checking, routing, load
balancing, authentication, authorization and
observability.
Provides policy and configuration for services in the mesh.
Takes a set of isolated stateless sidecar proxies and turns
them into a distributed system.
Does not touch any packets/requests in the system.
IstioIstio
ArchitectureArchitecture
@lcalcote
Pilot Auth Mixer
ControlPlaneDataPlane
istio-system namespace
policycheck
Foo Pod
Proxy sidecar
Service Foo
tlscerts
discovery&config
Foo Container
Bar Pod
Proxy sidecar
Service Bar
Bar Container
Out-of-band
telemetry
propagation
telemetry
 
reports
Control flow
during request
processing
application traffic
application
traffic
application namespace
telem
etry
reports
What's Pilot for?What's Pilot for?
@lcalcote
provides service discovery to sidecars
manages sidecar configuration
Pilot Auth
Control Plane
the head of the ship
Mixer
istio-system namespace
system of record for service mesh
}provides abstraction from underlying platforms
What's Mixer for?What's Mixer for?
Point of integration with infrastructure backends
Intermediates between Istio and backends, under operator control
Enables platform & environment mobility
Responsible for policy evaluation and telemetry reporting
Provides granular control over operational policies and telemetry
Has a rich configuration model
Intent-based config abstracts most infrastructure concerns
@lcalcote
Pilot Auth Mixer
Control Plane istio-system namespace
an attribute-processing and routing machine
operator-focused
1. Precondition checking
2. Quota management
3. Telemetry reporting
What's Auth for?What's Auth for?
@lcalcote
Verifiable identity
Issues certs
Certs distributed to service proxies
Mounted as a Kubernetes secret
Secure naming / addressing
Traffic encryption
Pilot Auth
Control Plane
security at scale
Mixer
istio-system namespace
security by default
Orchestrate Key & Certificate:
Generation
Deployment
Rotation
Revocation
 
Service Proxy SidecarService Proxy Sidecar
A C++ based L4/L7 proxy
Low memory footprint
In production at Lyft
@lcalcote
Capabilities:
API driven config updates no reloads
Zone-aware load balancing w/ failover
Traffic routing and splitting
Health checks, circuit breakers, timeouts,
retry budgets, fault injection…
HTTP/2 & gRPC
Transparent proxying
Designed for observability
 
the included battery
DataPlane
Pod
Proxy sidecar App Container
Extensibility of IstioExtensibility of Istio
@lcalcote
AppOptics
@lcalcote
Uses pluggable adapters to extend its functionality
Adapters run within the Mixer process
Adapters are modules that interface to
infrastructure backends
(logging, metrics, quotas, etc.)
Multi-interface adapters are possible
(e.g. AppOptics adapter exposing logs & metrics)
Mixer AdaptersMixer Adapters
sending telemetry
Papertrail
Prometheus
Grafana
Fluentd
Statsd
Swapping Proxies - Envoy, Linkerd, Nginx, Conduit
@lcalcote
Forms of ExtensionsForms of Extensions
Why use another service proxy?Why use another service proxy?
Based on your operational expertise and need for battle-tested
proxy. You may be looking for caching, WAF or other
functionality available in NGINX Plus.
If you're already running Linkerd and want to start
adopting Istio control APIs like CheckRequest.
@lcalcote
Conduit not currently designed a general-purpose proxy, but
lightweight and focused with extensibility via gRPC plugin.
nginMeshnginMesh
https://github.com/nginmesh
Currently
Support for rules, policies, mtls
encryption, monitoring & tracing
Compatible with Mixer adaptors
Transparent sidecar injection
Compatible with Istio 0.3.0
@lcalcote
Roadmap
Support for gRPC traffic
Support for ingress proxy
Support for Quota Checks
Expanding the mesh beyond
Kubernetes
See sidecar-related limitations as well as supported traffic management rules --> .here
Considered beta quality
Soliciting feedback and participation from community
Istio &Istio &
nginMeshnginMesh
Architecture
@lcalcote
Pilot Auth Mixer
ControlPlane
agent
Translator agent Istio to Nginx (in go)
Loadable module Nginx to Mixer (in rust)
 
config file
DataPlane "istio-proxy"
container
routerules
istio-system
namespace
check
report
Mixer
Module
dest
module
listener
tcp
http
tcp server
Out-of-band
telemetry
propagation
Control flow
during request
processing
application
traffic
application traffic
http servers
DemoDemo
Let's look at Istio's canonical sample app.
@lcalcote
@lcalcote
BookInfo Sample AppBookInfo Sample App
Reviews v1
Reviews Pod
Reviews v2
Reviews v3
Product Pod
Details
Container
Details Pod
Ratings
Container
Ratings Pod
Product
Container
Reviews Service
@lcalcote
BookInfo Sample AppBookInfo Sample App
Reviews v1
Reviews Pod
Reviews v2
Reviews v3
Product Pod
Details
Container
Details Pod
Ratings
Container
Ratings Pod
Product
Container
Nginx sidecar
Nginx sidecar
Nginx sidecar
Nginx sidecarNginx sidecar
Reviews Service
Nginx sidecar
Envoyingress
@lcalcote
$ kubectl apply -f istio-nginmesh-0.4.0-v2.yaml
$ kubectl apply -f nginmesh-0.4.0-migration/istio/release/install/kubernetes/istio-initializer.yaml
deploy Istio and nginMesh
kubectl get ns
watch kubectl get po,svc -n istio-system
kubectl apply -f nginmesh-0.4.0-migration/istio/release/samples/kubernetes/bookinfo.yaml
confirm deployment Istio; deploy sample app
watch kubectl get po,svc
kubectl get svc istio-ingress -n istio-system -o jsonpath='{.spec.ports[0].nodePort}';echo ''
confirm sample app
DemoDemo
running nginMesh
DemoDemo
running nginMesh
@lcalcote
echo "http://$(kubectl get nodes -o template --template='{{range.items}}{{range.status.addresses}}{{if eq .
See "reviews" v1, v2 and v3
# From Docker's perspective
docker ps | grep nginmesh
# From Kubernetes' perspective
kubectl get po
kubectl describe
Verify nginMesh deployment
# exec into 'istio-proxy'
kubectl exec -it pod -c istio-proxy /bin/bash
Connect to Nginx sidecar
@lcalcote
#takes every request/response and sends to Mixer control plane
See load_module /etc/nginx/modules/ngx_http_istio_mixer_module.so;
# Mixer adapters for telemetry
docker run --rm istio/fortio load -c 1 -t 10m 
`echo "http://$(kubectl get nodes -o template --template='{{range.items}}{{range.status.addresses}}{{if eq .type
Verify mesh configuration
DemoDemo
running nginMesh
#Deploy new configuration to Nginx
istioctl create -f route-rule-all-v1.yaml
istioctl delete -f route-rule-all-v1.yaml
#A/B testing for a user
kubectl apply -f route-rule-reviews-test-v2.yaml
#More for user 'lee'
kubectl exec -it pod -c istio-proxy /bin/bash
more /etc/istio/proxy/conf.d/http_0.0.0.0_9080.conf
Apply traffic routing policySee Mixer telemetry
Lee CalcoteLee Calcote
Thank you. Questions?Thank you. Questions?
clouds, containers, functions,
applications and their management
linkedin.com/in/leecalcote
@lcalcote
gingergeek.com
calcotestudios.com/talks
github.com/leecalcote
lee@calcotestudios.com

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
 
Managing Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on KubernetesManaging Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on Kubernetes
 
The Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at DefragconThe Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at Defragcon
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backend
 
Microservices With Istio Service Mesh
Microservices With Istio Service MeshMicroservices With Istio Service Mesh
Microservices With Istio Service Mesh
 
The service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsThe service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applications
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
 
O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"
 
OpenStack As A Strategy For Future Growth at Cisco
OpenStack As A Strategy For Future Growth at CiscoOpenStack As A Strategy For Future Growth at Cisco
OpenStack As A Strategy For Future Growth at Cisco
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile Edge
 
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
 
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
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
Let's Talk about Packet
Let's Talk about PacketLet's Talk about Packet
Let's Talk about Packet
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack Clouds
 

Similar a Istio: Using nginMesh as the service proxy

Putting microservices on a diet with Istio
Putting microservices on a diet with IstioPutting microservices on a diet with Istio
Putting microservices on a diet with Istio
QAware GmbH
 

Similar a Istio: Using nginMesh as the service proxy (20)

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
 
Introduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetupIntroduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetup
 
Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
 
Putting microservices on a diet with Istio
Putting microservices on a diet with IstioPutting microservices on a diet with Istio
Putting microservices on a diet with Istio
 
Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
Io t data streaming
Io t data streamingIo t data streaming
Io t data streaming
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
Slides: How to Select a PaaS
Slides: How to Select a PaaSSlides: How to Select a PaaS
Slides: How to Select a PaaS
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
 
Unmeshing the service mesh
Unmeshing the service meshUnmeshing the service mesh
Unmeshing the service mesh
 

Más de Lee Calcote

Más de Lee Calcote (16)

Benchmarking Service Meshes - CNCF Networking WG
Benchmarking Service Meshes  - CNCF Networking WGBenchmarking Service Meshes  - CNCF Networking WG
Benchmarking Service Meshes - CNCF Networking WG
 
Service Meshes, but at what cost?
Service Meshes, but at what cost?Service Meshes, but at what cost?
Service Meshes, but at what cost?
 
Establishing an Open Source Program Office
Establishing an Open Source Program OfficeEstablishing an Open Source Program Office
Establishing an Open Source Program Office
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
 
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerUnderstanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManager
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Container World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsContainer World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container Orchestrators
 
Growing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and FacilitateGrowing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and Facilitate
 
Overlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingOverlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container Networking
 
Container Summit Austin
Container Summit AustinContainer Summit Austin
Container Summit Austin
 
Dockercon 16 Recap
Dockercon 16 RecapDockercon 16 Recap
Dockercon 16 Recap
 
From Engines to Orchestrators
From Engines to OrchestratorsFrom Engines to Orchestrators
From Engines to Orchestrators
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
 
Characterizing and Contrasting Container Orchestrators
 Characterizing and Contrasting Container Orchestrators Characterizing and Contrasting Container Orchestrators
Characterizing and Contrasting Container Orchestrators
 
Dockercon EU 2015 Recap
Dockercon EU 2015 RecapDockercon EU 2015 Recap
Dockercon EU 2015 Recap
 

Último

+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@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

+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...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Istio: Using nginMesh as the service proxy

  • 1. IstioIstio   February 2018 Lee Calcote as the service proxyas the service proxynginMeshnginMesh calcotestudios.com/talks the extensible service meshthe extensible service mesh
  • 2. Lee CalcoteLee Calcote linkedin.com/in/leecalcote @lcalcote gingergeek.com lee@calcotestudios.com clouds, containers, functions, applications and their management calcotestudios.com/talks github.com/leecalcote
  • 3. MicroservicesMicroservices The more, the more merrier?The more, the more merrier?
  • 4. BenefitsBenefits The first few services are relatively easy     Democratization of language and technology choice   Faster delivery, service teams running independently, rolling updates @lcalcote ChallengesChallenges The next 10 or so may introduce pain     Language and framework specific libraries     Distributed environments, ephemeral infrastructure, out-moded tooling
  • 5. Which is why...Which is why...  I have a container I have a container orchestrator.orchestrator. @lcalcote
  • 6. CoreCore CapabilitiesCapabilities Cluster Management Host Discovery Host Health Monitoring Scheduling Orchestrator Updates and Host Maintenance Service Discovery Networking and Load-Balancing Stateful services Multi-tenant, multi-region AdditionalAdditional Key CapabilitiesKey Capabilities Application Health & Performance Monitoring Application Deployments Application Secrets @lcalcote
  • 7. What do we need?What do we need? • Observability • Logging • Metrics • Tracing • Traffic Control • Resiliency • Efficiency • Security • Policy @lcalcote a Service Mesha Service Mesh
  • 8. What is a Service Mesh?What is a Service Mesh? a dedicated layer for managing service-to-service communication @lcalcote so, a microservices platform? obviously. Orchestrators don't bring all that you need and neither do service meshes, but they do get you closer. Missing: application lifecycle management, but not by much partially. a services-first networka services-first network Missing: distributed debugging; provide nascent visibility (topology)
  • 9. @lcalcote DEVDEV OPSOPS Layer 5Layer 5 where Dev and Ops meet Problem: too much infrastructure code in services
  • 10. Why use a Service Mesh?Why use a Service Mesh? to avoid... Bloated service code Duplicating work to make services production-ready load balancing, auto scaling, rate limiting, traffic routing, ... Inconsistency across services retry, tls, failover, deadlines, cancellation, etc, for each language, framework silo'ed implementations lead to fragmented, non-uniform policy application and difficult debugging Diffusing responsibility of service management @lcalcote
  • 11. Help with ModernizationHelp with Modernization @lcalcote   Can modernize your IT inventory without: Rewriting your applications Adopting microservices, regular services are fine Adopting new frameworks Moving to the cloud Address the long-tail of IT services Get there for free
  • 12. What is Istio?What is Istio? An open platform to connect, manage, and secure microservices @lcalcote Observability Resiliency Traffic Control Security Policy Enforcement istio.io github.com/istio@IstioMesh
  • 13. ObservabilityObservability is what gets people hooked on service metrics @lcalcote GoalsGoals Metrics without instrumenting apps Consistent metrics across fleet Trace flow of requests across services Portable across metric backend providers You get a metric!  You get a metric!  Everyone gets a metric!
  • 14. Traffic ControlTraffic Control control over chaos @lcalcote Traffic splitting L7 tag based routing? Traffic steering Look at the contents of a request and route it to a specific set of instances. Ingress and egress routing ResilencyResilency   Systematic fault injection Timeouts and Retries with timeout budget Circuit breakers and Health checks Control connection pool size and request load   content-based traffic steering
  • 16. IstioIstio ArchitectureArchitecture @lcalcote ControlPlaneDataPlane Touches every packet/request in the system. Responsible for service discovery, health checking, routing, load balancing, authentication, authorization and observability. Provides policy and configuration for services in the mesh. Takes a set of isolated stateless sidecar proxies and turns them into a distributed system. Does not touch any packets/requests in the system.
  • 17. IstioIstio ArchitectureArchitecture @lcalcote Pilot Auth Mixer ControlPlaneDataPlane istio-system namespace policycheck Foo Pod Proxy sidecar Service Foo tlscerts discovery&config Foo Container Bar Pod Proxy sidecar Service Bar Bar Container Out-of-band telemetry propagation telemetry   reports Control flow during request processing application traffic application traffic application namespace telem etry reports
  • 18. What's Pilot for?What's Pilot for? @lcalcote provides service discovery to sidecars manages sidecar configuration Pilot Auth Control Plane the head of the ship Mixer istio-system namespace system of record for service mesh }provides abstraction from underlying platforms
  • 19. What's Mixer for?What's Mixer for? Point of integration with infrastructure backends Intermediates between Istio and backends, under operator control Enables platform & environment mobility Responsible for policy evaluation and telemetry reporting Provides granular control over operational policies and telemetry Has a rich configuration model Intent-based config abstracts most infrastructure concerns @lcalcote Pilot Auth Mixer Control Plane istio-system namespace an attribute-processing and routing machine operator-focused 1. Precondition checking 2. Quota management 3. Telemetry reporting
  • 20. What's Auth for?What's Auth for? @lcalcote Verifiable identity Issues certs Certs distributed to service proxies Mounted as a Kubernetes secret Secure naming / addressing Traffic encryption Pilot Auth Control Plane security at scale Mixer istio-system namespace security by default Orchestrate Key & Certificate: Generation Deployment Rotation Revocation  
  • 21. Service Proxy SidecarService Proxy Sidecar A C++ based L4/L7 proxy Low memory footprint In production at Lyft @lcalcote Capabilities: API driven config updates no reloads Zone-aware load balancing w/ failover Traffic routing and splitting Health checks, circuit breakers, timeouts, retry budgets, fault injection… HTTP/2 & gRPC Transparent proxying Designed for observability   the included battery DataPlane Pod Proxy sidecar App Container
  • 23. AppOptics @lcalcote Uses pluggable adapters to extend its functionality Adapters run within the Mixer process Adapters are modules that interface to infrastructure backends (logging, metrics, quotas, etc.) Multi-interface adapters are possible (e.g. AppOptics adapter exposing logs & metrics) Mixer AdaptersMixer Adapters sending telemetry Papertrail Prometheus Grafana Fluentd Statsd
  • 24. Swapping Proxies - Envoy, Linkerd, Nginx, Conduit @lcalcote Forms of ExtensionsForms of Extensions
  • 25. Why use another service proxy?Why use another service proxy? Based on your operational expertise and need for battle-tested proxy. You may be looking for caching, WAF or other functionality available in NGINX Plus. If you're already running Linkerd and want to start adopting Istio control APIs like CheckRequest. @lcalcote Conduit not currently designed a general-purpose proxy, but lightweight and focused with extensibility via gRPC plugin.
  • 26. nginMeshnginMesh https://github.com/nginmesh Currently Support for rules, policies, mtls encryption, monitoring & tracing Compatible with Mixer adaptors Transparent sidecar injection Compatible with Istio 0.3.0 @lcalcote Roadmap Support for gRPC traffic Support for ingress proxy Support for Quota Checks Expanding the mesh beyond Kubernetes See sidecar-related limitations as well as supported traffic management rules --> .here Considered beta quality Soliciting feedback and participation from community
  • 27. Istio &Istio & nginMeshnginMesh Architecture @lcalcote Pilot Auth Mixer ControlPlane agent Translator agent Istio to Nginx (in go) Loadable module Nginx to Mixer (in rust)   config file DataPlane "istio-proxy" container routerules istio-system namespace check report Mixer Module dest module listener tcp http tcp server Out-of-band telemetry propagation Control flow during request processing application traffic application traffic http servers
  • 28. DemoDemo Let's look at Istio's canonical sample app. @lcalcote
  • 29. @lcalcote BookInfo Sample AppBookInfo Sample App Reviews v1 Reviews Pod Reviews v2 Reviews v3 Product Pod Details Container Details Pod Ratings Container Ratings Pod Product Container Reviews Service
  • 30. @lcalcote BookInfo Sample AppBookInfo Sample App Reviews v1 Reviews Pod Reviews v2 Reviews v3 Product Pod Details Container Details Pod Ratings Container Ratings Pod Product Container Nginx sidecar Nginx sidecar Nginx sidecar Nginx sidecarNginx sidecar Reviews Service Nginx sidecar Envoyingress
  • 31. @lcalcote $ kubectl apply -f istio-nginmesh-0.4.0-v2.yaml $ kubectl apply -f nginmesh-0.4.0-migration/istio/release/install/kubernetes/istio-initializer.yaml deploy Istio and nginMesh kubectl get ns watch kubectl get po,svc -n istio-system kubectl apply -f nginmesh-0.4.0-migration/istio/release/samples/kubernetes/bookinfo.yaml confirm deployment Istio; deploy sample app watch kubectl get po,svc kubectl get svc istio-ingress -n istio-system -o jsonpath='{.spec.ports[0].nodePort}';echo '' confirm sample app DemoDemo running nginMesh
  • 32. DemoDemo running nginMesh @lcalcote echo "http://$(kubectl get nodes -o template --template='{{range.items}}{{range.status.addresses}}{{if eq . See "reviews" v1, v2 and v3 # From Docker's perspective docker ps | grep nginmesh # From Kubernetes' perspective kubectl get po kubectl describe Verify nginMesh deployment # exec into 'istio-proxy' kubectl exec -it pod -c istio-proxy /bin/bash Connect to Nginx sidecar
  • 33. @lcalcote #takes every request/response and sends to Mixer control plane See load_module /etc/nginx/modules/ngx_http_istio_mixer_module.so; # Mixer adapters for telemetry docker run --rm istio/fortio load -c 1 -t 10m `echo "http://$(kubectl get nodes -o template --template='{{range.items}}{{range.status.addresses}}{{if eq .type Verify mesh configuration DemoDemo running nginMesh #Deploy new configuration to Nginx istioctl create -f route-rule-all-v1.yaml istioctl delete -f route-rule-all-v1.yaml #A/B testing for a user kubectl apply -f route-rule-reviews-test-v2.yaml #More for user 'lee' kubectl exec -it pod -c istio-proxy /bin/bash more /etc/istio/proxy/conf.d/http_0.0.0.0_9080.conf Apply traffic routing policySee Mixer telemetry
  • 34. Lee CalcoteLee Calcote Thank you. Questions?Thank you. Questions? clouds, containers, functions, applications and their management linkedin.com/in/leecalcote @lcalcote gingergeek.com calcotestudios.com/talks github.com/leecalcote lee@calcotestudios.com