-
Notifications
You must be signed in to change notification settings - Fork 4
/
outline.txt
122 lines (113 loc) · 2.93 KB
/
outline.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Introduction
- who this is for
- TOC
- preparing for hands-on exercises
- minikube
- download containers
- update repo
A brief history of stateful applications on Kubernetes
- originally just storage
- replicaset limitations
- creation of statefulset/petset
- CRDs & Operators
Trade-offs
- Management Tradeoffs
- Elephants vs. Mimmoths
- custom deployment vs. automated deployment
- shelling in vs. API
- shared large db vs. db-per-application
- dedicated server/VM vs. packing
- DBA team gating vs. self-service
- command-and-control vs. templating
- Peformance trade-offs
- network latency
- storage abstraction
- limits on large databases
- A comparison of high-availability frameworks
- Non-containerized
- regmgr, pgpoolII
- Paid cloud:
- RDS, Aurora
- Advantages of Containers/Kubernetes
- Containerized solutions:
- Patroni/Spilo
- Crunchy Postgres Operator
- Stolon
- Real-life use cases: Zalando, bugs.python.org
- zalando
- self-service for devs
- big infrastructure
- thousands of applications
- AWS-based cloud
- bugs.python.org
- Moved to openshift
- originally RDS
- wanted to "own it", save money
- moved to patroni-based storage
Patroni
- “The 80% solution”
- single-application DBs
- small database clusters
- fully automated HA
- Kubernetes services for LB
- not federated (but wait)
- AWS-friendly
- Patroni vs. Spilo
- How containerized HA works
- patroni diagram
- What’s inside the container
- interactive tour
Deploying
- Operator versus manual
- What's an operator?
- Why you would use one
- templating
- scheduled tasks
- Manual deployment of Patroni Image
- interactive exercise
- Deployment of Operator Image
- interactive exercise
OpenShift versus Kubernetes deployments
- Advantages of Kubernetes
- Advantages of Openshift
- Locking limitation
Management
- Testing HA and failover
- interactive exercise
- DevOps-ing database management
- using operators
- creating templates for your team
- workflow for DB deployment
- Managing database contents
- yes, use the ORM
- Administration API
- Port 8001
- PatroniCTL
- API commands
- Status
- Failover
- Scale
- pg_hba
- postgres settings (plus some cautions)
- Operator API
- Latency
- ConfigMap
- Changing things
- Disaster recovery
- Backups
- S3 option per Spilo
- Auto-restore
- Other options
- Building pgBackRest setup for bare metal
Further work
- Production storage options
- Gluster
- Local Storage
- Public cloud considerations
- Customizing deployment
- Contributing to the project
- Patroni & spilo locations
- We need docs!
- Current work:
- Sync Rep
- Federation