36
Postgres is the new default How we transitioned our platform and why you should too

Postgres Open

Embed Size (px)

DESCRIPTION

History of Engine Yard's relationship with PostgreSQL. How we went from minimal PostgreSQL support to making it our new default. Video is available here: http://www.youtube.com/watch?v=sFfJjfOk9NA

Citation preview

Page 1: Postgres Open

Postgresis the new defaultHow we transitioned our platform and why you should too

Page 2: Postgres Open

I work with Data!

Page 3: Postgres Open

Agenda

•Where we were

•Our relationship with Postgres

•Challenges

•Our future together

Page 4: Postgres Open

We live in The Cloud!

Page 5: Postgres Open

Engine Yard

• Languages

•Amazing Support

• Team DBAs & me

• 2 Products *

Page 6: Postgres Open

> 1 Petabyte

Page 7: Postgres Open

No multi-tenancy.

Page 8: Postgres Open

...A year (or so) ago

Page 9: Postgres Open

Engine Yard Cloud•Only MySQL 5.0

• 8.3 in perpetual Alpha

•No Slaves, No Docs

• Increasing interest

• Stack Expansion - DIRTT

Page 10: Postgres Open

Our Relationship

with Postgres

Page 11: Postgres Open

Infatuation

Stage 1

Page 12: Postgres Open

Why love Postgres?

• Flexible Replication: streaming & hot standby

• Features & Extensions

• Versatile Data Types

• FDWs

Page 13: Postgres Open

Why love Postgres?

•All of the Indexes!

• B-tree, GiST, GIN, SP-Gist*

• Procedural Languages (PL)

• Full-Text Search

Page 14: Postgres Open

Why love Postgres?

• Feature parity with Managed

• Outstanding community & commercial support

• Let’s make it our default!

Page 15: Postgres Open

Understanding

Stage 2

Page 16: Postgres Open

Re-Tool

•MySQL Shop

•DBA Training: DBAs & Engineers

•OSS to help us gain velocity

Page 17: Postgres Open

Customer Education

•Customer Facing Docs focused on MySQL

• Technical Writers FTW!

Page 18: Postgres Open

Disturbances

Stage 3

Page 19: Postgres Open

Roadmap issues

• Shiny new process for DB releases

•Alpha, Beta, GA

• Surprise we got it WRONG!

Page 20: Postgres Open

Multiple Architectures

• EBS Volumes & 32-bit instance sizes

•Dump & Restore only way to vertically scale

Page 21: Postgres Open

Bad Assumptions

• Product codebase tied to old assumptions

•MySQL everywhere

• Refactor!

Page 22: Postgres Open

Moulding

Stage 5

Page 23: Postgres Open

Company-Wide Effort

Page 24: Postgres Open

Installation

• Engine Yard Cloud

•Chef > EBS

• Engine Yard Managed

• Puppet > Storage

Page 25: Postgres Open

Configuration

• $PGDATA on EBS

•We don’t RAID

• Snapshots to S3

• pg_xlog same volume

Page 26: Postgres Open

Replication

•Archiving on db_master

• hot_standby slaves

•All slaves <> AZs

• Smaller slaves

Page 27: Postgres Open

Monitoring

• Bucardo’s check_postgres

•Collectd & Nagios

• Process health, replication, checkpoints - MORE

Page 28: Postgres Open

Backups

• Internal tool wraps around pg_dump

• Snapshots & dumps to S3

•Only backup from slave (if present)

Page 29: Postgres Open

Allow Extensions

•Dedicated instances

•Customizations OK!

• Ship recipes for ~30 extensions

•Curated & tested

Page 30: Postgres Open

Architectures

•New instance types: 64-bit small, mediums

• Standardized instances architecture 64-bit

Page 31: Postgres Open

Happiness & Trust

Stage 9

Page 32: Postgres Open

Future Directions

• 9.2 Support

•AWS Optimizations

• Provisioned IOPS

• EBS optimized instances

• SSD-backed instances

Page 33: Postgres Open

Future Directions

• Painless upgrades

• Better extensions

•Ugh to cookbooks!

•HA/DR

Page 34: Postgres Open

Future Directions•Customer education

still a problem

• Low adoption of slaves

•~146 year ago

•~165 now

Page 35: Postgres Open

Give us a try!

Page 36: Postgres Open

Questions? @RandomMood