The DevOps Toolchain Explained

Urbancode’s DevOps toolchain begins with a developer committing code to a source repository. Commit comments can be added so that uBuild will associate the code change to a bug report (Bugzilla, JIRA, Rally, TFS, TeamForge) or a feature story (Rally, PivotalTracker, VersionOne, Rational Team Concert).

uBuild will wake up periodically and build the code projects that have been changed during the latest period. The code changes, the execution of the build, and the output of the build are associated with this unique build. The build is then tested (JUnit, Selenium, HP QualityCenter, Cobertura) and analyzed (PMD, FindBugs, Coverity, CodeSonar, Rational AppScan, FxCop, Clockwork), and the outputs associated with the unique build. If the build, tests, or analysis determine a problem, the development team that owns the project is notified so corrective action can be taken. The entire process is known as Continuous Integration.  All projects in the enterprise that depend on this build can be set to build when changes to dependencies occur, and if a problem is found alerts that team. This is Enterprise Continuous Integration.

If the build passes the tests, the build artifacts can be automatically sent to uDeploy which will version them and automatically deploy them to a development environment for more automatic and manual testing, demonstrations, etc.  Once the development team is satisfied with their application, they can request a deployment to a test environment so the QA team can test. This deployment can have an approval process so it won’t deploy to test until the QA manager is ready for a new version and approves the deployment.

Development and QA teams can deploy the application to lower environments and DevOps teams can promote the application to higher environments. They use the same processes to orchestrate the deployment of software, data, and configuration to application servers (WebSphere, WebLogic, Tomcat, IIS), databases (Oracle, SQLServer, MySQL, DB2), infrastructure (F5), ESBs (Informatica, SharePoint, BizTalk, MQ systems), systems (Linux and Windows utilities). The deployment process can also coordinate with ticketing systems (Remedy, ServiceNow, HP Service Manager) and monitoring tools (Nagios).

For the deployment into production, the Release Manager can reuse an old release plan or create a new one using uRelease.  uRelease allows the release team members to know what to do and who is responsible for doing it.  As the release clock ticks on, the release team updates their activities like creating an outage request, using uDeploy to deploy applications to production, manually testing the deployed application, using uDeploy to rollback to the old version if needed, and sending out end of outage notifications.

The DevOps toolchain manages your applications from code all the way to the hands of your customers.  You develop, we deliver.

Dependencies All the Way Down – Builds (2 of 4)

When we look at software builds, we’re looking, for the most part, at dependency problems. Traditional build scripting tools like Make or Ant are dependency languages. In order to do thing A, do B and C first, etc, etc.

The example below, in order to build the very small program “unique” main.o and strset.o need to be built. Those in turn rely on the input files main.c, strset.h and strset.c.

http://www.cs.princeton.edu/courses/archive/spr01/cs217/slides/5.make.pdf

Understanding this graph is important for performing an incremental build. Continue reading

Integration Update

A number of new and updated integrations have rolled out recently, here’s the run-down.

AnthillPro – Jira 4.x

The folks at Atlassian changed up their web services schema. The latest plugin for Jira supports the new Jira web services. You can get it here. If you’re still using the legacy integration rather than the plugin, migrating to Jira 4 is a good time to switch over.

TFS 2012

We’re starting to see some adoption of Microsoft Team Foundation Server 2012. Updated integrations for it are now available. They’ll be shipping in uDeploy 4.8. AnthillPro and uBuild integrations are around the corner as well. If you need this integration before the next release, contact support for a patch.

Tomcat

The uDeploy integration for Apache Tomcat has been updated with support for moving over a specialized context.xml with a war file deployment.

uDeploy – Jenkins

This has been available for a little while now, but we should mention that the Jenkins plugin for uDeploy has a couple of enhancements. First, it now supports Jenkins slave builds better. Second, it can be configured to automatically trigger a deployment of the new version in uDeploy.

uDeploy / ServiceNow

This integration was expanded to cover ServiceNow’s CMDB offering.

What’s Next?

Tell us. When it comes to integrations, we’re all ears. Ok, ears and nimble coding fingers.