Skip to content

Instantly share code, notes, and snippets.

@ryanj
Last active October 30, 2019 02:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanj/5b51b44948449c454e0cb1115b6ca9b4 to your computer and use it in GitHub Desktop.
Save ryanj/5b51b44948449c454e0cb1115b6ca9b4 to your computer and use it in GitHub Desktop.
Red Hat at #LISA19 in PDX http://bit.ly/rhlisa19
<section data-markdown>
# Extending Kubernetes with the Operator Pattern
By @RyanJ
[bit.ly/rhlisa19](http://bit.ly/rhlisa19)
https://www.usenix.org/conference/lisa19/presentation/jarvinen
</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 data-markdown>
Welcome to
> “RyanJ’s Spooky Hall of Tortured Metaphors!”
</section>
<section data-markdown>
## Overview
* Part 1 - Orientation: noting the problem space
* Part 2 - Operators in practice: test, build, share
* Part 3 - The Future: Community, Hubs, OLM
</section>
<section data-markdown>
## Part1 - Disambiguation of terms
Dualing problem spaces:
* distributed solutions (dev)
* distributed systems / platforms (ops)
</section>
<section data-markdown>
### An Epic Tale of Adventure
> 10x devs vs five-nines admins in a quest to vanquish mismanaged state, once and for all
</section>
<section data-markdown>
### Reality sets in:
“Lab conditions” Kubernetes car vs Mad Max reality
</section>
<section data-markdown>
## "But, it works in my cluster!"
https://www.youtube.com/watch?v=kpsjKZUQEbs
</section>
<section data-markdown>
### Greenfield Tools of Choice (Ops):
* IaaS
* Etcd (stateful consensus store)
* Kubernetes (platform API)
* and a mysterious compatibility matrix of 10-20 additional cloud services (logs, metrics, traces, security?)
</section>
<section data-markdown>
### Greenfield Tools of Choice (Dev):
* “cloud-native” tools and solutions
* sufficient access to infrastructure deps
* reliable reproduction of the problem space (platform conditions)
</section>
<section data-markdown>
## Operators
1. Custom Controllers (extend the platform logic, behavior)
2. Custom Resource Definitions (extend core platform APIs w/ new declarative interfaces)
Result: reproducible, declarative infra deps w/ active mgmt capabilities
</section>
<section data-markdown>
The Operator Pattern is:
1. A way to pave over developer rabbit holes of any size, burying skeletons, snowflakes, and bikesheds in the process?
2. A clear way to carve up dependencies, enabling experts to get involved at the right layer of the stack
</section>
<section data-markdown>
## Part 2 - Try it
Login with your email address and a password of "openshift":
bit.ly/rhlisa19#/12
* https://lab-build-an-operator-workshops.apps.cluster-lisa2019-cd19.lisa2019-cd19.open.redhat.com
* https://lab-build-an-operator-workshops.apps.cluster-lisa19-1fa5.lisa19-1fa5.open.redhat.com
</section>
<section data-markdown>
## Part 3 - The Future
Community,
Hubs,
OLM
</section>
<section data-markdown>
> “Think Autonomously”
</section>
<section data-markdown>
## OperatorHub
http://OperatorHub.io
</section>
<section data-markdown>
> "Kubernetes, take me home!"
</section>
<section data-markdown>
![failover](https://pbs.twimg.com/media/EH6PkpUUwAEXqXm?format=jpg&name=small)
https://twitter.com/ryanj/status/1188545226085810176
</section>
<section data-markdown>
### Operator Lifecycle Manager (OLM)
Include mechanisms for refreshing that knowledge over time
https://github.com/operator-framework/operator-lifecycle-manager
</section>
<section data-markdown>
> “MISSION ACCOMPLISHED!”
</section>
<section data-markdown>
#### Possible complications:
* Namespacing and multi tenancy implications
* May lead to multi-cluster madness
</section>
<section data-markdown>
### Follow up tasks:
* Ops: http://try.openshift.com
* Dev: http://learn.openshift.com
* DevOps: http://learn.openshift.com/operatorframework
</section>
<section id='ebook'>
<h3>Free O'Reilly Ebook</h3>
<p><a href="https://www.openshift.com/deploying-to-openshift/"><img src="https://www.openshift.com/hubfs/images/openshift-legacy/promotions/deploying-to-openshift/deploying-to-openshift.png" style="margin-left:auto;margin-right:auto;width:45%;display:block;box-shadow:none;align:center;"></a></p>
<p><a href="https://www.openshift.com/deploying-to-openshift/">Deploying to OpenShift</a></p>
</section>
<section id='thank-you'>
<h1>Thank You!</h1>
<p><img style="width:33%;" alt="RyanJ" src="https://tek.phparch.com/wp-content/uploads/sites/7/2018/05/ryan-jarvinen-headshot-e1525184794614-531x424.jpg" /></p>
<p><a href="https://twitter.com/ryanj">@RyanJ</a></p>
<br/>
<h4 class="fragment grow"><a href="http://bit.ly/rhlisa19">bit.ly/rhlisa19</a></h4>
</section>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment