1 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Zowe Overview - Automation, Testing, and Orchestration
Dan KeloskyOpen Mainframe Team
[email protected]/in/dkelosky
1
2 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Agenda
● Me● Zowe● Modern tools - purpose, how, & why I use them● Answer questions● Demos
○ test○ build & deploy○ CI
2
3 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Mainframe Tools
● SLIP● GTF● HLASM (31|64, Problem|Supervisor, System key[0-7], SRB|TCB)● Conditional Assembly● Metal C● Endevor● IPCS● ISPF ● Console commands● IEASYSxx, PROGxx, etc● XDC● RDz
3
4 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Distributed Tools
● Android
● Cloud dev (firebase) apps & serverless
● Web development (JQuery, Angular, Node.js, ...)
● Scripting (Perl, Python, Ruby, JavaScript, …)
● Editor extension (Brackets, Atom, VS Code, ...)
● CI (Travis, Circle, Azure pipelines, Jenkins, TeamCity, Drone, …)
4
5 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Personal Tools
5
6 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Zowe
6
7 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Zowe
7
UI
CLI
ML
APIs
8 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
API
8
https://phpenthusiast.com/blog/what-is-rest-api
https://www.indiamart.com/proddetail/ibm-mainframe-7046896433.html
9 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
API ML - Catalog
9
10 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
API ML - Discovery
10
https://github.com/Netflix/eureka
11 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
API ML - Gateway
11
https://github.com/Netflix/zuul
(unofficial)
12 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
UI & CLI
12
13 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Modern Tooling - Overlap
● git
● Node.js
● perl
● python
13
14 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Modern Tooling - Parallels
● Symbolic substitution - &SYSNAME. ● Mustache, handlebars - {{ }}
14
15 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Modern Tooling - Integrations
● RDz / Eclipse plugins
● Jenkins plugins
● CI tools
15
16 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Modern Tooling - z/OS Limitations
16
17 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Development is Complicated
● Hybrid development - TypeScript (Node.js), Spring (Java), C++, Metal C, assembler, makefile, JCL ○ source controlled via git/GitHub ○ delivered through Endevor
● Team members use different editors, diff tools, git clients
● CLI, scripts, and task runner are common pieces
17
18 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Scripting
● Python● Ruby● Perl● JavaScript / TypeScript● Bash / Shell scripts● Windows Batch● REXX● CLIST● Groovy● Go...
18
19 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Scripting Examples
19
20 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Task Runners / Encapsulation Tools
● npm / yarn● gradle● grunt● gulp● make...
20
21 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Task Runners / Encapsulation Tools Examples
21
22 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Testing Frameworks
● JUnit
● Jest
● PyUnit
● RSpec
● Mocha.js
22
23 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Testing Frameworks Examples
23
24 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Source Control
● git● mercurial● svn● ChangeMan● ISPW● Endevor
● GitHub● Bitbucket● GitLab...
24
25 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Source Control Examples
25
26 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
CI/CD
JenkinsDroneConcourseTeamCity
TeamCityTravis CICircleCIDrone Cloud...
26
27 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
CI/CD Examples
27
28 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
CI/CD Tooling
TSLintCodecov SonarQubeJCLCheckTYPERUN=SCAN...
28
29 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
CI Tooling Examples
29
30 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Demo 0
● API ML● Desktop UI● Commands● VS Code
30
31 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Demo 1 - Testing
● npm run genjcl● npm run allocate● npm run upload● npm run jcl● npm run test
31
32 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Demo 2 - CI
Drone
32
33 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Examples & Repos
● https://medium.com/@dkelosky
○ Mainframe HLASM Continuous Integration Testing with
Github and Drone
○ Building Mainframe Metal C and Testing with Jest and
Zowe CLI
○ How to Automate z/OS Data Set Allocation Using Zowe &
JSON
○ Mainframe Assembler & Zowe: “Hello World” Example
33
34 Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.|
Repos
● https://github.com/tucker01/awesome-zowe
34