SlideShare a Scribd company logo
Building a scalable Microservice Architecture
With Kubernetes, Envoy and Istio
SAMIR BEHARA
System Architect, EBSCO
Samir Behara builds software solutions
using cutting edge technologies.
Has a Bachelor Degree in Computer
Science with 13 years of IT experience.
Frequent Speaker at Technical
Conferences.
Author of www.dotnetvibes.com
@samirbehara
Agenda
• Monolith vs Microservices
• How to break a Monolith into Microservices
• Complexities in a Microservice Architecture
• Journey from Netflix OSS to Istio Service Mesh
• The Rise of Sidecar Design Pattern
• Istio Architecture and capabilities
• How to make your microservices resilient & fault tolerant
• Service Mesh Observability
Monolithic Architecture
Order
Management
Service
Monolithic
Database
Large Codebase
Difficult to Scale
Longer Development Cycle
Complicated Deployments
Fixed Technology stack
Performance Issues
Tight Coupling

Recommended for you

gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview

gRPC is an open source RPC framework that makes it easy to build a distributed system across multiple languages. It uses HTTP/2 for transport, has features like streaming, load balancing and authentication built-in. It is used widely at Google and is now available open source with implementations in 10 languages. gRPC benefits from being layered on HTTP/2 for interoperability and has a pluggable architecture for advanced features like monitoring and proxies.

grpcrpcdistributed systems
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC

This document discusses inter-process communication in microservices architectures using gRPC and Protocol Buffers. It begins with an overview of moving from a monolithic to a microservices architecture and the challenges of communication between independent services. It then covers considerations for building high performance APIs and why gRPC and Protocol Buffers are well-suited for microservices. The remainder details what gRPC is, how Protocol Buffers work, and how gRPC uses Protocol Buffers to provide a framework for remote procedure calls between services.

grpcgolangprotocol buffers
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained

Linux offers an extensive selection of programmable and configurable networking components from traditional bridges, encryption, to container optimized layer 2/3 devices, link aggregation, tunneling, several classification and filtering languages all the way up to full SDN components. This talk will provide an overview of many Linux networking components covering the Linux bridge, IPVLAN, MACVLAN, MACVTAP, Bonding/Team, OVS, classification & queueing, tunnel types, hidden routing tricks, IPSec, VTI, VRF and many others.

linux networking kernel network
Applying Domain Driven Design
Monolith Architecture – Centralized Database
Order Service
Title Service
Currency Service
Pricing Service
Monolithic
Shared
Database
API
Gateway
Databases are private to each Microservice
Order API Pricing API
Deploying Monolithic Applications

Recommended for you

gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices

gRPC is an open source framework that allows for communication between services using HTTP/2 and Protocol Buffers. It provides features like low latency and high scalability. Key benefits include focusing on service design, language interoperability, and growing community support. gRPC uses Protocol Buffers for serialization, HTTP/2 for transport, and an IDL for service definitions. It supports various request-response and streaming call types and provides libraries in many languages.

http2grpcprotobuf
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning

In a lot of companies, machine deployment is a delicate subject: every administrator has his own recipe, using CD-ROMs, static binary images deployed via the network, peer delegation ... However, one solution makes the consensus when it comes to automated mass deployments ( except in the Cloud ): PXE boot. The main cons are that the deployment and the management of such a service is a pain, and every OS has its own installation automation system. This is where Cobbler saves the day: it enables a painless and reliably to create a PXE service, usable on either virtual or physical machines, while beeing the most agnostic possible towards the target OSes and its preconfiguration system (preseed, kickstart, sysprep, ...) while offering the possibility to handle lots of configuration parameters in a modular fashion (network, partitionning, user accounts, configuration management agent...) This conference aims to introduce the audience to the general concepts of Cobbler, and some scenarios where it would be a useful solution.

it operationsautomationopen source
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험

OpenStack 운영을 통해 얻은 교훈을 공유합니다. 목차 1. TOAST 클라우드 지금의 모습 2. OpenStack 선택의 이유 3. 구성의 어려움과 극복 사례 4. 활용 사례 5. 풀어야 할 문제들 대상 - TOAST 클라우드를 사용하고 싶은 분 - WMI를 처음 들어보시는 분

nhnforwardnhn기술콘퍼런스
Strangler Pattern in action
Transform and Eliminate Pattern
TRANSFORM CO-EXIST ELIMINATE
Microservices Deployments
Emergence of Microservices
Shorter Development Cycle
Faster Deployments
Highly Scalable
Right Technology Stack
Business Domain Driven
Resiliency & Observability
High Cohesion & Loose Coupling

Recommended for you

Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive

This document provides an overview and agenda for a Docker networking deep dive presentation. The presentation covers key concepts in Docker networking including libnetwork, the Container Networking Model (CNM), multi-host networking capabilities, service discovery, load balancing, and new features in Docker 1.12 like routing mesh and secured control/data planes. The agenda demonstrates Docker networking use cases like default bridge networks, user-defined bridge networks, and overlay networks. It also covers networking drivers, Docker 1.12 swarm mode networking functionality, and how concepts like routing mesh and load balancing work.

docker networkinglibnetworkdocker
iptables 101- bottom-up
iptables 101- bottom-upiptables 101- bottom-up
iptables 101- bottom-up

