SlideShare une entreprise Scribd logo
1  sur  45
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)

Contenu connexe

Tendances

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
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with GradleRyan 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
 
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 & TriumphsDavid 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 AppJoe 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 GraalVMRyan Cuprak
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersSarah Dutkiewicz
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydrationMichel Schildmeijer
 
Monitoring and Tuning GlassFish
Monitoring and Tuning GlassFishMonitoring and Tuning GlassFish
Monitoring and Tuning GlassFishC2B2 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 OpenShiftArun Gupta
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with GradleWei 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 DockerEric Smalling
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using AnsibleSonatype
 
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 developersArun Gupta
 

Tendances (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
 

En vedette

Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleJames Bayer
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationRevelation Technologies
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningMichel 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 serverAnuj Tomar
 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerGuatemala User Group
 
Administered object config
Administered object configAdministered object config
Administered object configVeeramani S
 
ATG - Installing WebLogic Server
ATG - Installing WebLogic ServerATG - Installing WebLogic Server
ATG - Installing WebLogic ServerKeyur Shah
 
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 @jorizvlJoris 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 2013Michel Schildmeijer
 
Apache logs monitoring
Apache logs monitoringApache logs monitoring
Apache logs monitoringUmair Amjad
 

En vedette (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
 

Similaire à 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 azurePatriek 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 BerlinLeanIX GmbH
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows AzureIdo 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 VulnerabilitiesLumension
 
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 websitesLindsay Holmwood
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup PerformanceGreg Whalin
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volutionQAware 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 StoryKon 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 FactorsEd 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 ServiceAndreas 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 Serviceenpit 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ügelenpit 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
 

Similaire à 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...
 

Plus de 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 VormarschAndreas Koop
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenAndreas Koop
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoAndreas Koop
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-ÄraAndreas Koop
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas 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 examplesAndreas Koop
 
WebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsWebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsAndreas Koop
 
Multichannel Application Development Best Practices
Multichannel Application Development Best PracticesMultichannel Application Development Best Practices
Multichannel Application Development Best PracticesAndreas Koop
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas 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
 

Plus de 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
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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?