55
munz & more Docker in the Oracle Universe Including OCCS and Wercker Oracle Code Mexico City 2017 Dr. Frank Munz

From Docker Swarm to OCCS and Wercker: Live-hacking at Oracle CODE Mexico 2017

Embed Size (px)

Citation preview

munz & more

Docker in the Oracle Universe Including OCCS and Wercker

Oracle Code Mexico City 2017 Dr. Frank Munz

2

Frank Munz

• Founded munz & more in 2007

• 17 years Oracle Middleware,Cloud, and Distributed Computing

• Consulting and High-End Training

• Wrote two WebLogic books and one Cloud book

3 things aboutDocker

Solves the “Worked For Me!” issue

munz & more #4

OStools,JDK,patches,database

driver,libs,appserver,domain,deployment,tools,

scripts

Docker

OSutils,JDK,patches,databasedriver,libs,appserver,domain,deployment,tools,scripts

Integration,Performance,Acceptance

Testing

Production

dockerize it!

You can pass environment variables for specific settings e.g. in prod

Docker Registry

Docker in the Cloud?

Supported by every major cloud provider:

munz & more #5

On premise -> all clouds

DockerRegistry

DockerContainerService

EC2ContainerService

GoogleContainerEngine

AzureContainerService

Bluemix Containers

what should be your biggest nightmare:

unknown and unofficial images10s of thousands

Docker Registry

fancy a demo?

Small Images / Microservices

You can have a real service in ...

Possible Options:busybox andstatic binary

munz & more #8

Simple Life Inside Container

munz & more #9

processes

FS

mounts

Security

$ docker run -d –p 8080:9999 fmunz/micro

vs.

A stranger gives you a box at night and asks you to connect it to your company network:

Would you do it?

Oracle Options

WebLogicin a DockerContainer!

Official Support

#16^

Oracle support does not require you to use the provided Docker files

OracleProduct OfficialSupport

GlassFish

MySQL yes

NoSQL

OpenJDK

OracleLinux yes

OracleCoherence yes

OracleDatabase yes

OracleHTTPServer yes

OracleJDK yes

OracleTuxedo yes

OracleWebLogic yes

Oracle and Docker

To get images:

• Oracle Docker registry

• DIY: Dockerfile from Oracle github

To run Oracle Docker containers:

• Oracle Container Cloud Service

• Build and deploy with Wercker

munz & more #17

Docker Registry

Docker images from Oracle container registry (restricted to US / OZ / GB!)

Get image:

$ docker login container-registry.oracle.com$ docker pull container-registry.oracle.com/java/serverjre:8

munz & more #18

Just Drop Server JRE and WLS Installer

munz & more #19

$ cd java-8$ docker build -t oracle/jdk:8 .Sending build context to Docker daemon 4.096 kBStep 1 : FROM oraclelinux:latestlatest: Pulling from library/oraclelinux10ec637c060c: Downloading 4.865 MB/97.84 MB...

$ sh buildDockerImage.sh -g -v 12.2.1.1...

https://github.com/oracle/docker-images

Extend the WLS image

Sample script provided:

• Dockerfile to extend WLS image

• Run WLST script to create domain

• Create boot.properties

• Expose NM, Server ports

munz & more #20

LinuxBaseImage

JDKImage

WebLogicImage

WLSDomainImage

http://www.oracle.com/us/products/middleware/cloud-app-foundation/weblogic/weblogic-server-on-docker-wp-2742665.pdf

OracleWhitepaperWebLogiconDocker

munz & more #22

Good Docker book byJ. Turnbull / $ 9.99 (covering Docker 1.13)

Orchestration /Cluster Manager

Cluster Manager Options

OnPremise CloudDocker Swarm Docker1.12 DockerDC(EE)Kubernetes DIY GoogleOracle Oracle Registry

OracleGitOracle CCS

munz & more #24

Welcome

Mini J

Kubernetes (K8s)

• Kicked off by Google’s Borg

• Most active github project

• Orchestration for containers, e.g. Docker

• Declarative configuration

• Service discovery

• Rolling upgrades

munz & more #26

K8s

• YAML configuration• Pod: Container(s) sharing IP, network, filesystem

– IP is ephemeral– Uses Labels

