Last active
July 26, 2018 18:52
-
-
Save ryanj/0bfc37c6638f51df8f9d7ab8bbcca5e7 to your computer and use it in GitHub Desktop.
Using the Open Service Catalog to deliver Redis for Dev, Test, and Prod - http://bit.ly/redis-devtestprod
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<section> | |
<section data-background-color="white" data-background-size="contain" id='with-the-OpenShift-Service-Catalog' data-background="https://github.com/ryanj/redisconf-2018/raw/master/static/redisconf-backdrop.png"> | |
<h2>Redis in Dev, Test, and Prod</h2> | |
<p>with the</p> | |
<h1>OpenShift Service Catalog</h1> | |
<br/> | |
<p><a href="http://bit.ly/redis-devtestprod">bit.ly/redis-devtestprod</a><br/><a href="http://redisconf.com/sessions.php#167">Weds, April 25th 4:00-4:45 pm</a></p> | |
</section> | |
<section data-transition='concave' data-background-transition='fade' data-background='black' id='presented-by-ryanj'> | |
<p>presented by <a href="http://twitter.com/ryanj/">@ryanj</a>, Developer Advocate at Red Hat</p> | |
<p class='fragment fade-up'><a href="http://twitter.com/ryanj/"><img alt="ryanj" src="http://ryanjarvinen.com/images/ryanj-mestrefungo-com.gif" style="width:50%"/></p> | |
</section> | |
<section id='brought-to-you-by' data-background='black' data-markdown> | |
brought to you by | |
[![Red Hat logo](https://i.imgur.com/ArZFG3e.png "")](https://redhat.com) | |
</section> | |
</section> | |
<section> | |
<section id='flackback' data-markdown> | |
*flashback to 2014* | |
## The Kubernetes Guestbook example | |
# A Classic | |
</section> | |
<section id='all-the-way-back' data-markdown> | |
See: | |
* [K8s tutorials](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/) | |
* [pull #7, June 6th 2014](https://github.com/kubernetes/kubernetes/pull/7) | |
</section> | |
<section id='typical-update-cycle' data-markdown> | |
typical update cycle: | |
cd redis-app-specifications | |
git pull | |
kubectl apply -f . | |
* pros: multi-container spec, first "stateful" example? | |
* cons: destructive re-create, admin party | |
</section> | |
</section> | |
<section> | |
<section id='introducing'> | |
<p>introducing…</p> | |
<div class='fragment'> | |
<h1>the Open Service Broker</h1> | |
<p><a href="https://www.openservicebrokerapi.org/">www.openservicebrokerapi.org</a></p> | |
</div> | |
</section> | |
<section id='service-catalog' data-markdown> | |
### Everyone's Service Catalog | |
> "The Open Service Broker API project allows developers, ISVs, and SaaS vendors a single, simple, and elegant way to deliver services to applications running within cloud native platforms" | |
Works with: [Kubernetes](https://github.com/kubernetes-incubator/service-catalog), [OpenShift](https://docs.openshift.com/container-platform/3.6/architecture/service_catalog/template_service_broker.html), [Cloud Foundry](https://github.com/spring-cloud/spring-cloud-open-service-broker) | |
</section> | |
<section id='available-on' data-background='black' data-markdown> | |
available on... | |
</section> | |
<section id='all-the-most-popular-platforms' data-background='black' data-markdown> | |
## 2017 Octoverse Report | |
> 🏆 Most-discussed project(s) on GitHub in 2017! | |
http://octoverse.github.com | |
[Kubernetes Community - Top of the Open Source Charts in 2017](https://kubernetes.io/blog/2018/04/25/open-source-charts-2017/) | |
</section> | |
<section id='kubernetes' data-markdown> | |
available on | |
# Kubernetes | |
* [is](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/): an ops tool; a collection of APIs for managing container-based workloads | |
* [is not](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#what-kubernetes-is-not): a PaaS | |
</section> | |
<section id='openshift' data-markdown> | |
available on | |
# OpenShift | |
* includes, extends, is a distribution of: Kubernetes | |
* adds: mult-tenanant security, PaaS features, a Template broker | |
</section> | |
</section> | |
<section id='service-catalog-on-openshift'> | |
<h2>Service Catalog & Brokers</h2> | |
<p>Expose and provision services</p> | |
<p><img style='width:100%;' src='https://github.com/ryanj/redisconf-2018/raw/master/static/catalog-options.png' alt='pluggable-broker-options' /></p> | |
</section> | |
<section id='agenda' data-markdown> | |
## Agenda | |
Delivering Redis in: | |
1. [Dev](#/dev) | |
2. [Test](#/test) | |
3. [Production](#/production) | |
with the OpenShift Service Broker | |
</section> | |
<section> | |
<section data-markdown id='dev'> | |
# Dev | |
</section> | |
<section data-background="black" data-markdown> | |
demo: iterative development with Redis (Ephemeral) | |
https://github.com/ryanj/redisconf-2018#dev-demos | |
</section> | |
<section data-background="black" data-markdown> | |
demo: image promotion via BuildConfig, DeploymentConfig & ImageStream | |
</section> | |
<section data-background="black" data-markdown> | |
demo: early access to feedback from local replication and rollout testing (pre-commit) | |
</section> | |
</section> | |
<section> | |
<section data-markdown id='test'> | |
# Test | |
</section> | |
<section data-markdown> | |
### Services and data sets that meet your specific performance criteria | |
Select from a catalog of available back-end services, configurations, and data sets: | |
* small or large datasets | |
* dummy / test data | |
* snapshots of production data? | |
</section> | |
<section data-background="black" data-markdown> | |
demo: production-like testing - immutable infra (w/ config, volumes & pvcs) | |
https://github.com/ryanj/redisconf-2018#test-demos | |
</section> | |
<section data-background="black" data-markdown> | |
demo: recovery and failover testing - scale up and show autorecovery of web tier; show zero-downtime deployments; rollout testing; rollback testing | |
</section> | |
</section> | |
<section> | |
<section data-markdown id='production'> | |
# Production | |
</section> | |
<section data-background="black" data-markdown> | |
demo: NOT FOR USE IN PRODUCTION! | |
https://github.com/ryanj/redisconf-2018#production-demos | |
</section> | |
<section data-markdown id='headless'> | |
## Headless Services | |
Make external / legacy services discoverable via the Catalog, and at Runtime | |
##### RedisCloud or Redis Enterprise? | |
</section> | |
<section data-markdown id='telepresence'> | |
#### Telepresence | |
Proxy production-sized data services into smaller scale environments (like Minikube or Minishift) | |
</section> | |
</section> | |
<section id="open-extensibility" data-markdown> | |
# Open Extensibility | |
Cloud-Native solutions targeting your specific use-cases and performance criteria | |
</section> | |
<section id="service-brokers" data-markdown> | |
### Open Service Broker API | |
Expand your Service Catalog by designing your own API-compliant Service Brokers, or borrow from the growing list of options: | |
* [Kubernetes Service Catalog](https://github.com/kubernetes-incubator/service-catalog) | |
* [AnsibleServiceBroker / AutomationBroker](http://automationbroker.io/) | |
* [DIY MariaDB Broker example](https://github.com/prydonius/mariadb-broker) | |
* [OpenShift Template Broker](https://docs.openshift.com/container-platform/3.6/architecture/service_catalog/template_service_broker.html) | |
* [Helm Chart Broker](https://github.com/google/helm-broker) | |
* [CloudFoundry Spring Cloud](https://github.com/spring-cloud/spring-cloud-open-service-broker) | |
</section> | |
<section id="take-aways"> | |
<h1>Take aways</h1> | |
<ol> | |
<li class='fragment'>The Open Service Broker & Service Catalog provide a great way to deliver containerized Redis "as-a-Service" on popular cloud-native platforms</li> | |
<li class='fragment'>Use the Open Service Catalog with OpenShift's Template Broker to offer targeted use-cases for leveraging Redis in Dev, Test, and Production environments</li> | |
<li class='fragment'>Expand your Catalog offering by adding API-compliant Brokers to meet your needs</li> | |
</ol> | |
</section> | |
<section id="extensibility" data-markdown> | |
### More Ways to Extend the Platform | |
* [Custom Resource Definitions](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) | |
* [custom controllers](https://github.com/kubernetes/sample-controller) | |
* CRDs+Controllers ↦ [Operators](https://coreos.com/blog/introducing-operator-framework) | |
* https://github.com/spotahome/redis-operator | |
* https://github.com/jw-s/redis-operator | |
* https://coreos.com/blog/introducing-operator-framework | |
</section> | |
<section id="resources" data-markdown> | |
## Resources | |
1. [Today's example repo and demo scripts](https://github.com/ryanj/redisconf-2018) | |
1. Join the conversation in the [Kubernetes Service Catalog SIG](https://github.com/kubernetes/community/blob/master/sig-list.md) | |
1. [OpenShift.com](http://OpenShift.com) / [learn.openshift.com](http://OpenShift.com) | |
</section> | |
<section id="thank-you" data-background-color="white" data-background-size="contain" data-background="https://github.com/ryanj/redisconf-2018/raw/master/static/redisconf-backdrop.png" data-markdown> | |
# Thank You! | |
[bit.ly/redis-devtestprod](http://bit.ly/redis-devtestprod) | |
@ryanj | |
[email protected] | |
</section> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment