UrbanCode DevOps Platform™
DevOps is an approach to IT focused on fostering cooperation and collaboration from developers through operations and production support. Testers, release managers, and change management teams are included. Through joint efforts, DevOps seeks an IT team that is more responsive to the business, and more efficient while still delivering high quality product in compliance with regulations and separation of duties concerns.
While DevOps is an approach and not a set of tools, the adoption of the DevOps philosophy can be greatly aided by having the right tools. UrbanCode has been providing tools that are aligned with DevOps for over a decade. UrbanCode tools work together and with other popular tools to standardize and automate manual tasks, giving you a continuous delivery pipeline from development to operations, and all the way to production.
In the context of Continuous Delivery, some organizations "deliver" the product of a single team, while other organizations "deliver" the work product of multiple teams as a single unit. After years of working with customers on implementations of Continuous Delivery, we've decided to create separate sets of tools tailored to each of the above scenarios. The features of each tool have been charted in our DevOps Platform Features and Solutions Matrix.
UrbanCode Build and UrbanCode Deploy were created for organizations where packages that make up a single release are created by multiple different teams. Releases of this type require a great deal of coordination among the teams and the packages they produce. This coordination is traditionally the job of release management or the release coordinator. The combination of UrbanCode Build and UrbanCode Deploy facilitates this coordination by allowing the tracking and promotion each individual packages through the lifecycle stages. Once the proper combination of packages is determined, a snapshot of the release is created and then promoted as a single unit.
UrbanCode Release, a release management and coordination tool, works with UrbanCode Deploy to provide an additional layer of release management. UrbanCode Release manages the release of multiple interdependent applications and the changes outside the scope of application deployment automation. It orchestrates changes across the applications and infrastructure in the release, while providing data and tracking information on infrastructure.
AnthillPro is a Continuous Delivery server made for teams whose work product encompasses all the tiers of a project. Coordination of the components in a project is done by the development team rather than being done by the release management team. AnthillPro provides powerful dependency management capabilities to facilitate the coordination of the project components. Dependency relationships are resolved during the build process making the result of the build a single package that makes its way through the lifecycle stages as a single unit.
uProvision brings the advantages of automation to environment provisioning. Through uProvision, the amount of time required to provision an environment goes from weeks to minutes.
When we originally created our build management server, it lowered the cost of doing builds for our customers. As a direct result, the build volume for our customers by an order of magnitude after rolling out our build management solution. With UrbanCode Deploy and automated deployments, we are seeing similar increase in deployment volume. You have to have a target environment to receive these deployments. When you increase deployment an order of magnitude it is going to have a significant effect on your environment management process.
Continuous Delivery is a hallmark DevOps practice, tying together software build, test and release into a clear promotion path. Our AnthillPro product is built for traditional CD where a build is promoted via a series of secondary processes. UrbanCode Deploy handles more complex deployments to later environments and can be used in conjunction with any build server.
Many DevOps efforts start with release automation efforts. Deployments can be standardized from development test through production, lowing risks in production and establishing self-service deployments for developers and testers in lower environments.
Parallel development often faces bottlenecks at deployment time from having too few testing environments. uProvision provisions and destroys test environments to keep pace with changing development streams.