Redis Cluster Provisioning
with Kubernetes Service-Catalog Extension
cedric.lamoriniere@amadeus.com
Me & Amadeus
~600 million total bookings
processed in 2016
1.3 billion passengers
boarded in 2016
~450 000 queries per
second (600 000 at peak)
provides IT services for travel industry
Cedric Lamoriniere Software Engineer Amadeus Cloud Services
2
Amadeus & Redis
● Young Redis user: 2 years (1 year in production)
● Use case: session management data storage
○ Enabler for cloud application deployment.
○ https://github.com/AmadeusITGroup/HttpSessionReplacer
● Runs Redis-Cluster in Openshift (Kubernetes)
○ In memory only
○ https://github.com/AmadeusITGroup/redis-operator
3
What is next?
● More applications using the service, multi cloud environments
● Internal Saas offer: Redis as a service
○ Dedicated support team
● Provisioning with: Open Service Broker API
○ Delivers service to application in a simple and elegant
way.
○ Fujitsu, Google, IBM, Pivotal, Red Hat and SAP
○ Integration with Kubernetes Service-Catalog
4
Agenda
● Service Catalog concept
● Redis-Cluster operator
● Operator & Broker all-in-one!
● Demo
5
Open Service Broker Concept
The Service
Consumer
The Catalog
The Service
Broker
The Service
Provider
OpenServiceBroker API
6
Kubernetes Service Catalog
● Mapping of Service Broker API in Kubernetes
Resources.
Service Catalog (K8s) Resource Service Broker API
ClusterServiceClass Service
ClusterServicePlan Plan
ServiceInstance ServiceInstance
ServiceBinding ServiceBinding
Read
Read/
Write
7
Service Catalog Component
User
API ServerController Scheduler
Master
Kubelet
Node
Kubelet
Node
ServiceCatalog API
ServiceCatalog Controller
Service Broker
Service Broker
Service
Provider
8
Service Catalog Workflow
User Service Catalog
Get ServiceClasses
9
10
Service Catalog Workflow
User Service Catalog
Get ServiceClasses
Get ServicePlans
10
Service Catalog Workflow
User Service Catalog
Get ServiceClasses
Create ServiceInstance
Get ServicePlans
11
Service Catalog Workflow
User Service Catalog
Get ServiceClasses
Get ServicePlans
Create ServiceInstance
Create ServiceBinding
12
Service Catalog Workflow
13
Service Catalog Isolation
Ns: app-client Ns: Catalog Ns: Redis-team
API Server
Controller
Redis BrokerServiceInstance
ServiceBinding
myApp-Pod
MyCluster
14
Redis-Cluster Operator
● Presented last year at Redisconf17
● Ease redis-cluster operations in Kubernetes
○ Manage kubernetes resources (pods, service)
○ Configure Redis nodes roles: Master/Slaves
● Use CustomResourceDefinition (CRD): RedisCluster
Back in time
15
Redis-Cluster Operator
● Presented last year at Redisconf17
● Ease redis-cluster operations in Kubernetes
○ Manage kubernetes resources (pods, service)
○ Configure Redis nodes roles: Master/Slaves
● Use CustomResourceDefinition (CRD): RedisCluster
Back in time
16
Redis-Cluster Operator
Back in time
Node
Redis-Node-1
User
API Server Controller Scheduler
Master
Node
Redis Operator
Node Node
MyRedis-Node-1
MyRedis-Node-2
MyRedis-Node-3
MyRedis-Node-4MyRedis-Node-5
configure
kubectl create -f my-redis.yaml
watch RedisClusters
create pods
Service: my-redis
17
Operator & Broker for Redis
User
API ServerController Scheduler
Master
Kubelet
Node
Kubelet
Node
ServiceCatalog API
ServiceCatalog Controller Redis Broker
Redis Operator
Create RedisCluster
New RedisCluster
Redis Operator&Broker
kubectl create -f my-redis-serviceinstance.yaml
18
Operator & Broker for Redis
Components interaction
19
Operator & Broker for Redis
Redis as a service
20
Demo
21
Key Takeaways
● Easy provisioning
● Separation of concerns
● Extendable
22
Links
● https://github.com/amadeusitgroup/redis-operator
● https://www.openservicebrokerapi.org
● https://github.com/kubernetes-incubator/service-catalog
23
Any questions?
You can find me at @cedlamo
& cedric.lamoriniere@amadeus.com
24
Thank You

RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Extension

  • 1.
    Redis Cluster Provisioning withKubernetes Service-Catalog Extension cedric.lamoriniere@amadeus.com
  • 2.
    Me & Amadeus ~600million total bookings processed in 2016 1.3 billion passengers boarded in 2016 ~450 000 queries per second (600 000 at peak) provides IT services for travel industry Cedric Lamoriniere Software Engineer Amadeus Cloud Services 2
  • 3.
    Amadeus & Redis ●Young Redis user: 2 years (1 year in production) ● Use case: session management data storage ○ Enabler for cloud application deployment. ○ https://github.com/AmadeusITGroup/HttpSessionReplacer ● Runs Redis-Cluster in Openshift (Kubernetes) ○ In memory only ○ https://github.com/AmadeusITGroup/redis-operator 3
  • 4.
    What is next? ●More applications using the service, multi cloud environments ● Internal Saas offer: Redis as a service ○ Dedicated support team ● Provisioning with: Open Service Broker API ○ Delivers service to application in a simple and elegant way. ○ Fujitsu, Google, IBM, Pivotal, Red Hat and SAP ○ Integration with Kubernetes Service-Catalog 4
  • 5.
    Agenda ● Service Catalogconcept ● Redis-Cluster operator ● Operator & Broker all-in-one! ● Demo 5
  • 6.
    Open Service BrokerConcept The Service Consumer The Catalog The Service Broker The Service Provider OpenServiceBroker API 6
  • 7.
    Kubernetes Service Catalog ●Mapping of Service Broker API in Kubernetes Resources. Service Catalog (K8s) Resource Service Broker API ClusterServiceClass Service ClusterServicePlan Plan ServiceInstance ServiceInstance ServiceBinding ServiceBinding Read Read/ Write 7
  • 8.
    Service Catalog Component User APIServerController Scheduler Master Kubelet Node Kubelet Node ServiceCatalog API ServiceCatalog Controller Service Broker Service Broker Service Provider 8
  • 9.
    Service Catalog Workflow UserService Catalog Get ServiceClasses 9
  • 10.
    10 Service Catalog Workflow UserService Catalog Get ServiceClasses Get ServicePlans 10
  • 11.
    Service Catalog Workflow UserService Catalog Get ServiceClasses Create ServiceInstance Get ServicePlans 11
  • 12.
    Service Catalog Workflow UserService Catalog Get ServiceClasses Get ServicePlans Create ServiceInstance Create ServiceBinding 12
  • 13.
  • 14.
    Service Catalog Isolation Ns:app-client Ns: Catalog Ns: Redis-team API Server Controller Redis BrokerServiceInstance ServiceBinding myApp-Pod MyCluster 14
  • 15.
    Redis-Cluster Operator ● Presentedlast year at Redisconf17 ● Ease redis-cluster operations in Kubernetes ○ Manage kubernetes resources (pods, service) ○ Configure Redis nodes roles: Master/Slaves ● Use CustomResourceDefinition (CRD): RedisCluster Back in time 15
  • 16.
    Redis-Cluster Operator ● Presentedlast year at Redisconf17 ● Ease redis-cluster operations in Kubernetes ○ Manage kubernetes resources (pods, service) ○ Configure Redis nodes roles: Master/Slaves ● Use CustomResourceDefinition (CRD): RedisCluster Back in time 16
  • 17.
    Redis-Cluster Operator Back intime Node Redis-Node-1 User API Server Controller Scheduler Master Node Redis Operator Node Node MyRedis-Node-1 MyRedis-Node-2 MyRedis-Node-3 MyRedis-Node-4MyRedis-Node-5 configure kubectl create -f my-redis.yaml watch RedisClusters create pods Service: my-redis 17
  • 18.
    Operator & Brokerfor Redis User API ServerController Scheduler Master Kubelet Node Kubelet Node ServiceCatalog API ServiceCatalog Controller Redis Broker Redis Operator Create RedisCluster New RedisCluster Redis Operator&Broker kubectl create -f my-redis-serviceinstance.yaml 18
  • 19.
    Operator & Brokerfor Redis Components interaction 19
  • 20.
    Operator & Brokerfor Redis Redis as a service 20
  • 21.
  • 22.
    Key Takeaways ● Easyprovisioning ● Separation of concerns ● Extendable 22
  • 23.
  • 24.
    Any questions? You canfind me at @cedlamo & cedric.lamoriniere@amadeus.com 24
  • 25.

Editor's Notes

  • #3 Distribution IT Technique
  • #12 Typo: name of the serviceClass