From the bottom-up approach to introduction the iptables, including the architecture of iptables/ebtables and the some usage of iptables.

iptableslinux
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security

BPF is one of the fastest emerging technologies of the Linux kernel. The talk provides an introduction to Cilium which brings the powers of BPF to Kubernetes and other orchestration systems to provide highly scalable and efficient networking, security and load balancing for containers and microservices. The talk will provide an introduction to the capabilities of Cilium today but also deep dives into the emerging roadmap involving networking at the socket layer and service mesh datapath capabilities to provide highly efficient connectivity between cloud native apps and sidecar proxies.

kubernetesciliumbpf
Immutable Infrastructure
Declarative Configuration
Horizontal Scaling
Self Healing SystemsService Discovery
Decoupled Architecture
Load Balancing
Scalable Microservices with Kubernetes
Microservice Architecture - Challenges
8 Fallacies of Distributed Computing
Fallacy Solutions
The network is reliable Automatic Retries, Message Queues
Latency is zero Caching Strategy, Bulk Requests, Deploy in AZs near client
Bandwidth is infinite Throttling Policy, Small payloads with Microservices
The network is secure Network Firewalls, Encryption, Certificates, Authentication
Topology does not change No hardcoding IP, Service Discovery Tools
There is one administrator DevOps Culture eliminates Bus Factor
Transport cost is zero Standardized protocols like JSON, Cost Calculation
The network is homogenous Circuit Breaker, Retry and Timeout Design Pattern
Complexities in a Microservice Architecture

Recommended for you

Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP

SOSCON 2019.10.17 What are the methods for packet processing on Linux? And how fast are each packet processing methods? In this presentation, we will learn how to handle packets on Linux (User space, socket filter, netfilter, tc), and compare performance with analysis of where each packet processing is done in the network stack (hook point). Also, we will discuss packet processing using XDP, an in-kernel fast-path recently added to the Linux kernel. eXpress Data Path (XDP) is a high-performance programmable network data-path within the Linux kernel. The XDP is located at the lowest level of access through SW in the network stack, the point at which driver receives the packet. By using the eBPF infrastructure at this hook point, the network stack can be expanded without modifying the kernel. Daniel T. Lee (Hoyeon Lee) @danieltimlee Daniel T. Lee currently works as Software Engineer at Kosslab and contributing to Linux kernel BPF project. He has interest in cloud, Linux networking, and tracing technologies, and likes to analyze the kernel's internal using BPF technology.

agilioiptableslinux
Building Microservices with gRPC and NATS
Building Microservices with gRPC and NATSBuilding Microservices with gRPC and NATS
Building Microservices with gRPC and NATS

This document discusses building microservices with gRPC and NATS. It begins with an introduction to microservices architecture and challenges in communication between microservices. It then covers using gRPC and Protocol Buffers to build high performance APIs, as well as using NATS for an event-driven architecture with publish-subscribe messaging. Code demos are provided for gRPC and NATS. The document concludes with a discussion of event sourcing and various messaging patterns when using NATS.

golangprotocol buffersnats
gRPC
gRPCgRPC
gRPC

- gRPC is an open source RPC framework originally developed by Google in 2015. It uses HTTP/2 for transport, Protocol Buffers as the interface definition language, and provides features like authentication, bidirectional streaming and interface definitions. - Compared to REST, gRPC is faster, more efficient through binary encoding (Protocol Buffers), supports bidirectional streaming, and generates client and server code. However, it lacks browser support and has fewer available tools. - gRPC is best suited for internal microservices communication where high performance is required and tight coupling is acceptable. It supports unary, server streaming, client streaming and bidirectional streaming RPC patterns.

grpcgolangmicroservices
Tracing
Service
Discovery
Dynamic
Routing
Resiliency
Load Balancing
Netflix OSS to the rescue
What are the issues with Netflix OSS?
ROUTING
CIRCUIT BREAKER
LOAD BALANCING
SERVICE DISCOVERY
TRACING
ROUTING
CIRCUIT BREAKER
LOAD BALANCING
SERVICE DISCOVERY
TRACING
INFRASTRUCTURE
SERVICE A SERVICE B
• Tightly coupled to the Java Platform
• Not a good fit for Polyglot Architecture
• Netflix Libraries needs to be embedded
inside each microservice along side Business
functionalities
• Increases overall Application Complexity
• Operational Complexity - Patching/Upgrades
Sidecar Design Pattern
Microservice A
Microservice B
Microservice C
Sidecar
Sidecar
Sidecar
Service Mesh Control Plane
Shared Libraries vs Service Mesh
Pricing
Service
Sidecar
Order
Service
Sidecar
Currency
Service
Sidecar
Customer
Service
Sidecar
Title Service
Sidecar
Control
Plane
Business Logic
+
Shared Libraries
Business Logic
+
Shared Libraries
Business Logic
+
Shared Libraries
Business Logic
+
Shared Libraries
Business Logic
+
Shared Libraries

Recommended for you

Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18

Presented as part of Container Conference 2018: www.containerconf.in Deep dive into Kubernetes networking "Container networking is pretty complex and Kubernetes has taken a unique approach to solve container networking challenges. Both simplicity and scalability have been key design principles of Kubernetes networking. This session will illustrate kubernetes networking concepts with examples and demos. Best practises and considerations for deploying container networks in production using Kubernetes will be covered. This session will also go into latest developments in Kubernetes networking like Network policy and Service policy using Istio."

