- unibo.it€¦ · A New Approach: Application Grid ... • WLS 10.0 - JEE5 support • WLS 10.3...

Post on 18-Aug-2020

7 views 0 download

transcript

<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