DevOps Automation

 View Only

Getting Started with IBM DevOps Deploy: Creating your First Application (Mainframe Example)

By Randall Langehennig posted 27 days ago

  

Getting Started with IBM DevOps Deploy: Creating your First Application (Mainframe Example)

Overview

The purpose of this blog is to provide a guide for getting started creating your first application in IBM DevOps Deploy.   The first time you work with the solution, it might seem a little daunting to figure out how to go about this process.   My goal is to provide step-by-step guidance on how this is completed.   Once you know the basics, you can then move to the next steps of configuring templates to quickly on-board new applications and components very quickly.    It is key to understand the fundamentals first.

The Application Model

IBM DevOps Deploy leverages an application model which is the key ingredient or building block as you get started.    The model looks like this:

An Application in DevOps Deploy is comprised of three primary elements:

1.        Components – your application can consist of one or more components that collectively make the application whole.   Perhaps you have a WEB component, a MIDDLEWARE component that provides an API service, and a DATABASE component as an example.

2.        Environments – your target environments from DEV, QA, UAT, all the way to PROD

3.        Processes – your processes to perform the deployment steps.   You will have processes created at the component level that know how to specifically deploy the WEB component for example.   You will also have a higher-level application process that will orchestrate the deployment of each component in the correct sequence.

Knowing the application model is the key to getting started creating your first application.   Now that we have reviewed this model, let’s walks through an example which will serve as our guide to help us get started.

Creating our first Application

I remember the first time I created my first application in IBM DevOps Deploy years ago.   As I went through these steps, I recall being amazed at the power of the application model.   It has the power of taking a complicated process and making it much easier to understand, easier to implement, and help you reliably deploy the application with less errors.

Here are the steps for creating an application which we will follow:

1.        Create your Application (Term-Insurance will be our example)

2.        Create your target Environments (DEV, QA, PROD)

3.        Create your Components (Term-Insurance-COBOL will be our example)

a.        Create the Component Process

b.        Pull or push artifacts (e.g. Component Versions)

c.        Add the component to your application

4.        Create Application Process

5.        Configure the Resource Tree

6.        Map your target Environments to the Resource Tree elements

Once you have walked through these steps a few times, this will all become second nature to you.

Step 1 – Create Application

To get started, in the DevOps Deploy web console, click on the Applications tab at the top of the page.   Click on the “Create Application” button and select to create the application without a template.   I will provide a name of “Term-Insurance” as shown below:

For now, do not worry about the other fields and click “Save”.

Step 2 – Create the Target Environments

Now that we have our application created, your application will now appear in the web console as shown below:

Click the ‘Create Environment’ button as highlighted above.   A dialog will appear, and I will enter the name of my initial environment to be ‘DEV’ as shown below:

You could change the color from the default blue by scrolling down, however, in my case, I simply click the ‘Save’ button.   My new environment now appears in the application as shown below:

Step 3 – Create a Component

For this example, I am creating an example Cobol component that is deployed to the mainframe.  In the DevOps Deploy web console, click on the ‘Components’ tab at the top of the page.   You can then click the ‘Create Component’ button as shown below:

Since I am building a mainframe component, I will select the “MVSCOMPONENT” template as shown above and then provide a name.   This template comes with processes that I can use as a starting point.  

A best practice for naming your component is to use the application name (Term-Insurance) as the prefix of your component name.   In my case, I name my component as ‘Term-Insurance-COBOL’ and you can optionally provide a description.   Click the ‘Save’ button.

Step 3a – Building a Component Process

Once the component is created, the next step is to create a component process that is used to deploy that type of component.  For this mainframe example, the component process that I created looks like this:

Notice that the process uses the zOS Utility plugin step called ‘Deploy Data Sets’ to deploy the load modules to a target PDS.    If you are creating components that are related to a Liberty web application or an App Connect Enterprise broker archive, your component processes would look different and they would use plugin steps associated to that component type.

Step 3b – Creating component versions

There are two primary approaches for creating component versions in IBM DevOps Deploy.  The first approach, and many consider the best practice, is to use the “push” model where a build system will push the deployable artifact to DevOps Deploy as a step in the build process.   The second approach that could be leveraged is to “pull” the artifact from different sources like the filesystem, a git repository, as an example in as new component versions.   If you decide to use your build system, using the build tag as the component version name is a good practice.

