SlideShare a Scribd company logo
1 of 55
Bilgin Ibryam
Product Manager @RedHat
@bibryam
The Evolution of
Distributed Systems on
Kubernetes
1
@bibryam
Bilgin Ibryam
2
● Product Manager at Red Hat
● Former Architect/Consultant
● Committer at Apache Camel
● Author of “Camel Design Patterns” and
“Kubernetes Patterns” books
● Latest interest: cloud native data
@bibryam
What comes after
Microservices?
3
@bibryam
Agenda
4
● Distributed system needs
● Monolithic architectures
● Cloud-native technologies
■ Kubernetes, Istio, Knative, Dapr
● Future architecture trends
@bibryam
5
Modern distributed applications
● 100s of components and 1000s of instances
● Polyglot, independent, and automatable components
● Hybrid workloads on hybrid environments
● Open source, open standards, and interoperable
● Based on Kubernetes ecosystem
What are the needs of
distributed applications?
6
@bibryam
7
Distributed application needs
@bibryam
8
Distributed application needs
Lifecycle management
● Deployment/rollback
● Placement/scheduling
● Configuration management
● Resource/failure isolation
● Auto/manual scaling
● Hybrid workloads (stateless, stateful,
serverless, etc)
@bibryam
9
Distributed application needs
Advanced networking
● Service discovery and failover
● Dynamic traffic routing
● Retry, timeout, circuit breaking
● Security, rate limiting, encryption
● Observability and tracing
@bibryam
10
Distributed application needs
Resource bindings
● Connectors for APIs
● Protocol conversion
● Message transformation
● Filtering, light message routing
● Point-to-point, pub/sub interactions
@bibryam
11
Distributed application needs
Stateful abstractions
● Workflow management
● Temporal scheduling
● Distributed caching
● Idempotency
● Transactionality (SAGA)
● Application state
Monolithic architectures
12
@bibryam
13
Traditional middleware capabilities
● Stateful primitives
● Resource bindings
● Networking
@bibryam
14
Traditional middleware limitations
● Lifecycle management
○ Single, shared language runtime
○ Manual deployment/rollback
○ Manual placement
○ Manual scaling
○ No resource/failure isolation
Cloud-native architectures
15
@bibryam
16
Microservices and Kubernetes
@bibryam
17
Microservices and Kubernetes
@bibryam
Health probes
18
@bibryam
Managed start/stop
19
@bibryam
Declarative deployment
20
@bibryam
21
Demands & placement
Predictable resource demand Automated placement
@bibryam
22
Configuration management
● ConfigMaps used in Pods as:
○ environment variables
○ volumes
● Secrets:
○ Minimal Node spread
○ Only stored in memory in a tmpfs
○ Encrypted in the backend store (etcd)
○ Access can be restricted with RBAC
@bibryam
23
Foundational kubernetes capabilities
More Kubernetes Patterns
● Foundational patterns
● Structural patterns
● Configuration patterns
● Behavioural patterns
(For more Kubernetes Patterns,
check out the link at the end of the slides)
@bibryam
Batch/Periodic Job
24
Hybrid workloads
Global SingletonStateful Service
Stateless Service
@bibryam
25
Lifecycle capabilities
● Deployment/rollback
● Placement/scheduling
● Configuration management
● Resource/failure isolation
● Auto/manual scaling
● Hybrid workloads: stateless, stateful,
batch jobs, serverless
How do we extend
Kubernetes?
26
@bibryam
27
Out-of-process extension mechanism
Deployment guarantees Lifecycle guarantees
@bibryam
Sidecar
28
@bibryam
Controller Pattern
29
Default schema
● ReplicaSet
● StatefulSet
● Job, CronJob
Default controllers
● replicaset
● statefulset
● job, cronjob
Managed resources
state
● Pod
● PVC...
Custom controller -> Custom behaviour
@bibryam
Operator Pattern
30
kind: ConfigWatcher
apiVersion: k8spatterns.io/v1
metadata:
name: webapp-config-watcher
spec:
configMap: webapp-config
podSelector:
app: webapp
Custom operator
● Go
● Helm
● Ansible
● Java
● Python
Custom application
● AI/ML
● Big Data
● Storage
● Streaming
● Monitoring
CustomResourceDefinition + Controller = Operator
Kubernetes based
platforms
31
@bibryam
32
What is Service Mesh?
@bibryam
33
What is Service Mesh?
@bibryam
34
What is Service Mesh?
@bibryam
35
What is Service Mesh?
@bibryam
36
Networking capabilities
API Gateway Service Mesh
Abstract away details and decouple
consumers from implementations
● Controls what’s allowed in/out
● Bridging security domains
● Request / response transformation
● Protocol, data format transformation
● API composition
● Rate limiting
Enhances the reliability and the visibility of the
networking interactions
● Telemetry, tracing collection
● Service discovery, load balancing
● TLS termination/origination
● Request routing, traffic splitting
● Traffic shadowing
● Rate limiting
@bibryam
37
What is Knative?
Serving
Common infrastructure
for request-driven
interactions that can
"scale to zero".
Eventing
Common infrastructure
for consuming and
producing events
declaratively.
Kubernetes-based platform to deploy, and manage
serverless workloads.
@bibryam
38
Knative Serving concepts
● Scale-to-zero & activation
● Rapid autoscaling
● Traffic splitting
● Callable by Knative eventing
● Simplified deployment model
○ Single Port
○ No PersistentVolumes
○ Single Container
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: lotto
spec:
replicas: 1
selector:
matchLabels:
app: lotto
template:
metadata:
labels:
app: lotto
spec:
containers:
- image: cds19/lotto
@bibryam
39
Knative Eventing concepts
● Sources (Kafka, CronJob, Apache Camel 200+, etc)
● Broker implementations (In-memory, Kafka, etc)
● CloudEvents data format
● Trigger with filters
● Sequence: chaining multiple steps composed of
containers
@bibryam
40
Lifecycle, networking, binding capabilities
● Knative Serving
○ Simplified deployment for stateless workloads
○ Traffic based autoscaling including Scale-to-Zero
○ Traffic splitting for custom rollout / rollback scenarios
● Knative Eventing
○ External triggers for feeding Knative Services
○ Based on CloudEvents
○ Backed by proven messaging systems
○ Declarative messaging infrastructure
@bibryam
41
What is Dapr?
Sidecar architecture
Developer first, standard APIs
used from any programming
language or framework.
Building blocks
Make it easy for developers to
create microservice without
being an expert in distributed
systems.
A portable runtime for building distributed
applications.
@bibryam
42
Dapr building blocks
Distributed Tracing
See and measure the message
calls across components and
networked services
Service Invocation
Act as a reverse proxy with
built-in service discovery,
tracing and error handling
Publish & Subscribe
Secure, scalable messaging
between services
Resource Bindings
Trigger code through events
from input and output bindings
to external resources.
Actors
Encapsulate code and data in
reusable actor objects as a
common microservices
State Management
Provides a key/value-based
state API with pluggable state
stores for persistence
@bibryam
43
Dapr architecture
Source:https://github.com/dapr/docs
@bibryam
44
Dapr on Kubernetes
Source:https://github.com/dapr/docs
@bibryam
45
Full circle
● Centralized control plane
● Centralized data plane
● Centralized control plane
● Decentralized, highly-scalable data plane
Service discovery
Dynamic routing
Resiliency
Observability
Deployment
Placement
Config mgmt
Scaling
Bindings
State abstraction
Pub/Sub
Observability
Connectors
Eventing
Filtering
Serverless
Future cloud native trends
46
@bibryam
47
Lifecycle trends
Source:https://operatorhub.io
@bibryam
● Introduction of Service Mesh Interface specification
● Architecture consolidation of Istio with istiod
● More L7 protocols: MongoDB, DynamoDB, ZooKeeper, MySQL, Redis, Kafka(8188)
○ KIP-559 can enable bridging, validation, encryption, filtering, transformation
● HTTP Cache filter (eCache)
● HTTP tap filter (with matcher)
● WebAssembly (wasm) filters with dynamic loading (C++ -> Rust, Go, etc)
48
Networking trends
@bibryam
49
Binding trends
Dev Environment Cloud
kamel CLI
Camel K
Operator
Custom
Resource
Running Pod
Fast redeploy!
Less than 1 second!
- from:
uri: "direct:route"
steps:
- split:
tokenize: ","
- to: "mock:split"
Camel-K Operator:
1. Choose a runtime
2. Scaffold a project
3. Add boilerplate
4. Add dependencies
5. Create container image
6. Create Kubernetes
resources for deployment
Source:https://github.com/apache/camel-k
Live
updates!
@bibryam
50
State trends
Source:https://github.com/cloudstateio/cloudstate
What does all this mean?
51
@bibryam
52
Multi-runtime microservices are here
@bibryam
53
Smart sidecars and dumb pipes
@bibryam
54
What comes after Microservices?
Thank You
55
@bibryam
https://k8spatterns.io

