what it would look like if we migrated to git for z/os

18
What it Would Look Like if we Migrated to Git for z/OS Applications Joe Taffe-Atkins IBM UK November 2020 Session 4AL

Upload: others

Post on 16-Nov-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

What it Would Look Like if we Migrated to Git for z/OS Applications

Joe Taffe-Atkins

IBM UK

November 2020

Session 4AL

What it Would Look Like if we Migrated to Git for z/OS Applications

Using Git Hub Enterprise, IBM Dependency Based Build, Jira, Jenkins and Urban Code Deploy

Joe [email protected] Technical Specialist

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

What it Would Look Like if we Migrated to Git for z/OS Applications

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

Modern SCM Cycle Library Manager Cycle

Designed for Development Several Decades AgoIts Tightly Connected to Test EnvironmentsSeveral Development ActivitiesLimited Support for Parallel development*

Designed for Agile Development Practises Decoupled From Execution EnvironmentsSupports Branching Parallel Development Support

Git vs Traditional Library Managers

*Depending on the library manager

What it Would Look Like if we Migrated to Git for z/OS Applications

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

What is Git?

• Open Source SCM initially built to manage Linux development

• Distributed Source Code Management

• Uses a ‘commit ID’ instead of a version

o SHA-1 hash based on the code, what came before it, who made the commit, when they made it, and other metadata

• Full copy of the repository locally for each user to have their own private copy on their machine

o Branches provide developers isolation to work on short lived z/OS Sandbox environments

• Used with other open source tools such as Jenkins, Ant, Maven, Gradle for Continuous Integration / Continuous Delivery pipeline

Strengths

– Simple, cheap and easy to deploy

– Pervasive in Open Source development where there is no effective competition

6

“A configuration is made up of a given list of files, each of them at a given version. A configuration can have various scopes: for example, an application component, an application, a domain, or more.”

What it Would Look Like if we Migrated to Git for z/OS Applications

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

• More info https://en.wikipedia.org/wiki/Git• Git is available via https://git-scm.com• Git for z/OS is available via http://www.rocketsoftware.com/zos-opensource/tools

• Provided by Rocket Software• Part of their ported tools

• Provides ability to run Git on z/OS• Writes files to zFS• Supports tagging files for EBDCIC• Adding a tag file to Git repository to indicate which files should be EBDCIC• Adding configuration to say what code page files should be stored in

z/OS Git

8

Mainframe Application 1 Repo

Mainframe Application 2 Repo

In The Scenario…

USS

How do I process/build my mainframe artifacts from USS?

Application 1 Repo

Infrastructure:

DDL

z/OSMF Variables

..

Backend:

Cobol

Assembler

PL1

Z Unit Test Case

..

Messaging:

z/OS Connect

..

z/OS Environment(Short Lived or Long Lived Test Environment)

z/OS

Git Clone(orchestrator)

Single Program(IBM Developer IDE)

Front-end Application 1 Repo

Front-end Application 2 Repo

Server

What it Would Look Like if we Migrated to Git for z/OS Applications

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

What is Dependency Based Build?

Smart Build• Provides Groovy for z – z/OS Java Based APIs (DBB Toolkit)• Provides the ability to run MVSExec, TSOExec, ISPFExec and JCLExec• Utility capabilities such as creating and copying to/from PDS• JCL to DBB Build Script converter

Dependency Scanner • Dependencies are stored in database for use by builds• Scan, store and retrieve dependency information• Dependency data is stored in a DBB ‘collection’

Source Migration • zImport capability for migration to git

Reporting• Ability to create and store summary build reports

Extensibility• Application Server provides REST based access to information stored in the DBB

Webserver

zAppBuild DBB Build Framework• Supports Assembler, BMS, Cobol, Pl1, Link Cards and Z Unit• Scripts are available to integrate with Jenkins, Urban Code Deploy and more• Stored in a centralised USS directory with optional overrides in the application repo

ISPF Interface• ISPF Git Interface for traditional access 11

