SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Resilient service to-service calls in a post-Hystrix world
Resilient service to-service calls in a post-Hystrix worldResilient service to-service calls in a post-Hystrix world
Resilient service to-service calls in a post-Hystrix world
Rares Musina
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
confluent
 
Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
SVDevOps
 

La actualidad más candente (20)

Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
HAProxy
HAProxy HAProxy
HAProxy
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache Kafka
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Microservice Architecture using Spring Boot with React & Redux
Microservice Architecture using Spring Boot with React & ReduxMicroservice Architecture using Spring Boot with React & Redux
Microservice Architecture using Spring Boot with React & Redux
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Knative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVMKnative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVM
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Resilient service to-service calls in a post-Hystrix world
Resilient service to-service calls in a post-Hystrix worldResilient service to-service calls in a post-Hystrix world
Resilient service to-service calls in a post-Hystrix world
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer
C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layerC. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer
C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer
 
Grafana optimization for Prometheus
Grafana optimization for PrometheusGrafana optimization for Prometheus
Grafana optimization for Prometheus
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
On-boarding with JanusGraph Performance
On-boarding with JanusGraph PerformanceOn-boarding with JanusGraph Performance
On-boarding with JanusGraph Performance
 
Chaos Engineering for Docker
Chaos Engineering for DockerChaos Engineering for Docker
Chaos Engineering for Docker
 
Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in Kubernetes
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
 

Similar a The Evolution of Distributed Systems on Kubernetes

Similar a 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
 

Más de Bilgin Ibryam

Más de 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
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Último (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 

The Evolution of Distributed Systems on Kubernetes