Deploy Web-services to an Enterprise Production Environment without outbreak

September 13th, 2010

WRITTEN BY GUNTHER GERLACH-2010

datamodelsThis morning I was in a meeting were the bigest concern was trying to find the way to deploy applications and Web-services to an Enterprise Production Enviroment without outbreak or interruption of the services. This is a pretty big statement in an environment where multiples deployments at different levels happen every day but, there is a way!

When Web-services are running from full tolerance and distributed environments, the options are usually putting down half of the servers by stopping traffic and deploying the updated Web-service then latter switchiing traffic back. The problems with this approach are many, like direct impact on users by latency on the systems, huge conversion when a new service fail or break the environment and, a headache to rollback, among others.

THE SOLUTION:

Implementing a load balancer to map internet trafic to an specific Webservice runing in a specific port fix almost everything by opening the oportunity to deploy new services listening to a different port so, internet trafic will not be impacted until we let the traffic go to this new version.

Then, when the new service has been deployed, we just start switching the internet traffic to the new port by segments (1%, 2%, 5%, 20%, 40%, etc) until reaching 100%. This way, we can deploy in Production enviroment without outbreak and, after a failed deployment, rollbacks are easilier by switching the traffic back to 100% to the old service still up and running.



Gunther Gerlach

  1. master
    September 24th, 2010 at 12:47 | #1

    Thank you very much for that glorious article

  1. No trackbacks yet.