DevOps - End-to-End Automation
UrbanCode's DevOps Platform is used to automate builds, tests, deployments, releases, and other process in an application's lifecycle. This end to end automation is known by names like: DevOps, Continuous Delivery, Continuous Deployment and Application Lifecycle Automation. While each term has its own nuances, they all utilize automation that spans the traditional development, test, operations silos.
An End-to-End Scenario
What does end to end automation look like? It starts with a build, often the product of a Continuous Integration cycle. The build is picked up by a scheduled process that places it in a test environment and executes an automated test suite. When that passes, development and test teams are alerted. The test team decides when it is ready for a fresh build, and uses the self-service interface to pull the build into a manual testing environment.
Meanwhile, the development lead annotates the build with a note indicating feature completeness. As tests pass, the build is promoted through various environments all through UrbanCode Deploy. As the build is prepared for the Staging environment, it is flagged as missing a required security scan for all builds entering production. The scan is requested and then UrbanCode Build checks out the same source code used to perform the original build, runs the scanning software, and publishes the results. Finally, the production support team invokes the UrbanCode Deploy deployment process against the production environment during a scheduled outage.
Each step in the process is logged, as well as who ran it. Test results from development, and QA are shown side by side within the BuildLife record alongside coverage data, and the security scan. While everyone on the project – from development through production support – has visibility into the project, each step was restricted to specific users by the rich role based security system ensuring separation of duties.
Consistent Deployments across Environments
The DevOps Platform can automate deployments. In a nutshell, UrbanCode Deploy can manage deployments across multiple, different environments (such as DEV, QA, and PROD), each with different types of servers (such as Database, Application Servers, and Static Content) and different number of servers of each type. This allows a single deployment process to be defined that is smart enough to know how to deploy an application to the DEV environment with one server, the QA environment with three servers, and the PROD environment with dozens of servers.