SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
NGINX MRA AMA #9:
Ingenious: The Journey to Service Mesh
Using a Microservices Demo App
1
MORE INFORMATION AT
NGINX.COM
Who Are We?
Charles Pretzer
Technical Architect
Formerly:
- Software architecture consultant
- Engineering lead at Zinio, StyleHive,
others
Floyd Smith
Director, Content Marketing
Formerly:
- Apple, Alta Vista, Google, and more
- Author of multiple books on technology
including web, marketing, usability
MORE INFORMATION AT
NGINX.COM
Agenda
1. Introducing NGINX
2. Microservices and Service Mesh Definitions
3. Ingenious: Why We Built It
4. Fabric Model and the NGINX Microservices Network
Architectures
5. A Peek Under the Hood
6. Demo
7. Building a Service Mesh
8. Q & A
3 3
4
Introducing NGINX
1
MORE INFORMATION AT
NGINX.COM
About NGINX, Inc.
• NGINX OSS released 2003
• NGINX Plus first released in 2013
• NGINX, Inc. is VC-backed by leading investors in enterprise
software
• Offices in SF, Sunnyvale, Singapore, Cork, Cambridge, & Moscow
• 1,200+ commercial customers
• 180+ employees
>50%of the top 100,000
busiest websites
6Source: W3Techs Web Technology Survey
Internet
Web Server
Serve content from disk
Application Gateway
FastCGI, uWSGI,
Passenger…
Reverse Proxy
Caching, load balancing…
HTTP traffic
Where NGINX Plus Fits
MORE INFORMATION AT
NGINX.COM
Public/Private/Hybrid CloudBare Metal Containers
8
NGINX Plus Works in All Environments
MORE INFORMATION AT
NGINX.COM
NGINX Products and Roadmap
• Start with Gus Robertson keynote at nginx.conf 2017
• See Owen Garrett’s Roadmap presentation….
• …and Chris and Rachael’s Controller demo
• Also, Chris Richardson series, Intro to Microservices…
• …and Chris Stetson series, NGINX MRA
• …and much more; contact Sales for free evaluation
Ingenious: The Microservice
Reference Architecture
Microservices
● Services in a microservice architecture (MSA) are often processes that communicate
with each other over a network in order to fulfill a goal using technology-agnostic
protocols such as HTTP. However, services might also use other kinds of
inter-process communication mechanisms such as shared memory. Services might
also run within the same process as, for example, OSGI bundles.
● Services in a microservice architecture should be independently deployable.
● The services are easy to replace.
● Services are organized around capabilities, e.g., user interface front-end,
recommendation, logistics, billing, etc.
● Services can be implemented using different programming languages, databases,
hardware and software environment, depending on what fits best.
● Services are small in size, messaging enabled, bounded by contexts, autonomously
developed, independently deployable, decentralized and built and released with
automated processes.
What is a Microservice?
?
source: https://en.wikipedia.org/wiki/Microservices
● A group of microservice components working together
in order to provide full application functionality.
What is a Microservice Architecture?
A
B
D
C
E
Service Mesh
Data Plane
● Authentication and Authorization
● Health Checking
● Routing
○ Uses security policies set by the Control
Plane
● Load Balancing
● Service Discovery
● Observability
Control Plane
● Configures and coordinates the
individual sidecars in the data plane
● Set security policy
● Scheduler
○ Service Discovery of scheduled services
Ingenious
● Seven distinct services written in
different languages comprising a
single application
● Release 1 uses the Fabric Model
○ Uses persistent SSL connections to
enforce TLS between services
● Quick Start:
○ https://github.com/nginxinc/mra-inge
nious
Ingenious
Orchestration Specific Implementations
● Kubernetes
○ Deployed using YAML files
○ https://k8s.mra.nginxps.com
● Mesosphere DC/OS
○ Deployed using JSON files
○ https://mra.nginxps.com
● Both sets of files will be released in open source repositories
NGINX Microservice
Network Architectures
Proxy Model
● Load Balances requests
to services
● Secures North/South
traffic and provides SSL
Termination
● Services are left to
communicate with each
other
● Lays the foundation for
building a service mesh
Router Mesh
● Standalone NGINX Plus
instance which acts as a
traffic manager
● Provides service
discovery via DNS SRV
records
● Load balances to
instances of services
● NGINX Plus provides
active health checks
allowing for circuit
breaker functionality
Fabric Model
● NGINX Plus exists as a
sidecar within the same
container as the service
● NGINX Plus and the app
communicate only on
localhost
● Instances of NGINX Plus
communicate directly with
each other
● Incorporates all the
features of the Router
Mesh and adds persistent
SSL connections
The Migration Path
Containerize the monolith
Similar to scaling horizontally
Watch out for singletons!
This may not work for every application.
Ingress
Controller
Decompose the Monolith
Create services from features
Similar to scaling horizontally
Watch out for singletons!
This may not work for every application.
Ingress
Controller
User Data
Orders
Pod
Pod
Pod
Pod
Pod Pod
Photo
Uploader
Photo
Resizer
Content
Service
Implement the Ingress Proxy
Create services from features
Similar to scaling horizontally
Watch out for singletons!
This may not work for every
application.
Ingress
Controller
Pod
Auth
Proxy
Pod
Photo
Uploader
Pod
Photo
Resizer
Pod
Content
Service
Pod
Album
Manager
Pod
User
Manager
Pod
Pages
Implement the Router Mesh
Add the Router Mesh Service and
configure the locations and upstreams
for the service.
Re-configure the services to use the
Router Mesh service
Ingress
Controller
Pod
Auth
Proxy
Pod
Photo
Uploader
Pod
Photo
Resizer
Pod
Content
Service
Pod
Album
Manager
Pod
User
Manager
Pod
Pages
Pod
Router
Mesh
Implement the Service Proxy
Add the NGINX Plus container to each
pod and use a ConfigMap to define the
upstreams and locations.
Re-configure the services to use the
Router Mesh service
Pod
Auth
Proxy
Ingress
Controller
Pod
Photo
Uploader
Pod
Photo
Resizer
Pod
Content
Service
Pod
Album
Manager
Pod
User
Manager
Pod
Pages
Service Mesh
Implementations
Istio
● Supports mTLS between
sidecars
● Istio Auth uses Kubernetes
service accounts to identify
who runs the service:
Image credit: istio.io
Istio
● RBAC implementation as
ServiceRole resource
● ServiceRoleBinding
○ roleRef refers to a ServiceRole object in the
same namespace.
○ A list of subjects that are assigned the role.
Image credit: istio.io
Linkerd/Conduit
● Products from buoyant.io, the
company that coined the term
service mesh
○ linkerd
■ First service mesh product
released by buoyant
■ Provides control and data planes
○ conduit
■ Released in December and
focuses on performance in
Kubernetes
Linkerd/Conduit
● TLS communication between
services
● http/2 support
Envoy
● Acts as:
○ Sidecar proxy
○ Ingress
○ Egress
● Supports TLS termination and
origination
nginmesh
- Sidecar implementation for Istio using
NGINX as the sidecar proxy
- Provides load balancing and service
discovery in the data plane of a service
mesh
- https://github.com/nginxinc/nginmesh
- Current support only for Kubernetes
Q & A
Thank You

