Skip to main content
#570

Project #tenbysix Update #11

I'm really stuck right now on #tenbysix. I'm having total architectural block. My brain just needs to code something to make progress, but it's not happening.

I'm going to brain dump on Billow.in, the project that I think is causing most of this blocking, and maybe that will free up some thoughts. This brain dump was brought to you by Moderat iii on repeat.

So I want to build a heroku clone, using as much already written software as possible, but without using anything proprietary or any full packaged solutions.1

Some base requirements:

  • Must support Ruby, Go, Python and Node.js.
  • Must be able to deploy from a push to Github.
  • Must be able to run multiple applications from one box.
  • Must restart application if it dies.
  • Must be able to assign DNS, and not need to change ever.
  • Base monitoring must come for free.
  • It needs to be as cheap as possible.

Right now what I'm trying to wrap my head around is what do I need to build after a git push, and then how do I run it?

I like how Otto figures out a lot of stuff for you, so you can have local and remote deployments be identical. One thought I had was to git push to Github, which would trigger a Travis build, which if successful would somehow push to Nomad. None of this workflow is supported yet, but it's something I think might work if I do a bunch of hacking on both projects.

Another thought is to start simpler. Use Packer to build AMIs, and just deploy those to EC2. Although now reading the packer docs, I could have packer build a docker container as well... so if I had a docker image, I could push that to Docker Swarm, and then just register that with some sort of admin tool which sets up load balancing and DNS.

Google has a tutorial on building a pipeline similar to what I'm proposing above, which could be interesting. Hashicorp also has a slide deck that shows a way to do a similar pipeline with just their tools.

Cool, ok, that brain dump helped. So I'm going to try and create a base packer setup that I can run on git push that outputs a docker image that I can run.

Stuff I worked on this week:

Nothing concrete.

Projects I didn't touch:

/Nat

Footnotes

  1. By proprietary I mean things like Google Cloud Container Builder or Amazon Elastic Load Balancers. By full packaged solutions I mean things like Deis or CloudFoundry.