Post on 26-May-2020
Going to the CloudContainers &InterSystems Cloud ManagerLuca Ravazzolo
Product Manager
2 | © InterSystems Corporation. All rights reserved. |
Speed
We Can’t Make the Horse Faster.
If I had asked people what they wanted,
they would have said faster horses.
—Henry Ford
3 | © InterSystems Corporation. All rights reserved. |
4 | © InterSystems Corporation. All rights reserved. |
What is a container?
It’s a Standardized, Portable & Runnable software bundle – the Image
that is Executed in Isolation & Resource Controlled – the Container
5 | © InterSystems Corporation. All rights reserved. |
Docker Containers
A tool that can package and application and its runtime dependencies for deployment
into a Linux Container.
Docker builds on Linux Containers & adds
API
Image format
Runtime user-space
Registry
There is already a standard: OCI v1
Linux Kernel
cgroup namespace
Images Container
Docker
6 | © InterSystems Corporation. All rights reserved. |
Docker run
Docker Client Docker Engine
holds Images
Docker Hub & Docker Store
Running Container
7 | © InterSystems Corporation. All rights reserved. |
Docker build
Docker images
read only layers
built by hand or via Dockerfile
BYOContainer
Based on InterSystems image
Add App code
Add Key
Resolve dependencies
Configure
Dockerfile
Creation Build
Docker Layer
Docker Layer
Docker Layer
Container
Image
Pull Push
Run
8 | © InterSystems Corporation. All rights reserved. |
The Focus is on the Application Portability
simplified App delivery
Standard Application Package
software runs always in the same way anywhere
Lightweight Operational Benefits
Minimal footprint; efficient run-time; fast start; fast shutdown; No OS worries
Efficient Isolation without Emulation
Dependencies Satisfied at Build time
Faster Iteration and Release Cycles
Better resource utilization / higher packing factor
Consistent & Repeatable Process
9 | © InterSystems Corporation. All rights reserved. |
The Focus is on the Application Separation of Concerns between
Code &
Data
Separation of Concerns between Artefact Phases (12-factor app)
Build Phase &
Run Phase
Embrace immutability vs mutating systems (No System Drifts) BUILD RUN
CODE
DATA
10 | © InterSystems Corporation. All rights reserved. |
It’s another virtualization…
OK for microservices architectures (MSA)
I do Monolith... it ain’t for me
I don’t buy it
11 | © InterSystems Corporation. All rights reserved. |
Packaging Docker images
Distribution Docker Registry
Execution Docker Engine
Containers Solves a Lot of Problems
12 | © InterSystems Corporation. All rights reserved. |
Product Delivery
1
Developer
pushes
commits
Source
Code
Repository
2
Continuous
Integration
??
3
Deployment
=
Build and Test
7
code.xml
code.rtn
data.gbl
script.sh
config.params
cache.cpfCACHE.DAT
Code
Bundle.rpm
.tar.gz
.msi
CACHE.DAT
Data
Build
??
4
Test
??
5
Testing the App
or
Testing the Assembly
of Components?
OS version
Patch Level
Lib dependencies
DB installation
App dependencies
Configuration
Import Code
Compile Code
Copy .DAT
Must do!
13 | © InterSystems Corporation. All rights reserved. |
Product Delivery
1
Developer
pushes
commits
Source
Code
Repository
2
Continuous
Integration
??
3
Deployment
=
Build and Test
7
code.xml
code.rtn
data.gbl
script.sh
config.params
cache.cpf CACHE.DAT
Code
Bundle.rpm
.tar.gz
.msi
.jar
CACHE.DAT
Data
Build
??
4
Test
??
5
Testing the App
or
Testing the Assembly
of Components?
OS version, Patch Level, Lib
dependencies, DB installation,
App dependencies,
Configuration, Import Code,
Compile Code, Copy .DAT,
etc.
Must do!
14 | © InterSystems Corporation. All rights reserved. |
Continuous Delivery
Produce valuable and robust software in short cycles
Optimizing for feedback & learning
Not (necessarily) continuous deployment
15 | © InterSystems Corporation. All rights reserved. |
Creation of a build pipeline is mandatory for continuous delivery
16 | © InterSystems Corporation. All rights reserved. |
CI/CD with containers: Making your Dev env like Production
1
Developer
pushes
commits
Source
Code
Repository
Continuous
Integration
Service
Image or
Artefact
Build
Run
Tests
Push to
Registry
Deploy
to
Production
Developers are notified
2 3 4 5 6 7
Containers become the build pipeline single-binary
17 | © InterSystems Corporation. All rights reserved. |
Production Parity
The cost of fixing a bug exponentially increase the closer it gets to production
Docker allow us to mirror production environments by providing the same base-OS
layer, packages, libraries, dependencies & configuration options: all while giving users the flexibility to use their favorite platform to work on with their
favorite IDE and browser.
Works where you work Dev, Test, Pre-production, UAT, Production
18 | © InterSystems Corporation. All rights reserved. |
Dockerfile
Docker provides the same
easy workflow regardless of your role as a developer, operator, or designer (DevOps)
It leverages a declarative configuration file which describes
all your application software requirements
packages & lib dependencies, users, and more.
20 | © InterSystems Corporation. All rights reserved. |
2
0
21 | © InterSystems Corporation. All rights reserved. |
InterSystems has the passport!
First-class citizens
isc-main
Durable %SYS
22 | © InterSystems Corporation. All rights reserved. |
isc-main
Detachable container
Interrupts handling
Logs redirection
Powerful flags
before database startup
after database shutdown
key
instance name
routine
namespace
etc.
On
Startup
--key
--log
Before
IRIS
--before
--instance
--routine
After
IRIS--after
On
Exit--exit
23 | © InterSystems Corporation. All rights reserved. |
InterSystems-libs
InterSystems Container
Durable %SYS
System configuration durability
cache.cpf
cconsole.log
%SYS database
User credentials
Security Settings
etc.
WIJ
JRNs
etc.
/dev/xvdb /fast-reliable-FS/conf1.d
%SYS
-e ISC_DATA_DIRECTORY=/IRIS/conf1.d
-v /fast-reliable-FS:/IRIS
/IRIS/conf1.d/
/usr/IRIS/InterSystems-libs
InterSystems Container
v.2/IRIS/conf1.d
24 | © InterSystems Corporation. All rights reserved. |
$ docker run –d \
–e ISC_DATA_DIRECTORY=/IRIS/conf1.d \
–v /fast-reliable-FS:/IRIS \
-v /myAppDB:/DB \
-p 57772:57772
–p 1972:1972 \
myapp-container:v1
Typical Example
Durable %SYS
Linux Host
/boot /etc /usr /myAppDB
/dev /opt /fast-reliable-FS/conf1.d
/DB /IRIS/conf1.dmyapp-container:v1
26 | © InterSystems Corporation. All rights reserved. |
InterSystems Cloud Manager• Enterprise Infrastructure & Solution Abstraction
• declarative self-contained & self-describing definition for
• a specific cloud provider
• Compute nodes
• Storage
• Network and
• Infrastructure services
• Provisioning and Deployment
• define,
• create,
• provision &
• run a configured InterSystems cluster solution
• via simple JSON definition template
• leveraging containers
27 | © InterSystems Corporation. All rights reserved. |
Think out of the box
A g
il it
y
T i m e
28 | © InterSystems Corporation. All rights reserved. |
Bedtime Reading
Thank you.