SlideShare a Scribd company logo
DOAG 2013 IMC,Mainz, 06. Juni 2013
Andreas Koop
CEO & Consultant
Oracle Technologies
DEPLOYMENT BEST PRACTICES
ON WEBLOGIC SERVER
Challenges
Strategies
Plan
Best Practices
Andreas Koop
CEO & Consultant
Oracle TechnologiesABOUT
Consulting, Training Oracle Fusion Middleware
ADF Certified Implementation Specialist
Community
DOAG, ADF EMG, ADF German Community, Twitter @multikoop
Blog
Technical http://multikoop.blogspot.com
Sonstiges http://www.enpit.de/blog
2
Training DevelopmentConsulting
Oracle Fusion
Middleware
Oracle
ADF
Oracle
WebLogic
Oracle
WebCenter
ENTERPRISE PRAGMATIC IT
Andreas Koop
AGENDA
Deployment Challenges
Deployment Tools & Strategies
Deployment Plan
Production Redeployment
Pain Points & Conclusion
4
Andreas Koop
DEPLOYMENT CHALLENGES
‣ Multiple Apps, multiple versions, instant releases..
‣ Application development becomes easy,
Middleware becomes complex:
DataSources, WebServices, Processes, JMS, MDS,
App Roles, Permissions, custom configuration,
What else?
‣ Who can handle this?
5
Andreas Koop
APPLICATION DEPLOYMENT
OVERVIEW
‣ Prepare
‣ Copy deployment units to
target servers if needed
‣ Deploy
‣ Shared Libraries
‣ Applications
DataSources
JMS Topics/Queues
EJBs
..
6
AS App1 App2
App / Lib
deploy
Cluster
(sample topology)
Andreas Koop
WEBLOGIC DEPLOYMENT
TOOLS
‣ java weblogic.Deployer (. ./setWLSEnv.sh)
‣ Ant Task / Maven / Autodeploy
=> Development / Test
‣ WLST Commands
=> Development / Test / Production
‣ Admin Console / EM
=> Development / AdHoc Cases / Support
7
! Do not use in
Production
My Favorit! Gives a
lot of predictability and
safety!
Andreas Koop
STAGING MODE: STAGE FOR
SMALL APPLICATIONS
‣ Admin Server copies
deployment unit to
servers/<name>/
stage
‣ Managed Servers deploy
using their local copy
‣ => Use for small
applications !
8
AS App1 App2
App
deploy
ear
earcopy
earcopy
(sample topology)
Andreas Koop
‣ Admin Server does not
copy deployment units
‣ shared, directly
accessibly by AS and MS
‣ => Use for large
applications or exploded
-->Reload of JSP/Servlet
‣ => Saves time!
AS App1 App2
STAGING MODE: NO STAGE
FOR LARGE APPLICATIONS
9
/shared/apps/myapp1.ear
App
deploy
(sample topology)
Andreas Koop
‣ Admin Server does not
copy deployment units
‣ Manuel copy to AS and
MS needed
‣ => Use if no shared fs
available
‣ => Use if scripts for
manual distrib. exists
STAGING MODE: EXTERNAL
STAGE FOR...
10
AS App1 App2
App
deploy
earcopy
earcopy
earcopy
Admin
Guy
(sample topology)
Andreas Koop
WHERE TO LOCATE
DEPLOYMENT UNITS
‣ ! Prerequisite: Do not use default for domain home:
$MW_HOME/user_projects/domains
‣ Locate domain outside $MW_HOME
‣ Locate App artefacts outside $MW_HOME
11
/domains/mydomain/
/applications/mydomain/myapp1/1.0/app/myapp1.ear
/applications/mydomain/myapp1/1.0/plan/plan.xml
Andreas Koop
QUIZ: WHAT DO THAT OPTIONS
MEAN? (FROM ADMIN CONSOLE)
12
AS uses nostage by
default
MS uses stage by
default
depends
stage
nostage
Andreas Koop
DEPLOY WITH ANT
13
<?xml version="1.0" encoding="UTF-8" ?>
<project name="deploy-myapp" default="deploy">
<path id="weblogic.deploy.path">
<fileset file="${weblogic.home}/server/lib/weblogic.jar" />
<fileset file="${weblogic.home}/server/lib/webservices.jar" />
</path>
<taskdef name="wldeploy"
classname="weblogic.ant.taskdefs.management.WLDeploy"
classpathref="weblogic.deploy.path" />
<target name="deploy">
</target>
</project>
<wldeploy action="deploy"
user="${weblogic.user}"
password="${weblogic.password}"
adminurl="${weblogic.adminurl}"
source="${app.webapp}" name="${app.name}"
targets="${weblogic.targets}" verbose="true"
debug="false"
/>
Andreas Koop
DEPLOY WITH ANT
EXTENDED
14
<?xml version="1.0" encoding="UTF-8" ?>
<project name="deploy-myapp" default="deploy">
...
<!-- WLS Taskdefs -->
<path id="wls.classpath">
<fileset dir="${oracle.weblogic.home}/server/lib" includes="weblogic.jar"/>
</path>
<taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask"
classpathref="wls.classpath"/>
<target name="deploy">
<echo message=" Deploying application ... "/>
</target>
...
</project>
<wlst debug="true" failOnError="true" classpathref="wls.classpath"
fileName="./wlst/deploy.py"
arguments="....." >
</wlst>
Reuse existing WLST
Scripts!
Andreas Koop
DEPLOY WITH MAVEN
PREPARE
‣ Need to generate maven plugin with the WebLogic
JarBuilder Tool (at least in 11g)
‣ Install into Maven Repository(see documentation)
‣ Use in your projects pom.xml (see next slide)
15
$ java -jar wljarbuilder.jar -profile weblogic-maven-plugin
..
..
Created new jar file: ../wlserver_10.3/server/lib/weblogic-maven-plugin.jar
Andreas Koop
DEPLOY WITH MAVEN
USE
‣ Directly
‣ In ,install‘ Maven Lifecycle of your pom.xml
16
$ mvn weblogic:deploy
<plugin> 
 <groupId>com.oracle.weblogic</groupId>
  <artifactId>weblogic-maven-plugin</artifactId>
