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 (20)

PDF
Puppet on a string
Alain Geenrits
 
PPTX
Faster Java EE Builds with Gradle
Ryan Cuprak
 
PDF
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Julian Robichaux
 
PDF
Nuxeo WebEngine and GlassFish v3
Nuxeo
 
PDF
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
PDF
Serverless Java Challenges & Triumphs
David Delabassee
 
PPSX
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Robert Scholte
 
PDF
JavaOne 2015: 12 Factor App
Joe Kutner
 
DOCX
Learning Oracle with Oracle VM VirtualBox Whitepaper
Leighton Nelson
 
PDF
Polygot Java EE on the GraalVM
Ryan Cuprak
 
PPTX
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
PDF
Oracle SOA suite and Coherence dehydration
Michel Schildmeijer
 
PPT
Monitoring and Tuning GlassFish
C2B2 Consulting
 
PDF
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
PDF
Scala and Play with Gradle
Wei Chen
 
PDF
Best Practices for Developing & Deploying Java Applications with Docker
Eric Smalling
 
PDF
System Hardening Using Ansible
Sonatype
 
PDF
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
PDF
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Severalnines
 
Puppet on a string
Alain Geenrits
 
Faster Java EE Builds with Gradle
Ryan Cuprak
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Julian Robichaux
 
Nuxeo WebEngine and GlassFish v3
Nuxeo
 
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]
Ryan Cuprak
 
Serverless Java Challenges & Triumphs
David Delabassee
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Robert Scholte
 
JavaOne 2015: 12 Factor App
Joe Kutner
 
Learning Oracle with Oracle VM VirtualBox Whitepaper
Leighton Nelson
 
Polygot Java EE on the GraalVM
Ryan Cuprak
 
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
Oracle SOA suite and Coherence dehydration
Michel Schildmeijer
 
Monitoring and Tuning GlassFish
C2B2 Consulting
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
Scala and Play with Gradle
Wei Chen
 
Best Practices for Developing & Deploying Java Applications with Docker
Eric Smalling
 
System Hardening Using Ansible
Sonatype
 
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
Webinar slides: Replication Topology Changes for MySQL and MariaDB
Severalnines
 

Viewers also liked (20)

PDF
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
PPT
WebLogic Deployment Plan Example
James Bayer
 
PDF
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
PDF
Oracle WebLogic Diagnostics & Perfomance tuning
Michel Schildmeijer
 
PPT
Oracle WebLogic Server Basic Concepts
James Bayer
 
PDF
GlassFish Server 3.1: Deploying your Java EE 6 Applications
Arun Gupta
 
PPTX
Weblogic application server
Anuj Tomar
 
PDF
Oracle WebLogic Server 12c with Docker
Guatemala User Group
 
PPTX
Administered object config
Veeramani S
 
PPT
Red Hart Linux
Venkateswarlu Malleboina
 
PPTX
ATG - Installing WebLogic Server
Keyur Shah
 
PDF
De Mensajería hacia Logs con Apache Kafka
Jorge Esteban Quilcate Otoya
 
DOC
resume
narendra varma
 
DOCX
Troubleshooting guide for apache 2.2 service.
Wielbert Chouphen Collinson
 
DOC
Syed Vali Resume
Syed Vali
 
PDF
E10132
prathap kumar
 
PPTX
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Joris van Lieshout
 
PDF
WebLogic on ODA - Oracle Open World 2013
Michel Schildmeijer
 
ODP
Apache logs monitoring
Umair Amjad
 
Performance Tuning Oracle Weblogic Server 12c
Ajith Narayanan
 
WebLogic Deployment Plan Example
James Bayer
 
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Oracle WebLogic Diagnostics & Perfomance tuning
Michel Schildmeijer
 
Oracle WebLogic Server Basic Concepts
James Bayer
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
Arun Gupta
 
Weblogic application server
Anuj Tomar
 
Oracle WebLogic Server 12c with Docker
Guatemala User Group
 
Administered object config
Veeramani S
 
Red Hart Linux
Venkateswarlu Malleboina
 
ATG - Installing WebLogic Server
Keyur Shah
 
De Mensajería hacia Logs con Apache Kafka
Jorge Esteban Quilcate Otoya
 
Troubleshooting guide for apache 2.2 service.
Wielbert Chouphen Collinson
 
Syed Vali Resume
Syed Vali
 
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Joris van Lieshout
 
WebLogic on ODA - Oracle Open World 2013
Michel Schildmeijer
 
Apache logs monitoring
Umair Amjad
 
Ad

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

PPT
weblogic training | oracle weblogic online training | weblogic server course
Nancy Thomas
 
PDF
Oracle ADF Architecture TV - Deployment - Deployment Options
Chris Muir
 
