What it Would Look Like if we Migrated to Git for z/OS ...
Transcript of What it Would Look Like if we Migrated to Git for z/OS ...
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
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