Skip to content

Instantly share code, notes, and snippets.

@bobtfish
Last active December 11, 2015 05:58
Show Gist options
  • Save bobtfish/4555977 to your computer and use it in GitHub Desktop.
Save bobtfish/4555977 to your computer and use it in GitHub Desktop.

test tl;dr - Given heavy Javascript apps which people keep open for hours (or days) at a time, how do you deploy multiple times a day without screwing the user over or making the developer's life really hard? Discuss!

Reliable continuous deployment for stateless web applications can be done reasonably easily. For example:

  • Have 2 instances (A and B) of your application on each server
  • With A instances in the load balancer, upgrade green instances
  • Add B instances to the load balancer
  • Remove A instances from the load balancer

You scripting this little dance isn't too hard, nor is orchestrating it across the multiple machines with mcollective.

My company even has a little project to wrap all of this up: https://github.com/youdevise/orc/

However, for JS heavy applications a lot of state is preserved on client side, and most of the site just becomes a REST API serving JSON..

Maintaining an inter-version boundary between the application API and what the Javascript expects is really quite hard on developers, and doesn't help solve the fact that you want to be able to upgrade the Javascript multiple times a day also.

Lets discuss application architecture strategies for solving this, and the inherent tradeoffs involved in each.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment