Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package 12factor and new Scheduler interface #696

Closed
wants to merge 11 commits into from
Closed

Conversation

ejholmes
Copy link
Contributor

Consider this a proposal for a v2 version of the Scheduler interface. Not necessarily looking to get this merged quickly.

The more I think about it, the more I realize that our Scheduler interface is just a generic interface for running 12factor apps against a scheduling backend, like ECS, Nomad, Kubernetes, etc.

Empire's sole purpose is to take a manifest, perform some transformations on it (merging in environment variables, release version, image) and then pass it off to a scheduler. I think there's a lot of benefits to making this fact more explicit in the code base.

Goals of this PR

  1. Implement a higher quality ECS implementation. Better tests (functional tests against ECS), faster performance (parallelize as much as possible).
  2. Define terminology for what we consider a "12factor" application, and provide Go types that mirror that definition (see package twelvefactor).
  3. Support multiple provisioning backends for the ECS scheduler (cloudformation and raw api).
  4. Potentially produce an isolated binary that can run 12factor applications without all of Empire. (e.g. Here's my Procfile and .env file, run this with the ECS backend)
  5. Keep things generic enough so that other 12 factor PaaS's can use it.

This could probably be merged before we actually change Empire to start consuming it.

TODO

// was previously defined, then only a "worker" process was submitted, the
// existing "web" process should be removed.
type Runner interface {
Run(Manifest) error
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a thought. This might be better named Up and we can have an optional Down method that scales everything to 0 (e.g. Maintenance mode).

@ejholmes ejholmes mentioned this pull request Apr 20, 2016
@ejholmes
Copy link
Contributor Author

ejholmes commented May 5, 2016

Gonna go ahead and close this. New CloudFormation scheduler was merged in #803

@ejholmes ejholmes closed this May 5, 2016
@ejholmes ejholmes deleted the 12factor branch March 1, 2017 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant