In the next generation of IBM Dependency Based Build (DBB) 2.0, the development team introduced major changes including removal of the DBB Web Server and introduction of the DBB Command Line Interface (CLI). The team focused on improving end-user experience while simplifying the product installation process and maintenance required in previous DBB generations. DBB 2.0 re-imagines what it means to be a modern git-based z/OS DevOps solution in the continuous integration, continuous delivery development environment of today.
Overview of DBB 1.x
Let's start by taking a look at the previous generation of DBB. DBB 1.x included a layer of abstraction between the z/OS UNIX installation and the database where build metadata is stored. The DBB Web Server handled communication between USS and the database and provided a user interface (UI) to interact with build metadata in a browser. But requiring a separate web application for a build tool brings its own challenges. The DBB Web Server is not only a separately-installed component from the z/OS Unix DBB Toolkit Java API, but it requires its own distributed system, security management, updates, and maintenance.
As displayed above, in DBB 1.x requests from the Java API are sent to the DBB Web App, running on a separate, distributed system. The Web Application makes queries to the database, the database responds with the results, and finally the web application processes the data and answers the request.
Meet DBB 2.0
DBB 2.0 is focused on simplifying the entire architecture of the offering. The team eliminated the DBB Web Server and replaced the web-based build metadata interface with a command line interface. As mentioned, the Web Server provided a UI that enabled users to view their build and dependency metadata. Now, this same metadata is available via an intuitive command line interface without having to launch a browser. That means you can view build metadata from the comfort of the terminal in your IDE! After all, as a software engineer, who doesn't love a good CLI? With the removal of the web application, the 2.0 infrastructure is greatly simplified.
The DBB 2.0 installation on z/OS UNIX now communicates directly to the database. The removal of the web app reduces the number of “hops” needed when answering an API request which naturally improves latency and simplifies the backend.
Introducing the MetadataStore
DBB 1.x used the RepositoryClient class to communicate with the Web Server. In DBB 2.0, the RepositoryClient has been replaced by the MetadataStore, which offers additional flexibility, improved APIs, and directly communicates with the database via Java Database Connection (JDBC) APIs. In addition to the database-backed Db2 MetadataStore, DBB 2.0 introduces a USS file system version of the MetadataStore, which supports most of DBB’s major functionality out of the box without having to setup a database.
The filesystem MetadataStore is useful for proof of concept CI/CD pipelines before moving into a production environment. In previous versions of DBB, running an impact build without a web server and database would be impossible. In DBB 2.0, impact builds and metadata storage capabilities are supported without any external requirements or dependencies.
Furthermore, the replacement of the WebServer and RepositoryClient with the MetadataStore greatly simplifies product installation. For DBB 1.x, DBB was a multiple step, multiple system installation. DBB was installed via SMP/E on z/OS, DBB Web Server had to be installed on a separate Windows or Linux system, and a database had to be configured as well, typically on another system. In DBB 2.0, the process is as simple as completing the SMP/E installation on z/OS. That’s it! Of course, when moving pipelines into production, we recommend configuring a Db2 database to store the metadata; but DBB 2.0 represents a huge improvement and simplification of the installation procedure.
Find out More
DBB 2.0 is packed with even more new features and improvements beyond what I’ve mentioned here. Make sure to check out zAppBuild 3.0 which supports DBB 2.0 and utilizes new APIs including the MetadataStore, SearchPathDependencyResolver, and SearchPathImpactFinder. To read more about the features in DBB 2.0, refer to our documentation.
“Git” Involved
We are excited to hear about how our customers use DBB 2.0 and are confident that the latest offering represents a significant step up in user experience, installation, and maintenance! If you are interested in participating in the ongoing conversation, please consider joining this community.
At IBM, we are committed to working with our customers to evolve our offerings to meet your needs and DBB is no exception. That's why we are launching a Sponsor User program at the end of the year to define the areas of improvement to focus on in our future development. If you are interested, contact DBB’s offering manager Senthil Nathan directly at mailto:senthilnathan@ibm.com .