Continuous Delivery (CD) is a design practice used in software development to automate and improve the process of software delivery. Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. The technique was one of the assumptions of extreme programming but at an enterprise level has developed into a discipline of its own, with job descriptions for roles such as “buildmaster” calling for CD skills as mandatory.
GO-CD was developed by Thoughtworks based on the proprietary Cruise platform and implements the best practices outlined by Martin Fowler and Jez Humble (see http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912). It is a mature open source product with strong community support and enterprise ready to medium and large size projects. The majority of commercial products like OctopusDeploy, Microsoft Release Manager and others.
In this session we will review our basic understanding of CI/CD, the architecture and implementation of the GO on the live project and do the demo deployments of of web and DB projects from VS. We will discuss the integration with Git/TFS and other systems.
The attendees will gain understanding sufficient to get started with GO after the class. In this presentation, I will share the experience we got after using GO as a primary CD tool for a large custom app dev project for ~7 months.