migrate.sh -r /u/user/repo -m MappingRule[hlq:USER,toLower:true] COBE

The PGM1 and PGM3 members are copied: USER.COBOL(PGM1) is copied to /u/user/repo/cobol/cobe/pgm1.USER.COBOL(PGM3) is copied to /u/user/repo/cobol/cobe/pgm3.The PGM2 member is not copied since it is not tagged with COBE.

def compile = new MVSExec().pgm("IGYCRCTL").parm("LIB")compile.dd(new DDStatement().name("TASKLIB").dsn("IGY.SIGYCOMP").options("shr"))

//COBOL EXEC PGM=IGYCRCTL,REGION=0M,PARM='LIB'

//STEPLIB DD DISP=SHR,DSN=IGY.SIGYCOMP

Converter

Report

Migration

JCL

Groovy DBB

Migration: https://www.ibm.com/support/knowledgecenter/en/SS6T76_1.0.0/migration.html

ISPF Git Interface

DBB Build Proc

(zAppBuild)

Mainframe Application 1 Repo

Mainframe Application 2 Repo

Back to the Scenario…

USS

Application 1 Repo

Infrastructure:

DDL

z/OSMF Variables

..

Backend:

Cobol

Assembler

PL1

Z Unit Test Case

zAppBuild Conf Files

Messaging:

z/OS Connect

..

z/OS Environment(Short Lived or Long Lived Test Environment)

z/OS

Front-end Application 1 Repo

Front-end Application 2 Repo

Server

Git Clone(orchestrator)

Single Program(IBM Developer IDE)

How do I process/build my mainframe artifacts from USS? Edit the zAppBuild samples to create a company specific DBB build process

What it Would Look Like if we Migrated to Git for z/OS Applications

Agenda

Why Git

Git Overview

Git on z/OS

Why and What is IBM Dependency Based Build

End-to-End Showcase From Jira to Production

15

Lead

Developer

Developer

Views Jira

Epic, User

Story and Task

Analyst

Creates

Feature Branch

in Git

Creates Z

Regression

Test Pack for

Feature

Assigns Task

to Developer/s

Views Jira taskClones the Git

Repo to IDE

Update & Build

Automated Unit

Test

Change & Build

Module

Run Automated

Unit Test Generate CC &

Test Reports

Commit and

Push

Run

Regression

Analysis & Test

Trigger a Pull

Request to NR

Branch

Check

completed Jira

tasks

Main

Next Release

Feature Branch

Update Jira

Automated

Analysis

Developer Sandbox or Development System

1. Scope

2. Sizing

3. Requirements (User Stories…)

Release

Manager

Trigger a

Release Build

on NR Branch

Create Release

Package

Schedule

Deploy to

Production

Refresh Main

Branch to

Represent

Production

An IBM & Open Source Enterprise Toolchain

DevelopmentBuild Artefact

RepositorySCM

IBM Dependency Based Build

IBM Urban Code Build

Deploy & Test

Z Unit IBM Urban Code Deploy

IBM Urban Code

Deploy

IBM Test Workbench

Z Systems Development & Test

Environment

IBM Z

IBM Developer for z Systems

IBM Application Discovery

IBM Code Review

16

z/OS Connect

Optimization

Technology

Automatic Binary Optimizer

IBM

Engineering

Workflow

Management

WAZI Code Ready Workspaces

WAZI Virtual Test

Platform

Please submit your session feedback!

Do it online at http://conferences.gse.org.uk/2020/feedback/4AL

This session is 4AL

Joe [email protected] Mainframe Technical Specialist

GSE UK Conference 2020 Charity

The GSE UK Region team hope that you find this presentation and others that follow useful and help to expand your knowledge of z Systems.

Please consider showing your appreciation by kindly donating a small sum to our charity this year, NHS Charities Together. Follow the link below or scan the QR Code:

http://uk.virginmoneygiving.com/GuideShareEuropeUKRegion