Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Boost your APEX Deployment and Provisioning with Docker

1,012 views

Published on

DOAG 2016

Published in: Software
  • Ich kann eine Website empfehlen. Er hat mir wirklich geholfen. ⇒ www.WritersHilfe.com ⇐ Zufrieden und beeindruckt.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Boost your APEX Deployment and Provisioning with Docker

  1. 1. Boost your APEX Deployment and Provisioning with Docker Steven Grzbielok: 17.11.2016 | DOAG 2016
  2. 2. Im Überblick Technologie-orientiert Branchen-unabhängig Hauptsitz Ratingen 240 Beschäftigte Gründungsjahr 1994 Niederlassung Frankfurt am Main Ausbildungs- betrieb Inhabergeführte Aktiengesellschaft Zertifizierter Partner von Oracle, Microsoft und SAP
  3. 3. 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 und Virtualisierung
  4. 4. 4 Agenda 1. Grundlagen 2. Pull & Run 3. Build 4. Compose 5. Erweiterte Docker Compose Szenarien 6. Docker Swarm
  5. 5. 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. 6. 6 Fragen? Jederzeit Bescheid geben!
  7. 7. 7 Was ist Virtualisierung? Server VM VM VM VM VM VM
  8. 8. 8 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 Host OS‘s bins/libs Cont Cont Cont Cont Cont Container Applications Dependencies
  9. 9. 9 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
  10. 10. 10 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
  11. 11. Benefits  Isolierung von Anwendungen und Abhängigkeiten  Filesystem Layers verbessern die Wiederverwendbarkeit zwischen Containern  Kosteneinsparungen im Gegensatz zu konventioneller Virtualisierung  Bessere Hardwarenutzung 11 Benefits/Use Cases Use Cases  Anwendungsdeployment mit weniger Abhängigkeiten  Entwicklungs- und Testumgebung  Portabilität
  12. 12. 12 Tausende offizielle Repositories und Community Repositories Docker Hub
  13. 13.  Test/Entwicklungsumgebung  Up & Running in wenigen Minuten  Persönliche Test und Entwicklungsumgebungen komfortabel verteilen  Builds Teamweit verbreiten  Optimierte Architektur für sicheres Deployment 13 Oracle und Docker – Wie passt das?
  14. 14. 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 14 Welche Möglichkeiten bietet Docker? Single-Container Umgebung Multi-Container Umgebung
  15. 15. docker pull araczkowski/oracle-apex-ords 15 Docker Pull: ORDS 3.0.4, APEX 5.0.3 and Oracle XE 11g R2  8 Minuten Hinweis: Die Nutzung dieses Images widerspricht der Lizenzvereinbarung von Oracle und sollte deshalb vermieden werden. Dies ist lediglich eine Demonstration, wie einfach Docker funktioniert. Getting started https://hub.docker.com/r/araczkowski/oracle-apex-ords/
  16. 16. docker run -d --name ora -p 49160:22 -p 8080:8080 -p 1521:1521 araczkowski/oracle-apex-ords 16 Docker Run  2 Minuten Hinweis: Die Nutzung dieses Images widerspricht der Lizenzvereinbarung von Oracle und sollte deshalb vermieden werden. Dies ist lediglich eine Demonstration, wie einfach Docker funktioniert. Getting started
  17. 17.  Über GitHub und nicht Docker Hub  Auch kein Oracle Support…  .., aber offizielle Software.  Später über die Oracle Container Registry 17 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
  18. 18. 18 Ein Beispiel mit Docker Compose Modulare Architektur DB APEX DB Tomcat & ORDS Host OS‘s bins/libs Container engine Host OS Hardware
  19. 19. 19 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"
  20. 20. Jenkins Master Jenkins in Docker Container Commercially Supported Docker Engine Jenkins Slave SSHD Java Runtime Commercially Supported Docker Engine Docker Trusted Registry Docker Trusted Registry Compnents Commercially Supported Docker Engine 20 CI/CD https://www.docker.com/sites/default/files/RA_CI%20with%20Docker_08.25.2015.pdf
  21. 21. 21 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
  22. 22.  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… 22 Was ist Docker Swarm? Cattle, not pets!
  23. 23.  Denkbar …  …jedoch noch nicht implementiert.  Load Balancing auf Server-Ebene durch Docker Swarm möglich  Automatische Skalierung durch Docker Swarm  Skript zum Hinzufügen von Nodes in den Real Application Cluster 23 Clustering mit Docker Swarm und RAC Docker Swarm + RAC
  24. 24.  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 24 Was kann Docker für APEX tun?
  25. 25.  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 25 Wann wird Docker für APEX uninteressant?
  26. 26. Weitere Vorträge am 17.11.
  27. 27. 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
  28. 28. 9.-11. Mai 2017 in Berlin apex.doag.org Bis 21. November 2016 Vortrag einreichen!
  29. 29. @sgrzbielok xing.com/profile/ Steven_Grzbielok linkedin.com/in/ sgrzbielok mt-ag.com/blog/ about-these-things.com Corporate blog: Personal blog:

×