postgres open

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

Upload: ines-sombra

Post on 14-Jun-2015

575 views

Category:

Technology


1 download

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

TRANSCRIPT

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