bridging the divide · git developers can update endevor elements using their ide (visual studio...
Post on 11-Jul-2020
13 Views
Preview:
TRANSCRIPT
Bridging the DivideUsing Git as a Front End for Developing Mainframe Applications
Sylva Bursikova
Broadcom
November 2019
Session MB
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.
Agenda
• Setting the Context
• Our approach - Bridging the divide
• Git Bridge: How does it work?
Setting the context
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
Population of Mainframe Developers
7%of Mainframe Developers
are under 30
29%of Mainframe Developers
are over 60
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
Bridging the divide Git vs. Endevor
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
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
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
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
Server Repository
Git Bridge: How does it work?
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
CA Endevor Enterprise Git Bridge
CA Endevor
Enterprise Git Server
Git Connector
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
Roles / Personas
Git Connector CA Endevor
MichelleApplication
development
ToddEnterprise Git Server
Administrator
CarlEndevor Admin
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)
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
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
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
Configure Git Bridge
• Email server
• Frequency of synchronization
ToddEnterprise Git Server
Administrator
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
“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
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
Choose the applicable synchronization option
DEMO: Create and Initialize a Git-Endevor Mapping
ToddEnterprise Git Server
Administrator
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
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
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
● 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
Developer’s Build: Setup of Build Areas
CarlEndevor Admin
● 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
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)
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
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
Useful linksContact us: GitBridge@broadcom.com
Videos related to Modern Mainframe Developer ExperienceModern Mainframe Developer Experience – Youtube Playlist
Validation Site - Git Bridge validation versionGit Bridge Validation
Git Bridge WhitepaperLink to Git Bridge Whitepaper
Q & A
Thank You
Please submit your session feedback!
• Do it online at http://conferences.gse.org.uk/2019/feedback/mb
• This session is MB
top related