AnthillPro

From Wikipedia, the free encyclopedia
Jump to: navigation, search
AnthillPro
Developer(s) IBM
Stable release 5.0.0 / September 2013 (2013-09)
Written in Java
Operating system Cross-platform
Type Continuous Integration, Continuous Delivery, Application lifecycle management (ALM), Application release automation, DevOps
License Proprietary
Website www.urbancode.com/html/products/anthillpro/default.html

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 and continues to be developed by UrbanCode. In 2006, AnthillPro expanded into an enterprise integration and delivery[1][2] automation platform supporting continuous integration,[3]:59 deployment automation,[3]:126 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] Urban Code was bought by IBM in 2013.

Historical perspective[edit]

Continuous integration[edit]

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).[7]

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.[3]

Build/integration cycles become more frequent[edit]

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.[8]

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.[9] 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.[10]

Build/integration of applications becomes more complex[edit]

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.[11]:4

UrbanCode released the original Anthill OS as a free tool intended for build management.[12]:397-401[13]:275-278 Due to the popularity of Anthill OS, UrbanCode created AnthillPro as a commercial product.[11]:360 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]

Application release cycles shrink - Build cycles become more frequent[edit]

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.[11]:49

AnthillPro supports such methodologies[7] 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.

Reporting[edit]

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]

Release management[edit]

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]

Automated deployment[edit]

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]:255 Role-based security can be set up to control what roles (and thus what users) can deploy to which environment.

Integration with external systems[edit]

As AnthillPro transitioned from a continuous integration server to an automation framework capable of complex deployments,[11]:264-266 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[citation needed] 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.[22]

Release history[edit]

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.[22]

References[edit]

  1. ^ Minick, Eric (2011). "Enterprise Continuous Delivery Maturity Model" (PDF). UrbanCode. p. 14. Retrieved February 17, 2012. 
  2. ^ Julius, Paul (September 11, 2009). "Enterprise CI Cultural Maturity". UrbanCode Blogs. UrbanCode. Retrieved February 17, 2012. 
  3. ^ a b c d Humble, Jez; Farley, David (2010). Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (3rd ed.). Addison Wesley. p. 463. ISBN 978-0-321-60191-9. 
  4. ^ SD Times News Team (September 1, 2008). "True Application Lifecycle Management With Urbancode". SD Times'." Retrieved February 3, 2012.
  5. ^ "UrbanCode DevOps platform™". UrbanCode. Retrieved February 11, 2013. 
  6. ^ "Urbancode's AnthillPro Reaches Milestone 400th Customer in Company's Strongest Quarter" (Press release). Cleveland, Ohio: UrbanCode. December 7, 2009. Retrieved February 10, 2012. 
  7. ^ a b Kevin Roebuck (Oct 24, 2011). CI - Customer Intelligence: High-Impact Strategies - What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity, Vendors. Emereo Pty Ltd. pp. 118 pages. ISBN 1-74333-335-8. 
  8. ^ MSDN (January 18, 2007). "PRJ: Microsoft Project for Windows Version History". Article ID: 98026 - Last Review: January 18, 2007 - Revision: 3.1. MSDN. Retrieved March 14, 2012. 
  9. ^ "Nightly Builds: the bleeding edge". mozilla. mozilla.org. February 1, 2011. Retrieved March 1, 2012. 
  10. ^ "Iteration Activities Rolling and Nightly Builds". MSDN Library. February 7, 2008. Retrieved March 1, 2012. 
  11. ^ a b c d Duvall, Paul M.; Matyas, Steve; Glover, Andrew (June 2007). Continuous Integration: Improving Software Quality and Reducing Risk. Upper Saddle River, New Jersey: Addison-Wesley. p. 283. ISBN 0-321-33638-0. 
  12. ^ Hatcher, Erik; Loughran, Steve (2003). Java Development with Ant: How to automate your build, test and deployment processes. Greenwich, CT: Manning. p. 634. ISBN 1-930110-58-8. 
  13. ^ Larman, Craig (2004). Agile & Iterative Development: A Managers Guide. Boston, MA: Addison-Wesley. p. 342. ISBN 0-13-111155-8. 
  14. ^ Clark, Mike (July 1, 2004). Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Applications. USA: Pragmatic Bookshelf. p. 176. ISBN 978-0-9745140-3-1. 
  15. ^ Bradley Holt (August 8, 2011). "The Case For Rapid Release Cycles". Bradley-Holt. Retrieved March 14, 2012. 
  16. ^ a b Minick, Eric (October 26, 2006). "Urbancode announces AnthillPro 3.0, lifecycle automation server". TheServerSide.com. Retrieved February 22, 2012. 
  17. ^ a b Dr. Dobb's Journal (January 27, 2008). "Urbancode Releases Continuous Integration Tool Upgrade". Dr. Dobb's. Retrieved February 14, 2012. 
  18. ^ "Release Management". Wikibooks. Retrieved February 10, 2012.
  19. ^ Wyser, Della; Kurz, Jon (March 13, 2007). "Jolts 2007: Change and Configuration Management". Dr. Dobb's Journal. Retrieved February 13, 2012. 
  20. ^ Colville, Ronni J.; Brittain, Kris; Scott, Donna (2011). "Cool Vendors in Release Management, 2011". Gartner. Gartner. Retrieved February 23, 2012. 
  21. ^ Sayko, Michael (September 15, 2008). "Using a Commercial Tool to Automate a Build and Deployment Process". CM Crossroads. Retrieved February 3, 2012.
  22. ^ a b Feinman, Jeff (October 9, 2009). "Command-line features added to AnthillPro". SD Times. Retrieved February 14, 2012. 
  23. ^ Rubinstein, David (November 4, 2011). "Agile processes adopted widely, study shows". SD Times. Retrieved February 11, 2012. 
  24. ^ Dr. Dobb's Journal (October 28, 2008). "UrbanCode Adds PreFlight Builds”. Dr. Dobb's. Retrieved February 10, 2012.
  25. ^ "AnthillPro 3.7 Released". Agile Journal. October 5, 2009. Retrieved February 14, 2012. 

External links[edit]

Blogs and help sites[edit]