Skip to content

Commit

Permalink
talk in git for daniel
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter van Hardenberg committed Jul 7, 2011
0 parents commit 44ebdc6
Show file tree
Hide file tree
Showing 11 changed files with 245 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gems
@@ -0,0 +1,4 @@
bluecloth
nokogiri
showoff
gli
2 changes: 2 additions & 0 deletions config.ru
@@ -0,0 +1,2 @@
require "showoff"
run ShowOff.new
30 changes: 30 additions & 0 deletions discussion/01_slide.md
@@ -0,0 +1,30 @@
!SLIDE

# Things That Worked

!SLIDE

# Outside-In Administration
* simplifies deploys
* easily inspected

!SLIDE

# Simple Instances
* off the shelf packages
* predictable behaviour
* low rate of change

!SLIDE

# Open Questions

!SLIDE

# Cloud computing resource suitability
* IO performance
* Uptime concerns

!SLIDE

#
74 changes: 74 additions & 0 deletions ec2/01_slide.md
@@ -0,0 +1,74 @@
!SLIDE

# PostgreSQL, Web Apps, and EC2

!SLIDE bullets incremental

# Running 100,000 Apps At Once

* 2000 free databases per server
* plus dedicated databases

!SLIDE bullets incremental

# EC2

* servers provisioned on demand
* from 300mb of RAM to 68gb of RAM
* sub-ms latency within EC2 zone

!SLIDE bullets incremental

# IO Performance on EBS

* Not great
* 8-volume mdadm raid
* lvm2 on top
* GNBD
* see: http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs/

!SLIDE bullets incremental

# Multi-tenant

* Tried per-user schemas, not secure enough
* Shared cluster allows high density
* Shared cluster makes logging and introspection hard

!SLIDE bullets incremental

# Dedicated

* challenging to monitor performance
* constant monitoring
* regular backups
* secured ingress

!SLIDE

# Interesting Questions

!SLIDE bullets incremental

# What is my responsibility?

* You create indexes...
* I pick filesystems...
* but I get paged at 3AM when you become nonresponsive.

!SLIDE bullets incremental

# How can I put more tools in your hands?

* Fewer SIGHUP context GUC would be nice
* Particularly logging
* Host monitoring tools
* CPU, IO, free memory, etc.
* Requests welcome!

!SLIDE

# FIN
# (demos!)
# pvh@heroku.com

26 changes: 26 additions & 0 deletions intro/01_slide.md
@@ -0,0 +1,26 @@
!SLIDE
# PostgreSQL-in-the-Cloud #
## How to Run 97,283(ish) Ruby Apps At Once ##

!SLIDE
## Peter van Hardenberg ##
### pvh@pvh.ca ###
### Tech Lead, Department of Data ###
## Heroku ##

!SLIDE bullets incremental
# Heroku #

* Ruby host
* PostgreSQL since day one
* Local to SF
* PaaS

!SLIDE bullets incremental
# PostgreSQL-in-the-Cloud #

* The Dejargonizer
* Cloud Service Architecture 101
* Running PostgreSQL on EC2
* Problems Outstanding

40 changes: 40 additions & 0 deletions jargon/01_slide.md
@@ -0,0 +1,40 @@
!SLIDE

# Cloud Jargon Demystified

!SLIDE bullets incremental

# Cloud

* Someone else's computer
* Usually virtualized resources
* Available on demand
* Pay as you go

!SLIDE bullets incremental

# *-as-a-service

* Available on demand
* Pay as you go
* Somebody Else's Problem

!SLIDE bullets incremental

# Ruby-as-a-service

* Read-only filesystem ...
* ... enforces scalability
* Wide array off addons...
* ... rapid prototyping

!SLIDE bullets incremental

# PostgreSQL-as-a-service

* No superuser...
* ... enables managed backups and monitoring
* Instant* provisioning
* Convenient tooling


61 changes: 61 additions & 0 deletions platform/01_slide.md
@@ -0,0 +1,61 @@
!SLIDE
# Cloud Service Architecture

!SLIDE bullets incremental

# Cloud Computers

* Computers are free...
* ... but running them is expensive.
* You can have it now...
* ... but it may disappear.

!SLIDE

# Computer = Transistor

!SLIDE center

<img height="500" src="/image/platform/computer.jpg"/>

!SLIDE

# =

!SLIDE center

<img height="500" src="/image/platform/transistor.jpg"/>

!SLIDE bullets incremental

# Whaaa?

* Don't try and fix a transistor.
* If one transistor fails, throw it away.
* If several transistors fail, fix the supply process.

!SLIDE bullets incremental

# Treat Servers like Transistors

* Use a reliable method for creating them
* Keep them simple
* Replace them if something goes wrong

!SLIDE bullets incremental

# Deploys are Hard

* O(n) worse than O(1)
* Well understood, minimally unique servers
* Heroku app for central control
* Outside-in management of servers
* None* of our code on the server

!SLIDE

# App Architecture

<img height="500" src="/image/platform/architecture.png"/>


Binary file added platform/architecture.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added platform/computer.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added platform/transistor.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions showoff.json
@@ -0,0 +1,8 @@
{ "name": "Postgres in the Cloud",

"sections": [
{"section":"intro"},
{"section":"jargon"},
{"section":"platform"},
{"section":"ec2"}
]}

0 comments on commit 44ebdc6

Please sign in to comment.