Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio...

41
Bridging the Divide Using Git as a Front End for Developing Mainframe Applications Sylva Bursikova Broadcom November 2019 Session MB

Transcript of Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio...

Page 1: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Bridging the DivideUsing Git as a Front End for Developing Mainframe Applications

Sylva Bursikova

Broadcom

November 2019

Session MB

Page 2: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

DisclaimerCertain information in this presentation may outline CA’s general product direction. This presentation shall not serve to (i) affect the rights and/or obligations of CA or its licensees under any existing or future license agreement or services agreement relating to any CA software product; or (ii) amend any product documentation or specifications for any CA software product. This presentation is based on current information and resource allocations as of 22nd May 2019 and is subject to change or withdrawal by CA at any time without notice. The development, release and timing of any features or functionality described in this presentation remain at CA’s sole discretion.

Notwithstanding anything in this presentation to the contrary, upon the general availability of any future CA productrelease referenced in this presentation, CA may make such release available to new licensees in the form of a regularly scheduled major product release. Such release may be made available to licensees of the product who are active subscribers to CA maintenance and support, on a when and if-available basis. The information in this presentation is not deemed to be incorporated into any contract.

Copyright © 2019 Broadcom. All rights reserved. The term “Broadcom” refers to Broadcom Inc. and/or it’s subsidiaries. Broadcom, the pulse logo, Connecting everything, CA Technologies and the CA Technologies logo are among the trademarks of Broadcom.

THIS PRESENTATION IS FOR YOUR INFORMATIONAL PURPOSES ONLY. Broadcom assumes no responsibility for the accuracy or completeness of the information. TO THE EXTENT PERMITTED BY APPLICABLE LAW, BROADCOM PROVIDES THIS DOCUMENT “AS IS” WITHOUT WARRANTY OF ANY KIND, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. In no event will Broadcom be liable for any loss or damage, direct or indirect, in connection with this presentation, including, without limitation, lost profits, lost investment, business interruption, goodwill, or lost data, even if Broadcom is expressly advised in advance of the possibility of such damages.

Page 3: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Agenda

• Setting the Context

• Our approach - Bridging the divide

• Git Bridge: How does it work?

Page 4: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Setting the context

Page 5: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Did You Know?

1.5BLines Added Annually

250BLines of COBOL Code

Aberdeen Group; Giga Information Group; Database & Network Journal; The COBOL Report; SearchEngineWatch.com; Tactical Strategy Group; The Future of COBOL Report; Internal Analysis

Page 6: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Population of Mainframe Developers

7%of Mainframe Developers

are under 30

29%of Mainframe Developers

are over 60

Page 7: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Lack of Mainframe skilled professionals

A survey conducted by IBM Systems Magazine, 2016, https://www.alliedmarketresearch.com/mainframe-market - April 2019, Stackoverflow

• 1400 IT professionals: 85% confirmed existence of the mainframe skill gap

• 18% mainframe staff planned to retire within five years

• 69% of developers using mainframe are not interested in continuing to do so

(Stackoverflow)

• More than 84000 open positions expected in mainframe industry by

2020.

• Companies willing to train their talent, existing and new workforce

Page 8: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Bridging the divide Git vs. Endevor

Page 9: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Why Git?

• Git – de facto standard

• Attract the new generation of developers to mainframe: Easy

on-board

• Leverage popular, proven, collaboration practices (branching,

branches of branches, automated merges, pull requests, etc.)

• Support common practices for end-to-end enterprise

application development

• Offer similar developer experience across all platforms

(Distributed, Cloud, Mobile, Mainframe)

• Modern IDE’s have Git

Page 10: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Why Traditional Mainframe SCM?

• Heavy investment in mainframe software asset management• Assets under management can number in the millions and may not be structured

for newer SCMs

• There is often decades of history under management

• Mainframe Lifecycle Automation• Years of work invested into automation created by practitioners, critical to

business processes & governance

• Git does not have it’s own lifecycle automation

Page 11: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

I don’t want to change anything!

MF

Many developers still prefer traditional ISPF interaction

