SlideShare ist ein Scribd-Unternehmen logo
1 von 47
© OPITZ CONSULTING 2018
 Überraschend mehr Möglichkeiten
© OPITZ CONSULTING 2018
Mit APEX in die Amazon Cloud
Maik Michel, Senior Developer / Consultant
OPITZ CONSULTING Deutschland GmbH
Dockerize It
© OPITZ CONSULTING 2018 Seite 2
Agenda
1
2
3
4
5
Motivation & Ziel
Rund um Docker
NginX und Let‘s Encrypt
Die Amazon Cloud
Orchestrierung
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 3
© OPITZ CONSULTING 2018 Seite 4
Motivation
 Warum ist APEX so unbekannt?
 Warum sind Angular, React und Co so beliebt?
 Warum können wir nur Enterprise?
 Warum hat der Friseur um die Ecke keine
APEX – Applikation?
 Wieso verwaltet mein Sportverein seine
Mitglieder nicht über eine APEX-Applikation?
1
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Seite 5
Was ist das Ziel
https://meine-app.auf-meiner-domain.de
 Erreichbar über HTTPS
 Über meine Domain
 Zu moderaten Kosten
 Performant und Skalierbar
 Und das bitte per Knopfdruck
1
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 6
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
Reverse Proxy
•NginX
•docker-gen
Let‘s Encrypt
•letsencrypt-nginx-proxy-
companion
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
Host-Volumes
• Zertifikate
APEX-Deployment
• Einspielen verschie-
dener Applikationen
1521 8080
80
443
3000
2376
© OPITZ CONSULTING 2018 Seite 7
Rund um Docker
2
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 8
Rund um Docker
Was ist Docker
Im Unterschied zu virtuellen Maschinen wird bei Containern nicht die Hardware emuliert,
sondern das Betriebssystem. Die Virtualisierung erfolgt somit auf höherer Ebene, ohne
einen Hypervisor
Quelle: https://www.claranet.de/managed-hosting-service/docker-container
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 9
Rund um Docker
Wie funktioniert Docker
https://docs.docker.com/v17.09/engine/docker-overview/#docker-architecture
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 10
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 11
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 12
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 13
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 14
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 15
Rund um Docker
DB Image - Dockerfile
„Erben“ eines Base Images
Definieren von Umgebungsvariablen
Kopieren von Dateien vom Host
Installieren von Packages
Ausführen Programmen oder Scripts
Definition von Volumes, Ports …
Definition des Starts
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 16
Rund um Docker
Container from DB Image
docker rundocker build
ContainerAuf BaseImage
aufsetzen
Umgebungsvariablen
defineren
Konfigurationsdateien
kopieren
Oracle Binaries
runterladen
Ports freigeben
Einstiegsskript
definieren
Einstiegsskript starten
DB
installiert
?
DB installieren
DB konfigurieren
DB starten
Ja
Nein
APEX 4 deinstallieren
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 17
Rund um Docker
Container from APP-Server Image
docker rundocker build
ContainerAuf BaseImage
aufsetzen
Umgebungsvariablen
definieren
Konfigurationsdateien
kopieren
APEX 18.2, Tomcat 8, ORDS,
JasperReportsIntegration, Java
runterladen
Ports freigeben
Einstiegsskript
definieren
Einstiegsskript starten
DB
erreichbar
?
ORDS
installiert
?
Tomcat starten
APEX installieren
ORDS installieren
JRI installieren
ggf. DDNS anpingen
Ja
Ja
Nein Nein
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 18
Rund um Docker
Container from NodeProxy
docker rundocker build
ContainerAuf BaseImage
aufsetzen
Arbeitsverzeichnis
festlegen
NPM installieren
APIProxy kopieren
Ports freigeben
Einstiegsskript
definieren
Starte node.js
API-Proxy
•Node mit express und
http-proxy-middleware
3000
Starte APIproxy
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 19
Rund um Docker
Lokale Entwicklungsumgebung
Einzelschritte
 docker volume create dbstore
 docker volume create appstore
 docker network create backnet
 docker build –t /oradb oradbimg
 docker run -d --network backnet --name oradb_cnt -p 1521:1521 -v dbstore:/u01/app/oracle -e
DB_PWD=xyz dbimage
 docker build –t /appsrv appsrvimg
 docker run -d --network backnet --name appsrv_cnt -p 8080:8080 -v appstore:/u01/apps -v