More Related Content

What's hot

Inside neutron 2
Inside neutron 2Inside neutron 2
Inside neutron 2
Robin Gong
 

What's hot (20)

Kubernetes
KubernetesKubernetes
Kubernetes
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioGOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
Google Cloud Networking Deep Dive
Google Cloud Networking Deep DiveGoogle Cloud Networking Deep Dive
Google Cloud Networking Deep Dive
 
Kubernetes and Prometheus
Kubernetes and PrometheusKubernetes and Prometheus
Kubernetes and Prometheus
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
 
Inside neutron 2
Inside neutron 2Inside neutron 2
Inside neutron 2
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
DevOps in AWS with Kubernetes
DevOps in AWS with KubernetesDevOps in AWS with Kubernetes
DevOps in AWS with Kubernetes
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
Docker swarm
Docker swarmDocker swarm
Docker swarm
 

Similar to The Evolution of Distributed Systems on Kubernetes

Similar to The Evolution of Distributed Systems on Kubernetes (20)

What next after microservices
What next after microservicesWhat next after microservices
What next after microservices
 
Designing Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with KubernetesDesigning Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with Kubernetes
 
Kubernetes: The evolution of distributed systems | DevNation Tech Talk
Kubernetes: The evolution of distributed systems | DevNation Tech TalkKubernetes: The evolution of distributed systems | DevNation Tech Talk
Kubernetes: The evolution of distributed systems | DevNation Tech Talk
 