Working with Git is just a new option -

Endevor experience remains intact

Local Enterprise Git IDE

Page 12: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Complementing the existing workflows

MFLocal Enterprise Git IDE

● Developers working with ISPF or Eclipse UI can continue doing so

● Git developers can update Endevor elements using their IDE (Visual

Studio Code, Eclipse Che)

● Git Bridge synchronizes changes between GitHub and Endevor

○ Endevor→GitHub: Polling Sync-back (runs at selected frequency)

○ GitHub→Endevor: Synchronization triggered when changes merged

Page 13: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Server Repository

Page 14: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Git Bridge: How does it work?

Page 15: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Git Bridge

• Intro & Personas

• Git Bridge Initial Setup

• Create a Git–Endevor Mapping

• Developer’s local machine Setup

• Day in the life of a Modern Developer

Page 16: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

CA Endevor Enterprise Git Bridge

CA Endevor

Enterprise Git Server

Git Connector

Page 17: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Personas

RobApplication Developer - Experienced

● Has extensive COBOL and/or PLI programming skills.

● Understands MF Database application concepts.

● Writes code to create software applications or update existing

software applications.

● Enjoys working with traditional MF tools.

CarlEndevor Administrator

● Ensures Endevor is running at the most current release level.

● Manages product customizations.

● Participates in product upgrade and product maintenance to some

extent.

MichelleApplication Developer

● Programs in Java, .Net, C, C#, C++, SQL● Uses Git

● Uses Eclipse and other modern IDEs

● Not interested in working with MF tools or environments.

● Interested in building new apps and extending existing

applications, modernization.

ToddEnterprise Git Server Administrator

● Aligning Git setup with development processes.

● Helping to move engineering teams into Git.

● Creating and initializing Git repositories

Page 18: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Roles / Personas

Git Connector CA Endevor

MichelleApplication

development

ToddEnterprise Git Server

Administrator

CarlEndevor Admin

Page 19: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Components

• CA Endevor Enterprise Git Bridge

• Explorer for Endevor (a plugin in Eclipse Che, Visual Studio Code)

• Developer’s build (a new command group in the Endevor plugin for Zowe CLI)

Page 20: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Administrator: Git Bridge Initial setup• Create and Install the GitHub App

• Configure the application.yml file

• Initial Startup and Login

• Configure Email server and sync-back

ToddEnterprise Git Server

Administrator

Prerequisites:

• Endevor level V18.0.12+

• (Optional) Developer’s build:• Endevor Working level Environment

• Endevor Sandbox capability

• Zowe CLI

• zOSMF

CarlEndevor Admin

Page 21: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Register a new GitHub App

Create GitHub App

• Define location of the Git Bridge

• Get connectivity credentials

• Specify allowed actions

• Designate repositories for use

ToddEnterprise Git Server

Administrator

Page 22: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Configure the application.yml fileUpdate configuration file

• Port and url of Git Bridge

• Client ID & Client Secret from the GitHub App

• GitHub network settings

• Server Log location and configuration

• Git Bridge admin(s)

ToddEnterprise Git Server

Administrator

Page 23: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Configure Git Bridge

• Email server

• Frequency of synchronization

ToddEnterprise Git Server

Administrator

Page 24: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Administrator – Connect an Enterprise Git Server Repository to an Endevor Location

• Consider synchronization options

• Create a Git-Endevor Mapping

Todd / Carl

ToddEnterprise Git Server

Administrator

Page 25: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

“Application”

A subset of elements that Michelle needs to access so that she is efficient in her collaboration with the team:• A component• A product• Etc.

“Git-Endevor Mapping”

Link between an Endevor location (Env/Stage/System/Subsystem) and a branch in the Enterprise Git Server Repository

Page 26: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Synchronization Options

SYNCHRONIZE ALL STAGES IN ENDEVOR MAP• All files will be available in the Enterprise Git repository

• Recommendation: less than 5000 elements (1 hour)

SYNCHRONIZE ENTRY STAGE ONLY• Only elements from Development entry stage will be in the Enterprise Git repo