repstore:/u01/jasper/reports -e DB_PWD=xyz -e REP_PWD=xyz -e ORDS_PWD=xyz appsrvimg
 docker build –t /nodeprx nodeprximg
 docker run –d –network backnet –name nodeprx_cnt –p 3000:3000 nodeprximg
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 20
Rund um Docker
Lokale Entwicklungsumgebung
Besser geht es mit docker-compose
version: '2.2'
services:
oradb:
build:
context: ./oradb
container_name: oradb_cnt
mem_limit: 2g
ports:
- 1521:1521
volumes:
- dbstore:/u01/app/oracle
restart: always
appsrv:
build:
context: ./appsrv
environment:
- DB_HOST=oradb_cnt
container_name: appsrv_cnt
ports:
- 8080:8080
volumes:
- dbstore:/u01/app/oracle
- repstore:/u01/jasper/reports
- appstore:/u01/apps
restart: always
depends_on:
- oradb
nodeprx:
build:
context: ./nodeprx
container_name: nodeprx_cnt
ports:
- 3000:3000
restart: always
depends_on:
- oradb
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 21
Rund um Docker
Lokale Entwicklungsumgebung
 docker-compose
 Tool zum Definieren und Ausführen
von mehr als einem Container
 einfache Definition von Services in 1..n YAML-Dateien
docker-compose.yml
• dbservice
• env
• port
• volume
• appservice
• env
• port
• volume
• nodeprx
• …
local-development.yml
• dbservice
• env
• DB_PWD=secret
• FILES_XYZ=…
• appservice
• env
• DB_PWD=secret
• REP_PWD=secret
• ORDS_PWD=secret
• FILES_XYZ=…
 docker-compose –f docker-compose.yml –f local-development.yml build
 docker-compose –f docker-compose.yml –f local-development.yml up -d
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 22
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
1521 8080 3000
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 23
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
Reverse Proxy
•NginX
•docker-gen
Let‘s Encrypt
•letsencrypt-nginx-proxy-
companion
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
Host-Volumes
• Zertifikate
APEX-Deployment
• Einspielen verschie-
dener Applikationen
1521 8080
80
443
3000
2376
© OPITZ CONSULTING 2018 Seite 24
NginX und Let‘s Encrypt
3
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 25
NginX Reverse Proxy
User Reverse Proxy DatabaseApplication Server
80
443
8080
8081
8082
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 26
NginX Reverse Proxy mit Let‘s Encrypt
 docker-gen
 Überwachung Containerstarts
 Auslösen der Generierung der
NginX-Konfiguration
 Auslösen, der Zertifikatsgeneriung
über Let‘s Encrypt
 nginx-letsencrypt
 Validierung der Domain über