kubernetesdockernetworking
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD

This document discusses improving the developer experience through GitOps and ArgoCD. It recommends building developer self-service tools for cloud resources and Kubernetes to reduce frustration. Example GitLab CI/CD pipelines are shown that handle releases, deployments to ECR, and patching apps in an ArgoCD repository to sync changes. The goal is to create faster feedback loops through Git operations and automation to motivate developers.

gitlabgitopsci-cd
gRPC with java
gRPC with javagRPC with java
gRPC with java

Munander Maan presented an introduction to gRPC, a modern, fast and efficient open-source framework developed by Google. The presentation covered what gRPC is, how it works internally using Protocol Buffers, its advantages over REST APIs, how it achieves scalability, and different types of APIs that can be built with gRPC. The agenda included deep dives into gRPC internals, comparisons with REST, scalability, and API types.

grpcgrpc vs rest apijava
Smart Pipes and Smart Endpoints with Service Mesh
Responsibility of network is to transfer messages
Responsibility of microservices is to handle Business Logic,
transformations, validations and process messages.
Dumb Pipes and Smart Endpoints
Envoy
• Envoy is a high performance Open Source Proxy designed for Cloud-Native Applications
• Envoy makes the network transparent to the applications
• Envoy is deployed as a Sidecar Proxy to every service
• All traffic in a Microservice architecture flows via the Envoy Proxy
Out of Process
Architecture
Service Discovery Load Balancing
Circuit Breakers Fault Injection Observability
Istio
• Platform to Connect, Secure, Control and Monitor
Services consistently.
• Open Source Service Mesh – Governed by Google & IBM
• Shifts the complexity of running a distributed
microservice architecture to the infrastructure layer
• Control Plane for service proxies like Envoy
• Platform Independent & Language agnostic
Istio Features
Traffic Management Policy Enforcement
Observability Security Telemetry

Recommended for you

Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking

The document discusses Docker networking and Kubernetes networking concepts. It provides an overview of Docker networking and how containers on the same host can communicate. It then summarizes key Kubernetes concepts like pods, replication controllers, services and networking. It demonstrates how to create a replication controller and service for a Tomcat application. It also discusses exposing services externally and additional resources for learning about Docker and Kubernetes.

kubernetes networking container pods girag
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian

HTTP, REST Basics REST API Design Guide, best practices when designing a REST API SOAP, REST, GraphQL, and gRPC Which API Format Shall I Choose?

apirestgrpc
Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onap

1. ONAP was evolving from a "SOA-like" architecture to a "pure microservices" architecture. MSB provided transparent service registration and communication for ONAP microservices. 2. Istio is an open source service mesh that provides reliability, security, observability and manageability for microservices. It introduces a centralized control plane to manage distributed sidecars. 3. Integrating Istio with ONAP would provide benefits like distributed tracing, metrics visibility and service graph for ONAP microservices. It is important to address challenges in supporting multiple network interfaces and coarse-grained services.

onapistioservie mesh
Service A Service B
Network
Service to Service Communication over Network
Service A Service B
Sidecar Deployment using Envoy Proxy
Envoy Proxy intercepts all network traffic flowing between applications
Service A Service B
Configuration Validation, Management and Distribution
Galley
Service A Service B
Sidecar Configuration and Traffic Management capabilities
Galley Pilot
Push config data
to sidecar proxies

Recommended for you

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

This presentation was made by Mangesh Patankar (Developer Advocate - IBM Cloud) as part of Container Conference 2018: www.containerconf.in. "How do we make microservices resilient and fault-tolerant? How do we enforce policy decisions, such as fine-grained access control and rate limits? How do we enable timeouts/retries, health checks, etc.? A service-mesh architecture attempts to resolve these issues by extracting the common resiliency features needed by a microservices framework away from the applications and frameworks and into the platform itself. Istio provides an easy way to create this service mesh."

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

The document provides an overview of microservices and service meshes, and uses Istio as an example service mesh implementation. It discusses how Istio allows microservices to be developed independently while providing capabilities like discovery, load balancing, resilience, metrics and tracing through lightweight proxies. The document then demonstrates what happens at each step of a request's lifecycle as it travels through an application protected by Istio's service mesh. Specifically, it shows how Istio components like Pilot, Envoy, Mixer and Citadel work together to provide control, observability and security for microservices.

microservicesistioservice mesh
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh

Provide a high level introduction to Istio Service Mesh. Discuss the problems it addresses, it's architecture and it's use cases

microserviceskubernetesistio
Service A Service B
Policy Enforcement and Telemetry Collection
Galley Pilot Mixer
Policy Checks
& Telemetry
Service A Service B
Enable Secure Communication using mutual TLS
with built-in identity and credential management
Galley Pilot Mixer Citadel
Push TLS certificates
to sidecar proxies
Service A Service B
Galley Pilot Mixer Citadel
Istio Mesh Integrated Control Plane
Sidecar
Container
SERVICE A
Pod
Container
JVM
SERVICE B
Pod
Container
JVM
Sidecar
Container
Istio Data Plane with Envoy Sidecar