• Use of Explorer for Endevor (Experimental)

Todd / Carl

Page 27: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Choose the applicable synchronization option

Page 28: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

DEMO: Create and Initialize a Git-Endevor Mapping

ToddEnterprise Git Server

Administrator

Page 29: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

DEMO: Michelle – Setting up her environment

o Create Zowe Endevor profile

o For every newly created Git – Endevor Mapping:• Clone the Enterprise Git repository

• Set up a local pre-check helping prevent synchronization issues

(optional).

MichelleApplication

development

Page 30: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Modern Developer’s Workflow

Create dev workspace

Initialize workspace based on project requirements and

clone git repository

Create unit test environmentInitialize test environment

with services (virtualized or not)Initialize test environment

with test data

Work on story/defect

Create feature branch Edit Code

Build

TestDeploy in Test Environment

Analyze changes to determine what tests are needed

and what gaps existPerform Unit Test / Debug

Verify test coverage

Deliver Change

Commit the change in git

Push the change to central repo

Create Pull Request/Code review

Merge in dev branch

Collaborate with teamPull application latest code changes from the team and merge as needed

Git Repo Created

Git Repository initializedwith application code

MichelleApplication

development

Page 31: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Day in the life of Michelle● Git pull,

● Edit Code with an IDE of choice,

● Build with Endevor,

● Test,

● Git pull,

● Git merge,

---Iterate the above as needed---

● Git commit,

● Git push with a pre-check,

● Enterprise Git Server: create a Pull request. (Merge.)

● (Conflict management and resolution)

MichelleApplication

development

Page 32: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

● Functionality enabled within the Git Bridge E2E workflow● Before committing changes made to files in the local directory, the

developer needs to make a build● Developer’s build functionality leverages Zowe CLI to compile all locally

modified files in isolation (in a pre-defined build area), using Endevor as build engine

Developer’s Build - Context

MichelleApplication

development

Page 33: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Developer’s Build: Setup of Build Areas

CarlEndevor Admin

Page 34: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

● The build functionality is enabled by a dedicated command group in the

Endevor Plug-in for Zowe CLI

● Workflow:● Developer runs the Zowe CLI command

● The Developer’s build functionality identifies changed files in the local directory,

moves them to the pre-defined build area in Endevor, and runs compile, leveraging

Endevor as build engine

● Developer will receive the report of the build, including listings

● Developer can iterate the cycle of updating elements and running the build as many

times as required, all in isolation from other team members working on the same

application

● Once the developer is happy with their changes, they can push them to the

Enterprise Git Server branch synchronized with Endevor

● Only then the changes are made available to the rest of the team

Developer’s Build - Workflow

MichelleApplication

development

Page 35: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

DEMO: Day in the life of Michelle

MichelleApplication

development

• Michelle makes changes (IDE of choice)

• Builds her changes in Endevor using

Developer’s build via Zowe CLI for Endevor

• Commits and Pushes her Git changes into

Endevor (with automatic pre-push validation)

• Enterprise Git Server: create a Pull request.

(Merge triggers synchronization to Endevor)

Page 36: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Revert FeatureIn the case of synchronization errors:

• Revert branch is created

• You can go and review the situation/errors

• Squash and merge the commits from the revert branch

Page 37: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Availability

• CA Endevor Enterprise Git Bridge (for GitHub, coming for Bitbucket/GitLab) Part of the CA Endevor Integrations for Enterprise DevOps (“DevOps option”)

Validation version available on the Validation site

• Explorer for Endevor Plugin in Eclipse Che / Visual Studio Code (Visual Studio Marketplace)

• Developer’s build New command group (“git”) in the Endevor plugin for Zowe CLI

Page 39: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Q & A

Page 40: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Thank You

Page 41: Bridging the Divide · Git developers can update Endevor elements using their IDE (Visual Studio Code, Eclipse Che) Git Bridge synchronizes changes between GitHub and Endevor Endevor→GitHub:

Please submit your session feedback!

• Do it online at http://conferences.gse.org.uk/2019/feedback/mb

• This session is MB