4

I'm currently managing the development of a live web application. There are two developers. We're looking to define a workflow that specifies how builds and deployments should happen.

We're currently using codebaseHQ for source control.

This is what I'm thinking:

  1. Dev1 and Dev 2 get and commit changes to a single repository on CodeBaseHQ.
  2. We push updates from codebaseHQ to alpha.domain.com, which is decoupled from the production database, for initial testing.
  3. Assuming tests go well, merge changes onto beta.domain.com, which is coupled to the production database, for further testing.
  4. Assuming these tests go well, merge onto domain.com (production).

Does this sound okay? It seems like a very cumbersome process for the developers - they have to test/push twice for each changeset. With infrequent updates this seems bearable, but if we're pushing changes on a daily basis, what would you recommend?

RobVious
  • 12,685
  • 25
  • 99
  • 181
  • you could use a build process (ANT or Maven) to assist with this. With ANT you could have specific targets for deploying to dev, stage, prod etc and to configure the DB connection for each environment. coupled with the ability to run unit tests or integrate with CI, it wouldn't be that hard at all. – thescientist Oct 22 '12 at 15:05

2 Answers2

1

It seems like a very cumbersome process for the developers - they have to test/push twice for each changeset.

Sounds like you don't have much automation in place for pushing or testing. Once you have some automated tests in place, you could use tools like Go (full disclosure: I work there) to define different environments and model a workflow such that pushes to different environments happen automatically. It is great that you are pushing changes on a daily basis, you are likely to find lots of relevant advice in the continuous delivery book.

ottodidakt
  • 3,631
  • 4
  • 28
  • 34
  • Agreed! Automation is a must have. Inedo's BuildMaster (http://inedo.com/buildmaster) is really popular platform that can help solve this problem as well; there's a free version that could probably server your needs. (Disclaimer: I work at Inedo) – Karl Harnagy Apr 19 '13 at 21:03
0

I really hate the idea of promoting source code to promote features to production. I'm a big fan of promoting builds through environments (I imagine Bagheera is too, since we're competitors).

Get a "build" whether that's compiled or just a package, and promote that package through the environments using scripts or a tool.

EricMinick
  • 1,487
  • 11
  • 12