SlideShare a Scribd company logo
1 of 21
Redis-Cluster Operator
Makes Redis-Cluster deployment easier !
cedric.lamoriniere@amadeus.com
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
| @cedlamo
A global player at the heart of the travel industry
2
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Key business numbers
1.3 billion
Passengers
boarded (PBs)
566 million
travel agency
bookings processed
1.6+ billion
data requests
processed per day
5000+
Application servers
~450 000
queries per second
(600 000 at peak)
3
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Our technology journey
SNA
TPF
TN3720
1997
C++
TCP/IP
JEE
& SOAP
2000 2003 2006 2015 2017
Application on Open System in PRD
In House ESB
Industrialization
of Open System
Launch ACS
TPF deco
Almost done
4
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
ACS: Motivation and Goals
New Business Requirements:
● improve responses time
● hosted on client premises
● data must stay in a country
● hosting third party application
Current infrastructure:
● bare metal or virtual machine
● dedicated resources
● limited elasticity
● spare resources outside peak
time
5
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Amadeus Cloud Services: migration of our
applications to a cloud based infrastructure:
(OpenShift [private|public] infra)
Redis-Cluster with Openshift: Motivation and Goals
Improve resilience and performance of our applications
Offer a performant session offloading solution to our applications
based on Redis
6
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Redis-Cluster operated in Openshift
Same stack for middleware and application
Simplify redis-cluster operational support
Benefit from Amadeus Cloud Services: deployment, monitoring,
logging, etc
Openshift / Kubernetes
Kubernetes
7
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Redis in Kubernetes
8
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Several prototypes examples, but
Missing features:
● Simple deployment
● Update cluster topology: scaling, replication factor
● Rolling-update
● Resiliency
9
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
MasterMaster
Redis-Cluster in Openshift
10
Master
Node
APIkubectl
REST
Kubelet
Docker Daemon
Etcd
Scheduler
Node Kubelet
Docker Daemon
Node Kubelet
Docker Daemon
DNS
©2016AmadeusITGroupanditsaffiliatesandsubsidiaries
Controller
Pod Pod Pod
Pod Pod PodPod Pod
PodPod Pod Pod
Pod Pod Pod Pod
Pod
Pod
Pod Redis-Master
Pod Redis-Slave
Pod Redis-Server
Redis Manager in Openshift
Pod: redis
manager
app=manager
RC: manager
Manager
Watch
ConfigMap:
ClusterConfiguration
NbMaster: 3
ReplicationFactor: 2
Scale
Watch
redis-node
-1-dsasxf
app=manager
Init
Node
Service: redis-node
Deployment: redis-node
ReplicationSet: redis-node-1
redis-node
-1-ascdsd
app=manager
Init
Node
n
redis-node
-1-etebfbd
app=manager
Init
Node
Configure
11
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Redis-Cluster Rolling Update with Openshift
Pod: redis
manager
RC: manager
Manager
Watch
ConfigMap:
ClusterConfiguration
Deployment: redis-node
ReplicationSet: redis-node-1 ReplicationSet: redis-node-2
Service: redis-node
redis-
node
V1
redis-
node
V1
redis-
node
V1
redis-
node
V2
redis-
node
V2
redis-
node
V2
Scale
Migrate
Pod: Deployer
Redis-deployer
12
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Demo
Run in Openshift / Minishift
Start a Redis-Cluster
Scale up
Rolling update
13
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
recorded demo: https://youtu.be/dfr2Z3jVs9E
Advantages of current solution
● Automate Redis-Cluster standard operations
○ Creation, Scaling, Rolling-update
● Does not require persistent volumes
● Seen as yet another Kubernetes application
14
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Limitations of current solution
● One Redis-Cluster per Manager
● Reacts to Kubernetes events (limited control)
● Depends on Openshift feature (custom deployer)
15
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
How to improve current solution ?
OperatorRedis-
16
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Redis Operator
Pod: Redis
Operator
RC: Operator
Operator
Watch
Service: redis-node
ThirdPartyResources: Redis-Cluster
Replicas: 3
ReplicationFactor: 2
PodTemplate: {}
Kubernetes
Scheduler
Scheduling
Requests
redis-node
-1-dsasxf
app=manager
Init
Node
Schedule
Pods
redis-node
-1-ascdsd
app=manager
Init
Node
n
redis-node
-1-etebfbd
app=manager
Init
Node
configure
17
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Advantages of Redis-Cluster Operator
● Specificity hidden in a new K8s Object (3rd party resource)
● Generic User Experience
● Responsive vs Proactive:
○ Better Redis-Node life cycle management
● One Operator for several Redis-Clusters
18
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
What next?
● Opensource current Redis-Manager
● Migrate Redis-Manager logic in an Operator
● Package in Helm chart
● Integration with K8s Service Catalogue
19
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Key takeaways
● Easy deployment of Redis-Cluster thanks to Kubernetes
● Automation thanks to Redis-Manager/Operator
● Opensourced soon
20
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Questions?
21
©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
Thank you !
cedric.lamoriniere@amadeus.com | @cedlamo

