Containerization on IBM Z : the notion of containers, their principles, how it works, their benefits on IBM Z and the reasons to adopt containers.
The second part of the presentation focuses on the various solutions available on IBM Z to run and execute your containers at the best place, on IBM Z !
2. 2
Containerization on Z
Paul Pilotto Managing Partner Mainframe Modernization leader @Graytitude
Sébastien Llaurency Cloud & Application Modernization on IBM Z
IBM Executive Architect
Member of Technical Expert Council France
IBM Garage for Systems
3. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
4. 4
C o n t a i n e r i z a t i o n o n Z
C h allen ges of t oday
Containers on Z, why would I care
• Development requires so much more than writing code only
• Complexity of multiple languages
• Complexity of different architectures
• Complexity of usage and choices of frameworks
• Complexity of diversity of platforms and interoperability
• Complexity because of release management
• Complexity of test data
5. 5
C o n t a i n e r i z a t i o n o n Z
Th e de fact o st an dard t o bu ild an d sh are con t ain erized applicat ion s
Docker
Containers are a standardized unit of software that allows developers to isolate
their app from its environment, solving the “it works on my machine” headache.
Source : www.docker.com/why-docker
6. 6
C o n t a i n e r i z a t i o n o n Z
Evolution in IT
Source : IBM
Development Process
Waterfall
DevOps
N-Tier
Application Architecture
Monolithic
Microservices
Virtual
Machines
Hosted
Application Infrastructure
Datacenter
Hybrid Cloud
Deployment Packaging
Physical
Servers
Containers
7. 7
C o n t a i n e r i z a t i o n o n Z
One concrete example : containerization of development
8. 8
C o n t a i n e r i z a t i o n o n Z
One concrete example : containerization of development
IB M Wazi Developer for R ed H at C odeR eady Work spaces
• Developer requests their Development Environment in RH Openshift
• Developer can make the choice of preferred IDE (VS Code, Eclipse, Eclipse Che)
• Configurations for Git access and Mainframe access are predefined in the container
• CICD Pipeline integration is preconfigured and ready to use from the container
• Testing in a containerized z/OS LPAR (Wazi Sandbox = based on IBM ZD&T)
• Personalized testing environment if required
• Test Data pre-loaded (prepared by Test Data Management tool)
• Debugging and unit testing in function of Test Coverage metrics
• Development LPAR without MIPS consumption
9. IBM Z System
9
Cloud Native
Traditional
Cloud Services
Traditional
Cloud Native
AppMod
Private
Cloud
before
now
Why containers ? ... on IBM Z ?
10. Why containers ? ... on IBM Z ?
Low Latency and Large Volume Data
Serving and Transaction
processing
Enterprise class infrastructure –
Elastic, Scalable, Available and
Resilient
Highest levels of Security and
Compliance
Enterprise scale Private Cloud-in-a-Box
2.4M containers-per-box
Digital Transformation and
Modernization for z/OS
7x shorter batch windows
5x better transaction response times
Extreme Consolidation and scalable
Data Serving
75% lower Op-Ex
Benefits on Z Adoption Patterns
99.99999% system availability 4:1 better data-center footprint 2:1 lower
power envelope
3.8x better Java throughput,
24x faster Java Garbage Collection
11. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
12. IBM Z System
12
App
A’
Host OS
Server
Bins/Libs
App
A
Bins/Libs
App
B App
B’ App
B’ App
B’
Container
Run
What is a Container
• An isolated user space within a running Linux OS
• Shared kernel across containers
• Direct device access
• All packages and data in an isolated run-time, saved as a filesystem.
• Resource management implemented with cgroups
• Resource isolation through namespaces
What is a container ?
13. IBM Z System
13
Infrastructure oriented:
⚫ coming from servers, now virtualized
⚫ several applications per server
⚫ isolation
Service oriented:
⚫ application-centric
⚫ solution decomposed
⚫ DevOps
What is a container ? Differences with a Virtual Machine ?
Virtual machine separation between tenants
Virtualization management for infrastructure
Isolation
Containers within one tenant
Container efficiency
Docker management and ecosystem
14. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
15. IBM Z System
15
How to build it and how it works ?
Docker
Registry
Image Repository
Dockerfile for Application
Image
N
Docker Engine (Build)
Server
Host OS
Docker Engine
Container
A
Container
B
Container
N
Push new Image to
Repository
Describes steps to build container
automatically from source
Get N
…
Run N
Build M
Source Code Repository
Build
Store
Run
Developer
Creates App, Builds Container And
pushes to Registry
Operator
Deploys Containers
Multi Arch
Images
25. Simple end to end architecture deployed with OpenShift
26.
27. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
29. IBM Z System
29
How to make a container “portable” across hardware architectures ?
image: myimage:latest
manifests:
-
image: myimage-s390x
platform:
architecture: s390x
os: linux
-
image: myimage-amd64
platform:
architecture: amd64
os: linux
• manifest list: defines contents of (composite) images
– allowing to specify architecture and variants, os, os and arch features, ...
• manifest tool: pushes manifest list to registry
– Official tool and details (signing, etc) are available
• registry : can store metadata and manifest list
– Hub, DTR,
• Container runtime engine: tells registry what to pull eventually
– standardize on usage of features is to come
30. IBM Z System
30
s390x
Docker registry
x86
app
app_x86
app_s390x
manifest
1- Create a manifest file which point to 2 docker container
docker manifest create –a app app_x86 app_ppc
2- Setup the conditions to point to each of the container
docker manifest annotate app app_s390x --os linux --arch s390x
docker manifest annotate app app_x86 --os linux --arch amd64
3- Push the manifest file to your docker repository
docker manifest push app
Here is a view on how to create a manifest file to point to the right images based on the
targeted hardware architecture.
How to make a container “portable” across hardware architectures ?
32. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
33. IBM Z System
33
Microservices
What is portable, what is not ?
Microservices are services built around business capabilities. These services are independently deployable through software designed to
orchestrate and automate the deployment of applications.
Monolithic
Style
Microservices
style
The Monolithic Architectural Style is an
application built as a single unit.
The Microservice Architectural Style is an
approach to developing a single application as a
suite of small services.
Pourquoi des Microservices?
• Agility
▪ Services evolve independently and at difference speeds
▪ Easier to adopt new technology and evolve architecture
▪ Enables continuous delivery
• Resilience
▪ Use services boundaries for fault tolerance and isolation
▪ Design for failure
• Runtime scalability
▪ Stateless services designed for horizontal scalability
▪ Services can be scaled independently
• Scalability of the development organisation
▪ Easier to develop services in parallel
▪ Smaller working set for each developer
34. IBM Z System
34
What is portable, what is not ?
Monolithic Microservices
Locked-in for long term commitment to a
technology stack.
Obstacle to frequent continuous deployments,
such as adding new functions quickly.
Intimidates developers as it is big, complex, hard to debug,
fix and understand.
Hard to scale as components tend to be closely
coupled and have lots of interdependencies.
Requires additional testing to ensure that services are resilient
and can fail independently.
Performance overhead due to increased distributed
network communication.
More complexity when dealing with stateful services, such
as databases, as they are split by function and typically
scaled horizontally.
Operational overhead due to the increase in the number of
services that need to be released, tested and monitored.
35. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
39. IBM Z System
39
Google
Cloud
AWS IBM Cloud
Azure
EC2 GCE VM, Bare Metal
AZURE VMs
CoreOS
CoreOS
CoreOS CoreOS
Multi-Cloud Federation
(cloud.redhat.com)
CoreOS
Private
Cloud
Cloud.redhat.com
▪ Install new clusters
▪ View capacity
OpenShift (k8s)
• Full-stack auto install (Master & Nodes)
• Zero-downtime full-stack updates
• Full-stack configure K8S and CoreOS
• Auto-scale cluster nodes
Red Hat Enterprise Linux CoreOS
• Secure, immutable container OS
• RHEL 8 kernel and core libraries
• Autonomous updates & config
Bare Metal, VMware, Private, Public Cloud
OpenShift 4.8
GAed on Z/LinuxONE
Red Hat OpenShift Container Platform on IBM Linux on Z and LinuxONE
OpenShift
Multi-Cluster, Full Stack, Autonomous, Secure
40. IBM Z System
40
Value of OpenShift
Red Hat Enterprise Linux | RHEL CoreOS
Kubernetes
Automated Operations
Cluster Services
Monitoring, Logging, Registry, Router,
Telemetry
Developer Services
Dev Tools, CI/CD, Automated Builds, IDE
Application Services
Service Mesh, Serverless,
Middleware/Runtimes, ISVs
CaaS PaaS
Best IT Ops Experience Best Developer Experience
FaaS
Value of Red Hat OpenShift
42. Claims
• Running the Acme Air benchmark on zCX, up to
98% of the zCX CPU consumption was measured
to be zIIP eligible.*
• IBM tests show how zCX workloads perform up to 2X more transactions
per second/per core, compared to running the same workload with x86
Docker container environment. zCX delivers a 43-69% reduction in total
costs of ownership.**
IBM z/OS Container Extensions (IBM zCX)
Integrate Linux applications into z/OS
42
Modernize z/OS workloads by providing flexibility for
development and operations on Z.
Maintain operational control and extend z/OS Qualities of
Service to Linux software.
Make use of existing IT investments by employing Linux within
the z/OS platform.
A z/OS V2.4 feature that enables the deployment and management of any open source and Linux on Z application with its associated
dependencies, packaged as images, within the z/OS environment without requiring a separately provisioned and managed Linux server.
For more information, visit the zCX content solutions page
Benefits
43. IBM Z System
43
Pre-packaged Linux Docker appliance
• Provided and maintained by IBM
• Provisioned using z/OSMF workflows
Provides standard Docker interfaces
• Supports deployment of any software available as a Docker image for Linux on Z
• Communications with native z/OS applications over high speed virtual IP network
• No z/OS skills required to develop and deploy Docker Containers. No Linux skills to deploy
zCX.
No Linux system administration skills required
• Interfaces limited to Docker CLI
• No direct access to underlying Linux kernel
Managed as a z/OS process
• Multiple instances can be deployed in a z/OS system
• Managed using z/OS Operational Procedures
• zCX workloads are zIIP eligible
Docker CLI
zCX – IBM Z Container Extensions
46. Agenda
- Why containers ?
- What is a container ? Differences with a Virtual Machine ?
- How to build it and how it works ?
- How to make a container “portable” across hardware architectures ?
- What is portable, what is not ?
- Solutions to host containers on IBM Z
- Which use cases ?
47. IBM Z System
47
Quels cas d’utilisations ?
1. Modernize & Optimize with
Cloud-enabled middleware
& data
Private Cloud Platform
Containers & VMs
Common Services
Next Generation Middleware,
Data & Analytics
Developer & Operations Services
Self-service Experience
2. Integrate with enterprise & cloud services
Public Cloud
Services
Machine Learning
Blockchain
Business Process
Data & Apps
3. Create new cloud native applications
On-Premises Software
& Services
Private Cloud Platform
Containers & VMs
Common Services
Integration Middleware & Data
Cloud Programming Models
Developer & Operations Services
APIs
Private Cloud Platform
Containers & VMs
Common Services
Cloud Native Services & Runtimes
Developer & Operations Services
New Applications
4. Strategic investments for Private Cloud
Hybrid Programming Model for Flexible and Integrated Development Experience
Consistent, Integrated and Extensible Operations & Management