Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Dev ops for mainframe innovate session 2402
1. DevOps for the Mainframe
Leveraging Continuous Integration, the cloud, and beyond to
deliver z/OS applications
Session SC-2402
David Myers, Product Manager, Cross-Brand DevOps
myersda@us.ibm.com
@Dave_Does
Rosalind Radcliffe, Distinguished Engineer, Enterprise
Modernization Solution Architect
rradclif@us.ibm.com
2. Please note
IBM’s statements regarding its plans, directions, and intent are subject to change or
withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general product
direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment, promise,
or legal obligation to deliver any material, code or functionality. Information about potential
future products may not be incorporated into any contract. The development, release, and
timing of any future features or functionality described for our products remains at our sole
discretion.
Performance is based on measurements and projections using standard IBM benchmarks in
a controlled environment. The actual throughput or performance that any user will experience
will vary depending upon many factors, including considerations such as the amount of
multiprogramming in the user’s job stream, the I/O configuration, the storage configuration,
and the workload processed. Therefore, no assurance can be given that an individual user
will achieve results similar to those stated here.
3. 3
Social, Local, Mobile
Smart Infrastructure Analytics
ERP
Legacy
DB
CRM
HR
Manage workloads
and maintain security
Rapid innovation
in the cloud
User experience and
mobile management
New era systems integrate existing operational
systems with rapid delivery of new client-facing apps
4. Evolving customer and market expectations
Capabilities and User Experience Today Emerging
Primary Workload Types
Systems of Record
Transactional
Systems of Engagement (+ Record)
Big Data, Analytics, Mobile/Social Channels
Time to Value Planned Opportunistic
Delivery Model Planned Incremental (DevOps)
Development and Operations Team Sizes 100s and Costly 10s with built-in DevOps automation
Release Frequency Months to Years Hours to Days, based on business opportunity
Integration Frequency Weeks Continuous
Service Sourcing Develop Consume and Assemble (Public and Private)
Operational Model Systems Management
Built in to application, Recovery Oriented Computing, Continuous
Availability
Infrastructure Deployment Days Minutes
Risk Profile Big-Bang (High Risk) Incremental
5. DevOps is…
A set of principles and values that facilitate collaboration
across disciplines to…
1. Enable rapid evolution of deployed business services
2. Reduce risk, decrease cost, and improve quality across the
portfolio
DevOps Principles
§ Collaborate across disciplines
§ Develop and test against a production-like system
§ Deploy frequently using repeatable and reliable processes
§ Continuously monitor and validate operational quality
characteristics
§ Amplify feedback loops
People
Process
Tools
6. Solution: A Continuous Delivery Pipeline
Development Testing Staging Production
Business
Owners Customers
• Validate on more production-like
conditions earlier
• Automate hand-offs/promotions to
increase velocity through the
different stages
• Standardization on processes and
assets between Dev and Ops
• Automated monitoring and
dashboarding of quality and
performance against service level
agreements at multiple stages
Ensure applications are production-ready throughout the lifecycle
and can be released at any time while minimizing rollback due to quality issues
7. Mainframe Delivery Pains…
§ Multiple teams working across
restricted dev and test capacity
lead to conflict, delays, or bad
test results in shared
environments
§ Complex and manual
management and configuration
tasks result in errors and delays
§ Too much bad code going into test
and production causes crit sits
and emergency fixes
§ Bottlenecks due to inefficient
communications between
disparate platforms and teams
(Dev/Test - System Programmers;
mobile – distributed-mainframe)
8. Go on Offense
Play Defense
…solutions from IBM
§ Provide cheap, isolated,
development and test environments
for project teams
– Rational Development and Test
Environment
– Rational Test Virtualization Server
– SmartCloud Provisioning
– Cloud Ready for Linux on System z
§ Automate consistent build,
configure, and deploy processes
across all stages
– Rational Team Concert
– UrbanCode uDeploy
– SmartCloud Orchestrator
§ Enforce base quality standards
automatically prior to promotion
– Rational Test Workbench
– Rational Quality Manager
– SmartCloud Application Monitoring
– Omegamon
§ Improve communication and
collaboration with cross-platform
release planning
– IBM Collaborative Lifecycle
Management
– Smart Cloud Control Desk
– UrbanCode uRelease
10. 10 10
Test LPAR
z/OS
…
Typical z/OS Testing Architecture
Organized by project team, vertically scaled, sharing resources, limited automation
Project
Team
[April Maintain]
Project
Team
[Prototype SOA]
Project
Team
[June New Func]
Project
Team
[Dec Sys Upgrade]
Test
Data
App
App
App
Problems Encountered
1. Shared resources combined
with overlapping schedules can
elicit conflicts, impede
innovation and slow code
delivery
2. Coordination of environmental
changes and releases cause
bottlenecks, delays and
additional overhead
3. Shared test data is difficult to
manage and can lead to over
testing or incorrect test results
11. The ultimate in modern application development for System z
§ Liberate developers to rapidly prototype new applications
§ Develop and test System z applications anywhere, anytime!
§ Free up mainframe development MIPS for production capacity
§ Eliminate costly delays by reducing dependencies on operations staff
Note: This Program is licensed only for development and test of applications that run on IBM z/OS. The Program may not be used to run production workloads of any kind, nor more
robust development workloads including without limitation production module builds, pre-production testing, stress testing, or performance testing.
RDz & ISPF user
ISPF user
RDz user
RDz user
RDz user
COBOL, PL/I, C++, Java, EGL, Batch,
Assembler, Debug Tool
x86 PC running Linux
RDz user
IMS
z/OS
WAS
DB2
MQ
CICS
Rational Development and Test Environment for System z
12. Simulate subsystem dependencies
– Test impact of latency
– Test application response to unresponsive
services
Create a stable test environment
– Simulate “public” services
– Reduce capacity requirements on
infrastructure
– Improve security by reducing access from
external services
Improve testing with Green Hat service simulation
Decouple subsystem teams using Green Hat
Databases Mainframe
applications
Third-party
Services
Rational Test Virtualization Server
Application changes
being tested
virtualized services
13. Testing with dependency virtualization
Phase 1 Phase 2 Phase 3
App
Test Case
Virtual
Services
3rd Party
Call
IMS
Data
Access
CICS
Commarea
Call
App
Test Case
Virtual
Services
3rd Party
Call
IMS Data
Access
CICS
Commarea
Call
App
Test Case
Virtual
Services
3rd Party
Call
IMS Data
Access
CICS
Commarea
Call
Controlled large system testing by isolating components under test
• Easier problem determination
• Lower test environment capacity requirements
• Improved component quality
14. Provision new dev / test systems in minutes
• Fast VM provisioning for near-instant
deployment of 100s of virtual machines and
scale based on business needs
• Rich set of web interfaces into the cloud
that can be driven by a user or scripts for
complete automation
• Reliable, non-stop cloud capable of
automatically tolerating and recovering from
software and hardware failures
• Near-zero downtime due to faults,
hypervisor/management software upgrades
or addition/removal of hardware
Requested
VMs
will
be
up
and
running
under
a
minute
using
standard
HW
Function
Test
Performance
Test
15. § Fast, dependable, automatic feedback speeds time to market
§ Lower cost of application testing using off-mainframe z/OS test environment
§ Enables confidence by automatically tracking and promoting code health
Continuous Integration for z
Developer
Frequent, rapid
feedback earlier
to improve
quality Rapid Feedback
Code
Check In + Build + Deploy +
Run Automated Tests
Change
Request
Automated,
continuous testing
with isolated
development and
test environment
Reusable
integration
tests simplify
testing across
layers
Promote
To QA
Higher quality
going into QA
Reduced delivery time, end-to-end visibility of test activities, safer and faster upgrades (V2V)
Fail fast and drive better quality downstream
16. System z
Continuous Integration for System z Scenario
16
SCM/CI
Server
(Rational Team
Concert)
Test
Environment
(RD&T or LPAR)
Test
Execution
Manager
(Rational Quality
Manager)
Test
Automation
(Rational Test
Workbench)1. Check-in code
2. Build code and zUnit
tests
3. Deploy build results
and test data to Test
Environment
4. Execute zUnit Tests
<Deploys App+zUnit Tests>
<Drives>
5. Kick-off Automated
Test Plan
6. Run automated
interface tests against
Test Environment
7. Mark execution
records Pass/Fail in
Test Execution
Manager
<Starts Tests>
8. Report test results
in dashboard/build
results/defect
records in CI server.
<Results>
17. § Each tool came with its own
• UI - Web and desktop
presentations of views and
tasks
• Logic – Workflow, process,
search, query, scale, security
and collaboration
• Storage – Availability,
traceability
• Privacy, backup/archive
§ Resulting in...
• Brittle integrations
• Silos everywhere
• High cost to maintain and
administer
• Proprietary API's
Tool E
SCM
UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
Tool B
Release
Planning
Tool D
Incident
Management
Tool C
Reporting
Tool A
Dev work Items
Separate tools makes collaboration inefficient or difficult...
18. Tie development release to operational release
Rational Team Concert Release Plan and work
items
SmartCloud Control Desk
19. 19 19
Delivery Organized for Flexibility and Speed
Organized by application team, horizontally sliced, dedicated resources, highly automated
Problems Encountered
1. Shared resources
combined with overlapping
schedules can elicit
conflicts, impede innovation
and slow code delivery
2. Coordination of
environmental changes and
releases cause bottlenecks,
delays and additional
overhead
3. Shared test data is difficult
to manage and can lead to
over testing or incorrect test
results
4. Provisioning, managing,
and synchronizing project
test environments including
data
QA/IntegrationTestLPAR
z/OS LPAR
…
Project
Team
[April Maintain]
Project
Team
[Prototype SOA]
Project
Team
[June New Func]
Project
Team
[Dec Sys Upgrade]
Integr.
Test
Data
LPAR
Data
RD&T
Data
RD&T
Data
LPAR
Data
21. Go on Offense
Play Defense
…solutions from IBM
§ Provide cheap, isolated,
development and test environments
for project teams
– Rational Development and Test
Environment
– Rational Test Virtualization Server
– SmartCloud Provisioning
– Cloud Ready for Linux on System z
§ Automate consistent build,
provision, configure, and deploy
processes across all stages
– Rational Team Concert
– SmartCloud Continuous Delivery
– SmartCloud Orchestrator*
§ Enforce base quality standards
automatically prior to promotion
– Rational Test Workbench
– Rational Quality Manager
– SmartCloud Application Monitoring
– Omegamon
§ Improve communication and
collaboration with cross-platform
release planning
– IBM Collaborative Lifecycle
Management
– Smart Cloud Control Desk
Cloud-style deploy of
zLinux and z/OS dev and
test patterns on RD&T or
zHardware
22. Infrastructure
as Code
Source Control
Management
Source Artifacts
.cbl
.asm
.cpy
CLIST.rexx
Provisioning using Cloud
#!/usr/bin/env ruby
class DevopsDeployer
def initialize(build_url, build_id)
@log = Logger.new(LOG_FILE)
@log.level = LOG_LEVEL
@iaas_gateway = IaasGateway.new(HsltProvider.new(),
LOG_FILE, LOG_LEVEL)
@server_instance = nil
rtc_build_system_provider = RtcBuildSystemProvider.new(
RTC_REPOSITORY_URL, RTC_USER_ID, RTC_PASSWORD_FILE)
@build = rtc_build_system_provider.resolve_build(
build_url, ENV['buildResultUUID'], build_id)
@build_system_gateway = BuildSystemGateway.new(
rtc_build_system_provider, LOG_FILE, LOG_LEVEL)
end
def add_build_stamp
template_file = WEB_APP_ROOT +
"/app/templates/pages/page.html"
@log.info "Adding build ID stamp #{@build.id} to
#{template_file}"
# Read in the file's contents as a string, replace
# the build_id, then overwrite the original contents
# of the file
text = File.read(template_file)
new_text = text.gsub(/{{ build_id }}/,
"<a href="#{@build.uri}">#{@build.id}</a>")
File.open(template_file, "w") { |file|
file.puts new_text
}
end
# ...
23. Delivery Pipeline Fundamentals
Deploy
Environment
Running System
Source Control
Management
Source Artifacts
.cbl
.asm
.cpy
CLIST.rexx
Deployable Artifacts
Build,
Package,
& Unit Test
Application
Binaries &
Platform
Configuration
Library
24. Consolidate, standardize, simplify deployment
COBOL
Java
Copybooks
WSDL
DB2
DDLIMS DBD/
PSB
HTML
MQ
Queue
Def
DB2
Plans
Procs
JCL
Deploy
Environment
Running SystemDeployable Artifacts
Build, Package,
& Unit Test
Application
Binaries &
Platform
Configuration
Library
Enterprise Applications have thousands of disparate parts
• Currently maintained in separate systems, if maintained at all
• Limited linkage between systems for application and configuration
dependencies
• Missing assets and information is rampant
DevOps force linkages, automation, and standardized packaging…
Source Management
25. Create, secure, and deploy test data
2TB
-Subset
Production or
Production Clone
-Compare
-Refresh
Create “right-size”
production-like environments
for application testing
De-identify sensitive information
with realistic but fictional data for
testing & development purposes
De-identify sensitive information
with realistic but fictional data for
testing & development purposes
z/OS
UTRD&T
Automated test data
deployment for each
build and test
1 GB
z/OS
UTLPAR
1 GB
Masked Test Data
Automated Build &
Deploy Test Data
Automated
Testing
Optim RTC
Test Data
26. Standardize z/OS region configurations to ease
deployment
• Standard topologies exist today
(production LPARs)
• Standardized regions which can be
repeatedly deployed are rare
• Standardized/Automated deployment of
COMPLETE system is spotty
To adopt the cloud for testing…
Standardize and automate provisioning of
everything …
Standard Middleware Pattern
CICS 5.1 IMS 11.1
DB2 10.1Z/OS 1.12
Configuration
Data
Application
27. RTC/CIzAvailable
Capabilities
Standardize z/OS region configurations to ease
deployment
Standard Middleware Pattern
CICS 5.1 IMS 11.1
DB2 10.1Z/OS 1.12
Configuration
Data
Application
Pattern/Platform
Application
load modules
Test Data
JCL and REXX
28. Evolving to deploying regions … cloud-style
“Cloud”
RD&T
Or
LPAR
RD&T
Or
LPAR
RD&T
Or
LPAR
RD&T
Or
LPAR
SmartCloud Orchestrator
+
<Deployment Automation
for Mainframe project>
Region/
Middleware
Patterns
CICS+DB2
CICS+ IMS
DB
Batch
29. 29
Daily Apple TV giveaway
§ Complete your session surveys online each day at a conference kiosk or on
your Innovate 2013 Portal!
§ Each day that you complete all of that day’s session surveys, your name will
be entered to win the daily Apple TV!
§ On Wednesday be sure to complete your full conference evaluation to receive
your free conference t-shirt!