weblogic im docker container

44
DOAG 2015, Nürnberg Andreas Koop WEBLOGIC IM DOCKER CONTAINER WebLogic WebLogic WebLogic

Upload: andreas-koop

Post on 15-Apr-2017

7.640 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: WebLogic im Docker Container

DOAG 2015, Nürnberg

Andreas Koop

WEBLOGIC IM DOCKER CONTAINER

WebLogic WebLogic

WebLogic

Page 2: WebLogic im Docker Container

Andreas Koop Geschäftsführung

& ConsultingABOUT ME

Consulting, Training Oracle Technology Oracle ADF Certified Implementation SpecialistCertified Professional for Software ArchitectureProfessional Scrum MasterCommunity DOAG, ADF EMG, ADF German Community, Google Plus,Twitter @andreaskoop @enpitBlogNews - http://www.enpit.de/blog Technical (english) - http://multikoop.blogspot.com

2

www.scope-alliance.de

Page 3: WebLogic im Docker Container

ENTERPRISE PRAGMATIC IT

Page 4: WebLogic im Docker Container

DOAG 2014, Nürnberg, Andreas Koop

AGENDA

Evolution der Systemumgebungen und -techniken

Docker Grundlagen

WebLogic in Docker, Topologien

Herausforderungen & Best Practices

Fazit & Ausblick

4

Page 5: WebLogic im Docker Container

Andreas Koop

EVOLUTION DER SYSTEMUMGEBUNGEN UND -TECHNIKEN

5

Physical Server

VirtualisierungVMWare, Virtualbox, Oracle VM, kvm, …

ProvisionierungVagrant, Puppet, Chef, Ansible, …

ContainerDocker, rkt, …

„On-The-Fly“AWS Lambda, nginScript VM …

Page 6: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

VIRTUAL MACHINE VS CONTAINER

6

Maschine

Host OS

Hypervisor

Guest OS

Bins/Libs

App 1

Maschine

OS

Bins/Libs

App 1

Container - Engine

Guest OS

Bins/Libs

App 2

Guest OS

Bins/Libs

App 3

Bins/Libs

App 2

Bins/Libs

App 3

Page 7: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

CONTAINER-TECHNOLOGIE IST HIP‣ Isolierte Prozessumgebung

‣ Schnell

‣ Leichtgewichtig

‣ Unveränderlich & Flüchtig

‣ Schnelle Bereitstellung

‣ Einfache Verteilung7

Page 8: WebLogic im Docker Container

Andreas Koop

DOCKER GRUNDLAGEN

8

Image Docker HubDockerfile

Registry

Container

build push

pull

runcommit

‣ bel. viele Container sind startbar

‣ Distribution auf beliebige Umgebungen

FROM oraclelinux:7.0…RUN rpm -i /u01/$JRPM…USER oracle

