Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
<Insert Picture Here>
Application Grid: Oracle’s Vision for Next-Generation Application Servers and Foundation InfrastructurePaolo RamassoPrincipal Sales Consultant Oracle Italy
Business Imperatives and Challenges
Efficiency: expand despite constraints Flexibility: change
course quickly
Quality of service: rise above the competition
2/26/2009 3©2008 Oracle Corporation
Traditional World: Dedicated StacksA challenge to efficiency and responsiveness
2/26/2009 ©2008 Oracle Corporation 4
UnderutilizationDifficult
Scale-OutConstrained Performance
Custom App
Application Server
JVM
OS
Application Server
JVM
OS
Legacy
OS
TPM
C/C++/ COBOL
OS
TPM
OS
SOA Svc
Application Server
JVM
Packaged App
2/26/2009 4©2008 Oracle Corporation
Application Scaling the Old Way
OSJVM
App Svr
Custom App
OSJVM
App Svr
Packaged App
OSJVM
App Svr
SOA Svc
OS
TPM
C/C++/ COBOL
OS
TPM
Legacy
Poor energy, space and staff inefficiency
Unpredictable, inefficient scale-out
Adding hardware does’t always help
Introduction toApplication Grid
A New Approach: Application GridGrid computing at the middleware layer
2/26/2009 ©2008 Oracle Corporation 7
Application Grid
Custom App
Packaged App SOA Svc C/C++/
COBOL Legacy
Efficiency Flexible Scaling
High Quality of Service
What is Application Grid?
2/26/2009 8©2008 Oracle Corporation
Main CharacteristicsPooled application resources
“Container”CPUMemoryThreads
ClusteringDynamic adjustmentAutomation
Main TechnologiesApplication serverJava virtual machine (JVM)In-memory data gridTransaction processing
monitor (TPM)
So you Get: EfficiencyGrow despite constraints
• Each app no longer provisionedfor individual worst case—total shared resources < sumof peak loads
• Run more apps on given setof hardware resources
• Standardize configuration of hardware resources• Reduce administrative costs
2/26/2009 ©2008 Oracle Corporation 9
So you Get: Flexible ScalingAdjust course with agility
• Provisioning of new appsdoesn’t necessarily requirenew hardware
• Adjustment of applicationresources happens in seconds or minutes, not days or weeks
• Business can be more “experimental”, trying new applications without huge provisioning overhead
• IT easily handles spikes in load as business changes
2/26/2009 ©2008 Oracle Corporation 10
So you Get: Higher Quality of ServiceCompete based on responsiveness and reliability
• Replication in application grid increases reliability• Higher performance is possible because more
computing resources can be applied to application without limits of bottlenecks
2/26/2009 ©2008 Oracle Corporation 11
BuildingApplication Grid
Application Grid FundamentalsFour basic elements for a grid foundation
2/26/2009 ©2008 Oracle Corporation 13
2. Control Allocation
3. View Behavior
4. AutomateManagement
App App App SOA Svc SOA Svc
1. Share Resources
Beyond the FundamentalsAreas to focus on for an effective application grid
2/26/2009 ©2008 Oracle Corporation 14
Nodes must be
rock-solid
Clustering must be dynamic and automatable
Management
Management must be comprehensive and simple
Getting Startedwith
Application Grid
Do I Have to Start Over?Evolution to application grid
Automation/Optimization
Localized
Enterprise-wide
Dynamic ScalingSomewhat
DynamicHighly Dynamic
• Basic Cluster Scale-Out
• Data Grid Scale-Out:Coherence• Basic
Management,Scripting
• Grid Control:Enterprise Manager/ WLOC
• Automated service startup and failover
Enterprise-Wide Dynamic Optimization
2/26/2009 16©2008 Oracle Corporation
WebLogic Server,JRockit,Tuxedo
WLSWLS
WLS
WLS WLS
WLS
WLS
WLS
App Svr App Svr
App Svr
App Svr
App Svr
App Svr
App Svr App Svr
App Svr
App Svr
1: Leverage Application ServerBuild foundation for efficiency and flexibility
2/26/2009 ©2008 Oracle Corporation 17
•Use application server clustering for scale-outPossible actions:
•Consolidate to WebLogic Server (or Tuxedo for C/C++/COBOL)•Use scripting to automate scalingYou now have a foundation for application grid!
CoherenceCoherence
CoherenceCoherence
JRockit JRockit
2: Enhance Scalability and PerformanceMake your grid more dynamic and resilient
2/26/2009 ©2008 Oracle Corporation 18
•Add Coherence in-memory data grid to existing machinesPossible actions:
•Add Coherence nodes on non-app-server machines
App Svr App Svr
App Svr
App Svr
App Svr
App Svr App Svr
App Svr
•Add JRockit Real Time JVM
3: Add Grid ManagementAttain higher automation and optimization
2/26/2009 ©2008 Oracle Corporation 19
•Add Enterprise Manager/WebLogic Operations ControlPossible actions:
•Set up grid-wide SLAs, policies, etc.
App Svr App Svr
App Svr
App Svr
App Svr
App Svr App Svr
App Svr
Enterprise Manager/WebLogic Operations Control
•Automate scaling of application server and data grid clusters
Summary• Application Grid is an approach to foundation
middleware based on resource pooling with automated dynamic adjustment
2/26/2009 20©2008 Oracle Corporation
• Fundamental Enablers:• Share• Control• View• Automate
• Key Benefits:• Efficiency• Flexibility• Quality of service
Application Grid with Oracle
Fusion Middleware
Elements of the Application GridComprehensive, hot-pluggable, pre-integrated
2/26/2009 ©2008 Oracle Corporation 22
Enterprise Manager
WebLogicOperations Control
JRockit
WebLogic Server
Tuxedo
Coherence
JRockit JVM
• Full Java SE implementation• Core of the entire JRockit product line• Integrated component in many Oracle products
SPECjbb2005 - Quad core Intel Xeon X5355
0
50000
100000
150000
200000
250000
32-bit JVM 64-bit JVM
SPEC
jbb2
005
bops
Sun JVM (base)
Sun JVM (tuned)
JRockit (base)
JRockit (tuned)
+64% +91%
Note: The percentage comparison is compared to the baseline (Sun JVM base). Relative performance varies with workload.
Performance LeadershipHigher performance leads to significant cost savings
JRockit Technologies
JRockit Mission ControlVisualization of
zero-overhead diagnostics(operations & dev)
WebLogic Real TimeReal-time low-latency
standard Java
JRockit#1 server-side performance
Full-stack support
Managing Latency
0
15
30
45
60
75
90
105
120
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
During Low Load: GC spikes and occasional timeouts visible
During High Load: GC pauses can result in unacceptable response times
0
15
30
45
60
75
90
105
120
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
Traditional Java
JRRT Makes garbage collection deterministic. Allowing for the guarantee of SLAs.
JRockit Real Time
WLRT Deterministic GC
• Provides QoS guarantees• Usage: ”-Xgcprio:deterministic –Xpausetarget=10ms
• Highly tuned mostly concurrent mark-n-sweep GC• Most work done concurrently, pauses are frequent but very short• Back off, split work and reschedule if nearing QoS limit (divide and
conquer)
500 ms
20 s
One GC cycle (phases 0-2, 2-4, 4-5, 5 visible)
Throughput and Latency Tradeoffs
• The key objective of JRRT is deterministic GC pause time• Finer control of GC behavior adds workload to the VM
• Optimizing for low-latency with determinism …• Typically reduces overall throughput
• General JRockit optimizations benefit both latency and throughput• The impact on throughput is highly dependent on the application
• May require lower targets for CPU utilization (e.g. 75% rather than 90%)
• May reveal application latencies that are not attributable to GC
JEE Server:Oracle WebLogic Server Converged Infrastructure for the Oracle Platform
• The Number #1 Java EE application server, designed for the most Mission-Critical of applications
• Developer-friendly – productive, standards-based development• Focus on quality of service – performance, scalability,
reliability, availability• Built-in manageability – configuration, monitoring , diagnostics,
maintenance
WebLogic Server Clusters
WebLogic Application Grid
Databases MainframesLegacy Commodity Virtualized
29
Continued Leadership in Performance
• Runtime performance• Across all subsystems -
SPECjAppServer as representative example
• Console and startup performance• 2x to 3x improvement over WLS 9.2
and 10.0• Asynchronous HTTP session replication
• Reduce latency in HTTP client response
Oracle WebLogic Server 10.3 Background
• WLS 9.2 - Major administrative and runtime enhancements• WLS 10.0 - JEE5 support • WLS 10.3 – Maturity release of WLS 10
• Developer usability • Lightweight, Workshop, Spring, Web 2.0, FastSwap
• Runtime and Console Performance• SPECjAppServer and support of lightweight improvements
• Updating WLS 9.2/10.0 work• Web Services, JMS, Security – compliance/standards
• Oracle compliance requirements added • License key removal, certification, branding, security …
WLS Essex Status
Architectural Overview: Big Picture
ExternalUsers
InternalUsers
DMZFirewall
DMZFirewall
IntranetFirewall
Active/ActiveClusterActive/Active
Clusterwireless& Mobile
Internet
•HTTP Servers•Proxy Plugin
•HTTP Servers•Proxy Plugin
Managed ServersNode Manager
Managed ServersNode Manager
Directory Server
NetworkDispatcher/LBR
DB Servers
Admin Server
Web Tier DMZ App Tier DMZ Data Tier / IntranetClient Tier
Deployment Architecture Overview
Lightweight WebLogic Server
• Lightweight installers • “Core” WLS install option, add-ons (JDKs, etc) optional • Reduce download and install time, installation footprint
• FastSwap• Modify classes without requiring redeployment• Accelerate develop/deploy/debug cycle
• Optional service startup • Start WebApp container without starting EJB, JMS, JCA services• Provide developer flexibility
• Deployment process/startup performance improvements• EJB compilation performance improvements
Production RedeploymentSide by Side Deployment
• Multiple application versions can co-exist• New client requests are routed to
active version; Existing client requests can finish up with existing version
• Automatic Retirement Policy: Graceful, Timeout
• Test application version before opening up for business
• Rollback to previous application version
• Two versions of the application can be active at any given point of time
Integration with Oracle RACOracle RAC Support
Use WLS Multi-Data-Sources• Fast failover upon node failure• Automatic failback upon node
recovery• Load-balancing or Failover algorithm• Periodic health check of connections
Best-of-Breed Messaging (JMS) Engine
JMS Unit-of-OrderStrictly ordered messaging
Processing messages out of order can be disastrous• JMS spec does not cater for strict ordered delivery of messages• WebLogic offers Unit of Order add-value feature
Producers mark messages as part of same unit• All message processed sequentially in the order they are placed on
destination• Each producer uses same text name for unit of order (via WebLogic
JMS API call) • Alternatively, a Connection Factory can be configured to always
enforce a specific UOO
1
4
3
2
3
FIFO
Self-Tuning and Work ManagersWebLogic's Self-Tuning Thread Pool
Network Socket Handlers(“Muxers”)
Asynchronously dispatched workfrom WebLogic kernel, subsystem,or application
Request Queue
Self TuningThread Pool
1. Monitor rate ofrequest processing
2. Adjust thread poolsize accordingly
• Active• Standby• Stuck• Hogging
Self-Tuning and Work ManagersConfigurable Work Managers
• Every application has its own Work Manager• based on the 'global' 'fair-share' work manager by default
• Can explicitly configure a new Work Manager• apply to one or more specific applications and even individual resources (eg.
a Servlet)
• Each work manager can have a mix of the following configuration elements....
• Fair Share (default) • Response Time (goal) • Context based (per user/group)
REQUEST CLASS ELEMENT
• Minimum Threads (active) • Maximum Threads• Capacity (threshold for rejection)
CONSTRAINT ELEMENT
• Shut-down Trigger
TRIGGER ELEMENT
Cluster• A cluster is a group of Managed
Servers running simultaneously and working together to provide increased scalability and reliability • Scalability: through parallelism • Reliability/Availability: through
replication and redundancy
• A cluster appears as a single instance to most clients.
• Clusters enable some advanced features, such as Whole Server Migration, Service Migration, and clustered JMS destinations.
Cluster 1
Cluster 2
Admin Svr
Clustering and High AvailabilityTransparent Load Balancing and Failover
HTTP, EJB, JNDI and JMS clients• HTTP requires Hardware Load Balancer or Web Server Proxy• EJB/JNDI/JMS client 'stubs' are automatically cluster aware
Demonstration
Playing with Oracle Weblogic Server
Oracle Coherence Data Grid
• Provides a reliable data tier with a single, consistent view of data
• Enables dynamic data capacity including fault tolerance and load balancing
• Ensures that data capacity scaleswith processing capacity
MainframesDatabases Web Services
Enterprise Applications
Real TimeClients
WebServices
Oracle CoherenceData Grid
Data Services
Distributed in Memory Data Management
The Coherence Approach…
• Traditional scale-out approaches limit• Scalability, Availability, Reliability and Performance
• In Coherence…• Servers share responsibilities (health, services, data…)• No SPoB • No SPoF• Massively scalable by design
• Logically servers form a “mesh”• No Masters / Slaves etc.• Members work together as a team
The Distributed Scheme
• Sophisticated approach for Clustered Caching• Why:
• Designed for extreme scalability
• How:• Transparently partition, distribute and backup cache entries
across Members• Often referred to as ‘Partitioned Topology’
• Configurable Expiration Policies:• LFU, LRU, Hybrid (LFU+LRU), Time-based, Never,
Pluggable
The Distributed Scheme
The Distributed Scheme
The Distributed Scheme
Distributed Scheme Clients & Servers
• Cache Client• Member has storage disabled for Partitioned Topologies
• Cache Server• Member has storage enabled for Partitioned Topologies
• Same Cache API• Transparent to developer• Storage is (re)configured outside of code
Distributed Scheme Clients & Servers
Session State Management Integration
• Coherence*Web is a generalized state replication framework for any application server• Certified with WebLogic, OracleAS, JBoss, WebSphere,Tomcat, SunOne
• Plugs directly into Application Servers• HTTP session only• Augments existing HTTP session state replication• Stateful EJB replication uses existing AS infrastructure
• Value with Application Servers• More sophisticated state replication - policy based• Transactionality for session replication• Offload state replication to independent tier from application server
Coherence*Web: Session State Management
WebTier
Clustered Oracle, WebLogic,WebSphere, JBoss, Tomcat
Load Balanced
Router
CoherenceWeb
Java EE or ServletContainer
Web Application
ApplicationState
CoherenceWeb
Java EE or ServletContainer
Web Application
ApplicationState
In Memory Coherence Data Grid for Session State
CoherenceWeb
Java EE or ServletContainer
Web Application
ApplicationState
Data Source Integration
Data Source Integration
Data Source Integration
WebLogic Operations ControlMonitoring and Management
Rich console GUIOne pane of glass for multiple domains and applicationsDeploy, monitor, control, manage
Secure, highly availableApp level entitlementSecure agent to controller communicationsHA protection for agents and controller – no single point of failure
Complements Enterprise ManagerFocus on application managementContinue to use EM for standardconfig. mgmt. of Oracle products
JVM Pool
Multiple Independent Applications
WLOC Abstracts Application Deployments from Underlying Hardware
Demand
Application Application Application Application
Shared Hardware Resources
Supply
Quality of Service metricsResource requirements
Virtualized containersPhysical servers
WebLogicOperations
Control
JRockit JVM JRockit JVM
App BApp A
JRockit JVM WLS JRockit VE
App 1 App 2 App 3
OS OS
WLOC Based on Controller-Agent Architecture
Server Hardware
Oracle VM
Operating System
WLOCController WLOC
OSAgent
Oracle VMOracle VMManagerManager
Server Hardware
Operating System
WLOCOVMAgent
Data & configaggregation
Centralizeddecision making
Endpoint monitoring
Action execution
WebLogic Operations Control Centralized Governance and Control
Actively monitor all
deployments against policy
Deploy & manage apps & services in
resource pools
Define services and operational
policies, rules, &
SLAs
Manually or auto-adjust
resource allocations
across apps
Defining Services and Process Types
• Service• Set of related processes managed by
WLOC• Services are comprised of process types• E.g. CreditCheckService – application
deployed across multiple WLS instances• Process Type
• This represents a kind of process• E.g. AdminServer and ManagedServers
process type defined within a service• Process Instance
• This represents a particular instance of a process
• A Process Type has one or more process instances within it
CreditCheckService• AdminServer
► Admin Server
• ManagedServers
► Managed Server 1
► Managed Server 2
Policies
• Policies are Service Level Agreements (SLA) that govern Services
• Comprised of constraint and action to take when constraint is violated
• Policies can be classified as:• Resource policies
• Deployment Policies - Define the min and max number of servers• Software Policies - These policies define the required software
to start processes• IP Address Policies – Define the IP Addresses required• CPU Policies – Define the amount of CPU cycles required• Memory Policies - Define the amount of memory required
• Monitoring policies• These policies define constraints on data that is monitored from
the processes that are running. Monitoring information is retrieved for the processes via JMX or Virtual Center APIs
• Calendar policies • These policies are defined to be executed at a certain time
Actions and Pipelines
• A pipeline is a collection of actions that are executed sequentially• WLOC supports the following actions:
• Service – Start, Stop• Process – Start, Stop, Suspend*, Resume* (* JRockit VE instances only)• Notifications
• Email• JMX• JMS• SNMP• Console
• Can be configured to require user Adjudication before proceeding
Demonstration
Oracle Weblogic Operation Control: Dynamically Provisioning an Oracle
Coherence Cluster
Application Diagnostic Challenges
• Limited Production visibility• Not enough depth to diagnose production issues• Diagnostic tools not suited for production• Inability to reproduce problems on other environments• Hard to isolate culprit tier and component• Impacts Time to Resolution
Java is a black box
Enterprise Manager – Application Diagnostics for Java (AD4J)Strengthening APM solution
Operating Systems
Database
Middleware
Applications
• Configuration Management
• Service Level Management
• Application Performance Mgmt
• Lifecycle Management
• Dashboards
AD4J•Diagnose problems in production
•View all java activity: instrumentation not needed
•Trace transactions across tiers, into the Oracle DB
Monitored JVMAD4J Agent Java Class
AD4J Agent Native library
Console JVM
AD4J Architecture
AD4J Console Java Classes
AD4J Console JSPs
Agent Console
AD4JRepository
Monitored JVMAD4J Agent Java Class
AD4J Agent Native library JVM Activity Monitoring
DB Activity Monitoring
Memory Leak Analysis
Root Cause Analysis
JVM Information to browsers
AD4J Console Native library
SNMP Traps
Monitored DB
AD4J DB Agent
Platform Support
1.3.1 1.4.2
1.5.0 1.6.08i-11g
StandaloneJava
Competitive Advantagein-depth Application view
AD4J Console
AD4J Console Java Classes
AD4J Console JSPs
AD4JRepository
DB Activity Monitoring
JVM Activity Monitoring
Diagnose & Root Cause
Memory Leak Analysis
Monitor The Platform 24X7
Diagnose & Root Cause
Memory Analysis
NOC App Support & QA DEV
Competitive AdvantageLow overhead & easy to use
1. Complicated to install, deploy, use• Code instrumentation and server
restarts• Experts needed to instrument
and diagnose2. High overhead (>20%) – Can’t
run in production3. Silo oriented – No visibility from
App Server through to DB
1. Very easy to install, deploy, and use• No modification of code or server
restarts• Immediate visibility with no
Application expertise required2. Minimal Overhead (<1%) – Runs
in production Servers3. Transaction Visibility – Follow
transactions from AS to Oracle database
JRockit Technologies
JRockit Mission ControlVisualization of
zero-overhead diagnostics(operations & dev)
WebLogic Real TimeReal-time low-latency
standard Java
JRockit#1 server-side performance
Full-stack support
JRockit Mission Control – Use Cases
Debug Application
Optimize Application
Find, Diagnose and Fix Issues
Monitor Application
Developer
Support / Admin
Oracle JRockit Mission Control
Oracle JRockit Mission Control
Oracle JRockit Mission Control
Demonstration
Playing With Application Diagnostic 4 Java