<version>10.3.6</version>
<configuration>
<adminurl>t3://localhost:7001</adminurl>
<user>weblogic</user>
<password>password</password>
<name>myapp</name>
<upload>true</upload>
<targets>AdminServer</targets>
 </configuration>
Andreas Koop
DEPLOY WITH MAVEN
USE
‣ In ,install‘ Maven Lifecycle of your pom.xml
17
...
 <executions>
<execution>
<id>deploy</id>
<phase>install</phase>
     <goals>
       <goal>deploy</goal>
     </goals>
     <configuration>
       <source>deploy/myapp.war</source>
     </configuration>
   </execution>
 </executions>
</plugin>
Andreas Koop
DEPLOYMENT WITH ANT / MVN
CONCLUSION
‣ „Pure Ant“ WebLogic Deployment Tasks are not
powerful enough.
‣ Extend where needed with custom WLST scripts
‣ Fits typically well in existing CI Build Environment
‣ Extended Maven Features in WLS 12c : create-
domain, start-server .... !
18
Andreas Koop
DEPLOY WITH WLST
HOW TO
19
connect('weblogic', 'welcome1', ADMIN_URL)
deploy('myApp', '/path/to/myApp.ear', targets='Cluster1')
# targets='Server1'
startApplication('myApp')
disconnect()
exit()
Andreas Koop
UNDEPLOY WITH WLST
HOW TO
20
connect('weblogic', 'welcome1', ADMIN_URL)
stopApplication('myApp')
undeploy('myApp')
# default: from all targets
disconnect()
exit()
Andreas Koop
WLST DEPLOYMENT
COMMANDS
21
Command
deploy(appName, path, [targets], [stageMode], [planPath], [options])
startApplication(appName, [options])
stopApplication(appName, [options])
undeploy(appName,[targets],[options])
updateApplication(appName, [planPath], [options])
Update app with
plan.xml
listApplications()
Andreas Koop
‣ Always start with a cluster - even if only a single
MS is needed at the beginning
‣ => Easily to scale afterwards
‣ => No changes to deployment
strategy needed
DEPLOY TO A CLUSTER FROM
THE BEGINNING
22
App1 / Lib
deploy
App1
Cluster
App1
Cluster
App1
...
Andreas Koop
HANDLING DIFFERENT ENV
REQUIREMENTS
23
Development Test Production
DataSource DataSource DataSource
weblogic.xml
jsp-descriptor/verbose
= true
...
weblogic.xml
jsp-descriptor/verbose
= false
...
weblogic.xml
jsp-descriptor/verbose
= false
...
web.xml
init-param/name[css-
compression]=off
session-timeout = 3600
...
web.xml
init-param/name[css-
compression]=on
session-timeout = 60
...
web.xml
init-param/name[css-
compression]=on
session-timeout = 7200
...
...
...
Andreas Koop
HANDLING DIFFERENT ENV
REQUIREMENTS
24
Development Test Production
DataSource DataSource DataSource
plan.xml
web.xml -> session-
timeout = 3600
weblogic.xml -> ...
plan.xml
web.xml -> session-
timeout = 60
weblogic.xml -> ...
plan.xml
web.xml -> session-
timeout = 7200
weblogic.xml -> ...
EAR EAR EAR
...
...
deploy deploy deploy
+ ++
Andreas Koop
WHAT IS A DEPLOYMENT PLAN
‣ Plan (plan.xml) used with deployment artefact
‣ Replacing values by XPath / Variables
‣ Useful for
‣ Changes to web.xml / weblogic.xml / Other XML
‣ ! No changes to .properties possible
‣ „Deploy myapp.ear -plan /path/to/plan.xml ...“
25
Andreas Koop
DEPLOYMENT PLAN
CREATION / EDITING
‣ Working with plan.xml and plain text editor is
difficult! Best Practice: OEPE plan.xml Editor!
26
Or use
,java weblogic.PlanGenerator‘
Andreas Koop
EDIT DEPLOYMENT PLAN
WITH OEPE
‣ Nice XPath Editor included! easy selection of
assignable elements and selection on variable!
27
Andreas Koop
HOW TO DEPLOY WITH PLAN
‣ weblogic.Deployer
‣ Or with WLST
‣ Or Admin Console / EM
28
deploy('myApp', '/path/to/1.0/app/myApp.ear', plan='/path/to/1.0/plan/
plan.xml' ..)
java weblogic.Deployer .... -plan /path/to/1.0/plan/plan.xml ...
Andreas Koop
USE SHARED LIBRARIES
‣ Static content: js, css, images
‣ Common Functionality, Modules
29
Andreas Koop
HOW TO BUILD
SHARED LIBRARIES
30
MANIFEST.MF
Andreas Koop
HOW TO DEPLOY
SHARED LIBRARIES
‣ weblogic.Deployer
‣ Or WLST
31
#!/bin/sh
. $WL_HOME/server/bin/setWLSEnv.sh
java weblogic.Deployer -adminurl t3://eden.local:7001 -username weblogic -
password welcome1 -upload -library -targets Cluster1 -deploy -source enpit-
shared-lib.war
...
deploy('enpit-shared-lib', '/path/to/enpit-shared-lib.war',
targets='Cluster1',libraryModule='true'[, upload='true'])
Andreas Koop
HOW TO CONSUME
SHARED LIBRARIES
‣ Configure references in weblogic.xml or weblogic-
application.xml
32
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app.xsd"
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
...
<library-ref>
<library-name>enpit-common-lib</library-name>
<!--specification-version>1.0</specification-version>
<implementation-version>1.0.6</implementation-version>
<exact-match>true</exact-match-->
</library-ref>
</weblogic-web-app>
Andreas Koop
SHARED LIBRARIES -
POSSIBLE ERRORS
‣ Precondition: Shared Library is referenced. App is
running
‣ Solution
‣ Deploy Library as new version
‣ „Production redeploy“ dependent application
33
Cannot undeploy library Extension-Name: enpit-common-war-lib, Specification-Version: 1,
Implementation-Version: 1.0.4 from server AdminServer, because the following deployed applications
reference it: enpittestcommons-reflib.war
Andreas Koop
SECURITY DEPLOYMENT
CONSIDERATIONS
‣ Security Realm <- JAAS Security Standard <- OPPS
Provider
34
<security-constraint>
<web-resource-collection>
<web-resource-name>administration</web-resource-name>
<url-pattern>/admin/*.jsp</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin-users</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jazn.com</realm-name>
</login-config>
<security-role>
<role-name>admin-users</role-name>
</security-role>
web.xml
Andreas Koop
SECURITY DEPLOYMENT
CONSIDERATIONS
‣ Deployment Descriptor (DD only, Java EE Standard)
‣
‣ Custom Roles Model
=> Any DD Role-Mapping is ignored
‣ Custom Roles and Policy Model
=> Not recommended for fine-grained control
35
<security-role-assignment>
<role-name>admin-users</role-name>
<principal-name>Administrator</principal-name>
</security-role-assignment>
weblogic.xml
Andreas Koop
SECURITY DEPLOYMENT
CONSIDERATIONS
‣ system-jazn-data.xml (OPSS specific)
‣ The best tool currently is Enterprise Manager
36
BPM Role Mapping for
instance
Andreas Koop
PRODUCTION REDEPLOYMENT
37
app v1.0 app v1.0.1
Existing client
connections
New Client
Connections
deploy('myApp', '/path/to/myApp.ear', ..,appVersion = '1.0')
deploy('myApp', '/path/to/myApp.ear', ..,appVersion = '1.0.1')
Andreas Koop
PRODUCTION REDEPLOYMENT
BEST PRACTICE
38
‣ Provide Version information inside
MANIFEST.MF
‣ Set version during CI build process!
‣ Specify retire grace period on redeploy
‣ Retire immediately
... -redeploy -source ...myapp.ear -retiretimeout 300
... -undeploy -name myapp -appversion 1.0
Arggh. Need the
lower version no. Not
easy to automate...
Andreas Koop
SOLUTION FOR
UNDEPLOY RETIRED APPS
39
def undeploy_retired_apps(l_appName):
cd ('AppDeployments')
l_apps=cmo.getAppDeployments()
for app in l_apps:
domainConfig()
cd ('/AppDeployments/'+app.getName()+'/Targets')
l_targets = ls(returnMap='true')
domainRuntime()
cd('AppRuntimeStateRuntime/AppRuntimeStateRuntime')
for target in l_targets:
l_state=cmo.getCurrentState(app.getName(),target)
if app.getName().find(l_appName) != -1:
if l_state == 'STOP_RUNNING':
log_info ('Found:'+ app.getName()+' - '+str(l_state))
stopApplication(app.getName())
l_state=cmo.getCurrentState(app.getName(),target)
if l_state == 'STATE_RETIRED':
log_info ('Found:'+ app.getName()+' - '+str(l_state))
undeploy_app(app.getName())
undeploy_retired_apps()
Andreas Koop
PRODUCTION REDEPLOYMENT
BEST PRACTICE
40
‣ Rollback deployment to previous
version is an easy task
‣ Keep in mind: In-Place redeployment destroys
existing sessions! To keep the session state:
... -redeploy -source .../1.0/app/myapp.ear
weblogic.xml
..
<container-descriptor>
<save-sessions-enabled>true</save-sessions-enabled>
</container-descriptor>
..
!Hower, the
application will not be
available at redeploy!
Andreas Koop
PAIN POINTS AND POSSIBLE
SOLUTIONS
‣ Custom configuration data
Suggestion: Properties accessible by JNDI (See GlassFish)
‣ Single Security Policy Store for all applications
(system-jazn-data.xml)
Recommendation: OID or DB based Policy-Store
Suggestion: Policy-Store bundled with app deployment
41
App1
Domain
App 2
system-jazn-data.xml
- Role-Mapping App1
- Role-Mapping App2
- Permissions App1
- Permissions App2
Andreas Koop
CONCLUSION
‣ Automate from the beginning
‣ Stage mode depends on app size, existing
infrastructure
‣ Use deployment plans & „production
redeployment“
‣ Use shared libs where applicable
42
Andreas Koop
FURTHER READING
‣ Oracle FMW Admin Guide
http://docs.oracle.com/cd/E23943_01/core.1111/e10105/deployer_role.htm
‣ Oracle FMW Deploying Applications to WLS
http://docs.oracle.com/cd/E23943_01/web.1111/e13702/toc.htm
‣ Community / Blogs
http://middlewaremagic.com
http://weblogic-wonders.com
http://weblogic-tips.com
...
43
VIELEN DANK FÜR IHRE
AUFMERKSAMKEIT
HABEN SIE NOCH FRAGEN?
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)

More Related Content

What's hot

Looking at RAC, GI/Clusterware Diagnostic Tools
Looking at RAC,   GI/Clusterware Diagnostic Tools Looking at RAC,   GI/Clusterware Diagnostic Tools
Looking at RAC, GI/Clusterware Diagnostic Tools
Leighton Nelson
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
Alain Geenrits
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
Ryan Cuprak
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Julian Robichaux
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Robert Scholte
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor App
Joe Kutner
 
Learning Oracle with Oracle VM VirtualBox Whitepaper
Learning Oracle with Oracle VM VirtualBox WhitepaperLearning Oracle with Oracle VM VirtualBox Whitepaper
Learning Oracle with Oracle VM VirtualBox WhitepaperLeighton Nelson
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
Ryan Cuprak
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
Michel Schildmeijer
 
Monitoring and Tuning GlassFish
Monitoring and Tuning GlassFishMonitoring and Tuning GlassFish
Monitoring and Tuning GlassFish
C2B2 Consulting
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with Gradle
Wei Chen
 
Best Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with DockerBest Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with Docker
Eric Smalling
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
Sonatype
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 

What's hot (20)

Looking at RAC, GI/Clusterware Diagnostic Tools
Looking at RAC,   GI/Clusterware Diagnostic Tools Looking at RAC,   GI/Clusterware Diagnostic Tools
Looking at RAC, GI/Clusterware Diagnostic Tools
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor App
 
Learning Oracle with Oracle VM VirtualBox Whitepaper
Learning Oracle with Oracle VM VirtualBox WhitepaperLearning Oracle with Oracle VM VirtualBox Whitepaper
Learning Oracle with Oracle VM VirtualBox Whitepaper
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
 
Monitoring and Tuning GlassFish
Monitoring and Tuning GlassFishMonitoring and Tuning GlassFish
Monitoring and Tuning GlassFish
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with Gradle
 
Best Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with DockerBest Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with Docker
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
 

Viewers also liked

Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
James Bayer
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
Michel Schildmeijer
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
Weblogic application server
Weblogic application serverWeblogic application server
Weblogic application server
Anuj Tomar
 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with Docker
Guatemala User Group
 
Administered object config
Administered object configAdministered object config
Administered object config
Veeramani S
 
ATG - Installing WebLogic Server
ATG - Installing WebLogic ServerATG - Installing WebLogic Server
ATG - Installing WebLogic Server
Keyur Shah
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
Jorge Esteban Quilcate Otoya
 
Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.
Wielbert Chouphen Collinson
 
Syed Vali Resume
Syed Vali ResumeSyed Vali Resume
Syed Vali ResumeSyed Vali
 
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvlTroubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Joris van Lieshout
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
Michel Schildmeijer
 
Apache logs monitoring
Apache logs monitoringApache logs monitoring
Apache logs monitoring
Umair Amjad
 

Viewers also liked (20)

Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
Weblogic application server
Weblogic application serverWeblogic application server
Weblogic application server
 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with Docker
 
WLST
WLSTWLST
WLST
 
Administered object config
Administered object configAdministered object config
Administered object config
 
Red Hart Linux
Red Hart LinuxRed Hart Linux
Red Hart Linux
 
ATG - Installing WebLogic Server
ATG - Installing WebLogic ServerATG - Installing WebLogic Server
ATG - Installing WebLogic Server
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
resume
resumeresume
resume
 
Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.
 
Syed Vali Resume
Syed Vali ResumeSyed Vali Resume
Syed Vali Resume
 
E10132
E10132E10132
E10132
 
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvlTroubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
 
Apache logs monitoring
Apache logs monitoringApache logs monitoring
Apache logs monitoring
 

Similar to Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)

Provisioning, deploying and debugging node.js applications on azure
Provisioning, deploying and debugging node.js applications on azureProvisioning, deploying and debugging node.js applications on azure
Provisioning, deploying and debugging node.js applications on azure
Patriek van Dorp
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
LeanIX GmbH
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
Ido Flatow
 
Java Insecurity: How to Deal with the Constant Vulnerabilities
Java Insecurity: How to Deal with the Constant VulnerabilitiesJava Insecurity: How to Deal with the Constant Vulnerabilities
Java Insecurity: How to Deal with the Constant Vulnerabilities
Lumension
 
IIS Web Ecosystem
IIS Web EcosystemIIS Web Ecosystem
IIS Web Ecosystem
Kenny Abdiel Maita
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
Greg Whalin
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
QAware GmbH
 
Single Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle StorySingle Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle Story
Kon Soulianidis
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
DevOpsDays Tel Aviv
 
From Zero to Cloud in 12 Easy Factors
From Zero to Cloud in 12 Easy FactorsFrom Zero to Cloud in 12 Easy Factors
From Zero to Cloud in 12 Easy Factors
Ed King
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11julien.ponge
 
Java Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud ServiceJava Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud Service
Andreas Koop
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
enpit GmbH & Co. KG
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
Amazon Web Services
 
Oracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen FlügelOracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen Flügel
enpit GmbH & Co. KG
 
JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...
PROIDEA
 

Similar to Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013) (20)

Provisioning, deploying and debugging node.js applications on azure
Provisioning, deploying and debugging node.js applications on azureProvisioning, deploying and debugging node.js applications on azure
Provisioning, deploying and debugging node.js applications on azure
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
 
Java Insecurity: How to Deal with the Constant Vulnerabilities
Java Insecurity: How to Deal with the Constant VulnerabilitiesJava Insecurity: How to Deal with the Constant Vulnerabilities
Java Insecurity: How to Deal with the Constant Vulnerabilities
 
IIS Web Ecosystem
IIS Web EcosystemIIS Web Ecosystem
IIS Web Ecosystem
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
Single Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle StorySingle Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle Story
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...
 
From Zero to Cloud in 12 Easy Factors
From Zero to Cloud in 12 Easy FactorsFrom Zero to Cloud in 12 Easy Factors
From Zero to Cloud in 12 Easy Factors
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Java Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud ServiceJava Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud Service
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Oracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen FlügelOracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen Flügel
 
Write php deploy everywhere tek11
Write php deploy everywhere   tek11Write php deploy everywhere   tek11
Write php deploy everywhere tek11
 
JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...
 

More from Andreas Koop

Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschVon Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Andreas Koop
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernen
Andreas Koop
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, Demo
Andreas Koop
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
Andreas Koop
 
REST mit ADF
REST mit ADFREST mit ADF
REST mit ADF
Andreas Koop
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
Andreas Koop
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examplesADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examples
Andreas Koop
 
WebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsWebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom Taskflows
Andreas Koop
 
Multichannel Application Development Best Practices
Multichannel Application Development Best PracticesMultichannel Application Development Best Practices
Multichannel Application Development Best Practices
Andreas Koop
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
Andreas Koop
 
WepApps mit Play! - Nichts leichter als das
WepApps mit Play! - Nichts leichter als dasWepApps mit Play! - Nichts leichter als das
WepApps mit Play! - Nichts leichter als dasAndreas Koop
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesAndreas Koop
 
Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsAndreas Koop
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerDOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerAndreas Koop
 

More from Andreas Koop (14)

Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschVon Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernen
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, Demo
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
REST mit ADF
REST mit ADFREST mit ADF
REST mit ADF
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examplesADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examples
 
WebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsWebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom Taskflows
 
Multichannel Application Development Best Practices
Multichannel Application Development Best PracticesMultichannel Application Development Best Practices
Multichannel Application Development Best Practices
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
WepApps mit Play! - Nichts leichter als das
WepApps mit Play! - Nichts leichter als dasWepApps mit Play! - Nichts leichter als das
WepApps mit Play! - Nichts leichter als das
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best Pratices
 
Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applications
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerDOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
 

Recently uploaded

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 

Recently uploaded (20)

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 

Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)

  • 1. DOAG 2013 IMC,Mainz, 06. Juni 2013 Andreas Koop CEO & Consultant Oracle Technologies DEPLOYMENT BEST PRACTICES ON WEBLOGIC SERVER Challenges Strategies Plan Best Practices
  • 2. Andreas Koop CEO & Consultant Oracle TechnologiesABOUT Consulting, Training Oracle Fusion Middleware ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @multikoop Blog Technical http://multikoop.blogspot.com Sonstiges http://www.enpit.de/blog 2
  • 4. Andreas Koop AGENDA Deployment Challenges Deployment Tools & Strategies Deployment Plan Production Redeployment Pain Points & Conclusion 4
  • 5. Andreas Koop DEPLOYMENT CHALLENGES ‣ Multiple Apps, multiple versions, instant releases.. ‣ Application development becomes easy, Middleware becomes complex: DataSources, WebServices, Processes, JMS, MDS, App Roles, Permissions, custom configuration, What else? ‣ Who can handle this? 5
  • 6. Andreas Koop APPLICATION DEPLOYMENT OVERVIEW ‣ Prepare ‣ Copy deployment units to target servers if needed ‣ Deploy ‣ Shared Libraries ‣ Applications DataSources JMS Topics/Queues EJBs .. 6 AS App1 App2 App / Lib deploy Cluster (sample topology)
  • 7. Andreas Koop WEBLOGIC DEPLOYMENT TOOLS ‣ java weblogic.Deployer (. ./setWLSEnv.sh) ‣ Ant Task / Maven / Autodeploy => Development / Test ‣ WLST Commands => Development / Test / Production ‣ Admin Console / EM => Development / AdHoc Cases / Support 7 ! Do not use in Production My Favorit! Gives a lot of predictability and safety!
  • 8. Andreas Koop STAGING MODE: STAGE FOR SMALL APPLICATIONS ‣ Admin Server copies deployment unit to servers/<name>/ stage ‣ Managed Servers deploy using their local copy ‣ => Use for small applications ! 8 AS App1 App2 App deploy ear earcopy earcopy (sample topology)
  • 9. Andreas Koop ‣ Admin Server does not copy deployment units ‣ shared, directly accessibly by AS and MS ‣ => Use for large applications or exploded -->Reload of JSP/Servlet ‣ => Saves time! AS App1 App2 STAGING MODE: NO STAGE FOR LARGE APPLICATIONS 9 /shared/apps/myapp1.ear App deploy (sample topology)
  • 10. Andreas Koop ‣ Admin Server does not copy deployment units ‣ Manuel copy to AS and MS needed ‣ => Use if no shared fs available ‣ => Use if scripts for manual distrib. exists STAGING MODE: EXTERNAL STAGE FOR... 10 AS App1 App2 App deploy earcopy earcopy earcopy Admin Guy (sample topology)
  • 11. Andreas Koop WHERE TO LOCATE DEPLOYMENT UNITS ‣ ! Prerequisite: Do not use default for domain home: $MW_HOME/user_projects/domains ‣ Locate domain outside $MW_HOME ‣ Locate App artefacts outside $MW_HOME 11 /domains/mydomain/ /applications/mydomain/myapp1/1.0/app/myapp1.ear /applications/mydomain/myapp1/1.0/plan/plan.xml
  • 12. Andreas Koop QUIZ: WHAT DO THAT OPTIONS MEAN? (FROM ADMIN CONSOLE) 12 AS uses nostage by default MS uses stage by default depends stage nostage
  • 13. Andreas Koop DEPLOY WITH ANT 13 <?xml version="1.0" encoding="UTF-8" ?> <project name="deploy-myapp" default="deploy"> <path id="weblogic.deploy.path"> <fileset file="${weblogic.home}/server/lib/weblogic.jar" /> <fileset file="${weblogic.home}/server/lib/webservices.jar" /> </path> <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy" classpathref="weblogic.deploy.path" /> <target name="deploy"> </target> </project> <wldeploy action="deploy" user="${weblogic.user}" password="${weblogic.password}" adminurl="${weblogic.adminurl}" source="${app.webapp}" name="${app.name}" targets="${weblogic.targets}" verbose="true" debug="false" />
  • 14. Andreas Koop DEPLOY WITH ANT EXTENDED 14 <?xml version="1.0" encoding="UTF-8" ?> <project name="deploy-myapp" default="deploy"> ... <!-- WLS Taskdefs --> <path id="wls.classpath"> <fileset dir="${oracle.weblogic.home}/server/lib" includes="weblogic.jar"/> </path> <taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask" classpathref="wls.classpath"/> <target name="deploy"> <echo message=" Deploying application ... "/> </target> ... </project> <wlst debug="true" failOnError="true" classpathref="wls.classpath" fileName="./wlst/deploy.py" arguments="....." > </wlst> Reuse existing WLST Scripts!
  • 15. Andreas Koop DEPLOY WITH MAVEN PREPARE ‣ Need to generate maven plugin with the WebLogic JarBuilder Tool (at least in 11g) ‣ Install into Maven Repository(see documentation) ‣ Use in your projects pom.xml (see next slide) 15 $ java -jar wljarbuilder.jar -profile weblogic-maven-plugin .. .. Created new jar file: ../wlserver_10.3/server/lib/weblogic-maven-plugin.jar
  • 16. Andreas Koop DEPLOY WITH MAVEN USE ‣ Directly ‣ In ,install‘ Maven Lifecycle of your pom.xml 16 $ mvn weblogic:deploy <plugin>   <groupId>com.oracle.weblogic</groupId>   <artifactId>weblogic-maven-plugin</artifactId> <version>10.3.6</version> <configuration> <adminurl>t3://localhost:7001</adminurl> <user>weblogic</user> <password>password</password> <name>myapp</name> <upload>true</upload> <targets>AdminServer</targets>  </configuration>
  • 17. Andreas Koop DEPLOY WITH MAVEN USE ‣ In ,install‘ Maven Lifecycle of your pom.xml 17 ...  <executions> <execution> <id>deploy</id> <phase>install</phase>      <goals>        <goal>deploy</goal>      </goals>      <configuration>        <source>deploy/myapp.war</source>      </configuration>    </execution>  </executions> </plugin>
  • 18. Andreas Koop DEPLOYMENT WITH ANT / MVN CONCLUSION ‣ „Pure Ant“ WebLogic Deployment Tasks are not powerful enough. ‣ Extend where needed with custom WLST scripts ‣ Fits typically well in existing CI Build Environment ‣ Extended Maven Features in WLS 12c : create- domain, start-server .... ! 18
  • 19. Andreas Koop DEPLOY WITH WLST HOW TO 19 connect('weblogic', 'welcome1', ADMIN_URL) deploy('myApp', '/path/to/myApp.ear', targets='Cluster1') # targets='Server1' startApplication('myApp') disconnect() exit()
  • 20. Andreas Koop UNDEPLOY WITH WLST HOW TO 20 connect('weblogic', 'welcome1', ADMIN_URL) stopApplication('myApp') undeploy('myApp') # default: from all targets disconnect() exit()
  • 21. Andreas Koop WLST DEPLOYMENT COMMANDS 21 Command deploy(appName, path, [targets], [stageMode], [planPath], [options]) startApplication(appName, [options]) stopApplication(appName, [options]) undeploy(appName,[targets],[options]) updateApplication(appName, [planPath], [options]) Update app with plan.xml listApplications()
  • 22. Andreas Koop ‣ Always start with a cluster - even if only a single MS is needed at the beginning ‣ => Easily to scale afterwards ‣ => No changes to deployment strategy needed DEPLOY TO A CLUSTER FROM THE BEGINNING 22 App1 / Lib deploy App1 Cluster App1 Cluster App1 ...
  • 23. Andreas Koop HANDLING DIFFERENT ENV REQUIREMENTS 23 Development Test Production DataSource DataSource DataSource weblogic.xml jsp-descriptor/verbose = true ... weblogic.xml jsp-descriptor/verbose = false ... weblogic.xml jsp-descriptor/verbose = false ... web.xml init-param/name[css- compression]=off session-timeout = 3600 ... web.xml init-param/name[css- compression]=on session-timeout = 60 ... web.xml init-param/name[css- compression]=on session-timeout = 7200 ... ... ...
  • 24. Andreas Koop HANDLING DIFFERENT ENV REQUIREMENTS 24 Development Test Production DataSource DataSource DataSource plan.xml web.xml -> session- timeout = 3600 weblogic.xml -> ... plan.xml web.xml -> session- timeout = 60 weblogic.xml -> ... plan.xml web.xml -> session- timeout = 7200 weblogic.xml -> ... EAR EAR EAR ... ... deploy deploy deploy + ++
  • 25. Andreas Koop WHAT IS A DEPLOYMENT PLAN ‣ Plan (plan.xml) used with deployment artefact ‣ Replacing values by XPath / Variables ‣ Useful for ‣ Changes to web.xml / weblogic.xml / Other XML ‣ ! No changes to .properties possible ‣ „Deploy myapp.ear -plan /path/to/plan.xml ...“ 25
  • 26. Andreas Koop DEPLOYMENT PLAN CREATION / EDITING ‣ Working with plan.xml and plain text editor is difficult! Best Practice: OEPE plan.xml Editor! 26 Or use ,java weblogic.PlanGenerator‘
  • 27. Andreas Koop EDIT DEPLOYMENT PLAN WITH OEPE ‣ Nice XPath Editor included! easy selection of assignable elements and selection on variable! 27
  • 28. Andreas Koop HOW TO DEPLOY WITH PLAN ‣ weblogic.Deployer ‣ Or with WLST ‣ Or Admin Console / EM 28 deploy('myApp', '/path/to/1.0/app/myApp.ear', plan='/path/to/1.0/plan/ plan.xml' ..) java weblogic.Deployer .... -plan /path/to/1.0/plan/plan.xml ...
  • 29. Andreas Koop USE SHARED LIBRARIES ‣ Static content: js, css, images ‣ Common Functionality, Modules 29
  • 30. Andreas Koop HOW TO BUILD SHARED LIBRARIES 30 MANIFEST.MF
  • 31. Andreas Koop HOW TO DEPLOY SHARED LIBRARIES ‣ weblogic.Deployer ‣ Or WLST 31 #!/bin/sh . $WL_HOME/server/bin/setWLSEnv.sh java weblogic.Deployer -adminurl t3://eden.local:7001 -username weblogic - password welcome1 -upload -library -targets Cluster1 -deploy -source enpit- shared-lib.war ... deploy('enpit-shared-lib', '/path/to/enpit-shared-lib.war', targets='Cluster1',libraryModule='true'[, upload='true'])
  • 32. Andreas Koop HOW TO CONSUME SHARED LIBRARIES ‣ Configure references in weblogic.xml or weblogic- application.xml 32 <?xml version='1.0' encoding='UTF-8'?> <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app.xsd" xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"> ... <library-ref> <library-name>enpit-common-lib</library-name> <!--specification-version>1.0</specification-version> <implementation-version>1.0.6</implementation-version> <exact-match>true</exact-match--> </library-ref> </weblogic-web-app>
  • 33. Andreas Koop SHARED LIBRARIES - POSSIBLE ERRORS ‣ Precondition: Shared Library is referenced. App is running ‣ Solution ‣ Deploy Library as new version ‣ „Production redeploy“ dependent application 33 Cannot undeploy library Extension-Name: enpit-common-war-lib, Specification-Version: 1, Implementation-Version: 1.0.4 from server AdminServer, because the following deployed applications reference it: enpittestcommons-reflib.war
  • 34. Andreas Koop SECURITY DEPLOYMENT CONSIDERATIONS ‣ Security Realm <- JAAS Security Standard <- OPPS Provider 34 <security-constraint> <web-resource-collection> <web-resource-name>administration</web-resource-name> <url-pattern>/admin/*.jsp</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>admin-users</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>jazn.com</realm-name> </login-config> <security-role> <role-name>admin-users</role-name> </security-role> web.xml
  • 35. Andreas Koop SECURITY DEPLOYMENT CONSIDERATIONS ‣ Deployment Descriptor (DD only, Java EE Standard) ‣ ‣ Custom Roles Model => Any DD Role-Mapping is ignored ‣ Custom Roles and Policy Model => Not recommended for fine-grained control 35 <security-role-assignment> <role-name>admin-users</role-name> <principal-name>Administrator</principal-name> </security-role-assignment> weblogic.xml
  • 36. Andreas Koop SECURITY DEPLOYMENT CONSIDERATIONS ‣ system-jazn-data.xml (OPSS specific) ‣ The best tool currently is Enterprise Manager 36 BPM Role Mapping for instance
  • 37. Andreas Koop PRODUCTION REDEPLOYMENT 37 app v1.0 app v1.0.1 Existing client connections New Client Connections deploy('myApp', '/path/to/myApp.ear', ..,appVersion = '1.0') deploy('myApp', '/path/to/myApp.ear', ..,appVersion = '1.0.1')
  • 38. Andreas Koop PRODUCTION REDEPLOYMENT BEST PRACTICE 38 ‣ Provide Version information inside MANIFEST.MF ‣ Set version during CI build process! ‣ Specify retire grace period on redeploy ‣ Retire immediately ... -redeploy -source ...myapp.ear -retiretimeout 300 ... -undeploy -name myapp -appversion 1.0 Arggh. Need the lower version no. Not easy to automate...
  • 39. Andreas Koop SOLUTION FOR UNDEPLOY RETIRED APPS 39 def undeploy_retired_apps(l_appName): cd ('AppDeployments') l_apps=cmo.getAppDeployments() for app in l_apps: domainConfig() cd ('/AppDeployments/'+app.getName()+'/Targets') l_targets = ls(returnMap='true') domainRuntime() cd('AppRuntimeStateRuntime/AppRuntimeStateRuntime') for target in l_targets: l_state=cmo.getCurrentState(app.getName(),target) if app.getName().find(l_appName) != -1: if l_state == 'STOP_RUNNING': log_info ('Found:'+ app.getName()+' - '+str(l_state)) stopApplication(app.getName()) l_state=cmo.getCurrentState(app.getName(),target) if l_state == 'STATE_RETIRED': log_info ('Found:'+ app.getName()+' - '+str(l_state)) undeploy_app(app.getName()) undeploy_retired_apps()
  • 40. Andreas Koop PRODUCTION REDEPLOYMENT BEST PRACTICE 40 ‣ Rollback deployment to previous version is an easy task ‣ Keep in mind: In-Place redeployment destroys existing sessions! To keep the session state: ... -redeploy -source .../1.0/app/myapp.ear weblogic.xml .. <container-descriptor> <save-sessions-enabled>true</save-sessions-enabled> </container-descriptor> .. !Hower, the application will not be available at redeploy!
  • 41. Andreas Koop PAIN POINTS AND POSSIBLE SOLUTIONS ‣ Custom configuration data Suggestion: Properties accessible by JNDI (See GlassFish) ‣ Single Security Policy Store for all applications (system-jazn-data.xml) Recommendation: OID or DB based Policy-Store Suggestion: Policy-Store bundled with app deployment 41 App1 Domain App 2 system-jazn-data.xml - Role-Mapping App1 - Role-Mapping App2 - Permissions App1 - Permissions App2
  • 42. Andreas Koop CONCLUSION ‣ Automate from the beginning ‣ Stage mode depends on app size, existing infrastructure ‣ Use deployment plans & „production redeployment“ ‣ Use shared libs where applicable 42
  • 43. Andreas Koop FURTHER READING ‣ Oracle FMW Admin Guide http://docs.oracle.com/cd/E23943_01/core.1111/e10105/deployer_role.htm ‣ Oracle FMW Deploying Applications to WLS http://docs.oracle.com/cd/E23943_01/web.1111/e13702/toc.htm ‣ Community / Blogs http://middlewaremagic.com http://weblogic-wonders.com http://weblogic-tips.com ... 43
  • 44. VIELEN DANK FÜR IHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?