Recommended for you

Istio presentation jhug
Istio presentation jhugIstio presentation jhug
Istio presentation jhug

Istio is a service mesh platform that provides service discovery, load balancing, failure recovery, metrics and monitoring for microservices. It consists of Envoy proxies that intercept and manage network communication between services, Pilot which configures the proxies, and Mixer which handles policy enforcement. When a request is made, it is intercepted by Envoy proxies, routed to the appropriate service, and telemetry from the transaction is collected and reported by the proxies and Mixer. Istio provides control and visibility across microservices running on Kubernetes.

istio
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh

Developing and managing hundreds (or maybe thousands) of microservices at scale is a challenge for both development and operations teams. We have seen over the last years the appearance of new frameworks dedicated to deliver ‘Cloud Native’ applications by providing a set of (out of box) building blocks. Most of these frameworks integrate microservices concerns at the code level. Recently, we have seen the emerging of a new pattern known as sidecar or proxy promoting to push all these common concerns outside of the business code and provides them on the edge by integrate a new layer to the underlying platform called Service Mesh. Istio is one of the leading Service Mesh implementing sidecar pattern. We will go during the presentation throw the core concepts behind Istio, the capabilities that provides to manage, secure and observe microservices and how it gives a new breath for both developers and operations. The presentation will be guided by a sequence of demo exposing Istio capabilities.

kubernetescloud nativeservice mesh
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup

Microservices Architectures (aka Distributed Architectures) are the new paradigm to develop and deploy applications in Cloud environments. These architectures resolve several problems and improve the new life cycle in DevOps teams, however new challenges should be resolved or managed. OpenShift Service Mesh (based in Istio, Kiali, Jaeger) allows us to manage this new paradigm easily without to change our current applications. These slides will introduce you in OpenShift Service Mesh as a new component on OpenShift to manage your microservices architectures. Carlos Vicens worked on it with me. Slides used during a coordinated meetup between three different groups in Madrid: - OpenShift Madrid Group: https://www.meetup.com/es/openshift_spain/events/258188248/ - Microservices Madrid Group: https://www.meetup.com/es-ES/Microservicios/events/258188068/ - Madrid Spring User Group: https://www.meetup.com/es/madrid-spring-user-group/events/258322835/

openshiftservice meshistio
SERVICE A SERVICE B
Istio Architecture
PILOT CITADEL MIXER
Control Plane
Data Plane
Service Discovery
Traffic Management
Resiliency
Policy Enforcement
Telemetry
Authentication
Security
GALLEY
Configuration Validation
and Distribution
HTTP, gRPC, TCP
Security - mTLS
Pod Pod
Service A
Istio
Gateway
Service
Entry
Virtual
Service
Service B
Destination
Rule
User
Traffic
Istio Traffic Management
Traffic Routing
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: prodPILOT
Traffic
Routing Rules
# Route all traffic to v1 of ServiceB
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- route:
- destination:
host: serviceB
subset: v1
Canary Deployment
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: prod
90%
10%
PILOT
Traffic
Routing Rules
# Percentage based Traffic Split
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- route:
- destination:
host: serviceB
subset: v1
weight: 90
- destination:
host: serviceB
subset: v2
weight: 10

Recommended for you

Api observability
Api observability Api observability
Api observability

This document provides an overview of service mesh and the Istio observability tool Kiali. It begins with an introduction to service mesh and what problems it addresses in microservices architectures. Istio is presented as an open source service mesh that provides traffic management, observability, and policy enforcement for microservices. Kiali is specifically discussed as a tool for visualizing the topology and traffic flow of services in an Istio mesh. The rest of the document provides an agenda and then a live demo of Kiali's features using the Bookinfo sample application on Istio.

apimicroservicesistio
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

This presentation gave an introduction to Istio and service mesh, as well as a description of how service mesh fits in with API Management.

istioapi managementkubernetes
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019

It's been two years since we introduced the Istio project to the Triangle Kubernetes Meetup group. This presentation will be a brief re-introduction of the Istio project, and a summary of the updates to the Istio project since its 1.0 release.

Dark Launches
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: prod
100%
Mirror
Traffic
PILOT
Traffic
Routing Rules
# Traffic Mirroring
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- route:
- destination:
host: serviceB
subset: v1
weight: 100
mirror:
host: serviceB
subset: v2
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio

Recommended for you

ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive

Presentation in IBM Cloud Meet-up of Toronto https://www.meetup.com/IBM-Cloud-Toronto/events/253903913/?_xtd=gatlbWFpbF9jbGlja9oAJGU3NmM3ZjdmLWE2NzgtNGVlNC1iNGZiLTBlZGE5ZWM0NDZjOQ

cloud nativedevopsistio
Service Mesh in Practice
Service Mesh in PracticeService Mesh in Practice
Service Mesh in Practice

One of the most complex challenges in realizing microservice architecture is not building the services themselves, but building and governing the communication between services. Most microservices developers have to take care of complex inter-service communication logic as part of their service development. Service Mesh has emerged as a solution to overcome the challenges that we have in microservices communication. Since most of the inter-service communication requirements are quite generic across all microservices implementations, we can think about offloading all such tasks to a different layer, so that we can keep the service code independent. This presentation will discuss the following: 1) Why we need a Service Mesh? 2) Fundamentals of Service Mesh 3) Introduction to Istio 4) What's new in Istio 1.0. 5) Seamless integration of Ballerina and Istio

