IBM Rational Build Forge is an adaptive process-execution framework that automates, manages, and tracks the processes between each component involved with software development — in other words, it is the first step to an automated software factory. It supports major development languages, scripts, tools, and platforms and integrates easily into many environments, including that of IBM SmartCloud Enterprise.
In fact, bringing the automation development features of Build Forge together with the broad reach and application deployment capabilities of the IBM Cloud can help you create a powerful, heavily automated software assembly line.
This article describes the process of process automation, details the Build Forge technology, offers the reasons why a marriage of Build Forge and IBM Cloud are important to developers, and discusses how to integrate the two. It provides a detailed use case as an example and even introduces a few ideas on alternate use cases.
The process behind process automation
Process automation enables businesses to choreograph processes across disparate applications, people, and systems to remove inefficiencies, optimize costs, ensure compliance, and boost productivity. Rational Build Forge automates, orchestrates, manages, and tracks processes within the assembly line of product development. It is commonly used to automate software build and package processes.
In this section, it is our intention to describe a human model for processes and maps to Build Forge features. A human-based model of process automation consists of the following roles:
- The available work to be done is a set of documented processes. Each process is made up of tasks.
- The coordinator "runs" the work. The coordinator selects a process to run, then examines the tasks in order. For each task, the process defines what worker should perform it. The coordinator hands the task to the worker and waits for the result.
- The worker performs the task defined in the process.
The technology behind the technologies
As mentioned earlier, Build Forge is an adaptive process execution framework that automatically manages the processes in the assembly line of software development. Now let's look at some of the components of Build Forge.
These components are essential when using Build Forge:
- Database: Build Forge uses the database to store all of the objects that it uses.
- Build Forge system: A set of technologies that govern access to the database, run UI code, and perform the work of running jobs.
- Agents: Install agent software on each host that will perform work.
- Web browser: Users typically access Build Forge through a console presented in a web browser.
IBM SmartCloud Enterprise is built on an agile cloud infrastructure that is designed to provide customers with rapid access to security-rich, enterprise-class virtual server environments, well suited for development and test activities. The flexible provisioning offered by this solution can access the IT resources you need on demand, at a predetermined cost. IT personnel no longer need to spend precious cycles deploying, configuring, and maintaining your development and test environment.
The IBM Cloud provides a self-service test platform which is designed for ease of use, combining service request management, automated provisioning, and configuration management so you get on-demand provisioning of physical and virtualized test resources that include IBM and non-IBM components such as operating systems, middleware, storage, network, images, and data.
Benefits from integrating Build Forge and the IBM Cloud
Figure 1 shows the Build Forge model:
Figure 1. Build Forge model
The human-based model mentioned in the previous section maps to the Build Forge model as follows:
- A work process is defined in a Build Forge project object. Each project contains one or more step objects. Steps in a project correspond to tasks in a process in the human model.
- The coordinator is the running Build Forge software. It contains a component called the process engine. When you start a project in Build Forge, the process engine runs it as a job object. A job is simply a running project.
- Workers are host machines. They are represented in Build Forge by server objects. The host must have an agent installed on it.
This is a very simplified model.
- Build Forge contains many other object types to support process automation. Users, authorizations, and other objects that support servers and projects are all stored in the database. Parts of Build Forge are also stored in the database, for example UI widgets. The database must be running in order for Build Forge to run.
- Projects and steps can be configured to run in many different ways to support complex processes with complex dependencies and workflow. Projects can run other projects, and steps themselves can run projects.
- Steps and projects can dynamically select servers based on criteria data that is part of the server definition. For example, a step can choose what server to run on based on whether it was running Windows® or UNIX®/Linux®. Servers can also be configured as a pooled resource, so a step can choose a server based on its current availability or load.
Build Forge on the IBM Cloud
Automation of builds in the IBM Cloud with Build Forge improves build results and reduces the risks and saves lots of time. It also eliminates the project schedule for hardware needs and procurement and all the while enhancing the utilization of lab resources.
It provides the enterprise with a way to leverage the dynamic infrastructure. by quickly setting up or tearing down the configurations; this flexibility results in significant time savings.
Build Forge in the IBM Cloud can help address situations like where the teams/organizations need excess capacity for additional workloads with in no time eliminating the need to find the extra, unused hardware available quickly for short duration.
Integration with other products
Build Forge integrations with other Rational products provides many benefits. These Rational products are important in the software development life cycle: IBM Rational Team Concert (RTC), Rational Asset Manager (RAM), Rational Quality Manager (RQM), and Rational Requirements Composer (RRC).
- Build Forge integration with Rational Team Concert on IBM Cloud provides developer communities the added advantage of software building and execution from the same utility on multiple platforms. This integration avoids the need for developers to switch to another tool or scripts for building and sanity checking. This configuration optimizes the usage of software tools and frameworks by multiple users. This also helps individual users and release engineers build the product simultaneously using the same interface and same tools, avoiding multiple copies of the build environment. Version 3.0.1 is available in the IBM Cloud.
- Build Forge integration with Rational Asset Manager is a proper combination for enterprises that want to adapt to cloud. This integration provides an easy way for provisioning/de-provisioning of the images on the cloud. Rational Asset Manager helps in maintaining the assets and Build Forge can automate the provisioning of an image with specified software. Thus, the integration aids in formation of cloud solution in general. The same principles can be extended to the applications inside the cloud where an organization or enterprise maintains allocated resources/assets inside the Rational Asset Manager and Build Forge can be used to access those assets as per user requests. Also developers can refer to the assets maintained in RAM for their builds. They can use Build Forge to create a build based on the assets in Rational Asset Manager. These created builds can be republished as new assets in Rational Asset Manager.
- With the integration of Rational Quality Manager, Rational Build Forge servers and projects are made visible in Rational Quality Manager's Lab Management subsystem. You can select to execute an automation project on one or more lab resources. Furthermore, complex test scenarios can be constructed in Rational Quality Manager that includes a setup phase, an automated test suite execution phase, and a tear down phase. The test stand setup and tear down can be automation projects within Rational Build Forge. The Rational Quality Manager interface simply requests that Rational Build Forge execute an automation project and wait for the result before going on to the next step. Rational Quality Manager V3.0.1 is available in the IBM Cloud.
- Rational Requirements Composer helps the team to plan their requirements. Better quality requirements, effective management, and a good process lead to a reduction in rework, faster time to market, a reduction in costs, and an overall better outcome. Rational Requirements Composer V3.0.1 delivers a powerful combination of definition, management, traceability, templates, history, review and approval, task management, planning, shared filters and views, customizable dashboard, and reporting. Rational Requirements Composer Integration with Rational Team Concert and Rational Quality Manager allow data to be shared via viewlets and accessed using your favorite web browser. Rational Requirements Composer V3.0.1 is available in the IBM Cloud.
Look for Rational Team Concert, Rational Quality Manager, and Rational Requirements Composer in the IBM Cloud as IBM Rational Collaborative Lifecycle Management (CLM) 2011.
Integrating Build Forge into the IBM Cloud
This section explores a few use cases in IBM SmartCloud Enterprise. Before discussing the use cases, you need to understand how to make a connection to an agent using Build Forge console.
Manually configure a Build Forge Agent on the console
After you have two machines on the cloud — one with Build Forge and another with the Build Forge Agent installed, you are ready to use the two in unison:
- Make sure you can connect to the Build Forge management console. To test that, try
accessing http://<machine-ipaddress> or https://<machine-ipaddress> in a
browser (depending on whether or not security is enabled on the machine that has the
Console service running). If this doesn't work, then you need to start the Build Forge service.
- On Windows: Go to the Services panel, select IBM Rational Build Forge Management Console, and start the service.
- On Linux: Type
<install-location>/rc/buildforge startto start the Build Forge Console.
- Similarly, make sure that the Build Forge Agent is up and running on the second machine.
- On Windows: Go to the Services panel, select IBM Rational Build Forge Agent, and start the service.
- On Linux: Type the following:
telnet <machine-ip> <port on which the agent is installed> For e.g., telnet 126.96.36.199 5555 200 HELLO - BuildForge Agent v188.8.131.52-0-0034
- You are now ready to connect to the Build Forge Management Console from the browser.
- Before you create any project in the system, you must define at least one server. To
define a server:
- Go to Servers > Server Auth > Add Server Authentication. On the Details tab, add authentication details for the server where the agent is running. See Figure 2.
In this case,
bfagentuseris the name of the user that is used to login to the machine where the agent is running.
- Go to the Selectors page and add a selector as show in Figure 3.
The above defines
CLMMACHINE-Selectoras a selector and set variable
BF_NAMEto the name of the server defined in the next step. (CLM is Collaborative Lifecycle Management.)
- Go to Servers > Add Server. Provide the name and other details of the
server that is running the agent. Figure 4 shows an example using
CLMMACHINEas the server name.
- To confirm that you have configured the agent correctly, click Test Connection and make sure that the green color icon is shown in the Servers column to the left of the server name.
- Go to Servers > Server Auth > Add Server Authentication. On the Details tab, add authentication details for the server where the agent is running. See Figure 2.
- Once you've successfully configured and verified that the agent is running and connected through the Console successfully, you are ready to start any process on that machine. For example, you can create any project and select CLMMACHINE-Selector as the selector. In this project, you can add steps to run actions on the remote agent machine. These actions can vary from a simple echo test command to a project that compiles code, builds, and runs automation tests for the project.
Automatically configure a Build Forge Agent cloud instance on a Build Forge cloud instance
After you have successfully obtained a Build Forge image from the IBM Cloud, you can request an image for the Build Forge Agent from the IBM Cloud website.
- Sign in to your IBM Cloud account.
- Click Add instance on the Control panel tab.
- Select the IBM Rational Build Forget Agent image.
Figure 5. Request an image for the agent
- Click Next.
- Add the information about the Build Forge Console image.
Figure 6. Adding more information to the agent image
- Click Next.
- Follow the sequence of steps to add the instance that was requested and submit the request. This process automatically adds the agent machine to the Build Forge Console.
A sample use case
The use case in this section illustrates how a Build Forge Agent on a CLM image (Collaborative Lifecycle Management) can be used to drive builds from a console. The following users and roles are used in this scenario:
- Bob is the developer.
- Tanuj is the project lead.
- Ursula is the administrator.
The following steps summarize the user scenario:
- Tanuj looks at the requirements and decides which requirement the team will work on.
- Tanuj logs into Rational Team Concert and creates a story and assigns it to Bob to work on for Iteration 1.
- Tanuj then logs into Rational Quality Manager and creates a test plan that will test the features added in Iteration 1.
- Bob estimates the time that will be taken to complete the story, works on it, gets it reviewed by Tanuj, and then delivers it.
- In a parallel manner, Bob also creates an Rational Quality Manager test case that is linked to the plan that was created by Tanuj.
- A Build Forge project is defined to kick off the nightly builds by utilizing the agent on the CLM instance.
- The Build Forge project for nightly build kicks off, and a spin/build is obtained for testing.
- Bob utilizes that build to quality-check his delivery.
- Once quality is checked, Bob marks the requirement as complete in Rational Requirements Composer.
Now let's take a look at the use case in detail.
The team at NewIdeas has just won a deal from banking customer. They are required to come up with a banking solution to store the daily transactions for people who come to them.
NewIdeas is very excited; they have decided to adopt the CLM solution provided by IBM SmartCloud Enterprise and to couple it with Build Forge Agent's ability to drive activities on a client (in this case the CLM server), from a Build Forge Console.
Tanuj (project lead) has started working on this project. He has been in talks with the client and has come up with a requirement of a framework for the banking system. His team follows the agile process for development. He logs into Requirements Management using web client and creates a requirement to be met for Iteration 1 of the beta release for the client as shown in Figure 7.
Figure 7. Requirement for Iteration 1
He then logs in to Rational Team Concert and creates a story for Bob (developer) to work on as shown in Figure 8.
Figure 8. Bob (developer) works on the story
At the same time, Tanuj logs into Rational Quality Manager and creates a test plan to test the feature(s) in Iteration 1. The plan will be owned by Tanuj as in Figure 9.
Figure 9. Test plan for Iteration 1 features
Bob then logs into Rational Team Concert and works on the task assigned to him. He estimates the task and then implements/completes it. Once completed, he gets his task reviewed by Tanuj and checks in the code.
As soon as the code gets checked in, Ursula (administrator) has a nightly build that gets triggered every time there is a change in the project area. This build kicks off and a build is available for quality check.
As shown in Figure 10, the Build Forge job ran on the CLM server after Bob's check in. Once all the steps in Build Forge project have been passed, the build is ready for testing.
Figure 10. Build ready for testing
It is important to note that Ursula configured the Build Forge Agent on the CLM server. The Build Forge Console had a server configured to utilize the agent to run the build on the CLM instance. Thus, by using Build Forge Agent and Build Forge's automation capabilities, Ursula was able to generate a build.
Bob picks up the build and starts working on the Rational Quality Manager test cases that are attached to the plan created by Tanuj. If there are any bugs, those are logged in Rational Team Concert. He then starts working on those defects, gets them reviewed, and delivers them. Once the build with his fixes is available, Bob utilizes it to cross-check the functionality. After the build passes all the criteria, each Rational Quality Manager test case is marked complete; so is the Rational Team Concert Story and corresponding requirements.
Additional use cases
In addition to build automation, Build Forge and Build Forge Agent can be used for other automation tasks, including:
- For test automation.
- For fix pack application.
For test automation, often once you've generated a build, there might be some tests that are run to check the build for sanity. These tests are known as Build Verification Tests or BVTs. BVTs are generally done manually in most organizations; however BVT tests can be easily automated.
To automate BVTs, builds are stored on a machine that has a Build Forge Agent installed. The Build Forge Console that has generated the build can then be utilized to connect to the agent machine that have the builds; the BVTs could be run to determine the sanity of the build.
In addition to BVTs, many teams also have their Functional Verification Tests (FVTs) running using the Build Forge/Build Forge Agent technology.
For application of fix packs, many enterprises have servers like the WebSphere® Application Server installed on multiple machines on different platforms, meaning there could be fix packs for these servers that come out once every two to three months. If the enterprise has hundreds of such servers, it would be tedious job to run the upgrade on all those machines manually.
In those cases, the Build Forge Agent can be installed on these machines and the entire process of fix pack application can be done in an automated way using a Build Forge project. This saves the user time, as well as the monotonous manual effort.
This article showed you how the IBM Rational Build Forge Agent works in the background to help customers achieve build, test, and fix pack-application automation on the IBM Cloud and in a general cloud environment. Being able to automate the application build, test, and maintenance phases of application development and deployment is a prudent time and effort saving tool that should be a part of your toolbox when working in the cloud environment.
- Get help at the IBM Rational Build Forge Help Information Center.
- Evaluate Rational Build Forge on the IBM Cloud.
For more on how to perform tasks in the IBM Cloud, visit these resources:
- Up and download files from a Windows instance.
- Install IIS web server on Windows 2008 R2.
- Create an IBM Cloud instance with the Linux command line.
- Create an IBM Cloud instance with the Windows command line.
- Extend your corporate network with the IBM Cloud.
- High availability apps in the IBM Cloud.
- Parameterize cloud images for custom instances on the fly.
- Windows-targeted approaches to IBM Cloud provisioning.
- Deploy products using rapid deployment service.
- Integrate your authentication policy using a proxy.
- Configure the Linux Logical Volume Manager.
- Deploy a complex topology using a deployment utility tool.
- Provision and configure an instance that spans a public and private VLAN.
- Secure IBM Cloud access for Android devices.
- In the developerWorks cloud developer resources, discover and share knowledge and experience of application and services developers building their projects for cloud deployment.
- In the developerWorks Rational developer resources, discover and share knowledge and experience of such Rational products as Build Forge and Build Forge Agent.
- See the IBM Rational Software site for more on Build Forge/Build Forge Agent.
- Find out how to access IBM SmartCloud Enterprise.
Get products and technologies
- Visit the IBM Cloud site for available offers on the IBM Cloud.
- See the product images available for IBM SmartCloud Enterprise.
- Join a cloud computing group on developerWorks.
- Read all the great cloud blogs on developerWorks.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.