More Related Content

What's hot

Highly scalable caching service on cloud - Redis
Highly scalable caching service on cloud - RedisHighly scalable caching service on cloud - Redis
Highly scalable caching service on cloud - RedisKrishna-Kumar
 
Portworx + Rancher Webinar
Portworx + Rancher Webinar Portworx + Rancher Webinar
Portworx + Rancher Webinar Eric Han
 
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...Redis Labs
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Red Hat Storage Day Dallas - Defiance of the Appliance
Red Hat Storage Day Dallas - Defiance of the Appliance Red Hat Storage Day Dallas - Defiance of the Appliance
Red Hat Storage Day Dallas - Defiance of the Appliance Red_Hat_Storage
 
Episode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesEpisode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesMesosphere Inc.
 
MySQL Head to Head Performance
MySQL Head to Head PerformanceMySQL Head to Head Performance
MySQL Head to Head PerformanceKyle Bader
 
Scalable POSIX File Systems in the Cloud
Scalable POSIX File Systems in the CloudScalable POSIX File Systems in the Cloud
Scalable POSIX File Systems in the CloudRed_Hat_Storage
 
Red Hat Storage: Emerging Use Cases
Red Hat Storage: Emerging Use CasesRed Hat Storage: Emerging Use Cases
Red Hat Storage: Emerging Use CasesRed_Hat_Storage
 
Orchestrating stateful applications with PKS and Portworx
Orchestrating stateful applications with PKS and PortworxOrchestrating stateful applications with PKS and Portworx
Orchestrating stateful applications with PKS and PortworxVMware Tanzu
 
Virtual training optimizing the tick stack
Virtual training  optimizing the tick stackVirtual training  optimizing the tick stack
Virtual training optimizing the tick stackInfluxData
 
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...Redis Labs
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentLeandro Totino Pereira
 
Persistent Storage for Containerized Applications
Persistent Storage for Containerized ApplicationsPersistent Storage for Containerized Applications
Persistent Storage for Containerized ApplicationsColleen Corrice
 
Red Hat Storage Day New York - New Reference Architectures
Red Hat Storage Day New York - New Reference ArchitecturesRed Hat Storage Day New York - New Reference Architectures
Red Hat Storage Day New York - New Reference ArchitecturesRed_Hat_Storage
 
以 Kubernetes 部屬 Spark 大數據計算環境
以 Kubernetes 部屬 Spark 大數據計算環境以 Kubernetes 部屬 Spark 大數據計算環境
以 Kubernetes 部屬 Spark 大數據計算環境inwin stack
 
Architecting Ceph Solutions
Architecting Ceph SolutionsArchitecting Ceph Solutions
Architecting Ceph SolutionsRed_Hat_Storage
 
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers Red_Hat_Storage
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH Ceph Community
 
RedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripodRedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripodRedis Labs
 

What's hot (20)

Highly scalable caching service on cloud - Redis
Highly scalable caching service on cloud - RedisHighly scalable caching service on cloud - Redis
Highly scalable caching service on cloud - Redis
 
Portworx + Rancher Webinar
Portworx + Rancher Webinar Portworx + Rancher Webinar
Portworx + Rancher Webinar
 
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Red Hat Storage Day Dallas - Defiance of the Appliance
Red Hat Storage Day Dallas - Defiance of the Appliance Red Hat Storage Day Dallas - Defiance of the Appliance
Red Hat Storage Day Dallas - Defiance of the Appliance
 