ballerinalangmicroservicesintegration
Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018

A service mesh is necessary for organizations adopting microservices and dynamic cloud-native infrastructure. Traditional host-based network security must be replaced with modern service-based security to accommodate the highly dynamic nature of modern runtime environments. In this talk, we will look at Connect a significant new feature in Consul that provides secure service-to-service communication with automatic TLS encryption and identity-based authorization. We will look at the features of Connect, how to enable Connect in an existing Consul cluster and how easy it is to secure service-to-service communication using Connect.

consulservice meshconsul connect
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
Circuit Breaker
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service C
Pod
# Limits the number of concurrent
connections and requests
kind: DestinationRule
metadata:
name: serviceC
spec:
hosts:
- serviceC
trafficPolicy:
connectionPool:
http:
http1MaxPendingRequests: 10
maxRequestsPerConnection: 1
tcp:
maxConnections: 1
Outlier Detection
# Detect faulty instances in the
pool & remove from traffic routing
kind: DestinationRule
metadata:
name: serviceB
spec:
hosts:
- serviceB
trafficPolicy:
outlierDetection:
baseEjectionTime: 20s
consecutiveErrors: 3
interval: 10s
maxEjectionPercent: 100
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: staging

Recommended for you

Designing microservices
Designing microservicesDesigning microservices
Designing microservices

This document discusses designing microservices architectures. It begins by defining microservices as small, autonomous services that work together. The benefits of microservices include continuous innovation, independent deployments, and fault isolation. Challenges include complexity, testing, and service discovery. Key principles in designing microservices are modeling them around business domains, making each independently deployable, and decentralizing all components. Additional topics covered include service boundaries, communication patterns, data management, and monitoring microservices applications. The document provides examples and recommendations for implementing microservices on Azure.

Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf

This document discusses moving a microservices architecture to the next level with service meshes. It introduces Istio as a service mesh for Kubernetes that provides traffic management, observability, and security capabilities. Istio uses the sidecar proxy pattern to enable features like mutual TLS, timeouts, retries, and circuit breakers to help solve challenges of microservices distribution like service discovery, load balancing, and failure handling. The document demonstrates Istio's capabilities and recommends adopting its features incrementally to gain experience before fully implementing a service mesh.

Dev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advanceDev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advance

This document provides an overview of cloud native reference architectures. It discusses key concepts like microservices, serverless computing, containers, Kubernetes, service meshes, and event-driven architectures. These concepts are presented along with examples of how to implement messaging, integration, security and other capabilities in a cloud native way.

#devconfin#cloudnativeappdev#agileintegration
Timeout
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service C
Pod
# Timeout strategy for service
communication over network
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- route:
- destination:
host: serviceB
timeout: 10s
Timeout:
10 sec
Timeout:
10 sec
Istio Retry Policy
Envoy
Service A
Pod
Envoy
Service B
Pod
# Retry strategy for service
communication over network
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- route:
- destination:
host: serviceB
retries:
attempts: 3
perTryTimeout: 2s
Retry: 5
5XX Error
Chaos Testing – Inject Delays
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: prod
# Create rule to delay traffic to
ServiceB v1
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- fault:
delay:
fixedDelay: 10s
percent: 50
route:
- destination:
host: serviceB
subset: v1
10s delay
in 50% of
requests
Chaos Testing – Inject Errors
Envoy
Service A
Pod
Envoy
Service B
Pod
Envoy
Service B
Pod
Pod Labels -
version: v1
env: staging
Pod Labels -
version: v2
env: prod
# Create rule to inject errors to
ServiceB v1
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
- serviceB
http:
- fault:
abort:
httpStatus: 500
percent: 50
route:
- destination:
host: serviceB
subset: v2
HTTP 500
in 50% of
requests

Recommended for you

Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes

The document discusses microservices architecture on Kubernetes. It describes microservices as minimal, independently deployable services that interact to provide broader functionality. It contrasts this with monolithic applications. It then covers key aspects of microservices like ownership, tradeoffs compared to traditional applications, common adoption cases, and differences from SOA. It provides a reference architecture diagram for microservices on Kubernetes including components like ingress, services, CI/CD pipelines, container registry, and data stores. It also discusses design considerations for Kubernetes microservices including using Kubernetes services for service discovery and load balancing, and using an API gateway for routing between clients and services.

reference architectures shows a microservices depl
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent

Netflix morphed from a private datacenter based monolithic application into a cloud based Microservices architecture. This talk highlights the pros and cons of building software applications as suites of independently deployable services, as well as practical approaches for overcoming challenges - especially in the context of an elastic but ephemeral cloud ecosystem. What were the lessons learned while building and managing these services? What are the best practices and anti-patterns?

paas microservices cloud netflix netflixoss
Microservice Powered Orchestration
Microservice Powered OrchestrationMicroservice Powered Orchestration
Microservice Powered Orchestration

