oracle code 2017 san francisco: docker on raspi swarm to occs
TRANSCRIPT
munz & more
Docker Live HackingFrom Raspi to OCCS & Wercker
Oracle CODE 2017 SFO Dr. Frank Munz
2
Dr. Frank Munz
• Founded munz & more in 2007• 17 years Oracle Middleware,Cloud, and Distributed Computing
• Consulting and High-End Training
• Wrote two Oracle WLS andone 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
Docker Registry
fancy a demo?
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?
what should be your biggest nightmare:
unknown and unofficial images10s of thousands
Oracle Options
WebLogicin a DockerContainer!
Official Support
#14^
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
Get Oracle images:• Docker registry • DIY: Dockerfile from Oracle github
To run Oracle Docker containers• Build and deploy with Wercker• Oracle Container Cloud Service
munz & more #15
https://github.com/oracle/docker-images
Just Drop Server JRE and WLS Installer
munz & more #16
$ 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
http://www.oracle.com/us/products/middleware/cloud-app-foundation/weblogic/weblogic-server-on-docker-wp-2742665.pdf
Oracle Whitepaper WebLogiconDocker
Orchestration /Cluster Manager
Cluster Manager Options
OnPremise CloudDocker Swarm Docker1.12 DockerDC(EE)Kubernetes DIY Google/MSOracle Oracle Registry
OracleGitOracle CCS
munz & more #19
localhost is usually the wrong setting in a distributed system
Welcome
Mini J
DIY Raspi Docker Cluster
munz & more #22
Component Price
Raspi 4x38€
MicroSD 4x11€
Power 28€
Wifi 22€
Case 30€
Wires 10€
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 #23
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 #24
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 #25
Design Goals for Mini
• Hands-on Raspi experience• Distributed Kubernetes setup
& Docker Swarm setup • HA / failover / rolling updates• Have a fun project
munz & more #26
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• Better I/O throughput due to separate WIFI chip • Wifi router in hotspot mode
– Mac OS issue with NAT • DIY: github
https://github.com/fmunz/raspicluster
munz & more #27
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 #28
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 #29
Google Kubernetes
munz & more #30https://blog.docker.com/2016/03/swarmweek-docker-swarm-exceeds-kubernetes-scale/
Docker Containers in Kubernetes
munz & more #31
Docker Swarm
munz & more #32
https://blog.docker.com/2016/03/swarmweek-docker-swarm-exceeds-kubernetes-scale/
Managed Enterprise Solution for running
Docker?
OCCS
OCCS
• Easy way to run Docker container in Oracle cloud
• No need to install Docker, Kubernetes, 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 #38
Ressource Pools
munz & more #39
Service Editor
Deployment Pulls Image
munz & more #41
Running Grafana in OCCS
munz & more #42
Grafana Example
• Grafana Docker image• Runs on OCCS• Measures Oracle Cloud DNS/ping from
worldwide locations• Run it on OCCS without knowing much
about Docker or Grafana!
munz & more #43
Webcasts on Youtube
munz & more #44
https://www.youtube.com/watch?v=YFWAUEjtTpk https://www.youtube.com/watch?v=aRj0WK6uids
How to create and deploy Docker images in an enterprise
environment?
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 #47
https://app.wercker.com
munz & more #48
fancy a demo?
Predictions
• Swarm will take its share from Kubernetes.• OCCS is an easy solution in OPC • You will not dockerize 90% of your enterprise IT
in the next 24 months.• Docker is like the new Linux.
Be ready to experience that feeling we had with Linux 13 years ago J
• Docker is (sometimes) the new PaaS.munz & more #50
TL;DR @docker #cloudDocker is used in production /cross cloud / just Docker is not enough / #swarm is the easier #k8s / not a security risk / many products offered as images / OCCS & Wercker saves you from heavy lifting / Oracle caught the trend! / consider cloud services.
@frankmunz
3MembershipTiers• OracleACEDirector• OracleACE• OracleACEAssociate
bit.ly/OracleACEProgram
500+TechnicalExpertsHelpingPeersGlobally
Connect:
Nominateyourselforsomeoneyouknow:acenomination.oracle.com
@oracleace
Facebook.com/oracleaces
Sign up for Free Trial
http://cloud.oracle.com
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