The Fastest Way to Redis on Pivotal Cloud Foundry

Pivotal 4,613 views 29 slides Jun 29, 2017
Slide 1
Slide 1 of 29
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29

About This Presentation

What do developers choose when they need a fast performing datastore with a flexible data model? Hands-down, they choose Redis.

But, waiting for a Redis instance to be set up is not a favorite activity for many developers. This is why on-demand services for Redis have become popular. Developers can...


Slide Content

background image: 960x540 pixels - send to back of slide and set to 80% transparency
The Fastest Way to Redis in
Pivotal Cloud Foundry
Greg Chase, Product Marketing
Craig Olrich, Platform Architect

background image: 960x540 pixels - send to back of slide and set to 80% transparency
Agenda
1. Redis, NoSQL and Cloud-Native Developers
2. Platform for Delivery of Redis as a Service
3. Design of Redis for PCF
4. Demo and roadmap of Redis for Pivotal Cloud Foundry
5. Q&A

Redis is a Unique NoSQL Offering
for Cloud-Native Developers

Open source key-value store used as a cache, data store, and queue
Redis is an In-Memory NoSQL Data Structure Server
● In-memory: entire data set is held in RAM

● Persistence: journal of changes to in-memory data set is persisted to
disk for durability

● Data types as keys:
○ Strings
○ Lists
○ Sets
○ Sorted sets
○ Hash tables
○ HyperLogLogs
○ GeoHash

●  49 Supported languages (including): C, C++, C#, Go, Haskell,
Java, Javascript, Objective-C, Perl, PHP, Python, R, Ruby, Rust,
Scala

Third most popular NoSQL engine, and #1 in-memory key-value store
Redis is Important For Your Developers’ Toolbox
● Has very different data model
from other popular engines

● Much more common than other
in-memory KV stores
● Great for caching & low latency
data management

Delivering Redis as a Service
Requires a Cloud-Native Platform

7
Software Cycles Need to Get Faster
Teams are trying to release faster with continuous delivery and devops
Sources:
1) How Netflix Deploys Code, InfoQ
2) Continuous Delivery + DevOps, Nicole Forsgren, Agile India, 2016
Service
Mindset
Time
Risk
Install
Mindset
Time
Risk
Cloud-Native
Practices
Infrequent (Manual) Delivery
Measured in months
Continuous (automated) Delivery
Measured in pushes per day
Don’t let manual provisioning of
systems get in the way of agile
delivery at scale

8
How DIY Redis Impacts Software Cycles
BUIL
D
FAS
T
DELIVE
R
RELIAB
Y
One datastore
for many apps
Provisioning
systems
Build and configure
own data stack
Inconsistent
updates
Inconsistent
deployment
testing
Inconsistent
backups
Inconsistent security
settings
Slow
vulnerability
patching
Build &
Deliver
Production
Snowflake datastores case gaps in continuous delivery at all stages
Picking right
system sizing

Speed up software delivery by spending less time on overhead activities
Help Your Developers Focus on Value
Source: “Electric Cloud
LinkedIn Survey to
software developers”
Average Hours/Week
Business
Value
Overhead
0
3.25 6.5 9.75 9.75
Average hours spent per week by developers on tasks

Build apps faster with lots of choice; deliver faster with pervasive automation
Pivotal Cloud Foundry Allows Focus on Value
Languages Clouds
Platform Services OSes
MySQL
Dynatrace
AppMon
Spring Cloud
Services
Single
Sign On
✓ Consistent Contracts
✓ Fully Automated, Repeatable
platform managed DevOps
processes
✓ Developer + Ops Friendly
Constructs
✓ Easy to move/re-architect apps
✓ Infrastructure Failure Agnostic

Pervasive Automation
Automated, Fast, Flexible, Safe
Developer Choice

11
cf push
~45
seconds
~15+
Days
Find available hosts
Install & configure runtime
Install & configure middleware
Pull application source code
Retrieve dependent libraries
Create application package
Install, configure dependent service(s)
Deploy container to host(s)
Load environment variables
Configure load balancer
Configure firewalls
Update service monitoring tools
Configure log collector
2 Days
1 Day
1 Day
¼ Day
¼ Day
¼ Day
2 Days
½ Day
¼ Day
2 Days
2 Days
3 Days
1 Day
Code Complete & Tested
Application in Production
Speed &
Consistency
Example Automation of App Deployment

Delivering Enterprise-Ready
Redis in a Cloud-Native Platform

Services leverage higher degrees of automation depending on APIs implemented
Levels of Service Integration in Pivotal Cloud Foundry
Unmanaged Services Managed Services On Demand Services
● External resources
● Automates application
binding
● Great for remote services
● Pre-provisioned BOSH-
managed resources
● Automates application
binding
● Great for shared services
● Dynamically provisioned by
developers
● Automates service creation
and application binding
● Used for dedicated
instances
Example Services:

Maximize developer choice while providing significant automation
Design Philosophy of Pivotal Data Services
Dedicated &
On Demand
Enterprise
Ready
Use-case
tailored
On-demand, self-service
provisioning of isolated
instances in any cloud.
Operator defined
plans, upgrade rules, and quotas
that meet enterprise requirements