The Kubernetes Effect
The Kubernetes EffectThe Kubernetes Effect
The Kubernetes Effect
 
CI/CD Pipeline with Kubernetes
CI/CD Pipeline with KubernetesCI/CD Pipeline with Kubernetes
CI/CD Pipeline with Kubernetes
 
Cloud Native DevOps
Cloud Native DevOpsCloud Native DevOps
Cloud Native DevOps
 
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherOSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern Application
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Operator Framework Overview
Operator Framework OverviewOperator Framework Overview
Operator Framework Overview
 
Atmosphere 2016 - Pawel Mastalerz, Wojciech Inglot - New way of building inf...
Atmosphere 2016 -  Pawel Mastalerz, Wojciech Inglot - New way of building inf...Atmosphere 2016 -  Pawel Mastalerz, Wojciech Inglot - New way of building inf...
Atmosphere 2016 - Pawel Mastalerz, Wojciech Inglot - New way of building inf...
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Cloud-Native: A New Ecosystem for Putting Containers into Production
Cloud-Native:  A New Ecosystem for Putting Containers into ProductionCloud-Native:  A New Ecosystem for Putting Containers into Production
Cloud-Native: A New Ecosystem for Putting Containers into Production
 

More from Bilgin Ibryam

More from Bilgin Ibryam (9)

Dapr - A 10x Developer Framework for Any Language
Dapr - A 10x Developer Framework for Any LanguageDapr - A 10x Developer Framework for Any Language
Dapr - A 10x Developer Framework for Any Language
 
Modernization patterns to refactor a legacy application into event driven mic...
Modernization patterns to refactor a legacy application into event driven mic...Modernization patterns to refactor a legacy application into event driven mic...
Modernization patterns to refactor a legacy application into event driven mic...
 
Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
 
How to financially survive while growing a small open source project
How to financially survive while growing a small open source projectHow to financially survive while growing a small open source project
How to financially survive while growing a small open source project
 
Enterprise Integration for Ethereum
Enterprise Integration for EthereumEnterprise Integration for Ethereum
Enterprise Integration for Ethereum
 
Cloud Native Patterns
Cloud Native PatternsCloud Native Patterns
Cloud Native Patterns
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and TearsCamel Desing Patterns Learned Through Blood, Sweat, and Tears
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
 

Recently uploaded

Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
drm1699
 

Recently uploaded (20)

Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 

The Evolution of Distributed Systems on Kubernetes