/.well-known/acme-challenge/
 Installation des Zertifikats
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 27
Routing mit NginX Reverse Proxy
http://my-apex-app.domain.de
https://my-apex-app.domain.de
NginX
APPSERVICE environment
VIRTUAL_HOST
my-apex-app.domain.de
VIRTUAL_NETWORK
nginx-proxy
VIRTUAL_PORT
8080
Applicationserver
Container
default.conf
…
upstream my-apex-app.domain.de {
server 172.18.0.3:8080;
}
server {
server_name my-apex-app.domain.de;
listen 80 ;
return 301 https://$host$request_uri;
}
server {
server_name my-apex-app.domain.de;
listen 443 ssl http2;
location / {
proxy_pass http://my-apex-app.domain.de
}
}
…
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 28
Rewriting mit NginX Reverse Proxy
http://my-apex-app.domain.de
https://my-apex-app.domain.de NginX
Deployment Definition
# target application number to install to
APP_NUM=100
# server proxied by nginx
# this is used to rewrite calls for location /
to that app
APP_SERVER=my-apex-app.domain.de
Deployment
Container
default.conf
…
server {
server_name my-apex-app.domain.de;
listen 443 ssl http2;
…
location = / {
rewrite ^ /ords/f?p=100;
}
}
…
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 29
Orchestrierung
docker-compose.yml
•dbservice
•build
•env
•port
•volume
•appservice
•build
•env
•port
•volume
•nodeprx
•build
•port
docker-compose-
remote.yml
•nginx-proxy
•ports: 80 + 443
•volumes
•letsencrypt-nginx-proxy
•volumes
remote-development.yml
•dbservice
•env
•DB_PWD=realysecret
•FILES_XYZ=…
•appservice
•env
•DB_PWD=realysecret
•REP_PWD=realysecret
•ORDS_PWD=realysecret
•FILES_XYZ=…
appsrv:
build:
args:
- DOWNLOAD_URL=https://s3.eu-central-1.amazonaws.com/xyz
- FILE_APEX=apex_18.2.zip
- TOM_PASSWORD=reallySecret
environment:
- DB_PASSWORD=reallySecret
- ORDS_PASSWORD=reallySecret
- REP_USER=jasper
- REP_PASSWORD=reallySecret
- REP_ENABLE_INFOPAGE=false
- APEX_USER=APEX_180200
- VIRTUAL_HOST=my-apex-app.domain.de
- LETSENCRYPT_HOST=my-apex-app.domain.de
- LETSENCRYPT_EMAIL=user.mail@domain.de
- DDNS_USER=myddnsuser
- DDNS_PASSWORD=reallySecret
- DDNS_URL=dyndns.kasserver.com
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 30
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
Reverse Proxy
•NginX
•docker-gen
Let‘s Encrypt
•letsencrypt-nginx-proxy-
companion
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
Host-Volumes
• Zertifikate
APEX-Deployment
• Einspielen verschie-
dener Applikationen
1521 8080
80
443
3000
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 31
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
Reverse Proxy
•NginX
•docker-gen
Let‘s Encrypt
•letsencrypt-nginx-proxy-
companion
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
Host-Volumes
• Zertifikate
APEX-Deployment
• Einspielen verschie-
dener Applikationen
1521 8080
80
443
3000
2376
© OPITZ CONSULTING 2018 Seite 32
Die Amazon Cloud
4
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 33
Die 3 Haupttypen des Cloud Computing
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 34
Amazon Web Services
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 35
Amazon Web Services
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 36
Elastic Cloud Computing - EC2
 stellt sichere, skalierbare Rechen-
kapazitäten in der Cloud bereit
 mühelos Kapazität erhalten und
konfigurieren
 Vorkonfigurierte Vorlagen für VMs/Instances
(Amazon Machine Images / AMIs)
 Instance-Typen zur Konfigurationen für
CPU, Arbeitsspeicher, Speicher und
Netzwerkkapazität der Instances t2.small
instance family
instance generation
instance size
https://microage.com/blog/aws-ec2-pricing-models/attachment/aws-ec2-instance-types/
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 37
Virtual Private Cloud - VPC
https://aws.amazon.com/de/blogs/apn/amazon-vpc-for-on-premises-network-engineers-part-one/
 selbst definiertes virtuelles
Netzwerk
 Netzwerkschicht von
verschiedenen Amazon AWS-
Ressourcen
 Konfiguration
 Ändern des IP-Adressbereichs,
 Erstellen von Subnetze und Routing-
Tabellen, Netzwerk-Gateways
 Anpassen verschiedener
Sicherheitseinstellungen
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 38
Das Setup
Datenbank
•Oracle XE 11.2 mit
APEX 18.2
Applikationserver
•Tomcat mit ORDS und
JasperReportsIntegration
API-Proxy
•Node mit express und
http-proxy-middleware
Reverse Proxy
•NginX
•docker-gen
Let‘s Encrypt
•letsencrypt-nginx-proxy-
companion
APPSRV-Volume
• Jasper-Dateien
• Applikationsdeployments
DB-Volume
• Datenbankdateien
• APEX Installationsdateien
Host-Volumes
• Zertifikate
APEX-Deployment
• Einspielen verschie-
dener Applikationen
1521 8080
80
443
3000
2376
© OPITZ CONSULTING 2018 Seite 39
Orchestrierung
5
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 40
Vorbereitung
 IAM - Benutzer erstellen (Identity and Access Management)
 Gruppe erstellen und zuweisen der Policy AmazonEC2FullAccess
 Benutzer der Gruppe hinzufügen
 AccessKey / Secret speichern
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 41
AWS-CLI
 Verwaltung und Konfiguration vieler AWS-Services über die
