The Hudson continuous integration (CI) server takes a step closer to serving enterprises' need for continuous delivery with a new production version, 3.1.0, released Sept. 20, just before Oracle OpenWorld and JavaOne 2013 opened in San Francisco. To get the CI server to enterprise strength, Eclipse Foundation developers cleaned up Hudson's IP libraries and improved plug-in management. The biggest change, however, is the introduction of Team Concept, an optional project management framework for use by large organizations, said Duncan Mills, Oracle senior director, at JavaOne 2013 this week.
The addition of Team Concept and other 3.1.0 changes will speed up migration from older Hudson 2 releases to Hudson 3.1.0, predicted Mills. While a majority of the 32,000 Hudson CI servers in use worldwide, "with 3.1, we see an even better reason to move forward," he said during a JavaOne session entitled "Hudson: The little heart of big enterprises," presented with Winston Prakash, Oracle senior architect. In the session, they described the evolution of Hudson, a continuous integration server written in Java, which runs in a servlet container or application server such as GlassFish.
Hudson is widely used today for automating continuous integration, testing and other repetitive tasks. "Hudson does the repetitive, boring stuff for us and prevents us from making mistakes and forgetting to do things while being extensible," Mills said. While most application lifecycle management tools impose process, Hudson is flexible, allowing different types to source control and work across multiple operating systems.
"The enterprise puts a whole different set of priorities into play. Management comes in. Management wants to control the infrastructure. Management wants a dedicated admin," Mills said. Development teams have to establish standard processes for the backup of jobs and artifacts, the use of corporate identification models to manage access control, software license management and more. All of this requires 24/7 support.
For enterprises, Hudson CI before 3.1.0 has had drawbacks, such as poor scalability and lack of built-in processes for large development teams.
A massive clean-up of IP libraries is a first step toward improving Hudson's scalability and memory management. "Hudson had grown over time, and from a library perspective, it got messy," Mills said. The number of libraries was cut from 109 to 85. "We can now say … that all are licensed and the code has been checked," he added.
Without Team Concept, Hudson has been difficult to use in a single, large organization that does multiple development projects. "We're moving Hudson from doing well in the check-in and unit test cycle into something that covers the broader continuous delivery needs of the enterprise," said Mills.
In previous Hudson releases, each team needed a Hudson instance or a permissions setup for every job to separate projects. Team Concept creates a structure for large and multiple development teams to use a single Hudson CI server without interfering with each other, essentially creating a multi-tenant environment.
The Team Concept structure gives a system admin, or superuser, management capabilities, such as selecting team members and leading plug-in, security and configuration management. The team admin has some team-wide authorization responsibilities, as well as management of team members and permissions. Team members have some, but lesser, authorization rights, such as creating, configuring and deleting jobs.
Future enhancements in memory, security and automation are already in the works, Mills said. Also, Hudson users should check the Eclipse Hudson development page for updates on what the 3.1.0 changes and doesn't change. For example, an update notes that all current plug-ins are still compatible in 3.1, but their memory consumption efficiency could be diminished.
How are you and your development team using Hudson CI? Will new features in Hudson 3.1.0 be useful? Let us know.