RUN java -jar $WLS....CMD [„startSmth.sh"]

Page 9: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

DOCKER IMAGE LAYERING

9

bootfs/kernel

Base Image ubuntu: 14Image

Image

apache:2.0wordpress: 3.3

Image my/wpsite: 1.0

ContainerContainerContainerContainer some_name 1..n

„copy on write fs“

Page 10: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

DOCKER INTERACTION

10

Docker Client

Docker Host (Linux)RegistryDocker Daemon

Containers

Images

docker builddocker rundocker pulldocker push…

Page 11: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

DOCKER GETTING STARTED‣ Docker Toolbox

(incl. Virtualbox & Kitematic)

‣ Mac/Win: Linux Host VM

11

Mac OS

Docker Client

boot2docker (Linux VM)

Docker Daemon

Container 1ContainerContainer

docker-machine create …

Page 12: WebLogic im Docker Container

DEMO

docker build ...

BASICS

docker run ...

docker ps ...

docker stop ...

docker rm ...

Page 13: WebLogic im Docker Container

DOAG 2014, Nürnberg, Andreas Koop

AGENDA

Evolution der Systemumgebungen und -techniken

Docker Grundlagen

WebLogic in Docker, Topologien

Herausforderungen & Best Practices

Fazit & Ausblick

13

Page 14: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

WEBLOGIC ON DOCKER OVERVIEW

14

Base Image: Oracle Linux 7 oraclelinux: 7Image: JDK 7 und WebLogic Bin

Image: WebLogic Domain

weblogic:12.2.1my/weblogicdomain:12.2.1

ContainerContainerContainer

Development

Image: WebLogic App 1 my/weblogicapp1:1.0

ContainerContainerContainer

Test

ContainerContainerContainer

Prod

Page 15: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

ORACLE ZERTIFIZIERUNG WEBLOGIC ON DOCKER

15

WebLogic JDK Host OS (Kernel) Docker

12.2.1 8 OL 6 UL 6 (3.8.13) OL 7 (3.8.13 / 3.10) 1.7+

12.2.1 8 RHEL 7 (3.10) 1.7+

12.1.3 7 / 8 OL 6 UL 5 (3.8.13) OL 7 (3.8.13 / 3.10) 1.3.3+

12.1.3 7 / 8 RHEL 7 (3.10) 1.3.3+

https://blogs.oracle.com/WebLogicServer/entry/oracle_weblogic_server_12_21

Page 16: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

BASE IMAGE

16

‣ Nothing to do! Oracle Linux 7, offizielles Image auf Docker-Hub verfügbar

Für alle Neugierigen. So schaut das Dockerfile aus

Page 17: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

‣ Kein „fertiges Image“ auf Docker-Hub verfügbar. wegen notw. „OTN Licence Agreement“ f. JDK / WLS Selber bauen.

JDK / WEBLOGIC IMAGE

17

Dockerfile für Developer- oder Generic-Installer verfügbar

12.1.3 und 12.2.1

docker build -t oracle/weblogic:12.2.1-dev .

Page 18: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

‣ Domain ist individuell. Docker-Image muss gebaut werden. Beispiele auf GitHub 12.1.3 / 12.2.1

WEBLOGIC DOMAINIMAGE

18

docker build -t enpit/samplewls:12.2.1-dev .

Page 19: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

WEBLOGIC DOCKER CONTAINER

19

WebLogic Docker Image

Container

AdminServer

Container

Managed Server

NodeManager

WebLogic Domain

2 Typen von WebLogic Containern möglich

Page 20: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

RUN WEBLOGIC CONTAINERS

20

docker run -d --name=wlsms1 --link wlsadmin:wlsadmin -p 7001:7001 -p 5556:5556 enpit/samplewls:12.2.1-dev createServer.sh

Run Base-Domain / AdminServer

Add Managed Server (Must be manually started)

docker run -d —name=wlsadmin -p 8001:8001 enpit/samplewls:12.2.1-dev

docker run -d --name=wlsms2 --link wlsadmin:wlsadmin enpit/samplewls:12.2.1-dev createServer.sh

Page 21: WebLogic im Docker Container

Andreas Koop 21

DEMO

Page 22: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

‣ Dockerfile + App (WAR or EAR) + WLST Skripts Step 1: Prepare WLST script(s)

WEBLOGIC APP IMAGE (1/2)

22

Page 23: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

‣ Step 2: Dockerfile -> Run WLST Script

WEBLOGIC APP IMAGE (2/2)

23

docker build -t enpit/shoppingcart:1.0-dev .

Page 24: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

RUN WEBLOGIC APP CONTAINERS

24

docker run -d -p 8001:8001 enpit/shoppingcart:1.0-dev

Run WebLogic Application (WAR)

Page 25: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

WEBLOGIC DOCKER TOPOLOGIEN

25

Page 26: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

TYPISCHE CONTAINER TOPOLOGIE

26

Linux Host 2 Container2WLS Domain(Admin)Server

App

Container3WLS Domain(Admin)Server

App

Linux Host 1Container1WLS Domain(Admin)Server

App

Load-Balancer

(OHS, OTD)

Page 27: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

TYPISCHE CONTAINER TOPOLOGIE‣ Jeder Container ist eine Instanz der selben

WebLogic Domain

‣ Alle Apps, Datenquellen, JMS, Libs werden auf den AdminServer bereitgestellt.

‣ „Docker-Way“ Topologie

‣ Kein Session-Failover möglich

‣ Einfach27

Page 28: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

Linux Host 1WLS Domain

KLASSISCHE WEBLOGIC TOPOLOGIE

28

Container1AdminServer

Dynamic Cluster

Load-Balancer

(OHS, OTD)

Container2ManagedServer

App

Container3ManagedServer

App

NodeManager NodeManager

! Stand heute kein Multi-Host Support

Page 29: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

KLASSISCHE WEBLOGIC TOPOLOGIE‣ Aus einem Image können 2 unterschiedliche

Container-Typen gestartet werden.

‣ Alle Apps, Datenquellen, JMS, Libs werden auf ManagedServern bereitgestellt.

‣ Klassische Topologie, Docker untypisch

‣ Session-Failover möglich

‣ Komplex(er)29

Page 30: WebLogic im Docker Container

DOAG 2014, Nürnberg, Andreas Koop

AGENDA

Evolution der Systemumgebungen und -techniken

Docker Grundlagen

WebLogic in Docker, Topologien

Herausforderungen & Best Practices

Fazit & Ausblick

30

Page 31: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

HERAUSFORDERUNGEN

31

MIT PERSPEKTIVE

Page 32: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

HERAUSFORDERUNGEN IN EINER CONTAINER WELT‣ Persistente Daten - Datenbank, Logs, „State“…

=> Volume Management (Data Containers, …)

‣ Container-Linking/Orchestrierung, Service-Discovery => Cluster-Management (Swarm, Kubernetes, Mesosphere, …)

‣ Monitoring=> Sensu, cAdvisor, Prometheus, …

‣ Neue Betriebsprozesse, SW-Architekturen => Skills, Organisationsstrukturen, Agilität

32

Page 33: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

PERSPEKTIVE‣ Improved Networking in Docker 1.9 => linking

becomes deprecated. Multi-Host Support!

‣ Service Discovery / Cluster, Scheduling-Management mit docker swarm und etcd, consul oder zookeeper

‣ Standardisierung von Microservice-Architekturen

‣ new: Oracle Docker Cloud Service

33

Page 34: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

BEST PRACTICE

34

Page 35: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

ERSTELLUNG VON WEBLOGIC IMAGES‣ Images klein halten! Insbesondere auch die

einzelnen Layer. (Cleanup nicht vergessen bei yum / apt-get / Installationsfiles !)

‣ Ggf. Nutzung bestehender Provisionierungsskripte wie Puppet, Chef, Ansible

‣ Bonus: Bereitstellung eines build.sh Skripts

35

Page 36: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

MULTI CONTAINER SETUP MIT DOCKER-COMPOSE

36

weblogic

oradb

docker-compose up -d

Page 37: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

UPGRADE / PATCHING‣ Erweiterung des Basis WebLogic Docker Images

‣ Neue Container können anschließend vom gepatchten Image gestartet werden.

37

oraclelinux: 7

weblogic:12.2.1-dev

weblogic:12.2.2p-dev

weblogic:12.2.3p-dev

Page 38: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

WEBLOGIC ON DOCKER IN DER SW-ENTWICKLUNG‣ Überschaubare Komplexität. Geringes Investment

‣ Neben WebLogic-Umgebungen können auch ganze Entwicklungsumgebungen inkl. IDE erstellt werden. Zugriff erfolgt dann via X11, VNC, RDP oder XRDP.

‣ Es lohnt sich sich mit Docker zu befassen!

38

Page 39: WebLogic im Docker Container

DOAG 2014, Nürnberg, Andreas Koop

AGENDA

Evolution der Systemumgebungen und -techniken

Docker Grundlagen

WebLogic in Docker, Topologien

Herausforderungen & Best Practices

Fazit & Ausblick

39

Page 40: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

ZUSAMMENFASSUNG & FAZIT‣ Docker macht Spaß, ist schnell. Container sind

kurzlebig. Umdenken notwendig.

‣ Auswirkungen Software- & Systemarchitektur: Neue Herausforderungen bzgl. Service-Discovery, Container-Cluster-Management, Monitoring!

‣ Isolation, Mandantenfähigkeit, Cluster-Management auf Container-Ebene zu erwarten

‣ Produktivumgebungen sind nicht zu unterschätzen

40

Page 41: WebLogic im Docker Container

DOAG 2015, Nürnberg, Andreas Koop

WEITERE INFORMATIONEN‣ The Docker Book

‣ WebLogic 12.2.1 on Docker Dochttp://docs.oracle.com/middleware/1221/wls/DOCKR/overvew.htm

‣ WebLogic Docker Whitepaper (June 2015) http://www.oracle.com/technetwork/middleware/weblogic/overview/weblogic-server-docker-containers-2491959.pdf

‣ WebLogic Dockerfiles on GitHub.com https://github.com/oracle/docker/tree/master/OracleWebLogic

41

Page 42: WebLogic im Docker Container

VIELEN DANK FÜR IHRE AUFMERKSAMKEIT

HABEN SIE NOCH FRAGEN?

Page 43: WebLogic im Docker Container

DOAG 2015, Nürnberg 43

Treffen Sie uns am Stand der scope alliance auf Ebene 1

Page 44: WebLogic im Docker Container