DEV Community

Discussion on: How does deployment work at your organization?

Collapse
 
aghost7 profile image
Jonathan Boudreau • Edited

There's more than one application which we serve at my company.

The first application uses a dated deployment, which goes like this:

  1. Bring up the maintenance page.
  2. Bring down all running web servers.
  3. Migrate the database schema.
  4. Bring up the web servers with the new release.
  5. Remove the maintenance page.

There's a couple of issues with this kind of deployment. For some customers we incur business loss because they've got people around the globe working at different hours.

The second application uses a rolling deployment, which goes like this:

  1. Migrate the database schema.
  2. Bring up the new web servers.
  3. Add the new web servers to the load balancer.
  4. Remove the old web servers from the load balancer.

There are some special considerations with regards to how migrations need to be written since the old application will still be running. For example removing a column needs to be split into two releases instead of one.

To answer your second question, our SDLC (software development life-cycle) looks for the most part like this:

  1. Open a PR.
  2. CI runs tests.
  3. Code review.
  4. Deploy to QA environment.
  5. Changes are tested internally.
  6. Deploy to UAT (user acceptance testing) environment.
  7. Customer validates that changes are OK for production.
  8. Deploy to production.