Weitere ähnliche Inhalte Ähnlich wie Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's Useful (20) Mehr von Revelation Technologies (10) Kürzlich hochgeladen (20) Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's Useful1. Raastech, Inc.
2201 Cooperative Way, Suite 600
Herndon, VA 20171
+1-703-884-2223
info@raastech.com
Domain Partitions & Multitenancy in Oracle WebLogic Server 12c
Why It’s Useful
Thursday, May 18, 2017
2:45 - 3:45pm
Session 9
LL10AB
2. © Raastech, Inc. 2017 | All rights reserved. Slide 2 of 64@Raastech
Agenda
1. Introduction
2. Overview of Oracle WebLogic Server
3. Introducing Multitenancy
4. WebLogic Multitenancy Concepts
5. Isolation
6. Oracle Traffic Director
7. Porting Domains
8. Extending to Oracle Java Cloud Service
9. Managing Downtime
10. Summary
4. © Raastech, Inc. 2017 | All rights reserved. Slide 4 of 64@Raastech
About Me
▪ Ahmed Aboulnaga @Ahmed_Aboulnaga
▪ 18+ years Oracle experience
▪ Oracle ACE, OCE, OCA
▪ Author, Blogger, Presenter, Tweeter
5. © Raastech, Inc. 2017 | All rights reserved. Slide 5 of 64@Raastech
About Raastech
▪ Small systems integrator founded in 2009
▪ Headquartered in the Washington DC area
▪ Specializes in Oracle Fusion Middleware
▪ Oracle Gold Partner
▪ Oracle SOA Specialized
7. © Raastech, Inc. 2017 | All rights reserved. Slide 7 of 64@Raastech
▪ Application servers (i.e., middleware) reside between the frontend
and the backend
▪ The mostly (but not always) host and execute web application code
and web services
Middleware
.
8. © Raastech, Inc. 2017 | All rights reserved. Slide 8 of 64@Raastech
Oracle WebLogic Server
▪ Acquired from BEA in 2008
▪ Industry’s leading Java Enterprise Edition (Java EE) Application server
▪ Replaced Oracle Application Server
▪ Required for almost all Oracle Fusion Middleware products
▪ Provides a standard set of APIs for creating distributed Java
applications that can access a wide variety of services such as
▪ JMS, JDBC, RMI, Web Services, XML, EJB etc.
.
9. © Raastech, Inc. 2017 | All rights reserved. Slide 9 of 64@Raastech
Current Releases
▪ Current release:
▪ Oracle WebLogic Server 12c R2 (12.2.1.2)
▪ Previous releases:
▪ Oracle WebLogic Server 12c (12.1.2 and 12.1.3)
▪ Oracle WebLogic Server 11g (10.3.5 and 10.3.6)
.
10. © Raastech, Inc. 2017 | All rights reserved. Slide 10 of 64@Raastech
Oracle Marketing Speak – WebLogic Server
▪ “New features for lowering cost of operations, improving performance,
enhancing scalability”
▪ “Provides flexibility between on-premise and third-party clouds”
▪ “Increases developer productivity with mobile application
development and maven support”
▪ “Optimized for Oracle Exalogic Elastic Cloud”
▪ “Provides extreme cloud performance, scalability, and elasticity,
unmatched integration with Oracle’s Database 12c including multi-
tenant database support”
11. © Raastech, Inc. 2017 | All rights reserved. Slide 11 of 64@Raastech
Understanding Oracle Fusion Middleware
▪ “Oracle Fusion Middleware” is a misleading term
▪ Used to describe middleware products such as:
▪ Business Intelligence (e.g., OBIEE)
▪ Integration (e.g., SOA Suite, OSB)
▪ WebCenter (e.g., WebCenter Content and Portal)
▪ Identity Management (e.g., Oracle Access Manager)
▪ Monitoring (e.g., OEM Cloud Control)
▪ But many times used (erroneously) to describe a single product:
▪ WebLogic Server
12. © Raastech, Inc. 2017 | All rights reserved. Slide 12 of 64@Raastech
▪ WebLogic Server is the core foundation of all Oracle Fusion
Middleware products (and applications)
WebLogic Server: Foundation for Fusion Middleware
14. © Raastech, Inc. 2017 | All rights reserved. Slide 14 of 64@Raastech
Docker Containers
▪ Light, extremely quick startup, increased density, portable
App
Physical Server
Host OS
Hypervisor
Guest
OS
Guest
OS
Guest
OS
bin/lib bin/libApp
App
Physical Server
Host OS
Docker Engine
bin/lib bin/lib
bin/lib
App
App
App
App
15. © Raastech, Inc. 2017 | All rights reserved. Slide 15 of 64@Raastech
Oracle Database Multitenancy
▪ PDB = Pluggable Database
▪ Portable, increased density, isolated
▪ DBA’s love it
DB
Server
OS
bin/lib bin/libbin/lib
DB DB
Server
OS
bin/lib
DB
PDB PDB PDB
16. © Raastech, Inc. 2017 | All rights reserved. Slide 16 of 64@Raastech
WebLogic Server Multitenancy
▪ Same concept exactly, but at the WebLogic level
▪ WebLogic Server multitenancy is achieved via domain partitions
Domain
Server
OS
bin/lib bin/libbin/lib
Domain Domain
Server
OS
bin/lib
Domain
Partition Partition Partition
17. © Raastech, Inc. 2017 | All rights reserved. Slide 17 of 64@Raastech
Oracle Marketing Speak – Domain Partitions
▪ Consolidate “microcontainers onto an efficient, shared platform”
▪ “Improves your time to market”
▪ “Simplifies movement of workloads to and from the cloud”
▪ “Enables up to 3x hardware consolidation”
▪ “Reduces operating expenses by up to 25%”
18. © Raastech, Inc. 2017 | All rights reserved. Slide 18 of 64@Raastech
Convincing Oracle Marketing Speak
▪ “Increased density”
▪ “Tenant isolation”
▪ “Simplified management”
19. © Raastech, Inc. 2017 | All rights reserved. Slide 19 of 64@Raastech
WebLogic Domain Partitions
▪ New to Oracle WebLogic Server 12.2.1
▪ Think virtualization or multitenancy in WebLogic Server, similar to
pluggable databases in the Oracle Database
▪ Every domain can have 1 or more partitions, each containing its own
apps and resources
20. © Raastech, Inc. 2017 | All rights reserved. Slide 20 of 64@Raastech
New in 12.2.1
▪ Domain Partitions
▪ Resource Groups
▪ Resource Group Templates
▪ Other new features include:
▪ Zero Down Time (ZDT) patching
▪ Via automatic orchestration, retries/rolls back on failure
▪ WebLogic multitenant live partition migration
▪ Move from one cluster to another
▪ Coherence persistence
▪ Cache data persisted to durable storage
22. © Raastech, Inc. 2017 | All rights reserved. Slide 22 of 64@Raastech
Introducing WebLogic Domain Partitions
WebLogic Domain APP
AdminServer
BookingApp
WebLogic Domain ORD
AdminServer
OrderMgmt
WebLogic Domain NEW
AdminServer
OrderReports
JMS JDBC
JMS JDBC
Partition APP
BookingApp
JMS JDBC
Partition ORD
OrderMgmt
OrderReports
JMS JDBC
23. © Raastech, Inc. 2017 | All rights reserved. Slide 23 of 64@Raastech
Domain Partitions
▪ A WebLogic microcontainer
▪ Can create 1 or more partitions
▪ Each partition has its own apps and resources
▪ Can start/stop each partition independently
▪ Each partition can have different security realms
▪ Can assign a different administrator for each partition
24. © Raastech, Inc. 2017 | All rights reserved. Slide 24 of 64@Raastech
Domain Partitions Isolation Boundaries
▪ Applications and their data
▪ JNDI
▪ Security
▪ Runtime MBeans
▪ Work Managers
▪ Logging
25. © Raastech, Inc. 2017 | All rights reserved. Slide 25 of 64@Raastech
Resource Groups
▪ Resource Group = collection of Java EE apps and resources
▪ Examples of resources:
▪ Deployments
▪ Services (JDBC, messaging, persistent stores, etc.)
▪ Targets
▪ Can override resources to customize settings
26. © Raastech, Inc. 2017 | All rights reserved. Slide 26 of 64@Raastech
Resource Groups – Creating
▪ Navigate to Environment > Resource Groups
27. © Raastech, Inc. 2017 | All rights reserved. Slide 27 of 64@Raastech
Resource Groups – Configuring Services
28. © Raastech, Inc. 2017 | All rights reserved. Slide 28 of 64@Raastech
Resource Group Templates
▪ Basically templates of Resource Groups
▪ Overrides:
▪ Can create “overrides” for the resources defined in the resource group
template
▪ Example: JDBC connection information
29. © Raastech, Inc. 2017 | All rights reserved. Slide 29 of 64@Raastech
Targeting
▪ In Pre-12.2.1, applications and resources are targeted to a managed
server or cluster
▪ Resources and applications are grouped into resource groups
▪ The resource group is targeted to a virtual target
30. © Raastech, Inc. 2017 | All rights reserved. Slide 30 of 64@Raastech
Virtual Targets
▪ A virtual target is targeted either to a cluster or a managed server
▪ Each has its own URL mapping
▪ Each has its own separate HTTP server
▪ Which helps avoid context path clashes
http://devhost:8001/PartitionAPP/BookingApp
http://devhost:8001/PartitionORD/OrderManagement
31. © Raastech, Inc. 2017 | All rights reserved. Slide 31 of 64@Raastech
Virtual Targets – Creating
32. © Raastech, Inc. 2017 | All rights reserved. Slide 32 of 64@Raastech
WebLogic Domain Partitions
WebLogic Domain APP
AdminServer
WebLogic Domain NEW
AdminServer
JMS JDBC
Partition APP
JMS JDBC
JMS JDBC
Resource Group
Virtual Target
JMS JDBC
MS1 MS2
MS1 MS2
33. © Raastech, Inc. 2017 | All rights reserved. Slide 33 of 64@Raastech
Some New Terminology
Term Explanation
Microcontainer
General term that defines encapsulated applications
and resources, resources are isolated
Domain Partition –or–
Partition
A WebLogic concept, a microcontainer, a runtime slice
of the WebLogic Domain
Virtual Target
Defines where a partition runs, either on a managed
server or a cluster
Resource Group
Created within a partition, groups resources, targeted
to a virtual target
RCM Resource Consumption Management
35. © Raastech, Inc. 2017 | All rights reserved. Slide 35 of 64@Raastech
How to Enable Isolation
▪ Though a shared domain, partitions must provide for:
▪ Runtime isolation
▪ Security isolation
▪ Administrative isolation
▪ Data isolation
▪ Configure Resource Consumption Managers and Partition Work
Managers
36. © Raastech, Inc. 2017 | All rights reserved. Slide 36 of 64@Raastech
Isolation Types
Isolation Type Explanation
Runtime
Policies allow for usage of heap, CPU time, and open file
descriptors
Security Each partition can have a separate security realm
Administrative Each partition can be managed by different administrators
Data
Each partition has its own dedicated data source, JMS
configuration, and Coherence runtime cache
37. © Raastech, Inc. 2017 | All rights reserved. Slide 37 of 64@Raastech
Resource Consumption Management (RCM)
▪ Helps provide runtime isolation and protection
▪ Set the following JVM arguments to enable WebLogic RCM
-XX:+UnlockCommercialFeatures -XX:+ResourceManagement -XX:+UseG1GC
38. © Raastech, Inc. 2017 | All rights reserved. Slide 38 of 64@Raastech
Triggers
▪ A static constraint for the allowed usage for a resource
▪ Can create boundaries for:
▪ HeapRetained
▪ CpuUtilization
▪ FileOpen
▪ If constraint exceeded, an action is performed:
▪ Notify - obvious
▪ Slow - through work manager settings
▪ Fail - reject requests
▪ Shutdown - stop partition
39. © Raastech, Inc. 2017 | All rights reserved. Slide 39 of 64@Raastech
<domain>
.
.
<resource-management>
<resource-manager>
<heap-retained>
<trigger>
<name>UpThere_4GB</name>
<value>4096</value>
<action>notify</action>
</trigger>
<trigger>
<name>UpThere_6GB</name>
<value>6144</value>
<action>slow</action>
</trigger>
<trigger>
<name>UpThere_8GB</name>
<value>8192</value>
<action>shutdown</action>
</trigger>
.
.
config.xml
Partition 1
8.9 GB
Partition 3
Trigger Example (heap-retained)
Partition 2
3.7 GB
8 GB
4 GB
6 GB
2 GB
Total 30 GB JVM
6.1 GB
41. © Raastech, Inc. 2017 | All rights reserved. Slide 41 of 64@Raastech
Oracle Traffic Director (OTD)
▪ Is a software load balancer
▪ Optional
▪ Separately licensed
▪ WebLogic Server typically fronted by OTD or hardware load balancer
▪ You must set the WebLogic Plug-in Enabled in the WLS Admin
Console
http://www.ateam-oracle.com/wls-plugin-enabled/
42. © Raastech, Inc. 2017 | All rights reserved. Slide 42 of 64@Raastech
Oracle Traffic Director (OTD)
▪ Supports an Active-Active or Active-Passive architecture
▪ Highly recommended on Exalogic
▪ When a server is added to a cluster, traffic is automatically routed to
the new managed server
▪ When a partition is created/imported, traffic routing is automatically
added to OTD configuration
44. © Raastech, Inc. 2017 | All rights reserved. Slide 44 of 64@Raastech
Export a Domain
▪ Can export 11g and 12c domains
▪ Export a domain:
exportDomainForPartition.sh /tmp /u01/mw/user_projects/domains/raastech
▪ Output files are:
raastech-attributes.json
raastech.zip
45. © Raastech, Inc. 2017 | All rights reserved. Slide 45 of 64@Raastech
Import a Domain to a Partition
▪ Run these command to import the domain to a partition:
$MW_HOME/oracle_common/common/bin/wlst.sh
connect('weblogic', 'welcome1', 'http://newhost:7001');
importPartition('/tmp/raastech.zip', 'raastech', true, none);
startPartitionWait(cmo.lookupPartition("raastech"));
46. © Raastech, Inc. 2017 | All rights reserved. Slide 46 of 64@Raastech
Confirm Application
▪ Note URI prefix
▪ Application URL on old domain:
http://devhost:8001/BookingApp
▪ Application URL on new domain partition:
http://devhost:8001/raastech/BookingApp
48. © Raastech, Inc. 2017 | All rights reserved. Slide 48 of 64@Raastech
Introducing the Oracle Java Cloud Service (JCS)
▪ Simply… WebLogic Server on the cloud
▪ Requires the Oracle Database Cloud Service
49. © Raastech, Inc. 2017 | All rights reserved. Slide 49 of 64@Raastech
Migrating to Oracle JCS
1. Migrate the Database
2. Configure the Oracle JCS Environment
3. Migrate the Application
50. © Raastech, Inc. 2017 | All rights reserved. Slide 50 of 64@Raastech
Configure the Oracle JCS Environment
1. Navigate to the Oracle JCS Console
2. Launch the AdminConsole
3. Create data sources, work managers, messaging resources,
cluster, etc.
51. © Raastech, Inc. 2017 | All rights reserved. Slide 51 of 64@Raastech
AppToCloud Healthcheck
▪ Validates on-premise domain and applications prior to moving them
to Oracle JCS
a2c-healthcheck.sh
-oh /u01/app/fmw
-adminUrl t3://devhost:7001
-adminUser weblogic
-outputDir /tmp
.
52. © Raastech, Inc. 2017 | All rights reserved. Slide 52 of 64@Raastech
AppToCloud Export
▪ Exports on-premise domain and applications in preparation to move
them to the Oracle JCS storage container
a2c-export.sh
-oh /u01/app/fmw
-domainDir /u01/user_projects/domain/raastech
-archiveFile raastech.zip
-cloudStorageContainer Storage-Me/MyContainer
-cloudStorageUser myuser
.
53. © Raastech, Inc. 2017 | All rights reserved. Slide 53 of 64@Raastech
AppToCloud Import
▪ Create an Oracle JCS instance with AppToCloud
1. Click Create Service
2. Select Java Cloud Service – AppToCloud
▪ Import application to service instance
1. Click AppToCloud Import
Gotchas
▪ Can only be performed on a
new and unmodified service
instance
▪ Copy AppToCloud JSON to
Oracle Storage Cloud Service
▪ Create service instance with
AppToCloud option
▪ Manually configure properties
55. © Raastech, Inc. 2017 | All rights reserved. Slide 55 of 64@Raastech
Ways to Reduce Downtime
▪ Application:
▪ Redeploy apps
▪ Side-by-side deployment using versions (at a max of 1 previous version)
▪ Infrastructure:
▪ Rolling restarts
▪ Rolling Java patching
▪ Rolling Oracle Home patching
▪ Zero Down Time patching (ZDT)
57. © Raastech, Inc. 2017 | All rights reserved. Slide 57 of 64@Raastech
Thoughts on WebLogic Partitions
▪ Is it really needed?
▪ Would you prefer 2 domains -or- 1 domain with 2 partitions?
▪ Patching considerations
▪ Must upgrade all apps simultaneously
▪ Segregation considerations
▪ Not performance, but rather binaries
58. © Raastech, Inc. 2017 | All rights reserved. Slide 58 of 64@Raastech
Good Stuff
▪ Consolidation of environments
▪ Consolidate smaller or less used apps into a single environment
▪ Replication of environments
▪ Quickly provision replicas of test environments
59. © Raastech, Inc. 2017 | All rights reserved. Slide 59 of 64@Raastech
Benefits of WebLogic Server Multitenancy
▪ Improves density and resource utilization
▪ Environment consolidation
▪ Portability
What is Shared What is Not Shared
Domain Application Data
WebLogic Server Application Configuration
JVM Application Runtime
OS
60. © Raastech, Inc. 2017 | All rights reserved. Slide 60 of 64@Raastech
Disadvantages of WebLogic Server Multitenancy
▪ Does not support most Oracle Fusion Middleware applications
▪ Only supports Java EE applications
▪ Does not support Oracle ADF applications
▪ Does not support applications that depend on Oracle JRF
▪ Shared WebLogic Server and domain will impact upgradeability
▪ Not 100% isolated
61. © Raastech, Inc. 2017 | All rights reserved. Slide 61 of 64@Raastech
WebLogic Microcontainers vs. Docker
▪ Both isolate packaged applications and their resources
▪ Both are portable
▪ Docker works at the OS level
▪ Microcontainers work at the WebLogic level
▪ i.e., Does not exist outside the WebLogic runtime environment
▪ WebLogic 12.2.1 is certified to run on Docker containers
▪ To create your own WebLogic Docker images
62. © Raastech, Inc. 2017 | All rights reserved. Slide 62 of 64@Raastech
References
▪ Domain Partitions for Multi-tenancy in WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/domain_partitions_for_multi_tenancy
▪ Oracle Fusion Middleware Using WebLogic Server Multitenant
http://docs.oracle.com/middleware/1221/wls/WLSMT
▪ WebLogic Multitenant: Configuring Domain Partitions
https://docs.oracle.com/middleware/1221/wls/WLSMT/config_domain_part.htm#WLSMT585
▪ WebLogic Multitenant: Configuring Resource Consumption Management
https://docs.oracle.com/middleware/1221/wls/WLSMT/config_rcm.htm#WLSMT630
▪ Exporting and Importing Partitions
https://docs.oracle.com/middleware/1221/wls/WLSMT/export_import.htm#WLSMT636
▪ WebLogic Server 12.2.1 – Converting Domains to Partitions (video)
https://www.youtube.com/watch?v=D1vQJrFfz9Q
▪ Migrating a Java EE Application to Oracle Java Cloud Service (tutorial)
http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/javaservice/JCS/jcs_migration/jcs_migration.html
▪ Checking the Health of an On-Premise WebLogic Domain
https://docs.oracle.com/en/cloud/paas/java-cloud/jscug/checking-health-premises-weblogic-domain.html
▪ Oracle Java Cloud Service – AppToCloud Tooling
http://www.oracle.com/technetwork/topics/cloud/downloads/java-cloud-apptocloud-3042466.html
63. © Raastech, Inc. 2017 | All rights reserved. Slide 63 of 64@Raastech
Contact Information
▪ Ahmed Aboulnaga
▪ Technical Director
▪ @Ahmed_Aboulnaga
▪ ahmed.aboulnaga@raastech.com