Containers Revealed:
As Easy as Tic-Tac-Toe
@ViscosityNA
www.viscosityna.com
Latin America Oracle User Group Community Tour '23
July 29 - August 16, 2023
Sean Scott
Oracle ACE Director
DoK Community Ambassador
Managing Principal Consultant
@oraclesean
linkedin.com/in/soscott/
[email protected]
Slide 2
Slide 2 text
DATABASE RELIABILITY ENGINEERING ⁘ DEVOPS & AUTOMATION
HIGH AVAILABILITY ⁘ BUSINESS CONTINUITY ⁘ DISASTER RECOVERY
MODERNIZATION ⁘ OBSERVABILITY ⁘ ENGINEERED SYSTEMS
AutoUpgrade ⁘ Zero Downtime Migrations ⁘ Patching
Real Application Clusters ⁘ Data Guard ⁘ Sharding
Docker/Containers ⁘ Terraform ⁘ Ansible
Exadata ⁘ Oracle Database Appliance
AHF ⁘ TFA ⁘ GIMR ⁘ CHA
@ViscosityNA
www.viscosityna.com
Sean Scott
Oracle ACE Director
DoK Community Ambassador
Managing Principal Consultant
@oraclesean
linkedin.com/in/soscott/
[email protected]
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
An Open Community for
Data on Kubernetes
https://dok.community
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
@ViscosityNA
www.viscosityna.com
Oracle on Docker
Running Oracle Databases in Linux Containers
Download a free sample chapter:
https://oraclesean.com
20% Discount Code: OracleDocker
https://link.springer.com
Slide 7
Slide 7 text
@ViscosityNA
www.viscosityna.com
What Are Containers?
Slide 8
Slide 8 text
Containers are like lightweight Virtual Machines, right?
Slide 9
Slide 9 text
@ViscosityNA
www.viscosityna.com
Three full operating systems Three application/executable directories
Slide 10
Slide 10 text
@ViscosityNA
www.viscosityna.com
Three full operating systems Three application/executable directories
Slide 11
Slide 11 text
@ViscosityNA
www.viscosityna.com
www.viscosityna.com @ViscosityNA
13 Oracle Databases on a Laptop
2018 MacBook Pro 15", 2.2GHz 6-core Intel Core i7, 16GB, 1TB SSD
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
@ViscosityNA
www.viscosityna.com
Virtual Machines: Bootable OS, often heavy
Containers: Support one application or service
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
@ViscosityNA
www.viscosityna.com
Virtual Machines: Bootable OS, often heavy
A 100-page book of games & puzzles
Containers: Support one application or service
A sheet of paper with a Tic-Tac-Toe grid
Slide 17
Slide 17 text
@ViscosityNA
www.viscosityna.com
vo • cab • u • lar • y
@ViscosityNA
www.viscosityna.com
Games have structured playing
surfaces and rules.
Slide 20
Slide 20 text
@ViscosityNA
www.viscosityna.com
Services deliver games to players.
Slide 21
Slide 21 text
@ViscosityNA
www.viscosityna.com
Images include the
game rules and playing surface.
Slide 22
Slide 22 text
@ViscosityNA
www.viscosityna.com
Images are a minimal filesystem & metadata
needed to run a service.
Slide 23
Slide 23 text
@ViscosityNA
www.viscosityna.com
Running an image starts a Container.
Slide 24
Slide 24 text
@ViscosityNA
www.viscosityna.com
A container is:
A process on a host, and;
A Union Filesystem.
Slide 25
Slide 25 text
@ViscosityNA
www.viscosityna.com
Container processes are isolated.
Slide 26
Slide 26 text
@ViscosityNA
www.viscosityna.com
A Union Filesystem has three layers:
A Merge or Union Layer.
An Upper Layer.
A Lower Layer.
Slide 27
Slide 27 text
@ViscosityNA
www.viscosityna.com
A Union Filesystem has three layers:
A Merge or Union Layer: The game.
An Upper Layer: The container.
A Lower Layer: The image.
Slide 28
Slide 28 text
@ViscosityNA
www.viscosityna.com
Slide 29
Slide 29 text
@ViscosityNA
www.viscosityna.com
Slide 30
Slide 30 text
@ViscosityNA
www.viscosityna.com
The Upper (merge) layer isn't "real."
Slide 31
Slide 31 text
@ViscosityNA
www.viscosityna.com
The Upper (merge) layer isn't "real."
It's a perceived (calculated) union of:
• The game board & rules
• Game play
Slide 32
Slide 32 text
@ViscosityNA
www.viscosityna.com
Containers persist state (moves) in the
run-time layer of its Union Filesystem.
Containers are stateful.
Slide 33
Slide 33 text
@ViscosityNA
www.viscosityna.com
Deleting a container removes its
Union Filesystem (and its run-time layer).
Containers are Ephemeral
Slide 34
Slide 34 text
@ViscosityNA
www.viscosityna.com
Images are immutable and never change.
Slide 35
Slide 35 text
@ViscosityNA
www.viscosityna.com
Stalemate!
Slide 36
Slide 36 text
@ViscosityNA
www.viscosityna.com
Slide 37
Slide 37 text
@ViscosityNA
www.viscosityna.com
Slide 38
Slide 38 text
@ViscosityNA
www.viscosityna.com
Images are immutable and can't persist state
information. They are stateless.
Slide 39
Slide 39 text
@ViscosityNA
www.viscosityna.com
Images = Static
Containers = Living
Slide 40
Slide 40 text
@ViscosityNA
www.viscosityna.com
Containers are Magic!
Slide 41
Slide 41 text
@ViscosityNA
www.viscosityna.com
How much space do three containers use?
500MB
+ 500MB
+ 500MB
500MB
500MB
+ 500MB
+ 500MB
1,500MB
500MB
500MB 500MB
+
Slide 42
Slide 42 text
@ViscosityNA
www.viscosityna.com
Multiple identical containers will share an image.
@ViscosityNA
www.viscosityna.com
A Dockerfile is a recipe for building images.
Slide 45
Slide 45 text
@ViscosityNA
www.viscosityna.com
Paper
Tic-Tac-Toe Grid
Slide 46
Slide 46 text
@ViscosityNA
www.viscosityna.com
Image layers are modular and reusable.
Layers can be cached and reused
among multiple images.
Slide 47
Slide 47 text
@ViscosityNA
www.viscosityna.com
Paper
Game of Sums 3x3 Sudoku
Tic-Tac-Toe Grid
Slide 48
Slide 48 text
@ViscosityNA
www.viscosityna.com
Base Linux OS
TensorFlow Flask
Python
Slide 49
Slide 49 text
@ViscosityNA
www.viscosityna.com
Build Context
Slide 50
Slide 50 text
@ViscosityNA
www.viscosityna.com
Context is a pantry of image ingredients.
Slide 51
Slide 51 text
@ViscosityNA
www.viscosityna.com
Base Linux OS
RU 19.15 RU 19.16
Oracle Database 19.3.0
RU 19.17 RU 19.18
Slide 52
Slide 52 text
@ViscosityNA
www.viscosityna.com
Ignore files limit and control the build context.
Slide 53
Slide 53 text
@ViscosityNA
www.viscosityna.com
Images are the minimum collection of files
and directories needed to run an application.
They are immutable and stateless.
Slide 54
Slide 54 text
@ViscosityNA
www.viscosityna.com
Running an image creates a container
as the upper layer of a union filesystem,
superimposed over the image, and
starts an isolated process for container activity.
Containers are stateful, ephemeral,
and persist data to the filesystem.
Slide 55
Slide 55 text
@ViscosityNA
www.viscosityna.com
All containers share the same image,
allowing them to achieve tremendous capacity.
Containers are efficient and fast because
there is nothing to “boot” or copy.
Slide 56
Slide 56 text
@ViscosityNA
www.viscosityna.com
Building images creates a layer for each step.
Layers can be cached and shared
between images.
Slide 57
Slide 57 text
@ViscosityNA
www.viscosityna.com
Images are portable across clouds,
operating systems, and container engines.
Images run identically:
• in Docker, Podman, Kubernetes, etc.;
• on Mac, Windows, or Linux;
• and in any Cloud!
Slide 58
Slide 58 text
@ViscosityNA
www.viscosityna.com
Contact Me
[email protected]
https://linktr.ee/oraclesean