Mais conteúdo relacionado

Mais procurados

Simplify Microservices with the NGINX Application Platform
Simplify Microservices with the NGINX Application PlatformSimplify Microservices with the NGINX Application Platform
Simplify Microservices with the NGINX Application Platform
NGINX, Inc.
 
3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX
NGINX, Inc.
 

Mais procurados (20)

Simplify Microservices with the NGINX Application Platform
Simplify Microservices with the NGINX Application PlatformSimplify Microservices with the NGINX Application Platform
Simplify Microservices with the NGINX Application Platform
 
NGINX Basics: Ask Me Anything – EMEA
NGINX Basics: Ask Me Anything – EMEANGINX Basics: Ask Me Anything – EMEA
NGINX Basics: Ask Me Anything – EMEA
 
ModSecurity 3.0 and NGINX: Getting Started
ModSecurity 3.0 and NGINX: Getting StartedModSecurity 3.0 and NGINX: Getting Started
ModSecurity 3.0 and NGINX: Getting Started
 
NGINX Plus R19 : EMEA
NGINX Plus R19 : EMEANGINX Plus R19 : EMEA
NGINX Plus R19 : EMEA
 
Kubernetes and the NGINX Plus Ingress Controller
Kubernetes and the NGINX Plus Ingress ControllerKubernetes and the NGINX Plus Ingress Controller
Kubernetes and the NGINX Plus Ingress Controller
 