Microservice Powered Orchestration discusses using a microservice architecture and microservice bus (MSB) solution for ONAP orchestration. Some key points: - Microservices allow ONAP components to scale independently and integrate diverse seed codes, improving reliability and scalability. - MSB provides service registration, discovery, and routing to address challenges of direct client-microservice communication and dynamic service endpoints. - MSB features include high availability, separated gateways, extensibility through plugins, service health monitoring, and acting as a single entry point for ONAP. - MSB could fit into ONAP by handling service discovery and routing between components, and providing a reverse proxy for web applications

microservicesopen sourcearchitecture
Monitoring your Microservices Architecture
The Three Pillars of Observability
LOGGING METRICS TRACING
Prometheus Architecture
Visualizing the Service Mesh with Kiali
• Service Mesh Observability & Configuration
• Visualize Service Communication in real time
• Displays Traffic Rates and Latencies
• Quickly identify problem areas
• Configure, Update & Validate Service Mesh

Recommended for you

Cics Connectivity
Cics ConnectivityCics Connectivity
Cics Connectivity

The document discusses strategic integration options for connecting CICS and J2EE applications. It outlines two main integration models: exposing CICS applications as web services with an endpoint in a front-end system or directly in CICS. Key integration technologies covered include web services, JCA, and WebSphere products like Process Server and ESB. The document recommends choosing an approach based on business and technical factors like standards, skills, performance, and transaction requirements.

Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...

Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)

user modelinguser profilinguser model
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx

Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.

rpa in transportationrpa in transportation industryrpa in transportation sector
View the response time and request
rate of each of the microservice inside
the service mesh.
Visualization and Time Series Analytics
Create your own Dashboards for Monitoring and explore the service metrics
Visualization tools to help you understand your data better
RED Metrics for Microservices Monitoring
Rate - Number of requests per second your services are serving
Errors - Number of failed requests per second
Duration - Amount of time each request takes to fulfil a request
Distributed Tracing
Provides end to end visibility & insights into service requests
Used to troubleshoot latency issues in a Microservice Architecture

Recommended for you

20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024

Everything that I found interesting about machines behaving intelligently during June 2024

quantumfaxmachine
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant

Password Rotation in 2024 is still Relevant

passwordmanagementrotation
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Building a scalable microservice architecture with envoy, kubernetes and istio
Resources
Istio blogs on dotnetvibes - https://dotnetvibes.com/?s=istio
Katacoda Interactive Learning Platform - https://www.katacoda.com
Introducing Istio Service Mesh for Microservices - By Burr Sutter and Christian Posta
https://developers.redhat.com/books/introducing-istio-service-mesh-microservices/
Red Hat Developer Blogs and Tutorials - https://developers.redhat.com/topics/service-mesh/
Istio Blogs - https://istio.io/blog/
O’Reilly Live Online Training - https://www.oreilly.com/live-training
Thank You
@samirbehara www.dotnetvibes.com

More Related Content

What's hot

Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
Mark McBride
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
Weaveworks
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
Thomas Graf
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
Varun Talwar
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC
Shiju Varghese
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
Thomas Graf
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
Jonathan Gomez
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
RUDDER
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
NHN FORWARD
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
Docker, Inc.
 
iptables 101- bottom-up
iptables 101- bottom-upiptables 101- bottom-up
iptables 101- bottom-up
HungWei Chiu
 
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Thomas Graf
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP
Daniel T. Lee
 
Building Microservices with gRPC and NATS
Building Microservices with gRPC and NATSBuilding Microservices with gRPC and NATS
Building Microservices with gRPC and NATS
Shiju Varghese
 
gRPC
gRPCgRPC
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
CodeOps Technologies LLP
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
Haggai Philip Zagury
 
gRPC with java
gRPC with javagRPC with java
gRPC with java
Knoldus Inc.
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
Giragadurai Vallirajan
 
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
Vahid Rahimian
 

What's hot (20)

Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
iptables 101- bottom-up
iptables 101- bottom-upiptables 101- bottom-up
iptables 101- bottom-up
 
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP
 
Building Microservices with gRPC and NATS
Building Microservices with gRPC and NATSBuilding Microservices with gRPC and NATS
Building Microservices with gRPC and NATS
 
gRPC
gRPCgRPC
gRPC
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
gRPC with java
gRPC with javagRPC with java
gRPC with java
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
 

Similar to Building a scalable microservice architecture with envoy, kubernetes and istio

Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onap
Huabing Zhao
 
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
CodeOps Technologies LLP
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
Red Hat
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
Georgios Andrianakis
 
Istio presentation jhug
Istio presentation jhugIstio presentation jhug
Istio presentation jhug
Georgios Andrianakis
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
Rafik HARABI
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
José Román Martín Gil
 
Api observability
Api observability Api observability
Api observability
Red Hat
 
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
Daniel Ciruli
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
Ram Vennam
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
Yong Feng
 
Service Mesh in Practice
Service Mesh in PracticeService Mesh in Practice
Service Mesh in Practice
Ballerina
 
Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018
Peter Souter
 
Designing microservices
Designing microservicesDesigning microservices
Designing microservices
Masashi Narumoto
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
VladimirRadzivil
 
Dev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advanceDev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advance
Christina Lin
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Sudhir Tonse
 
Microservice Powered Orchestration
Microservice Powered OrchestrationMicroservice Powered Orchestration
Microservice Powered Orchestration
Open Networking Summit
 
