AnthillPro | |
Caption: | UrbanCode AnthillPro |
Developer: | IBM |
Latest Release Version: | 5.0.0 |
Operating System: | Cross-platform |
Programming Language: | Java |
Genre: | Continuous Integration, Continuous Delivery, Application lifecycle management (ALM), Application release automation, DevOps |
License: | Proprietary |
AnthillPro is a software tool originally developed and released as one of the first continuous integration servers. AnthillPro automates the process of building code into software projects and testing it to verify that project quality has been maintained. Software developers are able to identify bugs and errors earlier by using AnthillPro to track, collate, and test changes in real time to a collectively maintained body of computer code.
AnthillPro was released in 2001. In 2006, AnthillPro expanded into an enterprise integration and delivery[1] [2] automation platform supporting continuous integration,[3] deployment automation,[3] application lifecycle management (ALM),[4] and the emerging DevOps methodology.[5]
AnthillPro supports distributed and cross-platform builds in .NET, Java, C/C++ and other programming languages. AnthillPro had over 400 enterprise customers worldwide as of 2009.[6] UrbanCode was bought by IBM in April 2013.[7]
On August 28, 2017, it was announced that AnthillPro is being retired and will no longer be supported after October 31, 2018.[8] It is replaced in the market by IBM UrbanCode Build and IBM UrbanCode Deploy.
In software development organizations that use Source Configuration Management (SCM), developers first analyze and remove code from the "main code line," which is the main body of code. The developers then change the removed code and embed the altered code back into the main code line, which is a process referred to as "checking in." After the code is checked in, the entire project can then be built and tested.
If there are no errors generated during the build process, the build is deployed to a test environment and unit tested to ensure that the quality of the project has not decreased since the previous build. This process of "build, deploy, unit test" for every occasion of checked-in code is referred to as continuous integration (CI).
The original Anthill software tool, released in 2001, was a simple continuous integration server and is still available today. Along with tools such as CruiseControl, Anthill contributed to the establishment of standard tools for continuous integration practices.
Originally, the term "build" referred to the process of compiling and linking source code into executable code. Typically, these executable codes would be stand-alone applications, such as Microsoft Word or Adobe Photoshop. During the 1990s, the typical release cycle for applications (such as the Microsoft Windows operating system) was 12 to 24 months.[9]
In traditional software development at that time, developers would typically check in code once a day, and would run a "nightly build" after all the code was checked in.[10] If the code built successfully, they would run a series of unit tests and general functions tests, commonly referred to as "smoke tests." If any of the tests failed, the build was considered a failure and had to be fixed immediately. If the tests passed, then the build might be deployed to a test system for further testing.[11]
With the advent of multi-tier architectures, beginning with client-server and progressing to service-oriented architecture, a build became much more complex than simply compiling and linking code. Builds included many other types of activities, such as applying database changes, loading static content from a content management system, configuring software components, and deploying all or part of the build.
UrbanCode released the original Anthill OS as a free tool intended for build management.[12] [13] Due to the popularity of Anthill OS, UrbanCode created AnthillPro as a commercial product. UrbanCode released the first commercial edition of AnthillPro in 2002. Unlike CruiseControl, which at the time was focused purely on providing developers feedback about the health of their builds, AnthillPro was focused on build management and using the results of one project's build as a dependency for other projects.[14]
In addition to the growing complexity of the build/release cycle, the typical release cycle for software projects continues to shrink radically.[15] As agile methodologies have become more commonly practiced, the pace of integration and build has changed from once a day to every time there is a code change. According to agile software development, the main line of code should be ready to ship at any time; it may not be feature complete, but it must be of sufficient quality to be releasable.
AnthillPro supports such methodologies by monitoring the organization's various source control systems and triggering a build when a developer commits to a change. The build provides the first (and usually the most critical) test that verifies the integration. Once the build is complete, AnthillPro captures the build product for further testing and deployment. As additional tests are executed on the build, the team can gain greater confidence in the integration of the new code.
In 2006, UrbanCode released the third generation of AnthillPro.[16] This release was a complete rewrite that extended AnthillPro's capabilities beyond continuous integration into automated deployments. Unlike most CI servers, which were build-centric, this new version of AnthillPro used the build only as an initial test. After the build was complete, AnthillPro created binary artifacts that were then tested, deployed and promoted through a lifecycle on their way to production release. This version of AnthillPro included many new features, such as enriched reporting, release management, enhanced security, and the ability to execute workflow steps in remote machines.
AnthillPro can gather any reports generated by a build or test process and display them on the AnthillPro server's web interface for review by developers, testers or management.[17]
AnthillPro is designed to support the release management team's efforts.[18] AnthillPro provides an audit trail linking a build back to its source code and to every deployment and test executed against that build. The audit feature helps a release manager evaluate the readiness of a build to enter production.[19] AnthillPro encourages teams to use a similar automated process for production deployments, thus lowering the risk in a deployment.[20]
AnthillPro supports automated deployment of a build to a user-configured environment.[21] Administrators can set up gates between each environment, requiring manual user intervention and providing an audit trail.[3] Role-based security can be set up to control what roles (and thus what users) can deploy to which environment.
As AnthillPro transitioned from a continuous integration server to an automation framework capable of complex deployments,[22] UrbanCode began expanding AnthillPro's capability to integrate with third-party tools straight out of the box. AnthillPro version 3.8, released in February 2012, integrates with over sixty third-party products, including J2EE servers, databases, build systems, infrastructure, and the Microsoft Platform. Additionally, AnthillPro supports external plugins that extend its automation framework to accommodate virtually any software that can be driven from the command line.
The original Anthill was a simple continuous integration server released in 2001 and is still available today. In 2002, UrbanCode released the first commercial edition of AnthillPro. In 2006, UrbanCode released the third generation of AnthillPro, a complete rewrite which added support for distributed builds and control over the post-build lifecycle.[16]
AnthillPro version 3.6 (released in 2008) extended the tool-set to Application lifecycle management (ALM)[23] using centrally-managed automation for build, deploy, and test. This release added integration for numerous third party ALM point solutions, such as artifact repositories, SCM, issue-tracking, test-automation, change management systems and project management systems.[17] Other new features supporting this consolidation included detailed review of historical test results, flexible resource locking, and preflight builds.[24]
AnthillPro version 3.7 (released in 2009) increased AnthillPro's ability to integrate with other point tools in continuous integration, build automation, and ALM space. New features added integration plugins for seven of the most widely used source code analysis tools. This release introduced a new plug-in API that allows users to create their own custom integration plug-ins.[25] This release also introduced the AHP Tool, which allows users to create script actions from the command line and access data in the AnthillPro repository; and it introduced Agent User Impersonation, which gives administrators greater control over scripts run by agents.[26]