Kommandozeile
 Installation über: https://aws.amazon.com/de/cli/
 Konfiguration durch: aws configure
 AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
 AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
 Default region name [None]: eu-central-1
 Default output format [None]: json
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 42
docker-machine
https://docs.docker.com/machine/overview/#whats-the-difference-between-docker-engine-and-docker-machine
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 43
docker-machine
# Maschine anlegen
docker-machine -D create 
--driver amazonec2 
--amazonec2-access-key AKIAIOSFODNN7EXAMPLE 
--amazonec2-secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 
--amazonec2-vpc-id vpc-1234567 
--amazonec2-region eu-central-1 
--amazonec2-instance-type t2.small 
doag-2018
 Security Group für EC2 Instanz erstellen / anpassen
 GroupName docker-machine
 Inbound HTTP TCP 80 0.0.0.0/0
SSH TCP 22 0.0.0.0/0
Custom TCP Rule TCP 2376 0.0.0.0/0
Custom TCP Rule TCP 443 0.0.0.0/0
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 44
Das Script
 Mit docker-machine und aws-cli die EC2-Instanz erstellen
 Benötigte Dateien vom Client zum Host kopieren
 Mit docker-compose *** build die Images erstellen
 Mit docker-compose *** up –d die Container starten
 … das ganze Ziehen lassen … und mit docker-compose *** logs –f
betrachten
 Fertig
© OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 45
DOCKAWEX
 Klonen des Repositories: https://github.com/MaikMichel/dockawex
 Download und platzieren der benutzen Softwarekomponenten
 Kopieren und Anpassen einer Template-Machine (Verzeichnis)
 Anpassen der AWS-Konfiguration
 Ausführen des Setup-Scripts …
 [Deployen einer APEX-Applikation]
© OPITZ CONSULTING 2018 Seite 46
Offene Punkte / Fragen
 Sicherheit der Passwörter die im Klartext
enthalten sind
 Mapping mehrerer Subdomains zu
verschiedenen Applikationen
Dockerize It – Mit APEX in die Amazon Cloud
© OPITZ CONSULTING 2018
 Überraschend mehr Möglichkeiten
@OC_WIRE
OPITZCONSULTING
opitzconsulting
opitz-consulting-bcb8-1009116
WWW.OPITZ-CONSULTING.COM
Seite 47
Wer “A” sagt, muss auch “PEX” sagen!
Maik Michel
Senior Developer / Consultant – Standort Essen
Lazarettstraße 15 – 45127 Essen
+49 201 892994 1720
+49 173 7279405
maik.michel@opitz-consulting.com
micodify.de
github.com/MaikMichel
Dockerize It – Mit APEX in die Amazon Cloud

Weitere ähnliche Inhalte

Was ist angesagt?

Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Florian Holzhauer
 
Mehrserver Lösungen
Mehrserver LösungenMehrserver Lösungen
Mehrserver LösungenAvarteq
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerGregor Biswanger
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows ContainerThomas Wilhelm Wiefel
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...inovex GmbH
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveKlaus Bild
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthGerhard Lausser
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Gregor Biswanger
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 

Was ist angesagt? (18)

Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012
 
Mehrserver Lösungen
Mehrserver LösungenMehrserver Lösungen
Mehrserver Lösungen
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 

Ähnlich wie Dockerize It - Mit apex in die amazon cloud

Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektOPITZ CONSULTING Deutschland
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerB1 Systems GmbH
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentationbneselov
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudOPEN KNOWLEDGE GmbH
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinVerein FM Konferenz
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM BluemixStephan Max
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 

Ähnlich wie Dockerize It - Mit apex in die amazon cloud (20)

Apex meets Docker
Apex meets DockerApex meets Docker
Apex meets Docker
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Oracle forms goes docker
Oracle forms goes dockerOracle forms goes docker
Oracle forms goes docker
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 
Oracle und Docker
Oracle und DockerOracle und Docker
Oracle und Docker
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM Bluemix
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 

Mehr von OPITZ CONSULTING Deutschland

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 

Mehr von OPITZ CONSULTING Deutschland (20)

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 