Improve App Performance & Reliability with NGINX Amplify
Improve App Performance & Reliability with NGINX AmplifyImprove App Performance & Reliability with NGINX Amplify
Improve App Performance & Reliability with NGINX Amplify
 
Microservices with NGINX pdf
Microservices with NGINX pdfMicroservices with NGINX pdf
Microservices with NGINX pdf
 
Introducing the Microservices Reference Architecture Version 1.2
Introducing the Microservices Reference Architecture Version 1.2Introducing the Microservices Reference Architecture Version 1.2
Introducing the Microservices Reference Architecture Version 1.2
 
ModSecurity and NGINX: Tuning the OWASP Core Rule Set (Updated)
ModSecurity and NGINX: Tuning the OWASP Core Rule Set (Updated)ModSecurity and NGINX: Tuning the OWASP Core Rule Set (Updated)
ModSecurity and NGINX: Tuning the OWASP Core Rule Set (Updated)
 
Optimizing ModSecurity on NGINX and NGINX Plus
Optimizing ModSecurity on NGINX and NGINX PlusOptimizing ModSecurity on NGINX and NGINX Plus
Optimizing ModSecurity on NGINX and NGINX Plus
 
Reduce IT Spend with Software Load Balancing
Reduce IT Spend with Software Load BalancingReduce IT Spend with Software Load Balancing
Reduce IT Spend with Software Load Balancing
 
Achieve Full API Lifecycle Management Using NGINX Controller
Achieve Full API Lifecycle Management Using NGINX ControllerAchieve Full API Lifecycle Management Using NGINX Controller
Achieve Full API Lifecycle Management Using NGINX Controller
 
Simplify Microservices with the NGINX Application Platform - EMEA
Simplify Microservices with the NGINX Application Platform - EMEASimplify Microservices with the NGINX Application Platform - EMEA
Simplify Microservices with the NGINX Application Platform - EMEA
 
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OSMicroservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
 
NGINX Controller: Configuration, Management, and Troubleshooting at Scale
NGINX Controller: Configuration, Management, and Troubleshooting at Scale NGINX Controller: Configuration, Management, and Troubleshooting at Scale
NGINX Controller: Configuration, Management, and Troubleshooting at Scale
 
3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX
 
Using an API Gateway for Microservices
Using an API Gateway for MicroservicesUsing an API Gateway for Microservices
Using an API Gateway for Microservices
 
Relevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINXRelevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINX
 
ModSecurity 3.0 and NGINX: Getting Started - EMEA
ModSecurity 3.0 and NGINX: Getting Started - EMEAModSecurity 3.0 and NGINX: Getting Started - EMEA
ModSecurity 3.0 and NGINX: Getting Started - EMEA
 
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom DashboardsNGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
 

Semelhante a MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App

Semelhante a MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App (20)

MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
 
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEANGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
 