Episode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesEpisode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data Services
 
MySQL Head to Head Performance
MySQL Head to Head PerformanceMySQL Head to Head Performance
MySQL Head to Head Performance
 
Scalable POSIX File Systems in the Cloud
Scalable POSIX File Systems in the CloudScalable POSIX File Systems in the Cloud
Scalable POSIX File Systems in the Cloud
 
Red Hat Storage: Emerging Use Cases
Red Hat Storage: Emerging Use CasesRed Hat Storage: Emerging Use Cases
Red Hat Storage: Emerging Use Cases
 
Orchestrating stateful applications with PKS and Portworx
Orchestrating stateful applications with PKS and PortworxOrchestrating stateful applications with PKS and Portworx
Orchestrating stateful applications with PKS and Portworx
 
Virtual training optimizing the tick stack
Virtual training  optimizing the tick stackVirtual training  optimizing the tick stack
Virtual training optimizing the tick stack
 
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...
RedisConf17 - Building Large High Performance Redis Databases with Redis Ente...
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous Deployment
 
Persistent Storage for Containerized Applications
Persistent Storage for Containerized ApplicationsPersistent Storage for Containerized Applications
Persistent Storage for Containerized Applications
 
Red Hat Storage Day New York - New Reference Architectures
Red Hat Storage Day New York - New Reference ArchitecturesRed Hat Storage Day New York - New Reference Architectures
Red Hat Storage Day New York - New Reference Architectures
 
以 Kubernetes 部屬 Spark 大數據計算環境
以 Kubernetes 部屬 Spark 大數據計算環境以 Kubernetes 部屬 Spark 大數據計算環境
以 Kubernetes 部屬 Spark 大數據計算環境
 
Architecting Ceph Solutions
Architecting Ceph SolutionsArchitecting Ceph Solutions
Architecting Ceph Solutions
 
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
 
RedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripodRedisConf17 - Redis Cluster at flickr and tripod
RedisConf17 - Redis Cluster at flickr and tripod
 

Similar to [RedisConf17] Redis Cluster Operability with Kubernetes and OpenShift - Cedric Lamoriniere

Monitoring CloudStack and components
Monitoring CloudStack and componentsMonitoring CloudStack and components
Monitoring CloudStack and componentsShapeBlue
 
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...MongoDB
 
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...Redis Labs
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
 
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...Amazon Web Services
 
MongoDB World 2019: Mastering MongoDB in Kubernetes
MongoDB World 2019: Mastering MongoDB in KubernetesMongoDB World 2019: Mastering MongoDB in Kubernetes
MongoDB World 2019: Mastering MongoDB in KubernetesMongoDB
 
Enabling MEC as a New Telco Business Opportunity
Enabling MEC as a New Telco Business OpportunityEnabling MEC as a New Telco Business Opportunity
Enabling MEC as a New Telco Business OpportunityMichelle Holley
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...DataWorks Summit
 
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_Perez
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_PerezRed_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_Perez
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_PerezMiguel Pérez Colino
 
Modern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadModern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadMitchell Pronschinske
 
qewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle Tierqewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle TierRob Tweed
 
Consul and Complex Networks
Consul and Complex NetworksConsul and Complex Networks
Consul and Complex Networksslackpad
 
L'Iperconvergenza 2.0: NetApp HCI in Action
L'Iperconvergenza 2.0: NetApp HCI in ActionL'Iperconvergenza 2.0: NetApp HCI in Action
L'Iperconvergenza 2.0: NetApp HCI in ActionNetApp
 
End User Computing with NetApp
End User Computing with NetAppEnd User Computing with NetApp
End User Computing with NetAppNetApp
 
Zero Dollar Migration Program
Zero Dollar Migration ProgramZero Dollar Migration Program
Zero Dollar Migration ProgramVMware Tanzu
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to DeploymentAerospike, Inc.
 
5 ways MSP N-central 11 will revolutionize your service delivery
5 ways MSP N-central 11 will revolutionize your service delivery5 ways MSP N-central 11 will revolutionize your service delivery
5 ways MSP N-central 11 will revolutionize your service deliverySolarwinds N-able
 
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...PeckaDesign.cz
 
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksRunning Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksAmazon Web Services
 