Dockerize It - Mit apex in die amazon cloud

  • 1. © OPITZ CONSULTING 2018  Überraschend mehr Möglichkeiten © OPITZ CONSULTING 2018 Mit APEX in die Amazon Cloud Maik Michel, Senior Developer / Consultant OPITZ CONSULTING Deutschland GmbH Dockerize It
  • 2. © OPITZ CONSULTING 2018 Seite 2 Agenda 1 2 3 4 5 Motivation & Ziel Rund um Docker NginX und Let‘s Encrypt Die Amazon Cloud Orchestrierung Dockerize It – Mit APEX in die Amazon Cloud
  • 3. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 3
  • 4. © OPITZ CONSULTING 2018 Seite 4 Motivation  Warum ist APEX so unbekannt?  Warum sind Angular, React und Co so beliebt?  Warum können wir nur Enterprise?  Warum hat der Friseur um die Ecke keine APEX – Applikation?  Wieso verwaltet mein Sportverein seine Mitglieder nicht über eine APEX-Applikation? 1 Dockerize It – Mit APEX in die Amazon Cloud
  • 5. © OPITZ CONSULTING 2018 Seite 5 Was ist das Ziel https://meine-app.auf-meiner-domain.de  Erreichbar über HTTPS  Über meine Domain  Zu moderaten Kosten  Performant und Skalierbar  Und das bitte per Knopfdruck 1 Dockerize It – Mit APEX in die Amazon Cloud
  • 6. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 6 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware Reverse Proxy •NginX •docker-gen Let‘s Encrypt •letsencrypt-nginx-proxy- companion APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien Host-Volumes • Zertifikate APEX-Deployment • Einspielen verschie- dener Applikationen 1521 8080 80 443 3000 2376
  • 7. © OPITZ CONSULTING 2018 Seite 7 Rund um Docker 2 Dockerize It – Mit APEX in die Amazon Cloud
  • 8. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 8 Rund um Docker Was ist Docker Im Unterschied zu virtuellen Maschinen wird bei Containern nicht die Hardware emuliert, sondern das Betriebssystem. Die Virtualisierung erfolgt somit auf höherer Ebene, ohne einen Hypervisor Quelle: https://www.claranet.de/managed-hosting-service/docker-container
  • 9. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 9 Rund um Docker Wie funktioniert Docker https://docs.docker.com/v17.09/engine/docker-overview/#docker-architecture
  • 10. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 10 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 11. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 11 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 12. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 12 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 13. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 13 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 14. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 14 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 15. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 15 Rund um Docker DB Image - Dockerfile „Erben“ eines Base Images Definieren von Umgebungsvariablen Kopieren von Dateien vom Host Installieren von Packages Ausführen Programmen oder Scripts Definition von Volumes, Ports … Definition des Starts
  • 16. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 16 Rund um Docker Container from DB Image docker rundocker build ContainerAuf BaseImage aufsetzen Umgebungsvariablen defineren Konfigurationsdateien kopieren Oracle Binaries runterladen Ports freigeben Einstiegsskript definieren Einstiegsskript starten DB installiert ? DB installieren DB konfigurieren DB starten Ja Nein APEX 4 deinstallieren
  • 17. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 17 Rund um Docker Container from APP-Server Image docker rundocker build ContainerAuf BaseImage aufsetzen Umgebungsvariablen definieren Konfigurationsdateien kopieren APEX 18.2, Tomcat 8, ORDS, JasperReportsIntegration, Java runterladen Ports freigeben Einstiegsskript definieren Einstiegsskript starten DB erreichbar ? ORDS installiert ? Tomcat starten APEX installieren ORDS installieren JRI installieren ggf. DDNS anpingen Ja Ja Nein Nein
  • 18. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 18 Rund um Docker Container from NodeProxy docker rundocker build ContainerAuf BaseImage aufsetzen Arbeitsverzeichnis festlegen NPM installieren APIProxy kopieren Ports freigeben Einstiegsskript definieren Starte node.js API-Proxy •Node mit express und http-proxy-middleware 3000 Starte APIproxy
  • 19. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 19 Rund um Docker Lokale Entwicklungsumgebung Einzelschritte  docker volume create dbstore  docker volume create appstore  docker network create backnet  docker build –t /oradb oradbimg  docker run -d --network backnet --name oradb_cnt -p 1521:1521 -v dbstore:/u01/app/oracle -e DB_PWD=xyz dbimage  docker build –t /appsrv appsrvimg  docker run -d --network backnet --name appsrv_cnt -p 8080:8080 -v appstore:/u01/apps -v repstore:/u01/jasper/reports -e DB_PWD=xyz -e REP_PWD=xyz -e ORDS_PWD=xyz appsrvimg  docker build –t /nodeprx nodeprximg  docker run –d –network backnet –name nodeprx_cnt –p 3000:3000 nodeprximg
  • 20. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 20 Rund um Docker Lokale Entwicklungsumgebung Besser geht es mit docker-compose version: '2.2' services: oradb: build: context: ./oradb container_name: oradb_cnt mem_limit: 2g ports: - 1521:1521 volumes: - dbstore:/u01/app/oracle restart: always appsrv: build: context: ./appsrv environment: - DB_HOST=oradb_cnt container_name: appsrv_cnt ports: - 8080:8080 volumes: - dbstore:/u01/app/oracle - repstore:/u01/jasper/reports - appstore:/u01/apps restart: always depends_on: - oradb nodeprx: build: context: ./nodeprx container_name: nodeprx_cnt ports: - 3000:3000 restart: always depends_on: - oradb
  • 21. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 21 Rund um Docker Lokale Entwicklungsumgebung  docker-compose  Tool zum Definieren und Ausführen von mehr als einem Container  einfache Definition von Services in 1..n YAML-Dateien docker-compose.yml • dbservice • env • port • volume • appservice • env • port • volume • nodeprx • … local-development.yml • dbservice • env • DB_PWD=secret • FILES_XYZ=… • appservice • env • DB_PWD=secret • REP_PWD=secret • ORDS_PWD=secret • FILES_XYZ=…  docker-compose –f docker-compose.yml –f local-development.yml build  docker-compose –f docker-compose.yml –f local-development.yml up -d
  • 22. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 22 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien 1521 8080 3000
  • 23. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 23 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware Reverse Proxy •NginX •docker-gen Let‘s Encrypt •letsencrypt-nginx-proxy- companion APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien Host-Volumes • Zertifikate APEX-Deployment • Einspielen verschie- dener Applikationen 1521 8080 80 443 3000 2376
  • 24. © OPITZ CONSULTING 2018 Seite 24 NginX und Let‘s Encrypt 3 Dockerize It – Mit APEX in die Amazon Cloud
  • 25. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 25 NginX Reverse Proxy User Reverse Proxy DatabaseApplication Server 80 443 8080 8081 8082
  • 26. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 26 NginX Reverse Proxy mit Let‘s Encrypt  docker-gen  Überwachung Containerstarts  Auslösen der Generierung der NginX-Konfiguration  Auslösen, der Zertifikatsgeneriung über Let‘s Encrypt  nginx-letsencrypt  Validierung der Domain über /.well-known/acme-challenge/  Installation des Zertifikats
  • 27. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 27 Routing mit NginX Reverse Proxy http://my-apex-app.domain.de https://my-apex-app.domain.de NginX APPSERVICE environment VIRTUAL_HOST my-apex-app.domain.de VIRTUAL_NETWORK nginx-proxy VIRTUAL_PORT 8080 Applicationserver Container default.conf … upstream my-apex-app.domain.de { server 172.18.0.3:8080; } server { server_name my-apex-app.domain.de; listen 80 ; return 301 https://$host$request_uri; } server { server_name my-apex-app.domain.de; listen 443 ssl http2; location / { proxy_pass http://my-apex-app.domain.de } } …
  • 28. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 28 Rewriting mit NginX Reverse Proxy http://my-apex-app.domain.de https://my-apex-app.domain.de NginX Deployment Definition # target application number to install to APP_NUM=100 # server proxied by nginx # this is used to rewrite calls for location / to that app APP_SERVER=my-apex-app.domain.de Deployment Container default.conf … server { server_name my-apex-app.domain.de; listen 443 ssl http2; … location = / { rewrite ^ /ords/f?p=100; } } …
  • 29. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 29 Orchestrierung docker-compose.yml •dbservice •build •env •port •volume •appservice •build •env •port •volume •nodeprx •build •port docker-compose- remote.yml •nginx-proxy •ports: 80 + 443 •volumes •letsencrypt-nginx-proxy •volumes remote-development.yml •dbservice •env •DB_PWD=realysecret •FILES_XYZ=… •appservice •env •DB_PWD=realysecret •REP_PWD=realysecret •ORDS_PWD=realysecret •FILES_XYZ=… appsrv: build: args: - DOWNLOAD_URL=https://s3.eu-central-1.amazonaws.com/xyz - FILE_APEX=apex_18.2.zip - TOM_PASSWORD=reallySecret environment: - DB_PASSWORD=reallySecret - ORDS_PASSWORD=reallySecret - REP_USER=jasper - REP_PASSWORD=reallySecret - REP_ENABLE_INFOPAGE=false - APEX_USER=APEX_180200 - VIRTUAL_HOST=my-apex-app.domain.de - LETSENCRYPT_HOST=my-apex-app.domain.de - LETSENCRYPT_EMAIL=user.mail@domain.de - DDNS_USER=myddnsuser - DDNS_PASSWORD=reallySecret - DDNS_URL=dyndns.kasserver.com
  • 30. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 30 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware Reverse Proxy •NginX •docker-gen Let‘s Encrypt •letsencrypt-nginx-proxy- companion APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien Host-Volumes • Zertifikate APEX-Deployment • Einspielen verschie- dener Applikationen 1521 8080 80 443 3000
  • 31. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 31 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware Reverse Proxy •NginX •docker-gen Let‘s Encrypt •letsencrypt-nginx-proxy- companion APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien Host-Volumes • Zertifikate APEX-Deployment • Einspielen verschie- dener Applikationen 1521 8080 80 443 3000 2376
  • 32. © OPITZ CONSULTING 2018 Seite 32 Die Amazon Cloud 4 Dockerize It – Mit APEX in die Amazon Cloud
  • 33. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 33 Die 3 Haupttypen des Cloud Computing
  • 34. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 34 Amazon Web Services
  • 35. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 35 Amazon Web Services
  • 36. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 36 Elastic Cloud Computing - EC2  stellt sichere, skalierbare Rechen- kapazitäten in der Cloud bereit  mühelos Kapazität erhalten und konfigurieren  Vorkonfigurierte Vorlagen für VMs/Instances (Amazon Machine Images / AMIs)  Instance-Typen zur Konfigurationen für CPU, Arbeitsspeicher, Speicher und Netzwerkkapazität der Instances t2.small instance family instance generation instance size https://microage.com/blog/aws-ec2-pricing-models/attachment/aws-ec2-instance-types/
  • 37. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 37 Virtual Private Cloud - VPC https://aws.amazon.com/de/blogs/apn/amazon-vpc-for-on-premises-network-engineers-part-one/  selbst definiertes virtuelles Netzwerk  Netzwerkschicht von verschiedenen Amazon AWS- Ressourcen  Konfiguration  Ändern des IP-Adressbereichs,  Erstellen von Subnetze und Routing- Tabellen, Netzwerk-Gateways  Anpassen verschiedener Sicherheitseinstellungen
  • 38. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 38 Das Setup Datenbank •Oracle XE 11.2 mit APEX 18.2 Applikationserver •Tomcat mit ORDS und JasperReportsIntegration API-Proxy •Node mit express und http-proxy-middleware Reverse Proxy •NginX •docker-gen Let‘s Encrypt •letsencrypt-nginx-proxy- companion APPSRV-Volume • Jasper-Dateien • Applikationsdeployments DB-Volume • Datenbankdateien • APEX Installationsdateien Host-Volumes • Zertifikate APEX-Deployment • Einspielen verschie- dener Applikationen 1521 8080 80 443 3000 2376
  • 39. © OPITZ CONSULTING 2018 Seite 39 Orchestrierung 5 Dockerize It – Mit APEX in die Amazon Cloud
  • 40. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 40 Vorbereitung  IAM - Benutzer erstellen (Identity and Access Management)  Gruppe erstellen und zuweisen der Policy AmazonEC2FullAccess  Benutzer der Gruppe hinzufügen  AccessKey / Secret speichern
  • 41. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 41 AWS-CLI  Verwaltung und Konfiguration vieler AWS-Services über die Kommandozeile  Installation über: https://aws.amazon.com/de/cli/  Konfiguration durch: aws configure  AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE  AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY  Default region name [None]: eu-central-1  Default output format [None]: json
  • 42. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 42 docker-machine https://docs.docker.com/machine/overview/#whats-the-difference-between-docker-engine-and-docker-machine
  • 43. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 43 docker-machine # Maschine anlegen docker-machine -D create --driver amazonec2 --amazonec2-access-key AKIAIOSFODNN7EXAMPLE --amazonec2-secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --amazonec2-vpc-id vpc-1234567 --amazonec2-region eu-central-1 --amazonec2-instance-type t2.small doag-2018  Security Group für EC2 Instanz erstellen / anpassen  GroupName docker-machine  Inbound HTTP TCP 80 0.0.0.0/0 SSH TCP 22 0.0.0.0/0 Custom TCP Rule TCP 2376 0.0.0.0/0 Custom TCP Rule TCP 443 0.0.0.0/0
  • 44. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 44 Das Script  Mit docker-machine und aws-cli die EC2-Instanz erstellen  Benötigte Dateien vom Client zum Host kopieren  Mit docker-compose *** build die Images erstellen  Mit docker-compose *** up –d die Container starten  … das ganze Ziehen lassen … und mit docker-compose *** logs –f betrachten  Fertig
  • 45. © OPITZ CONSULTING 2018 Dockerize It – Mit APEX in die Amazon Cloud Seite 45 DOCKAWEX  Klonen des Repositories: https://github.com/MaikMichel/dockawex  Download und platzieren der benutzen Softwarekomponenten  Kopieren und Anpassen einer Template-Machine (Verzeichnis)  Anpassen der AWS-Konfiguration  Ausführen des Setup-Scripts …  [Deployen einer APEX-Applikation]
  • 46. © OPITZ CONSULTING 2018 Seite 46 Offene Punkte / Fragen  Sicherheit der Passwörter die im Klartext enthalten sind  Mapping mehrerer Subdomains zu verschiedenen Applikationen Dockerize It – Mit APEX in die Amazon Cloud
  • 47. © OPITZ CONSULTING 2018  Überraschend mehr Möglichkeiten @OC_WIRE OPITZCONSULTING opitzconsulting opitz-consulting-bcb8-1009116 WWW.OPITZ-CONSULTING.COM Seite 47 Wer “A” sagt, muss auch “PEX” sagen! Maik Michel Senior Developer / Consultant – Standort Essen Lazarettstraße 15 – 45127 Essen +49 201 892994 1720 +49 173 7279405 maik.michel@opitz-consulting.com micodify.de github.com/MaikMichel Dockerize It – Mit APEX in die Amazon Cloud

