boost your apex deployment and provisioning with docker · windows 10 und azure. benefits ......
Post on 28-Jul-2018
245 Views
Preview:
TRANSCRIPT
Boost your APEX
Deployment and
Provisioning with
Docker
Steven Grzbielok:
17.11.2016 | DOAG 2016
Im Überblick
Technologie-orientiert
Branchen-unabhängig
Hauptsitz
Ratingen240
Beschäftigte
Gründungsjahr
1994
Niederlassung
Frankfurt am MainAusbildungs-
betrieb
Inhabergeführte
Aktiengesellschaft
Zertifizierter
Partner von
Oracle,
Microsoft
und SAP
3
About me
Steven Grzbielok• 1994 geboren, lebt in Frankfurt am Main
• B. Sc. in Wirtschaftsinformatik
• APEX Berater bei der MT AG seit 2014
• Beschäftigt sich hauptsächlich mit UI-Design und Webentwicklung, aber auch
Grundlagen der Datenbankadministration
4
Agenda
1. Grundlagen
2. Pull & Run
3. Build
4. Compose
5. Erweiterte Docker Compose Szenarien
6. Docker Swarm
5
Einige Inhalte dieser Präsentation werden aktuell von Oracle
ausdrücklich nicht für Produktivumgebungen empfohlen und
erhalten daher keinen Oracle-Support.
Jedoch kann Docker eine Bereicherung für Entwicklungs- und
Testumgebungen sein und möglicherweise in Zukunft Oracle-
Support erhalten.
6
Was ist Virtualisierung?
Server
VM VM VM VM VM VM
7
Der Unterschied: Ein Kernel für mehrere virtuelle Systeme
Container
Virtuelle Maschinen Container
Hardware
(Host OS)
Virtualization Layer/Hypervisor
Gast
1
Gast
3
Gast
2
Hardware
Host OS
Container engine
Guest OS‘s bins/libs
Cont
Cont
Cont
Cont
Cont Container
Applications
Dependencies
8
Virtual Machines vs. Containers
Avi Miller – CON7461 Oracle Linux, Docker and Oracle Container Registry
VMs Containers
Updates • Configuration Managment
• Update der einzelnen Gold Images
nötig
• Veränderungen können schneller und oft in
Container eingebunden werden
• Rebuilt und deployment sind schneller
umsetzbar
Performance • Heavy-weight: Oft verlangsamt durch
mehrere Abstraktionsschichten
• Lightweight: Container ist lediglich ein
Prozess des OS
• 100% nativer Zugriff auf die physische
Hardware
Hardwarenutzung • Geringere Abstraktion schwer möglich • 100% der physischen Hardware
konsumierbar
• Bei Überbelastung des Hosts kann der
Container leicht verschoben werden
Image Erstellung • Automatisierung mit Tools wie Puppet
• Hohe Dateigröße
• Wie VM, jedoch auch deklarativ durch die
Nutzung von Dockerfiles möglich
9
Was ist Docker?
• Virtualisierungsplattform für Linux Container
• Host OS = Guest OS
• Kombiniert Namespaces und cgroups für mehr Sicherheit und
Skalierbarkeit
• Copy-on-write and union filesystems
• Anfangs nur Linux unterstützt, bald auch Windows Server 2016,
Windows 10 und Azure
Benefits
Isolierung von Anwendungen und Abhängigkeiten
Filesystem Layers verbessern die Wiederverwendbarkeit zwischen Containern
Kosteneinsparungen im Gegensatz zu konventioneller Virtualisierung
Bessere Hardwarenutzung
10
Benefits/Use Cases
Use Cases
Anwendungsdeployment mit weniger Abhängigkeiten
Entwicklungs- und Testumgebung
Portabilität
11
Tausende offizielle Repositories und Community Repositories
Docker Hub
Test/Entwicklungsumgebung Up & Running in wenigen Minuten
Persönliche Test und Entwicklungsumgebungen komfortabel verteilen
Builds Teamweit verbreiten
Optimierte Architektur für sicheres Deployment
12
Oracle und Docker – Wie passt das?
Docker Pull
• Download eines fertigen Images
• Private oder öffentliche Repositories
• Single Container
Docker Build
• Umfangreichere Konfiguration mittels Dockerfile
• Einbezug lokaler Binärdaten möglich
Docker Compose
• Multicontainer Umgebungen
• Konfiguration mittels Composefile
13
Welche Möglichkeiten bietet Docker?
Single-Container Umgebung Multi-Container Umgebung
docker pull araczkowski/oracle-apex-ords
14
Docker Pull: ORDS 3.0.4, APEX 5.0.3 and Oracle XE 11g R2 8 Minuten
Getting started
https://hub.docker.com/r/araczkowski/oracle-apex-ords/
docker run -d --name ora -p 49160:22 -p 8080:8080 -p 1521:1521 araczkowski/oracle-apex-ords
15
Docker Run 2 Minuten
Getting started
Über GitHub und nicht Docker Hub
Auch kein Oracle Support…
.., aber offizielle Software.
Später über die Oracle Container Registry
16
Docker Build: Vorkonfiguriert und bereitgestellt von Oracle (Build Time ~ 23Minuten)
Offizielle Images von Oracle
https://blogs.oracle.com/developer/entry/creating_and_oracle_database_docker
17
Modulare Architektur
DBAPEX
DB
Tomcat &
ORDS
Host OS‘s bins/libs
Container engine
Host OS
Hardware
18
Docker Compose
Multi-Container Umgebung selber bauen
version: '2'
services:
businessdb:
image: sath89/oracle-xe-11g
ports:
- "8081:8080"
- "1522:1521"
apexdb:
image: sath89/oracle-xe-11g
ports:
- "8082:8080"
- "1523:1521"
websrv:
image: tomcat
ports:
- "8888:8080"
Jenkins Master
Jenkins in Docker Container
Commercially SupportedDocker Engine
Jenkins Slave
SSHD
Java Runtime
Commercially SupportedDocker Engine
Docker TrustedRegistry
Docker Trusted Registry Compnents
Commercially SupportedDocker Engine
19
CI/CD
https://www.docker.com/sites/default/files/RA_CI%20with%20Docker_08.25.2015.pdf
20
CI/CD
https://www.docker.com/sites/default/files/RA_CI%20with%20Docker_08.25.2015.pdf
• Erweiterung mit GitHub
• Commit Automatischer Start eines Jenkins
Jobs
Spezieller Clustering-Modus der Docker Engine
Orchestrisierungs-Umgebung
Integriertes Load-Balancing und Service Discovery
Dynamische Skalierung möglich
“swap, plug, and play”
Kompatibel mit Jenkins, Docker Compose…
21
Was ist Docker Swarm?
Cattle, not pets!
Denkbar …
…jedoch noch nicht implementiert.
Load Balancing auf Server-Ebene durch Docker Swarm
Automatische Skalierung durch Docker Swarm
Skript zum Hinzufügen von Nodes in den Real Application Cluster
22
Clustering mit Docker Swarm und RAC
Docker Swarm + RAC
Schnell verfügbare Entwicklungsumgebung bereitstellen
Keine Konflikte bei Abhängigkeiten oder fehlenden Packages
Saubere und portable Entwicklungsumgebung
„Leichtgewichtiger als VMs“
Besonders für die Zusammenarbeit von APEX mit anderen Technologien und Anwendungen geeignet
Besonders geeignet für CI/CD Szenarien
„Configure once, run many times“
Isolation der kleinen Container
Ergänzende Clusterarchitektur für das RAC
Kostenreduktion und Performanceverbesserung möglich
23
Was kann Docker für APEX tun?
Bei kleinen APEX Anwendungen
Wenn Anwendungen keinerlei Abhängigkeiten besitzen und lediglich mit einem Anwendungsexport deployt werden können
Wenn alles lediglich in der Datenbank liegt
Wenn die Vorteile von Pluggable Databases genutzt werden sollen
24
Wann wird Docker für APEX uninteressant?
Weitere Vorträge am 17.11.
Steven Grzbielok
Telefon: +49 2102 30961 – 0
steven.grzbielok@mt-ag.com
ROADSHOW
„VON FORMS NACH APEX“
24.01.2017 Hamburg
25.01.2017 Düsseldorf
26.01.2017 Frankfurt
27.01.2017 München
@sgrzbielok
www.xing.com/profile/Steven_Grzbielok
www.linkedin.com/in/sgrzbielok
top related