Convenient packaging for
developers

Now providing on-demand, dedicated instances of Redis
New with Redis for Pivotal Cloud Foundry 1.8
Developers Operators
Sm plan
Med plan
Lrg plan
B App
Binding
● Operators create plans with varied VM and disk sizes to allow App Developers to choose the plan that fits their needs
● Plans are configured to enable caching with persistence and have operator-set quotas to manage resource use
● App Developer self-service to provision instances, removing transactional overhead from the Operations team
● Operators and App Developers can tailor certain Redis configurations to ensure instances fit use cases

Developers can access pre-provisioned single VM instances and shared VM instances.
Redis for Pivotal Cloud Foundry 1.8 – Additional
Developers
Operators
App
Binding
B
● Operators pre-provision a certain number of set VM and disk sizes for app developer usage
● Plans support in-memory data store scenario with persistence and automated backups with restore capabilities
● App developers can allocate pre-provisioned instances via self-service
● Shared-VM plan offers several instances within a VM to minimize resource use during development
App
Binding
Pre-provisioned, dedicated VMs
Pre-provisioned, shared VM
B
B B

Enterprise-ready Redis as a Service
Redis for Pivotal Cloud Foundry 1.8 Features
Provisions Redis 3.2.8
Platform Integration Features
✓ Dynamically created, isolated Redis instances
✓ Pre-provisioned dedicated VM instances of Redis
✓ Pre-provisioned shared VM for small Redis instances
✓ Automated updates and upgrades by operator
✓ Customizable service plans
✓ Operator-set plan quotas
✓ Developers can migrate between plans
✓ “Secure by default” deployment
✓ Works with IPsec plugin for encrypted communication
✓ Deployment smoke tests
✓ Metrics and monitoring with Loggregator and syslog
✓ Operator managed backup policies and database restores

Maximize developer choice while providing significant automation
Operator & Developer Lifecycle
Operator Developer Redis for Pivotal
Cloud Foundry
Enable and configure
on-demand plans
Enable and configure
pre-provisioned plans
Install Redis Create service broker VM
Broker registers plans as
available in marketplace
[Dedicated-VM/Shared-VM only]
Create configured number of
dedicated VM instances
Run smoke tests

$ CF create-service [service] [plan] [instance name]
Create or allocate Redis instance
if quota or pre-configured
instances are available.
App gains access to Redis
service instance
$ CF bind-service [app name] [instance name]
App access to Redis service
instance is revoked
$ CF unbind-service [app name] [instance name]
Redis service resource is
destroyed or pre-provisioned
instance is flushed and pooled.
$ CF delete-service [instance name]
Service broker ready
Update service Update service broker VM
Update all service instances
Run smoke tests
Service broker ready

Provide Redis as a service for your developers in any cloud
Use-case Tailored Redis Plans
Net new
Redis Apps
Replatformed
Redis Apps
Caching
In-memory data store
Backing Service for Spring
Services & projects

How On Demand Redis Speeds Software Cycles
Automated provisioning of dedicated instances aids continuous delivery
Example Concourse pipeline utilizing Redis for Pivotal Cloud Foundry self-service provisioning for automated testing:

Focus on value developing data-driven applications
Benefits of Redis for Pivotal Cloud Foundry
Benefits for Developers
➢ Focus time on coding, not data
storage administration
➢ Get fast access to systems
➢ Isolated from noisy neighbors
➢ Flexible control when needed
➢ Choice of system configurations
suited for use cases
➢ Visibility into data store events &
operations
➢ Data is safely backed up
Benefits for Operators
➢ Focus time on improving platform,
not patching and administration
➢ Scale operations to support more
apps and developers
➢ Minimal time to update and patch all
deployed databases
➢ Bugs and vulnerabilities are patched
quickly
➢ Efficient consumption of resources
➢ Consistently enforced security
➢ Avoid data loss & recover quickly

Demo
2
3

Demo Redis App
User
Developer
Push the app Create Redis
service instance
Bind service
instance to app
App is ready
View app
interface
App in PCF Redis service
instance
Check for
values in
cache
Returned cache value, if any
Cached values
expire over time
Market data API
No cached
value? Fetch
new data
Update cache with fetched values

Quarterly release cadence
Futures for Redis for Pivotal Cloud Foundry
First on-demand version

Q1 Q2 Q3 Q4
1.8

CY
1.10

1.11

1.12

1.13

2018+
On-demand datastore plan
Migration from pre-configured to on-demand
Further enhancement of on-demand instances
1.9

1.10

1.11

Note: Redis for Pivotal Cloud Foundry 1.9 is due to be released at the end of the month
Where to get more information

● Read the documentation

● Download Redis for Pivotal Cloud Foundry on Pivotal
Network

● Try out Redis in a Pivotal Cloud Foundry Developer’s
Sandbox

Any questions?
2
7

background image: 960x540 pixels - send to back of slide and set to 80% transparency
Demand that your datastores
be “on demand”!
Redis for Pivotal Cloud Foundry