Hinweis der Redaktion

  1. Bildersuche nach aktuellen Development Frameworks Was hat ein Großteil dieser beliebten Frameworks gemeinsam? - Opensource - Frei Verfügbar - Geringer Bereitstellungsaufwand
  2. Fragen über Fragen Meiner Meinung nach müssen wir auch den Nachwuchs von APEX begeistern. Und das schaffen wir nicht im Enterprise-Umfeld, sondern im Umfeld der Entwickler, sei es im Verein, in der Schule, an der Uni …
  3. Demo? - Chrome: http://apex-connect18.mocodify.de - Shell: cd zielverzeichnis ./cma.sh apex-connect18
  4. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  5. Mit Hilfe der Open-Source Software Docker lassen sich Anwendungen in Containern isolieren Docker ist ein Open-Source-Projekt zur automatisierten Bereitstellung von Applikationen, die in einem Container organisiert sind. Für meine Applikation immer die gleiche Umgebung (zum Verteilen) Docker nutzt spezielle Kernelfunktionalitäten, um einzelne Prozesse in Containern voneinander zu isolieren. Für Prozesse, die mit Containern gestartet werden, scheint es so, als würden sie auf einem eigenen System laufen. 
  6. Ein Container ist eine laufende Instanz eines Images Images werden durch ein Dockerfile definiert
  7. Ein Dockerfile ist eine Art Bauanleitung für ein Docker-Image. Es enthält die einzelnen Schritte, die notwendig sind, um aus einem beliebigen Basis-Image ein neues Docker Image zu erstellen Bei stapelbaren Dateisystemen werden einzelne Schichten aufeinander gelegt. Jede dieser Schichten wird dabei getrennt erstellt
  8. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  9. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  10. DOCKER LETSENCRYPT NGINX PROXY COMPANION
  11. NginX Docker Image aus dem Standard docker-hub
  12. NginX Docker Image aus dem Standard docker-hub
  13. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  14. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  15. bezieht sich auf die Bereitstellung von IT-Ressourcen und Anwendungen auf Abruf über das Internet zu nutzungsabhängigen Preisen
  16. t2.small CPU: 1 RAM 2,0 CPU-Guthaben pro Stunde: 12 Preis / Stunde: 0,0232 USD Preis / Monat: 16,04 USD
  17. Erstmal wirken lassen Was sehen wir? Wir werden 5 Container starten, diese Container sind über bestimmte Ports erreichbar, speichern und teilen ihre Daten über verschiedene Volumes
  18. Hier wäre es cool einfach mal eine Machine zu erstellen
  19. Hier wäre es cool einfach mal eine Machine zu erstellen
  20. Hier wäre es cool einfach mal eine Machine zu erstellen
  21. Hier wäre es cool einfach mal eine Machine zu erstellen