Skip to content

Instantly share code, notes, and snippets.

@withinboredom
Last active August 29, 2015 14:15
Show Gist options
  • Save withinboredom/ebe4fe874662d156e850 to your computer and use it in GitHub Desktop.
Save withinboredom/ebe4fe874662d156e850 to your computer and use it in GitHub Desktop.
PaaS Requirements

Must Haves

Ops

  • Manageable from any machine
  • Deployable from any machine
  • Be distributed and self healing
  • Simple to bootstrap, and fast

Development

  • As simple as pushing my code to deploy
  • Simple environments (such as staging/qa/production)
  • rolling releases
  • ANY code, any app
  • Scalable, self healing, distributed data stores
  • Galera for MySQL
  • Hot standby/streaming replicaiton PostgreSQL
  • CephFS available to the application
  • HTTP/DNS only interfaces to components

Proposed Solutions

Serf:

  • Provides initial bootstrapping framework
  • Simple discovery

Consul:

  • Provides full service discovery
  • Health checking
  • Cluster communication

Docker:

  • Provides isolation
  • Repeatable/portable systems

Ceph:

  • Provides distributed filesystem
  • Available to plugin system for state

Unknown Scheduler:

  • Determines which host gets what application container
  • based on load/dc/etc
  • manages deployments

Unkown Router:

  • Routes traffic to the appropriate container
  • Takes into account stickiness when performing rolling deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment