CSC/ECE 517 Spring 2015/ch1a 4 RW: Difference between revisions
(Created page with "<font size="5"><b>Blue-Green Deployment</b></font> Blue-Green deployment is a technique used to reduce risk and delay in continuous integration. It uses an exact copy of product...") |
|||
Line 5: | Line 5: | ||
__TOC__ | __TOC__ | ||
=== | ===Background=== | ||
Software applications are becoming more and more complex nowadays. Software development life cycle is trying to adapt to this new paradigm by implementing ways to release new features/updates as frequently as they can be conceptualized. Agile methodology has reduced time for release of new piece of code. With application changes going into production at such a remarkable frequency, a need was felt to automate production deployment. More and more software developers are using Continuous Integration (CI) nowadays. In continuous integration, a new piece of code is easily integrated into existing application code, and tested to make it ready for release. With continuous integration becoming a norm, continuous delivery (or deployment) is becoming a necessity. On an average, Amazon is pushing changes to production every 11.6 seconds. Google and Facebook are releasing frequent changes to production. As per Martin Fowler, "Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time". |
Revision as of 00:45, 1 February 2015
Blue-Green Deployment
Blue-Green deployment is a technique used to reduce risk and delay in continuous integration. It uses an exact copy of production environment, where new changes can be deployed and production testing can be done. After running successful tests, we can just point router to this copy and make it production. In case of any error in system after this step, we can roll back by re-pointing router to old application instance. This process reduces the production downtime during migration and expedite any rollback operation in case of error in production to last successful build.
Background
Software applications are becoming more and more complex nowadays. Software development life cycle is trying to adapt to this new paradigm by implementing ways to release new features/updates as frequently as they can be conceptualized. Agile methodology has reduced time for release of new piece of code. With application changes going into production at such a remarkable frequency, a need was felt to automate production deployment. More and more software developers are using Continuous Integration (CI) nowadays. In continuous integration, a new piece of code is easily integrated into existing application code, and tested to make it ready for release. With continuous integration becoming a norm, continuous delivery (or deployment) is becoming a necessity. On an average, Amazon is pushing changes to production every 11.6 seconds. Google and Facebook are releasing frequent changes to production. As per Martin Fowler, "Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time".