Zowe Overview - Automation, Testing, and Orchestration
Dan Kelosky Open Mainframe Team [email protected] linkedin.com/in/dkelosky
1 1 | 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 2 | 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 3 | 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 4 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Personal Tools
5 5 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Zowe
6 6 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Zowe
UI ML
CLI APIs
7 7 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. API
https://phpenthusiast.com/blog/what-is-rest-api
https://www.indiamart.com/proddetail/ibm-mainframe-7046896433.html
8 8 | 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 9 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. API ML - Discovery
https://github.com/Netflix/eureka
10 10 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. API ML - Gateway
https://github.com/Netflix/zuul
(unofficial)
11 11 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. UI & CLI
12 12 | 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 13 | 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 14 | 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 15 | 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 16 | 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 17 | 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 18 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Scripting Examples
19 19 | 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 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 Examples
21 21 | 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 22 | 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 23 | 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 24 | 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 25 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. CI/CD
Jenkins Drone Concourse TeamCity
TeamCity Travis CI CircleCI Drone Cloud ...
26 26 | 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 27 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. CI/CD Tooling
TSLint Codecov SonarQube JCLCheck TYPERUN=SCAN ...
28 28 | 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 29 | 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 30 | 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 31 | 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 32 | 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 33 | 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 34 | Broadcom Proprietary and Confidential. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.