Similar to [RedisConf17] Redis Cluster Operability with Kubernetes and OpenShift - Cedric Lamoriniere (20)

Monitoring CloudStack and components
Monitoring CloudStack and componentsMonitoring CloudStack and components
Monitoring CloudStack and components
 
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...
MongoDB World 2018: Supercharge Your MongoDB Deployment with Ops Manager Auto...
 
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
 
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
 
MongoDB World 2019: Mastering MongoDB in Kubernetes
MongoDB World 2019: Mastering MongoDB in KubernetesMongoDB World 2019: Mastering MongoDB in Kubernetes
MongoDB World 2019: Mastering MongoDB in Kubernetes
 
Enabling MEC as a New Telco Business Opportunity
Enabling MEC as a New Telco Business OpportunityEnabling MEC as a New Telco Business Opportunity
Enabling MEC as a New Telco Business Opportunity
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
 
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_Perez
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_PerezRed_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_Perez
Red_Hat_on_Power-IBM_Systems_Summit_2015-Miguel_Perez
 
Modern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadModern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with Nomad
 
qewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle Tierqewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle Tier
 
Consul and Complex Networks
Consul and Complex NetworksConsul and Complex Networks
Consul and Complex Networks
 
L'Iperconvergenza 2.0: NetApp HCI in Action
L'Iperconvergenza 2.0: NetApp HCI in ActionL'Iperconvergenza 2.0: NetApp HCI in Action
L'Iperconvergenza 2.0: NetApp HCI in Action
 
End User Computing with NetApp
End User Computing with NetAppEnd User Computing with NetApp
End User Computing with NetApp
 
Zero Dollar Migration Program
Zero Dollar Migration ProgramZero Dollar Migration Program
Zero Dollar Migration Program
 
Using Databases and Containers From Development to Deployment
Using Databases and Containers  From Development to DeploymentUsing Databases and Containers  From Development to Deployment
Using Databases and Containers From Development to Deployment
 
SD Times - Docker v2
SD Times - Docker v2SD Times - Docker v2
SD Times - Docker v2
 
5 ways MSP N-central 11 will revolutionize your service delivery
5 ways MSP N-central 11 will revolutionize your service delivery5 ways MSP N-central 11 will revolutionize your service delivery
5 ways MSP N-central 11 will revolutionize your service delivery
 
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
 
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksRunning Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