• Replication Controller -> Replica Set– Manages PODs (restarts replicas based on labels)

• Services– Proxy for pod– Permanent IP

munz & more #27

Docker Swarm

• Native Docker cluster with same API asa single engine -> part of Docker

• Fast provisioning, about 500 msec

• Scheduling: spread, binpack, rand

• No insecure mode J

munz & more #28

Design Goals for Mini

• Hands-on Raspi experience

• Distributed Kubernetes setup & Docker Swarm setup

• HA / failover / rolling updates

• Have a fun project

munz & more #29

Others have build Raspi clusters as well and a lot of credit goes to them, e.g. to Roland Huss, Alex Ellis

etc

Design Decisions for Mini

• Hypriot Linux• 4 node cluster• ARM based -> runs ARM Docker images• Preferred Gbit switch, but WIFI only

– Better I/O throughput with separate WIFI chip

• Wifi router in hotspot mode– Mac OS issue with NAT

• DIY: github https://github.com/fmunz/raspicluster

munz & more #30

Paper bag Computer Raspberry Pi

• 1.2 GHz Quad Core ARM cortex-a53

• RAM: 1 GB LPDDR2 Speicher

• Dual Core VideoCore, 1920x1080

• Bluetooth

• 802.11 B/G WIFI

• Boots from micro SD card

• 38 €

munz & more #31

DIY Raspi Docker Cluster

munz & more #32

Component Price

Raspi 4x38€

MicroSD 4x11€

Power 28€

Wifi 22€

Case 30€

Wires 10€

Kubernetes or Swarm?

• Swarm wasn’t impressive when released,but this has changed

• Swarm is much easier to understand and to operate

• Swarm covers a lot of what K8s does

• Swarm is tightly linked to Docker API-> harder to replace Docker with e.g. Rocket

munz & more #33

Docker Swarm

munz & more #34

Google Kubernetes

munz & more #35

Docker Containers in Kubernetes

munz & more #36

OCCS

OCCS

• Easy way to run Docker container in Oracle cloud

• No need to install Docker, buy machines etc.

• Integrates with Docker hub and Oracle Container registry

• Does not use Kubernetes or Docker Swarm

fancy a demo?

Dashboard

Services

munz & more #41

Ressource Pools

munz & more #42

Service Editor

Deployment Pulls Image

munz & more #44

Running Grafana in OCCS

munz & more #45

• Grafana Docker image

• Runs on OCCS

• Measures Oracle Cloud DNS/ping fromworldwide locations

• Run it on OCCS without knowing muchabout Docker or Grafana!

munz & more #46

Webcasts on Youtube

munz & more #47

https://www.youtube.com/watch?v=YFWAUEjtTpk https://www.youtube.com/watch?v=aRj0WK6uids

Wercker

Wercker

• Recently acquired by Oracle

• Pipelines execute steps on code– Pipelines == series of steps

– Execute inside Docker container

• Workflows == chained and branched pipelines

• Quickly provision ready to run infrastructure– Push images to any registry

– Restart OCCS via webhooks

munz & more #49

https://app.wercker.com

munz & more #50

fancy a demo?

Predictions

• Swarm will take its share from Kubernetes.

• OCCS is the easier solution for OPC

• You will not dockerize 90% of your enterprise IT in the next 24 months.

• Docker is the new Linux. Be ready to experience that feeling we had with Linux 13 years ago J

• Sometimes Docker is the new PaaS.munz & more #52

Conclusion

• Docker is used in production today

• Docker, but more so cluster managers are still evolving

• Oracle caught the trend early – good!

• Many Oracle are supported

• OCCS saves you from the heavy lifting

• Wercker creates and deploys Docker imagesmunz & more #53

TL;DR @docker / #cloudworks for me: solved / cross cloud/ just Docker is not enough /#swarm is the easier #k8s / not a security risk / many products offered as images / official Oracle support & OCCS & Wercker / consider cloud services.

@frankmunz

www.munzandmore.com/blog

facebook.com/cloudcomputingbookfacebook.com/weblogicbook

@frankmunz

https://www.linkedin.com/in/frankmunz/

youtube.com/weblogicbook

-> more than 50 web casts

Don’t be

shy J