For this blog, I have setup a build process that pushed the artifacts to my component.   When this completes, you will see new component versions that look like this:

If you were to click on one of these component versions, you would see artifacts that make up that component version.   Here is an example from a mainframe perspective that includes a DBRM and a CICSLOAD module:

Notice the link back to the CI pipeline at the top as a reference for traceability back to the build.  

NOTE: this blog is focused on the steps required to setup an application in DevOps Deploy.   A future blog will provide more details around the build and packaging phases of a CI pipeline to integrate with DevOps Deploy.

Step 3c – Add the new component to your application

Now that our component has been created, we will return to our application by clicking on ‘Applications’ at the top of the page in the DevOps Deploy web console.   You will then click on the ‘Components’ sub-tab as shown below:

Click the ‘Add Components’ button and use the filter feature to type ‘Term’ which will limit the components you can select to those with that prefix.   Check the box next to ‘Term-Insurance-COBOL’ and click the Save button as shown above.

Step 4 – Create the application process

In the application view, click on the ‘Processes’ sub-tab as shown below:

Click the ‘Create Process’ button and provide a process name of ‘Deploy’ as shown below:

Click the Save button.   The visual process designer will appear for the application process.   Drag the ‘Install Component’ step from the palette on the left-hand side of the designer and drop it into your process design on the right-hand side as shown below:

Your design view will now look like this:

Click the pencil icon for the ‘Install Component’ step as shown above.   A dialog will appear and edit this to install our component and to invoke the component process of your choice.   In my case, these were my selections:

Scroll down and click the OK button to close the dialogue.   Then click the ‘Save’ button in your process design as shown below:

Step 5 – Configuring the Resource Tree

IBM DevOps Deploy leverages a global resource tree to help you map your components to each target environment like DEV, QA, or PROD.   To get started, in the IBM DevOps Deploy web console, click on the ‘Resources’ tab as shown below:

You can organize this resource tree by data center, by line of business, or whatever makes the most sense for your team.   In my case, I created a top-level group  by clicking the ‘Create Top-Level Group’ button shown above.   I labeled my group “zOS” as shown below:

Next, I created a folder for my target environment which is called “DEV” in my case.   To do this, click on the layer cake dots on the right-hand side of ‘zOS’ and select ‘Add Group’ as shown below:

 

The DEV folder will appear as a child under zOS (see example below).   You will then add your agent for the DEV environment under the DEV folder by clicking the layer cake dots on the right-hand side of the environment and selecting ‘Add Agent’ as shown below:

Finally, you will add your component under the agent by clicking the layer cake dots on the right-hand side of the agent and then clicking ‘Add Component’ as shown below:

Your component will appear under the agent.   This is how DevOps Deploy knows which agent to use when deploying the component to a target environment.

Repeat these same steps for other target environments like QA, UAT, and PROD.

Step 6 – Add Base Resources to your Application Environment

Finally, we will return to our application by clicking on the Applications tab at the top of the page in the IBM DevOps Deploy web console.   Click on the ‘DEV’ environment text as shown below:

The DEV environment details page will appear.  Click the ‘Add Base Resources’ button as shown below:

The ‘Add Resource to Environment’ dialog will appear.  Select your zOS -> DEV folder as shown below:

Selecting the higher-level DEV folder in the tree view will pick up the child nodes under that folder.   You could have selected one of the child nodes under DEV as well if you prefer.

Congratulations!   Your work to create your first application is complete!

Summary

IBM DevOps Deploy has a powerful application model to assist you with your application deployments.   Once you understand the application model, you begin to understand the strength of the design and how it can help you simplify your deployments and at the same time provide governance, trail of audit, and deployment history.  

Our hope is that the steps provided in this blog will help you get started quickly.  

For additional guidance on this topic, please refer to the following links for more information:

IBM Media Center:  https://mediacenter.ibm.com/media/UrbanCode+Deploy+-+Multi+Generate+Artifact+Information+Plugin/1_1j3s34ak

IBM DevOps Deploy Documentation:  https://www.ibm.com/docs/en/devops-deploy/8.0.1?topic=modeling-software-deployment


#Highlights-home
1 comment
16 views

Permalink

Comments

26 days ago

Randy, this is nicely presented, thank you.