[RedisConf17] Redis Cluster Operability with Kubernetes and OpenShift - Cedric Lamoriniere

  • 1. Redis-Cluster Operator Makes Redis-Cluster deployment easier ! cedric.lamoriniere@amadeus.com ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries | @cedlamo
  • 2. A global player at the heart of the travel industry 2 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 3. Key business numbers 1.3 billion Passengers boarded (PBs) 566 million travel agency bookings processed 1.6+ billion data requests processed per day 5000+ Application servers ~450 000 queries per second (600 000 at peak) 3 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 4. Our technology journey SNA TPF TN3720 1997 C++ TCP/IP JEE & SOAP 2000 2003 2006 2015 2017 Application on Open System in PRD In House ESB Industrialization of Open System Launch ACS TPF deco Almost done 4 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 5. ACS: Motivation and Goals New Business Requirements: ● improve responses time ● hosted on client premises ● data must stay in a country ● hosting third party application Current infrastructure: ● bare metal or virtual machine ● dedicated resources ● limited elasticity ● spare resources outside peak time 5 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries Amadeus Cloud Services: migration of our applications to a cloud based infrastructure: (OpenShift [private|public] infra)
  • 6. Redis-Cluster with Openshift: Motivation and Goals Improve resilience and performance of our applications Offer a performant session offloading solution to our applications based on Redis 6 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries Redis-Cluster operated in Openshift Same stack for middleware and application Simplify redis-cluster operational support Benefit from Amadeus Cloud Services: deployment, monitoring, logging, etc
  • 9. Several prototypes examples, but Missing features: ● Simple deployment ● Update cluster topology: scaling, replication factor ● Rolling-update ● Resiliency 9 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 10. MasterMaster Redis-Cluster in Openshift 10 Master Node APIkubectl REST Kubelet Docker Daemon Etcd Scheduler Node Kubelet Docker Daemon Node Kubelet Docker Daemon DNS ©2016AmadeusITGroupanditsaffiliatesandsubsidiaries Controller Pod Pod Pod Pod Pod PodPod Pod PodPod Pod Pod Pod Pod Pod Pod Pod Pod Pod Redis-Master Pod Redis-Slave Pod Redis-Server
  • 11. Redis Manager in Openshift Pod: redis manager app=manager RC: manager Manager Watch ConfigMap: ClusterConfiguration NbMaster: 3 ReplicationFactor: 2 Scale Watch redis-node -1-dsasxf app=manager Init Node Service: redis-node Deployment: redis-node ReplicationSet: redis-node-1 redis-node -1-ascdsd app=manager Init Node n redis-node -1-etebfbd app=manager Init Node Configure 11 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 12. Redis-Cluster Rolling Update with Openshift Pod: redis manager RC: manager Manager Watch ConfigMap: ClusterConfiguration Deployment: redis-node ReplicationSet: redis-node-1 ReplicationSet: redis-node-2 Service: redis-node redis- node V1 redis- node V1 redis- node V1 redis- node V2 redis- node V2 redis- node V2 Scale Migrate Pod: Deployer Redis-deployer 12 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 13. Demo Run in Openshift / Minishift Start a Redis-Cluster Scale up Rolling update 13 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries recorded demo: https://youtu.be/dfr2Z3jVs9E
  • 14. Advantages of current solution ● Automate Redis-Cluster standard operations ○ Creation, Scaling, Rolling-update ● Does not require persistent volumes ● Seen as yet another Kubernetes application 14 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 15. Limitations of current solution ● One Redis-Cluster per Manager ● Reacts to Kubernetes events (limited control) ● Depends on Openshift feature (custom deployer) 15 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 16. How to improve current solution ? OperatorRedis- 16 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 17. Redis Operator Pod: Redis Operator RC: Operator Operator Watch Service: redis-node ThirdPartyResources: Redis-Cluster Replicas: 3 ReplicationFactor: 2 PodTemplate: {} Kubernetes Scheduler Scheduling Requests redis-node -1-dsasxf app=manager Init Node Schedule Pods redis-node -1-ascdsd app=manager Init Node n redis-node -1-etebfbd app=manager Init Node configure 17 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 18. Advantages of Redis-Cluster Operator ● Specificity hidden in a new K8s Object (3rd party resource) ● Generic User Experience ● Responsive vs Proactive: ○ Better Redis-Node life cycle management ● One Operator for several Redis-Clusters 18 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 19. What next? ● Opensource current Redis-Manager ● Migrate Redis-Manager logic in an Operator ● Package in Helm chart ● Integration with K8s Service Catalogue 19 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries
  • 20. Key takeaways ● Easy deployment of Redis-Cluster thanks to Kubernetes ● Automation thanks to Redis-Manager/Operator ● Opensourced soon 20 ©2017AmadeusITGroupanditsaffiliatesandsubsidiaries

