Freeze! With that phrase, a criminal just got apprehended, a child stopped behaving badly, and programmers stopped coding. For the coders, they aren’t about to face punishment like the other two, provided the code works. When it comes to a continuous deployment model for cloud-based projects, it’s the developers’ job to implement and push out changes to the operations team as quickly as possible. In the event of a “code freeze,” operation teams sync all the code from each individual, place it in a repository and test to see if it works. If everything integrated together doesn’t work, it’s back to square one of the software development cycle.
Continuous development needs to be just that: continuous. It can’t be a game of red light/green light, which only proves to be a waste of time and money. Virtualization, configuration management, and other tools are components of a larger, more agile, development and operations (DevOps) solution– a solution that can update and synchronize changes to production on the fly.
If not handled effectively, the software development cycle can be very costly. After a “code freeze,” code must progress through several phases in an organization’s application platforms before the deployment stage. These steps are integration testing to flush out the code, user acceptance testing to flush out functionality, performance testing, staging and disaster recovery to see if what is built can withstand production, and finally production.
Enterprises like Qualcomm rely on tiered platforms consisting of one or more integrated applications. Web servers, application servers, and an enterprise service bus connected to the database are different technologies, often coming from different vendors. Even still, they all have to be connected so that when there is a sudden “code freeze,” everything routes appropriately at the right stage of the cycle. In any given assortment of hosts, most are dedicated to production while the other rest are dedicated to staging and disaster recovery, the user acceptance test environment, the performance test environment, and the integration test environment. The latter half typically looks nothing like the production side and isn’t always active. If not managed appropriately, the implications of this complex and time-consuming cycle have the potential of leaving an organization out in the cold.
If hosts are decoupled from the architecture, these complexities are mitigated because no matter how many times something needs to go through the software development life cycle, the different stages can be reconstructed and maintained on the fly when needed. Essentially, any host can be transformed and used for the different purposes to streamline deployment and keep everything in sync.
Today’s speed of business demands nothing less. Deployments occur on a weekly, if not daily, frequency. Operation teams must be able to keep up with the frequent updates from the developers, but there are many, many steps before production. When operations are tasked with building in haste in order to satisfy cost pressures, the result is firefighting and ultimate waste fiscal and human capital resources. Continuous delivery makes constructing multi-tier platforms a breeze, and DevOps will naturally free up budget rather than freeze out assets and production.
To learn more on building a DevOps environment, read our report: “Realities for Transforming Your Enterprise into a Private Cloud,” featuring Qualcomm.
You can also check out our On-Demand content featuring the Google+ Hangout titled, “Private PaaS: Accelerating Continuous Delivery for DevOps.”