Bridging Microservices, APIs and Integration
Bridging Microservices, APIs and IntegrationBridging Microservices, APIs and Integration
Bridging Microservices, APIs and Integration
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
[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 ...
 
AppDev with Microservices
AppDev with MicroservicesAppDev with Microservices
AppDev with Microservices
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
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...
 
APIs from the Edge to the Mesh
APIs from the Edge to the MeshAPIs from the Edge to the Mesh
APIs from the Edge to the Mesh
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaSService Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knative
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
All-inclusive insights on Building JavaScript microservices with Node!.pdf
All-inclusive insights on Building JavaScript microservices with Node!.pdfAll-inclusive insights on Building JavaScript microservices with Node!.pdf
All-inclusive insights on Building JavaScript microservices with Node!.pdf
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
NGINX MRA Fabric Model Release and Ask Me Anything Part 4
NGINX MRA Fabric Model Release and Ask Me Anything Part 4NGINX MRA Fabric Model Release and Ask Me Anything Part 4
NGINX MRA Fabric Model Release and Ask Me Anything Part 4
 
IBM Bluemix Presentation.pptx
IBM Bluemix Presentation.pptxIBM Bluemix Presentation.pptx
IBM Bluemix Presentation.pptx
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 

Mais de NGINX, Inc.

How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
NGINX, Inc.
 

Mais de NGINX, Inc. (20)

【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
 
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
 
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
 
Managing Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostManaging Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & Kubecost
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
 
Accelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with Automation
 
Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINX
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINX
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINX
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINX
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
 

Último

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App

  • 1. NGINX MRA AMA #9: Ingenious: The Journey to Service Mesh Using a Microservices Demo App 1
  • 2. MORE INFORMATION AT NGINX.COM Who Are We? Charles Pretzer Technical Architect Formerly: - Software architecture consultant - Engineering lead at Zinio, StyleHive, others Floyd Smith Director, Content Marketing Formerly: - Apple, Alta Vista, Google, and more - Author of multiple books on technology including web, marketing, usability
  • 3. MORE INFORMATION AT NGINX.COM Agenda 1. Introducing NGINX 2. Microservices and Service Mesh Definitions 3. Ingenious: Why We Built It 4. Fabric Model and the NGINX Microservices Network Architectures 5. A Peek Under the Hood 6. Demo 7. Building a Service Mesh 8. Q & A 3 3
  • 5. MORE INFORMATION AT NGINX.COM About NGINX, Inc. • NGINX OSS released 2003 • NGINX Plus first released in 2013 • NGINX, Inc. is VC-backed by leading investors in enterprise software • Offices in SF, Sunnyvale, Singapore, Cork, Cambridge, & Moscow • 1,200+ commercial customers • 180+ employees
  • 6. >50%of the top 100,000 busiest websites 6Source: W3Techs Web Technology Survey
  • 7. Internet Web Server Serve content from disk Application Gateway FastCGI, uWSGI, Passenger… Reverse Proxy Caching, load balancing… HTTP traffic Where NGINX Plus Fits
  • 8. MORE INFORMATION AT NGINX.COM Public/Private/Hybrid CloudBare Metal Containers 8 NGINX Plus Works in All Environments
  • 9. MORE INFORMATION AT NGINX.COM NGINX Products and Roadmap • Start with Gus Robertson keynote at nginx.conf 2017 • See Owen Garrett’s Roadmap presentation…. • …and Chris and Rachael’s Controller demo • Also, Chris Richardson series, Intro to Microservices… • …and Chris Stetson series, NGINX MRA • …and much more; contact Sales for free evaluation
  • 12. ● Services in a microservice architecture (MSA) are often processes that communicate with each other over a network in order to fulfill a goal using technology-agnostic protocols such as HTTP. However, services might also use other kinds of inter-process communication mechanisms such as shared memory. Services might also run within the same process as, for example, OSGI bundles. ● Services in a microservice architecture should be independently deployable. ● The services are easy to replace. ● Services are organized around capabilities, e.g., user interface front-end, recommendation, logistics, billing, etc. ● Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best. ● Services are small in size, messaging enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes. What is a Microservice? ? source: https://en.wikipedia.org/wiki/Microservices
  • 13. ● A group of microservice components working together in order to provide full application functionality. What is a Microservice Architecture? A B D C E
  • 15. Data Plane ● Authentication and Authorization ● Health Checking ● Routing ○ Uses security policies set by the Control Plane ● Load Balancing ● Service Discovery ● Observability
  • 16. Control Plane ● Configures and coordinates the individual sidecars in the data plane ● Set security policy ● Scheduler ○ Service Discovery of scheduled services
  • 18. ● Seven distinct services written in different languages comprising a single application ● Release 1 uses the Fabric Model ○ Uses persistent SSL connections to enforce TLS between services ● Quick Start: ○ https://github.com/nginxinc/mra-inge nious Ingenious
  • 19. Orchestration Specific Implementations ● Kubernetes ○ Deployed using YAML files ○ https://k8s.mra.nginxps.com ● Mesosphere DC/OS ○ Deployed using JSON files ○ https://mra.nginxps.com ● Both sets of files will be released in open source repositories
  • 21. Proxy Model ● Load Balances requests to services ● Secures North/South traffic and provides SSL Termination ● Services are left to communicate with each other ● Lays the foundation for building a service mesh
  • 22. Router Mesh ● Standalone NGINX Plus instance which acts as a traffic manager ● Provides service discovery via DNS SRV records ● Load balances to instances of services ● NGINX Plus provides active health checks allowing for circuit breaker functionality
  • 23. Fabric Model ● NGINX Plus exists as a sidecar within the same container as the service ● NGINX Plus and the app communicate only on localhost ● Instances of NGINX Plus communicate directly with each other ● Incorporates all the features of the Router Mesh and adds persistent SSL connections
  • 25. Containerize the monolith Similar to scaling horizontally Watch out for singletons! This may not work for every application. Ingress Controller
  • 26. Decompose the Monolith Create services from features Similar to scaling horizontally Watch out for singletons! This may not work for every application. Ingress Controller User Data Orders Pod Pod Pod Pod Pod Pod Photo Uploader Photo Resizer Content Service
  • 27. Implement the Ingress Proxy Create services from features Similar to scaling horizontally Watch out for singletons! This may not work for every application. Ingress Controller Pod Auth Proxy Pod Photo Uploader Pod Photo Resizer Pod Content Service Pod Album Manager Pod User Manager Pod Pages
  • 28. Implement the Router Mesh Add the Router Mesh Service and configure the locations and upstreams for the service. Re-configure the services to use the Router Mesh service Ingress Controller Pod Auth Proxy Pod Photo Uploader Pod Photo Resizer Pod Content Service Pod Album Manager Pod User Manager Pod Pages Pod Router Mesh
  • 29. Implement the Service Proxy Add the NGINX Plus container to each pod and use a ConfigMap to define the upstreams and locations. Re-configure the services to use the Router Mesh service Pod Auth Proxy Ingress Controller Pod Photo Uploader Pod Photo Resizer Pod Content Service Pod Album Manager Pod User Manager Pod Pages
  • 31. Istio ● Supports mTLS between sidecars ● Istio Auth uses Kubernetes service accounts to identify who runs the service: Image credit: istio.io
  • 32. Istio ● RBAC implementation as ServiceRole resource ● ServiceRoleBinding ○ roleRef refers to a ServiceRole object in the same namespace. ○ A list of subjects that are assigned the role. Image credit: istio.io
  • 33. Linkerd/Conduit ● Products from buoyant.io, the company that coined the term service mesh ○ linkerd ■ First service mesh product released by buoyant ■ Provides control and data planes ○ conduit ■ Released in December and focuses on performance in Kubernetes
  • 34. Linkerd/Conduit ● TLS communication between services ● http/2 support
  • 35. Envoy ● Acts as: ○ Sidecar proxy ○ Ingress ○ Egress ● Supports TLS termination and origination
  • 36. nginmesh - Sidecar implementation for Istio using NGINX as the sidecar proxy - Provides load balancing and service discovery in the data plane of a service mesh - https://github.com/nginxinc/nginmesh - Current support only for Kubernetes
  • 37. Q & A