PDF
Weblogic deployment
Aditya Bhuyan
 
PDF
Weblogic Cluster Application deployment
Aditya Bhuyan
 
DOC
Weblogic.deployer usage
Bunty Ray
 
PDF
Practical lessons from customers performing digital transformation with Azure
Edward Burns
 
PDF
Weblogic server administration
Amit Sharma
 
PDF
Weblogic server administration
bispsolutions
 
TXT
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
ncodeit123
 
PDF
Oracle WebLogic Server 11g for IT OPS
Rakesh Gujjarlapudi
 
PDF
Changes in WebLogic 12.1.3 Every Administrator Must Know
Bruno Borges
 
PDF
Changes in weblogic12c_every_administrator_must_know-140812141929
Demodx Demodxz
 
DOCX
Weblogic online training
Smartittrainings
 
DOCX
Weblogic server
Smartittrainings
 
PDF
wls-azure-devnexus-2022.pdf
Edward Burns
 
PDF
F428435966 odtug web-logic for developers
Meng He
 
DOCX
Weblogic server short
Samatha Kamuni
 
PDF
Oracle Weblogic Server 11g: System Administration I
Sachin Kumar
 
PDF
Oracle Weblogic 11g admin guide 2
Ram Kumar
 
PPTX
Weblogic 101 for dba
Osama Mustafa
 
weblogic training | oracle weblogic online training | weblogic server course
Nancy Thomas
 
Oracle ADF Architecture TV - Deployment - Deployment Options
Chris Muir
 
Weblogic deployment
Aditya Bhuyan
 
Weblogic Cluster Application deployment
Aditya Bhuyan
 
Weblogic.deployer usage
Bunty Ray
 
Practical lessons from customers performing digital transformation with Azure
Edward Burns
 
Weblogic server administration
Amit Sharma
 
Weblogic server administration
bispsolutions
 
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
ncodeit123
 
Oracle WebLogic Server 11g for IT OPS
Rakesh Gujjarlapudi
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Bruno Borges
 
Changes in weblogic12c_every_administrator_must_know-140812141929
Demodx Demodxz
 
Weblogic online training
Smartittrainings
 
Weblogic server
Smartittrainings
 
wls-azure-devnexus-2022.pdf
Edward Burns
 
F428435966 odtug web-logic for developers
Meng He
 
Weblogic server short
Samatha Kamuni
 
Oracle Weblogic Server 11g: System Administration I
Sachin Kumar
 
Oracle Weblogic 11g admin guide 2
Ram Kumar
 
Weblogic 101 for dba
Osama Mustafa
 
Ad

More from Andreas Koop (15)

PPTX
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Andreas Koop
 
PPTX
Mit Legosteinen Maschinelles Lernen lernen
Andreas Koop
 
PDF
Cloud-native Apps - Architektur, Implementierung, Demo
Andreas Koop
 
PDF
Development in der Cloud-Ära
Andreas Koop
 
PDF
REST mit ADF
Andreas Koop
 
PDF
WebLogic im Docker Container
Andreas Koop
 
PDF
ADF Spotlight: ADF 12c Deck component overview and progammer examples
Andreas Koop
 
PDF
WebCenter Portal - Integrate Custom Taskflows
Andreas Koop
 
PDF
Java Web Apps and Services on Oracle Java Cloud Service
Andreas Koop
 
PDF
Multichannel Application Development Best Practices
Andreas Koop
 
PDF
Oracle WebLogic for DevOps
Andreas Koop
 
KEY
WepApps mit Play! - Nichts leichter als das
Andreas Koop
 
KEY
ADF User Interface Design Best Pratices
Andreas Koop
 
PPTX
Integration of BI Publisher in ADF applications
Andreas Koop
 
PPTX
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
Andreas Koop
 
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Andreas Koop
 
Mit Legosteinen Maschinelles Lernen lernen
Andreas Koop
 
Cloud-native Apps - Architektur, Implementierung, Demo
Andreas Koop
 
Development in der Cloud-Ära
Andreas Koop
 
REST mit ADF
Andreas Koop
 
WebLogic im Docker Container
Andreas Koop
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
Andreas Koop
 
WebCenter Portal - Integrate Custom Taskflows
Andreas Koop
 
Java Web Apps and Services on Oracle Java Cloud Service
Andreas Koop
 
Multichannel Application Development Best Practices
Andreas Koop
 
Oracle WebLogic for DevOps
Andreas Koop
 
WepApps mit Play! - Nichts leichter als das
Andreas Koop
 
ADF User Interface Design Best Pratices
Andreas Koop
 
Integration of BI Publisher in ADF applications
Andreas Koop
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
Andreas Koop
 

Recently uploaded (20)

PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Digital Circuits, important subject in CS
contactparinay1
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 

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?