Skip to content

Commit

Permalink
Interim commit of postgres & helm talk for Kubecon. Pushing in order …
Browse files Browse the repository at this point in the history
…to collaborate.
  • Loading branch information
jberkus committed Mar 28, 2017
1 parent ff6c8bb commit 344ad17
Show file tree
Hide file tree
Showing 28 changed files with 589 additions and 0 deletions.
Binary file added postgres_helm/Autopilot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/automated_elephant.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/bot-traffic.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/by-sa.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/citus_sharded.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/diagrams.odg
Binary file not shown.
Binary file added postgres_helm/docker_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/elephant-pet.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/elephant-shelter.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/elephant-stormtrooper.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/elephant_helm.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/elephant_jog.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added postgres_helm/halfway_there.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
256 changes: 256 additions & 0 deletions postgres_helm/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<style type="text/css">
/* Basic theme for remark slides */

html {
font-size: 100%;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 36px;
line-height: 1.0;
color: #555555;
background-color: #FFFFFF;
text-align: center;
}

a {
color: #00989e;
text-decoration: none;
font-weight: 500;
}

a:hover, a:focus {
color: #00989e;
text-decoration: underline;
}

a:focus {
outline: 3px solid #00989e;
outline-offset: 0;
background-color: #00989e;
color: #FFF;
text-decoration: none;
}

ol {
padding: 0 0 0 3em;
line-height: 1.5;
text-align: left;
font-size: 40px;
}

ul {
margin: 0 0;
padding: 0 0 0 3em;
line-height: 1.5;
text-align: left;
font-size: 40px;
}

ul2 {
margin: 0 0;
padding: 0 0 0 3em;
line-height: 0.8;
font-size: 24px;
}

img {
vertical-align: middle;
max-height: 600px;
max-width: 800px;
margin: 0 auto 1em;
display: block;
}

hr {
height: 0;
margin: 1em 0;
border: 0;
border-top: 1px solid #cccccc;
}


h1, h2, h3, h4, h5, h6 {
font-weight: 500;
margin: 1em 0 0.5em;
}

b,
strong {
font-weight: 1000;
color: #FFFF00;
}

blockquote {
border-left: 5px solid #cccccc;
padding-left: 1em;
margin: 1em -1em;
font-style: italic;
color: #999999;
}

.remark-slide-number {
display: none;
}

.remark-slide {
display: table;
}

.remark-slide-content {
display: table-cell;
vertical-align: middle;
padding: 1em 2em;
font-size: 48px;
background: #272822;
color: #FFFFFF;
}

.remark-slide-content h1 {
font-size: 80px;
vertical-align: middle;
text-align: center;
color: #FFFF00
}

.remark-slide-content h2 {
font-size: 72px;
text-align: center;
vertical-align: top;
color: #FFFF00;
}

.remark-slide-content h3 {
font-size: 60px;
vertical-align: bottom;
text-align: center;
}

.remark-slide-content h4 {
font-size: 96px;
color: #FFFF00;
vertical-align: top;
text-align: center;
font-weight: 2000;
text-shadow: 7px 7px 4px #000;
}

.remark-slide-content h5 {
font-size: 66px;
text-align: right;
vertical-align: top;
color: #FFFF00;
}

.remark-slide-content h6 {
font-size: 24px;
color: #00989e;
}

.remark-slide-content > :first-child {
margin-top: 0;
}

.remark-slide-content > :last-child {
margin-bottom: 0;
}

.remark-code, .remark-inline-code {
font-family: 'Monospace';
font-size: 40px;
text-align: left
}
.remark-code-line-highlighted { background-color: #373832; }

.explain1 {
font-size: 20px;
}

.explain2 {
font-size: 24px;
}

.explain3 {
font-size: 36px;
}

/* body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
h1, h2, h3 {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 1000;
text-align: center;
color: #003F87
}*/
.sigblock {
position: absolute;
bottom: 3em;
right: 3em;
text-align: right;
color: #FFFFFF;
font-weight: 1000;
font-size: 18px;
}
.leftlogo {
position: absolute;
bottom: 0.5em;
left: 1em;
}
.rightlogo {
position: absolute;
bottom: 1em;
right: 1em;
}


/* Two-column layout 1*/
.left-column {
width: 50%;
float: left;
padding-top: 50;
text-align: left;
}

.right-column {
width: 50%;
float: right;
padding-top: 0;
padding-left: 0;
text-align: right;
}

/* Two-column layout 2*/
.left-column-narrow {
width: 35%;
float: left;
padding-top: 50;
text-align: left;
}

.right-column-wide {
width: 65%;
float: right;
padding-top: 0;
padding-left: 0;
text-align: left;
}

</style>
</head>
<body>
<script src="remark-latest.min.js">
</script>
<script>
var slideshow = remark.create({
sourceUrl: 'postgres_helm.md'
});
</script>
</body>
</html>
Binary file added postgres_helm/kube.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
119 changes: 119 additions & 0 deletions postgres_helm/notes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Elephants on Automatc

Introduction: It's time for State
- we've automated and scaled the stateless applications
- now we have statefulset
- time to automate stateful apps
- still some work to be done

Bot Pattern
- scheduler problems
- too much application-specific logic
- telephone lag
- instead, add code to control stateful nodes
from within
- maintains
initialization
group members
failover
monitoring
- mention ContainerPilot?

Helm
- deploy app with lots of parameters
- coordinate multi-container application with dependencies
- really just parameterized kubernetes files with registry

Oleksii

CitusDB
- sharded postgres
- query node, plus shard nodes
- shards with duplication
- automatically distribute queries

giant robot elephant from The Nantes Project
elephant helm by Blank Williams
robot elephant by Robert Chew
robot with elephant by Mark F Stosiak





A long strange journey
- yak-shaving
- wanted to automate HA postgres
- containers solved a number of issues
- statefulness gulf
- building the foundation
- got involved with PetSet

Containerize Vs. Not?
- TL;DR: this is an "in 6 months" solution
- why to containerize
- easy installation
- encapsulation of service
- force good DBA habits
- orchestration
- easy testing
- benefits of orchestration
- manage multiple Postgres instances
- auto-vivification
- managing connections and pools
- HA/DR
- integrate with rest of stack
- self-service for developers
- use GCE
- drawbacks
- alphas
- waiting for fixes, features
- extra setup (unless you use GCE)
- new ways of admin/config/monitoring

The Prototypes
- why they're only prototypes
- containers
- autopilot pattern
- container considerations
- log to stdout/err
- install bootstrap & pvs
- required parts:
- config
- hba
- initial users & pwds
- patroni container
- guided tour
- citusdb
- guided tour
- kubernetes config
- explanation of statefulset parts
- patroni
- etcd requirement
- demo of deployment
- PV vs. emphemeral
- citusdb
- demo of deployment
- using citusdb

Productionizing
- list of needed items:
- PVs
- Vault
- sidecar containers
- backup
- pooling
- etcd
- db management
- pgadmin
- features on the waitlist
- union configmap
- Vault plugin
- federated StatefulSets
- issues with PVs
- affinity
- more containerizing
- Postgres Pro MM-Sync
- BDR?

Q?
Binary file added postgres_helm/old_diagram.png~
Binary file not shown.
Loading

0 comments on commit 344ad17

Please sign in to comment.