IBM® Rational® Build Forge® IBM® Rational® Build Forge® Overview for V7.0 IBM Rational Build Forge enables high-performance builds and agile software development. Its adaptive build-and-release management framework helps development teams standardize repetitive tasks, manage compliance mandates, and share information. Module objectives Module objectives The following topics are covered in this section: Build Forge editions Key capabilities of the Build Forge system Key Roles in Build Forge Key steps in creating a Build Forge Project This presentation will cover an overview of the available editions of Build Forge, key capabilities of the system, architecture, and the key roles and steps in creating a project in Build Forge. IBM Rational Build Forge editions IBM Rational Build Forge editions Key features Standard Edition Express Edition Enterprise Edition Support for remote sites X X X Sophisticated log file filtering and searching X X X Integration with external tools and technologies X X X Web console for user access and administration X X X Detailed audit logging and bill-of-materials report X X X Reports X X X Scheduled, as-needed and continuous integration builds X X X Integrated development environment (IDE) integrations X X X Application programming interface (API) X Distributed multiplatform builds, build acceleration X X X Robust permissions and security model X X X Out of the box integration with other IBM Rational products X X X Choice of database repository X X X Add-on advanced reporting: IBM Rational Build Forge Quick Report X X Automated process for build and release management X X X Dynamic server management X The standard edition provides a consistent management layer for your production build and release processes. The express edition is an enterprise-grade build and release framework for small and midsize businesses. This version allows for easy installation and quick adoption. The enterprise edition offers full build management with the features shown here including an API, dynamic server management, and scalability to large teams. It automates and accelerates build and release processes through server pooling and fault tolerance for Agile development and streamlined software delivery. Build Forge: System overview Build Forge: System overview Source control Product build Quality assurance Package Release Development Developing and delivering software is a complex set of tasks involving a network of people, processes, and technologies that need to be integrated. The groups involved in critical phases—development, configuration management, Quality assurance (QA), release, and customer support—are separated by organizational boundaries, disconnected toolsets, or vast geographies. Build Forge helps development teams bring a product from initial coding all the way into production. Build Forge: System overview Build Forge: System overview Source control Product build Quality assurance Package Release Development Platforms UNIX®, Windows®, Macintosh, Linux®, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Each team has its own processes, which are often manual and rarely documented. Essential tools such as bug-tracking databases and source code control systems are often disconnected and contain silos of critical information, but making them work with each other is difficult and time-consuming. However, the ever-increasing demands for high-quality products at more frequent intervals create a need for a solid foundation of repeatability, reliability, and tracking. Build Forge: System overview Build Forge: System overview Source control Product build Quality assurance Package Release Development Platforms UNIX, Windows, Macintosh, Linux, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Custom integration scripts Many teams have scripted custom integration wrappers to share information among some of their tools to remedy these issues. However, these scripts typically do not provide the ability to view and control builds, and generally there are multiple versions to support multiple platform product lines. Plus, you create a non-core product that requires time and key resources to maintain and enhance. Build Forge: System overview Build Forge: System overview Process automation Automated, repeatable application development life cycle Source control Product build Quality assurance Package Release Development Platforms UNIX, Windows, Macintosh, Linux, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Custom integration scripts Build Forge provides a framework to automate the entire process, end-to-end. This means not just automating of individual tasks, but also the hand-offs between the various steps in the process. Build Forge was designed to integrate existing scripts and tools, so there is no need to replace your pre-existing assets. Build Forge offers a comprehensive Application Development Process Management solution that provides complete management and control of the application development life cycle. Build Forge automates, standardizes and optimizes complex processes, integrating diverse toolsets to deliver a repeatable and reliable application development life cycle process. Build Forge: System overview Build Forge: System overview Control Acceleration Server mgmt Notification Scheduling Log analysis Tracking Reporting Process automation Source control Product build Quality assurance Package Release Development Platforms UNIX, Windows, Macintosh, Linux, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Custom integration scripts Automation is really just the first piece of what Build Forge does. Build Forge also provides value-added capabilities including build acceleration, server management, automatic notifications, scheduling, robust permissions and security models, and much more. Build Forge: System Overview Build Forge: System Overview Management Console Centralized web-based, collaborative distributed access, role-based security IDE Plug-Ins Developer self-service, role-based security Control Acceleration Server Mgmt Notification Scheduling Log Analysis Tracking Reporting Process automation Source control Product build Quality assurance Package Release Development Platforms UNIX, Windows, Macintosh, Linux, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Custom integration scripts These capabilities are accessed through the management console: a secure, Web-based interface that allows managed delegation of tasks to other groups, even offshore teams. Build Forge: System Overview Build Forge: System Overview BUILD/RELEASE AUTOMATION FRAMEWORK Management Console IDE Plug-Ins Control Acceleration Server mgmt Notification Scheduling Log analysis Tracking Reporting Process Automation Source control Product build Quality assurance Package Release Development Platforms UNIX, Windows, Macintosh, Linux, proprietary Source control Languages Build tools Test tools Release tools IDEs Change mgmt Custom integration scripts The results are faster development cycles, higher product quality, increased staff productivity, and a shorter time-to-market. IBM Rational Build Forge provides reliable, high-performance builds for agile development and streamlined software delivery. This framework increases team efficiency with centralized build and release management, using the tools you have in place today. It helps to accelerate build and release cycles through iterative development, parallel processes and efficient use of hardware. It improves product quality through consistent, repeatable processes and early detection and troubleshooting of errors, and much more. Section Section Build Forge architecture This section will cover the Build Forge architecture. Build Forge: Functional architecture Build Forge: Functional architecture Run Implement Access Build Forge Management Console Build Forge IDE Plug-in Build Forge Server Build Forge Agents Build QA Prod The Build Forge Architecture consists of one or more server machines, performing the various tasks of the build system. The Build Forge Server is at the heart of the system; managing the worker systems, organizing the projects, and managing user access. Users communicate with the Server using the Management Console or the IDE plug-ins. The Build Forge Agents, running on the worker systems, take orders from the Build Forge Server and run the specified commands on the worker system. Build Forge: Functional Architecture Build Forge: Functional Architecture Build Forge Management Console Access Manage users Configure resources Set up build projects and steps Schedule builds and view status Troubleshoot build issues Reporting and analysis The Build Forge Management Console is the main control UI for the system. It is a PHP-based Web application running on an Apache HTTP server. Through it, you can manage users, configure resources, organize commands into projects, and manage the server resources and environments that those commands need. In many organizations, only Administrators, Configuration Managers, and Build Engineers use the Management Console. For unit test and integration builds, users interact with Build Forge using the IDE, and are informed of build status by e-mail notification. Build Forge: Functional Architecture Build Forge: Functional Architecture Promotes developer self service Build Forge IDE plug-in Access The Build Forge IDE plug-in provides seamless integration with IDEs providing centralized access to build projects, status, and log file results directly within the IDE. The IDE plug-in also provides the ability to selectively choose local file changes from within the IDE and preview the build results in a remotely staged, pre-configured environment before committing the file changes to source code control. Build Forge: Functional Architecture Build Forge Database Projects and Steps Server Configurations Environment Configurations User/Permission Information Build Statistics System Master Log Build Forge: Functional Architecture Implement Build Forge Engine 3 Tier Architecture Centrally Managed Orchestrates Build Forge Tasks DB2 Oracle SQL Server Sybase Build Forge server In the middle is the Build Forge Server. The Build Forge server is a centrally managed, 3-tier architecture. The server oversees all of the activities on the managed worker systems, organizes the projects, manages user access and permissions, logging, and audit trails. The system runs on various databases. Build Forge can use various databases, including MySQL, Sybase, Microsoft SQL, Oracle, and IBM DB2. The Build Forge Windows edition includes DB2 Express. Build Forge also provides mechanisms to seamlessly integrate your existing IDE, SCM tools and repositories, test suites, and deployment tools. This is done by means of command-line integrations, API-level integrations, and continuous and agile development adaptors. Build Forge: Functional Architecture Build Forge: Functional Architecture Server pools Build systems Build Forge agents Real time environment configuration Run project steps Return output / logs to mgmt server Execute Test environment Production Finally, Build Forge agents are deployed across worker machines. The agent is a small process that does three basic things. It listens for instructions from the Management Server. It executes those instructions, or project steps. It sends results from the instructions back to the Management Server in the form of output or logs. Agents can run on a variety of server platforms in your environment. These are AIX, Linux, Windows, Solaris, HP-UX, Z-Series, System i, and Mac. Section Section Build Forge roles This section covers the roles in Build Forge. Typical roles in Rational Build Forge Typical roles in Rational Build Forge Configuration manager or build engineer Creates and runs Build Forge projects Designs and implements development environment, policies, and processes Monitors and reports on project status Developer Performs multiple builds a day to validate changes May perform multiple test deployments a day Works with build engineer to resolve build issues ILO Omit Tool administrator Installs and maintains Build Forge Sets up and maintains Build Forge hardware, environment, and network Manages Build Forge users and security There are several roles that you can fulfill in a Build Forge environment: the tool administrator, configuration manager or build engineer, or the developer. Note that a person can assume more than one role. The Tool Administrator installs and maintains Build Forge, sets up and maintains the Build Forge hardware, environment, and network, and manages Build Forge users and security. The Configuration Manager or Build Engineer creates and executes Build Forge Projects, designs and implements the development environment, policies, and processes, and monitors and reports on project status. The Developer performs multiple builds a day to validate changes, might perform multiple test deployments a day, and works with the Build Engineer to resolve build issues. Build Forge: Building a project Build Forge: Building a project RUN Launch Schedule IDE Plug-In OPTIMIZE Chains Threads Adaptors CONFIGURE Servers Collectors Selectors Manifests CREATE Project Environment Steps Jobs Configuration manager or build engineer Creates and runs Build Forge projects Designs and implements development environment, policies, and processes Monitors and reports on project status Although there are several different software development roles involved in the build and release process, the focus of Building a Project and the activities typically performed in setting up a Build Forge environment is the role of the Configuration Manager, the Build Engineer. The four steps shown here: Create, Configure, Optimize, and Execute describe the steps involved in building a Build Forge project. In the Create step, the build engineer creates a Project, Steps, Environment, and runs the project. In the Configure step, the engineer configures Servers, Collectors, Selectors, and Manifests. In the Optimize step, the engineer implements Chains, Threads, and Adaptors. Finally, in the Execute step, the engineer schedules and launches project runs, and launches project runs in the IDE. Summary Summary Build Forge editions – Express, Standard, Enterprise Key capabilities of the Build Forge system Key roles in Build Forge Key steps in creating a Build Forge project References Rational Build Forge http://www.ibm.com/software/awdtools/buildforge/ Information on attending a Build Forge course http://www.ibm.com/learning In summary, you should now have a good overview of IBM Rational Build Forge, including: the various editions available to you, key capabilities, Build Forge architecture, and the key roles and steps in creating a project in Build Forge. Note that this module was adapted heavily from IBM Rational University course RS543 – The Essentials of IBM Rational Build Forge, V7.0.1. Feedback Feedback Your feedback is valuable You can help improve the quality of IBM Education Assistant content to better meet your needs by providing feedback. Did you find this module useful? Did it help you solve a problem or answer a question? Do you have suggestions for improvements? Click to send e-mail feedback: mailto:iea@us.ibm.com?subject=Feedback_about_RBF_Module1_Overview.ppt This module is also available in PDF format at: ../RBF_Module1_Overview.pdf You can help improve the quality of IBM Education Assistant content by providing feedback. Trademarks