Cics Connectivity
Cics ConnectivityCics Connectivity
Cics Connectivity
CICS ROADSHOW
 

Similar to Building a scalable microservice architecture with envoy, kubernetes and istio (20)

Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onap
 
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
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
Istio presentation jhug
Istio presentation jhugIstio presentation jhug
Istio presentation jhug
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
Api observability
Api observability Api observability
Api observability
 
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
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Service Mesh in Practice
Service Mesh in PracticeService Mesh in Practice
Service Mesh in Practice
 
Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018Consul Connect - EPAM SEC - 22nd september 2018
Consul Connect - EPAM SEC - 22nd september 2018
 
Designing microservices
Designing microservicesDesigning microservices
Designing microservices
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
 
Dev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advanceDev conf .in cloud native reference architecture .advance
Dev conf .in cloud native reference architecture .advance
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
 
Microservice Powered Orchestration
Microservice Powered OrchestrationMicroservice Powered Orchestration
Microservice Powered Orchestration
 
Cics Connectivity
Cics ConnectivityCics Connectivity
Cics Connectivity
 

Recently uploaded

Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 

Recently uploaded (20)

Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 

Building a scalable microservice architecture with envoy, kubernetes and istio

  • 1. Building a scalable Microservice Architecture With Kubernetes, Envoy and Istio
  • 2. SAMIR BEHARA System Architect, EBSCO Samir Behara builds software solutions using cutting edge technologies. Has a Bachelor Degree in Computer Science with 13 years of IT experience. Frequent Speaker at Technical Conferences. Author of www.dotnetvibes.com @samirbehara
  • 3. Agenda • Monolith vs Microservices • How to break a Monolith into Microservices • Complexities in a Microservice Architecture • Journey from Netflix OSS to Istio Service Mesh • The Rise of Sidecar Design Pattern • Istio Architecture and capabilities • How to make your microservices resilient & fault tolerant • Service Mesh Observability
  • 4. Monolithic Architecture Order Management Service Monolithic Database Large Codebase Difficult to Scale Longer Development Cycle Complicated Deployments Fixed Technology stack Performance Issues Tight Coupling
  • 6. Monolith Architecture – Centralized Database Order Service Title Service Currency Service Pricing Service Monolithic Shared Database API Gateway
  • 7. Databases are private to each Microservice Order API Pricing API
  • 10. Transform and Eliminate Pattern TRANSFORM CO-EXIST ELIMINATE
  • 12. Emergence of Microservices Shorter Development Cycle Faster Deployments Highly Scalable Right Technology Stack Business Domain Driven Resiliency & Observability High Cohesion & Loose Coupling
  • 13. Immutable Infrastructure Declarative Configuration Horizontal Scaling Self Healing SystemsService Discovery Decoupled Architecture Load Balancing Scalable Microservices with Kubernetes
  • 15. 8 Fallacies of Distributed Computing Fallacy Solutions The network is reliable Automatic Retries, Message Queues Latency is zero Caching Strategy, Bulk Requests, Deploy in AZs near client Bandwidth is infinite Throttling Policy, Small payloads with Microservices The network is secure Network Firewalls, Encryption, Certificates, Authentication Topology does not change No hardcoding IP, Service Discovery Tools There is one administrator DevOps Culture eliminates Bus Factor Transport cost is zero Standardized protocols like JSON, Cost Calculation The network is homogenous Circuit Breaker, Retry and Timeout Design Pattern
  • 16. Complexities in a Microservice Architecture
  • 18. What are the issues with Netflix OSS? ROUTING CIRCUIT BREAKER LOAD BALANCING SERVICE DISCOVERY TRACING ROUTING CIRCUIT BREAKER LOAD BALANCING SERVICE DISCOVERY TRACING INFRASTRUCTURE SERVICE A SERVICE B • Tightly coupled to the Java Platform • Not a good fit for Polyglot Architecture • Netflix Libraries needs to be embedded inside each microservice along side Business functionalities • Increases overall Application Complexity • Operational Complexity - Patching/Upgrades
  • 19. Sidecar Design Pattern Microservice A Microservice B Microservice C Sidecar Sidecar Sidecar Service Mesh Control Plane
  • 20. Shared Libraries vs Service Mesh Pricing Service Sidecar Order Service Sidecar Currency Service Sidecar Customer Service Sidecar Title Service Sidecar Control Plane Business Logic + Shared Libraries Business Logic + Shared Libraries Business Logic + Shared Libraries Business Logic + Shared Libraries Business Logic + Shared Libraries
  • 21. Smart Pipes and Smart Endpoints with Service Mesh Responsibility of network is to transfer messages Responsibility of microservices is to handle Business Logic, transformations, validations and process messages. Dumb Pipes and Smart Endpoints
  • 22. Envoy • Envoy is a high performance Open Source Proxy designed for Cloud-Native Applications • Envoy makes the network transparent to the applications • Envoy is deployed as a Sidecar Proxy to every service • All traffic in a Microservice architecture flows via the Envoy Proxy Out of Process Architecture Service Discovery Load Balancing Circuit Breakers Fault Injection Observability
  • 23. Istio • Platform to Connect, Secure, Control and Monitor Services consistently. • Open Source Service Mesh – Governed by Google & IBM • Shifts the complexity of running a distributed microservice architecture to the infrastructure layer • Control Plane for service proxies like Envoy • Platform Independent & Language agnostic
  • 24. Istio Features Traffic Management Policy Enforcement Observability Security Telemetry
  • 25. Service A Service B Network Service to Service Communication over Network
  • 26. Service A Service B Sidecar Deployment using Envoy Proxy Envoy Proxy intercepts all network traffic flowing between applications
  • 27. Service A Service B Configuration Validation, Management and Distribution Galley
  • 28. Service A Service B Sidecar Configuration and Traffic Management capabilities Galley Pilot Push config data to sidecar proxies
  • 29. Service A Service B Policy Enforcement and Telemetry Collection Galley Pilot Mixer Policy Checks & Telemetry
  • 30. Service A Service B Enable Secure Communication using mutual TLS with built-in identity and credential management Galley Pilot Mixer Citadel Push TLS certificates to sidecar proxies
  • 31. Service A Service B Galley Pilot Mixer Citadel Istio Mesh Integrated Control Plane
  • 33. SERVICE A SERVICE B Istio Architecture PILOT CITADEL MIXER Control Plane Data Plane Service Discovery Traffic Management Resiliency Policy Enforcement Telemetry Authentication Security GALLEY Configuration Validation and Distribution HTTP, gRPC, TCP Security - mTLS Pod Pod
  • 35. Traffic Routing Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: prodPILOT Traffic Routing Rules # Route all traffic to v1 of ServiceB kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - route: - destination: host: serviceB subset: v1
  • 36. Canary Deployment Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: prod 90% 10% PILOT Traffic Routing Rules # Percentage based Traffic Split kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - route: - destination: host: serviceB subset: v1 weight: 90 - destination: host: serviceB subset: v2 weight: 10
  • 37. Dark Launches Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: prod 100% Mirror Traffic PILOT Traffic Routing Rules # Traffic Mirroring kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - route: - destination: host: serviceB subset: v1 weight: 100 mirror: host: serviceB subset: v2
  • 43. Circuit Breaker Envoy Service A Pod Envoy Service B Pod Envoy Service C Pod # Limits the number of concurrent connections and requests kind: DestinationRule metadata: name: serviceC spec: hosts: - serviceC trafficPolicy: connectionPool: http: http1MaxPendingRequests: 10 maxRequestsPerConnection: 1 tcp: maxConnections: 1
  • 44. Outlier Detection # Detect faulty instances in the pool & remove from traffic routing kind: DestinationRule metadata: name: serviceB spec: hosts: - serviceB trafficPolicy: outlierDetection: baseEjectionTime: 20s consecutiveErrors: 3 interval: 10s maxEjectionPercent: 100 Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: staging
  • 45. Timeout Envoy Service A Pod Envoy Service B Pod Envoy Service C Pod # Timeout strategy for service communication over network kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - route: - destination: host: serviceB timeout: 10s Timeout: 10 sec Timeout: 10 sec
  • 46. Istio Retry Policy Envoy Service A Pod Envoy Service B Pod # Retry strategy for service communication over network kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - route: - destination: host: serviceB retries: attempts: 3 perTryTimeout: 2s Retry: 5 5XX Error
  • 47. Chaos Testing – Inject Delays Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: prod # Create rule to delay traffic to ServiceB v1 kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - fault: delay: fixedDelay: 10s percent: 50 route: - destination: host: serviceB subset: v1 10s delay in 50% of requests
  • 48. Chaos Testing – Inject Errors Envoy Service A Pod Envoy Service B Pod Envoy Service B Pod Pod Labels - version: v1 env: staging Pod Labels - version: v2 env: prod # Create rule to inject errors to ServiceB v1 kind: VirtualService metadata: name: serviceB spec: hosts: - serviceB http: - fault: abort: httpStatus: 500 percent: 50 route: - destination: host: serviceB subset: v2 HTTP 500 in 50% of requests
  • 50. The Three Pillars of Observability LOGGING METRICS TRACING
  • 52. Visualizing the Service Mesh with Kiali • Service Mesh Observability & Configuration • Visualize Service Communication in real time • Displays Traffic Rates and Latencies • Quickly identify problem areas • Configure, Update & Validate Service Mesh
  • 53. View the response time and request rate of each of the microservice inside the service mesh.
  • 54. Visualization and Time Series Analytics Create your own Dashboards for Monitoring and explore the service metrics Visualization tools to help you understand your data better
  • 55. RED Metrics for Microservices Monitoring Rate - Number of requests per second your services are serving Errors - Number of failed requests per second Duration - Amount of time each request takes to fulfil a request
  • 56. Distributed Tracing Provides end to end visibility & insights into service requests Used to troubleshoot latency issues in a Microservice Architecture
  • 58. Resources Istio blogs on dotnetvibes - https://dotnetvibes.com/?s=istio Katacoda Interactive Learning Platform - https://www.katacoda.com Introducing Istio Service Mesh for Microservices - By Burr Sutter and Christian Posta https://developers.redhat.com/books/introducing-istio-service-mesh-microservices/ Red Hat Developer Blogs and Tutorials - https://developers.redhat.com/topics/service-mesh/ Istio Blogs - https://istio.io/blog/ O’Reilly Live Online Training - https://www.oreilly.com/live-training