Editor's Notes

  1. Hi Everyone, thanks for coming to this session. Yesterday, my colleague nenad show us during his session how we use Redis for the client session offloading in our Java application in Amadeus. And today in this session I presenting another aspect of the work that we have done around Redis. That is how we operate Redis-Cluster in our new internal Platform as a service based on Openshift.
  2. Amadeus is a technology company dedicated to the global travel industry. We are present in more than 190 countries, with a worldwide team of more than 15,000 people. Offer bunch of Services and tools for the travel industry actors. You may use our service, when you search the lower flight price, book a flight, checking in an hotel.
  3. Some Numbers Our Amadeus are processing more than 1.6 billion requests per day, 1.4 billion passengers boarded in a flight last year thanks to our services. approximately 2000 bookings since I started to talk
  4. We run software since 30 years now. Other technologies and languages like: Java homemade distributed architecture running on Linux and implemented C++ In 2015, we started another transformation with the introduction of our new PAAS call ACS (for Amadeus cloud service) base on Openshift
  5. Why amadeus invests in a new PAAS? Answer to new Business Requirements: improves SLA, new models Current infrastructure: each application have there own resources -> spare resources, limited elasticy Goal: be able to run our application in a multi-cluster - multi datacenter environment. On private or public cloud like: GCE, AWS or Microsoft Azure. Solution based on OPENSHIFT We already have application running on ACS processing requests on Production: Amadeus Airline Cloud Availability or Digital Ecommerce are two of them.
  6. Currents applications manges differently their resiliencies Compare Redis with other solution on the market
  7. Who in this room didn't know Kubernetes ? and Openshift opensource system for managing containerized application across multiple hosts, it provides basic mechanisms for deployment, maintenance, and scaling application. Openshift Container Platform ease a application management: enhanced security, built-in Continuous Delivery and deployment, administration UI. Openshift is a distribution of Kubernetes that provides a complete Platform as a Service.
  8. let's discuss about Redis and and Kubernetes. When you look at the kubernetes documentation and example we can say the Kubernetes love Redis, the majority of the documentation example are running a Redis-Server process. Mainly thanks to one of the main advantage of Redis that it is a light mono-process with only one port allocated. Also because the full configuration is stored in an unique file. One of the first example using Redis was the "guestbook" example: a PHP frontend serving form in that allow user to add a comment, and then list all the previous comments. This frontend was using a Redis a backend storage: one Master for the write operation and several slaves for the read. The second example that it come to my mind was presented during this conference last year. It was an example of how we can run Redis with cluster mode activated. It was the first example that I saw with a cluster configuration. And was very didactic.
  9. Other examples can be found on the web, but no one was providing all the features that we wanted. Since we really wanted to automatize as possible the Redis-Cluster operations. So key missing features: a simple deployment can easily change the cluster topology. provide a simple Rolling-update mechanism be resilient to failure. That why more than one year ago we started to look at how we can achieve it and validate all our requirements with our solution.
  10. First we decided to use Redis with the Cluster mode. we was thinking that having a self manager cluster will remove part of the redis operation support. Also having the sharding mechanism directly provided by the redis-cluster will removed the need of a proxy like temproxy. The second decision was to automatize as possible the configuration of the cluster. The deployment of a new cluster, should be easy as creating a new pod. Same for scaling-up or down the cluster. So we created a new component call "Redis-Manager" that is here to link the kubernetes world to the Redis-Cluster configuration. The Redis-Manager is able to understands and communicates with the kubernetes API, but also it is able to interact to the Redis process. The cluster configuration that is specific of each cluster, is stored in a configMap, that is constantly watched by the Redis-Manager. You can found in this Configuration the number of Redis-Master and also the replication factor. So, when the Manager see a difference between the current cluster configuration and the confMap, It start to takes some decisions in order to reconsiliate the cluster state with the wanted configuration. He can scale the Deployment in order to have more/or less Redis-node. When some Redis-slots need to be reassign, the manager is doing it without any human intervention.
  11. Another strong requirement was the rolling-update. Seamless as possible. So how it works? Well we implemented it thanks to an Openshift feature: In openshift a Deployment object is call a DeploymentConfig. like the Deployment in Kubernetes, this Object is here to manage the migration from one to another version of an application with the possibility to choose different settings with migration strategy (Rolling update). But in addition to that in Openshift the migration between the 2 version can be handle by a "Custom deployer" that can implement your own update logic. So let's see how we take advantage of this feature: First when a DevOps Update the deploymentConfig, with for example a new version of the redis binary. Openshift detect this modification and create a new ReplicationController with the new Pod template. Also Openshift start a new Pod that contains the CustomDeployer call in this example: Redis-Deployer. This Deployer is configured to have access to the information from the DeploymentConfig and the associated ReplicationController. In our case the Redis-Deployer start to scale up the new ReplicationController to add new Redis-Node version V2 in the Cluster. when a new Pod is up-and-running the the deployer use the Annotation on the ReplicationController to inform the Redis-Manager that he can start migrating the slot of an old Redis-Node to a new one. This operation is repeated for each Node. when all slot have been migrated to the new Redis-node pod, the Redis-Manager inform the Deployer that he can start to scale down the Old ReplicationController.
  12. i hope you liked the demo. So what are the advantage of this solution? First we saw the basic Redis-Cluster operation are completely automated. Then this solution don't rely on Persistent volume. and Finally creating and managing a RedisCluster thanks to the RedisManager is seen as yet another Kubernetes application. But we already know that we can we can still improve the current solution, we already identify some limitations.
  13. first limitation, we need to deployed on Redis-Manager per RedisCluster. The Redis-Manager process is a small golang process, but still it may be better to have the possibility to handle severa Cluster with one Manager. Currently the Redis-Manager react on action triggered by Kubernetes, like the pod deletion when we do a scaledown. It is not possible to say to kubernetes which pod we want to delete first in case of a scale down. So we have some additional logic in the Redis-Node pod to cache the SIGTERM signal and start the Failover node process in case of the current Pod is a Master or just an eviction command if it is a slave. the Current Rolling-Update solution depends on the possibility to run a custom deployer offer by Openshift, but we would-like to be Kubernetes compliant. Last point, the User Experience is perfectible, some Actions can be done in several way. For example the scale, can be done thanks to an update of the ConfigMap or use the scale command on the deploymentConfig.
  14. So how to solve our currents limitations? Operator Concept? Since we started to implement our solution, Others companies faced the same problem with other Databases; like CoreOs with Etcd. CoreOS solve this issue with a new kind of Kubernetes application that they call "Operator". They already proposed officially two Operators: Etcd Operator and the Prometheus Operator. This is the official definition of an Operator: "An Operator represents human operational knowledge in software, to reliably manage an application." If we compare the Etcd Operator with the Redis-Manager that I presented previously, we can see that they follow the same logic: Providing a daemon process that will do the glue between the Kubernetes resources management and the specificities of the Application that we want to manage. But Operators benefit from one new kind of Kubernetes API Object that didn't exist when we started the Redis-Manager implementation called ThirdPartyResources. Third Party Resources objects are a way to extend the kubernetes API with a new API Object type. Like others native API object type: the new object support CRUD operations and watch. Thanks to this ability to add new object type, Everyone can implement some custom controller that react on a ThridpartyResource livecycle: creation, update, delete. So how to resolve our currents limitation: with a Redis-Operator !!!
  15. Lets see how we can transform the Redis-Manager to a Redis-Operator First instead of using a ConfigMap to store the Cluster configuration, the Redis-Operator will define a Redis-Cluster TPR, that store the same information. In addition of the cluster topology parameter, the Redis-Cluster TPR will also store the PodTemplate that was previously provided in the Deployment Object. Like this we tiny couple all the informations needed to manager the cluster. Most of our Redis-Manager logic will be reused in the Redis-Operator. The main change is that instead of watching event on a Deployment object. Now the Redis-Operator will react on Redis-Cluster TPR event. It will be also the Role of the Redis-Operator to request to the k8s scheduler new instance of the Pod. All of this new architecture will result to less hacks and so more overall stability.
  16. Main advantage of following the Operator Logic, it to hide the specificity of Redis-Cluster in a new kind of K8s object thanks to the ThridPartyResources. Also it improves the User experience, User are interacting with only one object that represent the full cluster. This approach improve the stability of the solution, because now the Redis-Operator is not anymore responsive to decision taken by the K8s controller, since the Operator is the Controller dedicated the the Redis-Cluster TPR. By default a controller/Operator is designed to react on instances of an Object kind. so one Redis-Operator will be able to manage several Redis-Cluster.
  17. So what next? First we want to open-source what we already done as it is. We know that it is not the final solution that we want to propose. but we think that it can be already interested for some peoples. And we are interested about their feedbacks. We already have define a Roadmap to improve the initial open-source version: we think that the Operator approach is the right direction so the first improvement will be to migrate our logic into an Operator. then we can think of proposing a Helm Chart for this Redis-Operator. Another interesting development in the Kubernetes Community is the Implementation of the Service Catalogue, that is defining an Open Service Broker API to consume external services in kubernetes. So we can consider Redis-Cluster as an external service, and when an application needs an Redis-Cluster, a request is sent to a RedisCluster broker that will create for the application, the proper Redis-Cluster ThirdPartyResource. At the end of the process, the Application will get the Name of the service who target its instance of a Redis-Cluster with also the credential.
  18. Thanks for your attention, and now if we have still some time I can answer to your questions?