24
Using Java in Credit Suisse Introduction to CS Standard Platforms JCP EC Meeting: May 14+15, 2013 May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

Using Java in Credit Suisse

Embed Size (px)

Citation preview

Page 1: Using Java in Credit Suisse

Using Java in Credit Suisse

Introduction to CS Standard Platforms

JCP EC Meeting: May 14+15, 2013

May 15, 2013

Infrastructure Architecture & Strategy,

Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

Page 2: Using Java in Credit Suisse

Credit Suisse Group today – Key Facts (02/2013)

Global bank headquartered in Zurich, serving clients in private banking, investment banking and asset management.

Registered shares of Credit Suisse Group AG (CSGN) are listed in Switzerland (SIX) and as American Depositary Shares (CS) in New York (NYSE).

Total number of employees: 47,400.

The Group’s long-term ratings are: Moody’s A2, Standard & Poor’s A, Fitch Ratings A.

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 2

Page 3: Using Java in Credit Suisse

Credit Suisse Platforms

Outline

Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 3

1

2 Java Application Platform

3 Java Application Platform

3

Our Vision: JAP in the Cloud

4 A Customer’s Perspective

May 15, 2013

Page 4: Using Java in Credit Suisse

Credit Suisse Platforms

Outline

Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 4

1

2 Java Application Platform

3 Java Application Platform

3

Our Vision: JAP in the Cloud

4 A Customer’s Perspective

May 15, 2013

Page 5: Using Java in Credit Suisse

Motivation Behind Platforms Recurring themes in application development and operations

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

What infrastructure software (SW)

components to use (and which versions)?

Which infrastructure SW component features to use?

How to manage changes to infrastructure SW

components as well as to application components?

How to monitor correct behavior and find/fix incorrect behavior?

How to communicate with other application

components?

How to stay current in technology life cycle

and avoid out-of-support legacy?

Which hardware (HW) components and system setup to use to achieve

the necessary performance, availability, stability, security, IT DR

level, etc. at the right price?

5

Page 6: Using Java in Credit Suisse

CS Platforms – Motivation and Definitions Infrastructure: Standardize, Build Once, Automate, Reuse

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

standardize build once automate reuse

Application Specific Logic GUI, Business Logic, DB Schemas, Configuration, etc.

Infrastructure Design/Configuration HW, OS, Middleware, Network System Management setup and processes Operating manual Development tools and processes Security concept and processes Integration concept and processes

Application Platform (AP)

specialized for similar applications, built on hosting platforms

Hosting Platforms

provide generic services computation CHP persistence DHP

CS Platform Set of integrated

technical components,

processes, guidelines for

the development and

operation of applications

6

Page 7: Using Java in Credit Suisse

CS Platforms - Portfolio Management Drivers Benefits of managing a platform lifecycle include increased stability and reduced cost

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 7

Applications

Infrastructure

SW

Components

Hardware

Core OS OS Core Version 1 OS Core Version 2 OS Core Version

Server Model 1 Server Model 2 Server Model …

Component A

Version …

Component A

Version 2

Component A

Version 1 Component B

Version …

Component ...

Version …

Component ...

Version 2

Component ...

Version 1 Component B

Version 2

Component B

Version 1

Application A

Release …

Application B

Release …

Application B

Release 2

Application B

Release 1 Application ..

Release …

Application ..

Release 2

Application ..

Release 1 Application A

Release 2

Application A

Release 1

Uncoordinated lifecycles in technical stack Combinatorial explosion of dependencies, support, and maintenance costs

Application A

Release …

Application B

Release …

Application B

Release 2

Application B

Release 1 Application ..

Release …

Application ..

Release 2

Application ..

Release 1 Application A

Release 2

Application A

Release 1

OS Core Version 1

Server Model 1

Server Model 2

Component C

Version 1

Component B

Version 1

Component A

Version 1

CHP Release 1

OS Core Version 2

Server Model 2

Server Model 3

Component C

Version 2

Component B

Version 2

Component A

Version 2

CHP Release 2

OS Core Version 3

Server Model 3

Server Model 4

Component C

Version 3

Component B

Version 3

Component A

Version 3

CHP Release 3

VM Layer Version 1 VM Layer Version 2 VM Layer Version 3

Applications

Infrastructure

SW

Components

Hardware

Core OS

Virtualization

Hosting

Platform

Managed stack No dependency explosion, increased

stability, capacity management, less maintenance costs, less support

Platform Release Mgmt.

year year+1 year+2 year+3 year+4

AR i-2

AR i-1

AR i

requirements &project setup

release engineeringpilot applications

phase-outapplication migration

standard releasenew applications

EOL

Key Benefits of Platform Lifecycle Mgmt.

Applications (and platforms) stay in technology lifecycle and mainstream (no "rotten" components)

Technical upgrades due to lifecycle mgmt. of platform are combined with update on business functionality

Constant decommissioning of out-dated platform releases identifies out-of-use applications

New releases of platforms (with new features) have no impact on productive applications (no need to migrate; no stability impact due to changes)

Page 8: Using Java in Credit Suisse

CS Platforms Overview

Application Platforms (JAP, DAP, DWH)

− Specialized for application areas with similar needs

− Support standardized application development and operations

− Provide enhanced and additional services on top of generic Hosting Platforms

− Platform costs are amortized by cost savings across large enough application portfolio using it

Database Hosting Platform (DHP)

− Offer DB service and backend system with decoupled life cycle

Compute Hosting Platform (CHP)

− Underlying infrastructure basis for directly deployed applications (typically 3rd party), Database Hosting Platforms as well Application Platforms

− Abstraction of infrastructure services for independent lifecycles of infrastructures and applications

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

Hardware

Applications

Compute Hosting Platform

Database Hosting Platform

Application Platform

Reduce development risk by offering standardized, integrated, and tested

infrastructure stack and related processes

PaaS

IaaS

DBaaS

8

Page 9: Using Java in Credit Suisse

CS Platform Benefits Benefits of standardization and upfront investment in infrastructure stack/processes

Objectives

Design, build and test standard infrastructure stack (including middleware) once

− “Sharing the stack“: Amortize over many applications

Standardize interfaces between applications and infrastructure

Design well-defined, highly automated processes using standardized ecosystems

Strict release and whole platform lifecycle management (all components/processes at once)

Global availability

Benefits

Lower cost

− Reduced development, maintenance, and support cost for applications and infrastructure

Better quality

− Increased infrastructure and application stability

Lower risk

− No end-of-life technologies and components in data center

− Increased application security

− Reduced development risk

Enhanced capability

− Shorter time-to-market

− Global deployment of applications

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 9

Platform Contract: Adherence to Platform Release and Lifecycle Management New applications and application upgrades must use the latest major platform release available All applications using a platform release x must migrate to the latest platform release before the end-of-life

date of release x is reached

Use the roadmaps to plan the releases of the applications

Page 10: Using Java in Credit Suisse

Credit Suisse Platforms

Outline

Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 10

1

2 Java Application Platform

3 Java Application Platform

3

Our Vision: JAP in the Cloud

4 A Customer’s Perspective

May 15, 2013

Page 11: Using Java in Credit Suisse

JAP Facts and Figures

JAP is an Application Platform based on

Java EE standards specialized for Web

applications (both Intranet and Internet facing)

and transactional systems

JAP is providing services to more than 300

applications of all sizes, worldwide and across

all business units

Geographical presence

− Platform centrally managed out of Zurich

− 4 hubs providing consulting services as

well as complete integration test, UAT and

production environments

Lifecycle & Availability

− 3 major releases in parallel

− AR 7 is the most recent release

− AR 5 release in phase out

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 11

Hub NY

Hub Singapore

Hub London

Hub and Global Platform Management Zurich

Satellite Luxemburg

Page 12: Using Java in Credit Suisse

JAP Model

Services provided by JAP

− Platform Product Mgmt. & Governance: Drives product development and release & lifecycle

− Application Development Support: Consultants guides projects through entire development processes, Java development support and trainings

− Platform Operations: Cost-efficient standardized and/or automated processes according to a defined set of OLA’s

Key components to provide these services

− Technical Components: Java EE based software stack pre-integrated with security, middleware, databases etc.

− Hosting: Shared hardware resources according to production guidelines

− Tool-chain: Automated processes from configuration management, centralized builds, package generation to deployment

− Architecture, Guidelines & Documentation: security, IT-DR, HA designed and provided for all applications,

transaction processing incl. patterns, scalability via LBs and scale-out

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 12

Page 13: Using Java in Credit Suisse

Platform Lifecycle in Action

Applications benefit in terms of

− Reduction of 30% on project costs

(CTB budget)

− Reduction of 35% on operating costs

(RTB budget)

JAP Hub Zurich realized

− Yearly cost avoidance of 48.5 mCHF

− 1 to 7 consolidation ratio on shared servers

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 13

Productive Application Statistics

0

50

100

150

200

Jan-05

Mar-05

May-05Jul-0

5

Sep-05

Nov-05

Jan-06

Mar-06

May-06Jul-0

6

Sep-06

Nov-06

Jan-07

Mar-07

May-07Jul-0

7

Sep-07

Nov-07

Jan-08

Mar-08

May-08Jul-0

8

Sep-08

Nov-08

Jan-09

Mar-09

May-09Jul-0

9

Sep-09

Nov-09

Jan-10

# Ap

plica

tions

Tower 4/5

Tower 1/2

Release 5

Release 4.1

Release 4.0

Release 3

Release 2

2005 2006 2007 2008 2009

0

50

100

150

200

250

H2

2005

H1

2006

H2

2006

H1

2007

H2

2007

H1

2008

H2

2008

H1

2009

H2

2009

H1

2010

H2

2010

Page 14: Using Java in Credit Suisse

Layer 2 JAP Technical Infrastructure Package (TIP)

JAP Technical Stack (JAP AR 7)

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB)

JEE Runtime

Core Services Security

Oracle WebLogic Server (WLS) 11g Oracle WebLogic Portal (WLP) 11g *

Java Development Kit (JDK)

Oracle DB 11g Client

JMS 1.1

IBM MQ Series

Java Runtime Environment (JRE)

OnePKI 3.0 (Single Sign On)

Web Entry API

Common CS Internal and 3rd Party Libraries

Layer 3 Application and Other Libraries

Application (Code and Configuration)

Optional Components/Extensions

Layer 1 Infrastructure

X86 Hardware

Red Hat Linux 5

VMWare ESX

Ecosystems

Monitoring Services

I3 Java Agent

BMC Patrol

SiteScope

i3 URL Monitoring

Build & Deployment

SSDS

JAP Ordering Tool

QMB Build Server

* on exceptional basis

14

Page 15: Using Java in Credit Suisse

* Strong authentication based on CS PKI

certificates

DM

Z P

ublic

E

ntr

y D

MZ

JSF Pages Entry Server Entry Tier

DM

Z

JSF Pages Servlets Servlets Presentation Tier

CH

: S

eS

Z/B

aSz

R

oW

: In

tran

et

Enterprise Beans

Business Tier

Intr

anet

Client Tier

Inte

rnet

JSF Pages Web Pages Web Pages Web Pages

Data and Service Tier

DM

Z

Public

Dat

a

DHP Databases

DHP Databases

CSXB synchronous,

asynchronous,

bulk services

Internal Applications Internet facing Applications

Strong Authentication * Customer

Strong Authentication

Public Anonymous

Enterprise Beans

Servlets

Communication

subject to further restrictions

Internal

External

Optional

Legend

Remarks

JAP Reference Architecture

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 15

Page 16: Using Java in Credit Suisse

Credit Suisse Platforms

Outline

Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 16

1

2 Java Application Platform

3 Java Application Platform

3

Our Vision: JAP in the Cloud

4 A Customer’s Perspective

May 15, 2013

Page 17: Using Java in Credit Suisse

General Cloud

Characteristics*

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) slide 17

• self-service

• rent/return capacity

• pay as you go

• process automation

• sharing/virtualization

• standardized machines & stacks

• rapid provisioning

• elasticity for applications

• measured usage

Data Center

Services

Clients

* NIST: High Scalability, Rapid Elasticity, Sharing and Multi-Tenancy, Measured Usage, Self-Service On-Demand

by Amazon, Google, Microsoft, etc.

Page 18: Using Java in Credit Suisse

Cloud is More than Virtualization! Impact for Application Development

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) slide 18

Cloud Aspect Paradigm Shift for AD

Resource abstraction/simplification

towards clients (compute, storage, network resources)

– Order capacity instead of HW

– Choose from simple, standard options

– Make no assumptions about placement (e.g. host names)

Rapid provisioning with self-service – Test early, test often, explore

– Test individually in entire application context

– Rapid prototyping early business feedback

Reproducible provisioning,

configuration & deployment (persistent specifications with infrastructure service APIs)

– fully automatable 'on demand' test cycles (provision & build entire test env, run tests, decommission test env)

– quickly reproduce production problems in UAT

– exploit horizontal elasticity in production and maintenance

Rental model (pay as you go) – Significantly lower entry cost (start small and quick)

– Order and pay only what you need

– Return what you currently do not need anymore

Elasticity (grow and shrink capacity on

demand)

– Horizontal scalability

– Statelessness

– Fast startup, graceful shutdown of components

Page 19: Using Java in Credit Suisse

PaaS Application services based on

high-level domain abstractions

(reference architectures, container

frameworks, progr. lang. artifacts, etc.)

IaaS Generic infrastructure services

based on low-level HW/OS

abstractions

manage entire blueprints manage single, unrelated VMs

rely on IaaS for capacity mgt → provide planning input to IaaS

capacity mgt of large server park → support different classes of reqs

horz. elasticity per application → capacity range as hint to IaaS

horz. elasticity within server park → minimize free pool

HA in middleware HA on HW, hypervisor or OS level

IT DR in middleware IT DR in hypervisor and storage

monitoring & logging for PaaS components

monitoring & logging for IaaS components (hypervisor, OS, ...)

high-level measurements → # requests, E2E

low-level measurements → CPU, memory, I/O

manage PaaS CMDB items → blueprints & PaaS specific components

manage IaaS CMDB items → VMs & IaaS specific components

PaaS – Platform as a Service Cloud for Development and Operation of Applications

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) slide 19

events

JAP components & blueprints

CHP components & VMs

Web services

PaaS (e.g. JAP)

IaaS (e.g. CHP)

IaaS CMDB

PaaS CMDB

example WS: JAP order • single JAP VM • fixed-size memory

• server anti-affinities • DC affinities • no HA • no IT DR

Page 20: Using Java in Credit Suisse

PoC Demo – Order/Provision JAP Blueprint

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) slide 20

Use Case: Order Capacity in Dev/Test

• self-service

• order entire blueprints along JAP reference architecture incl.

presentation, business, and data tier interactively or

programmatically

• specify elasticity requirements

• simplified specification choices only

• very fast order fulfillment (seconds/minutes)

• blueprint specifications can be stored/reloaded

• result: number of virtual servers running order compliant JEE or DB stacks configured / interconnected according to reference architecture

and ready for application component deployment

Page 21: Using Java in Credit Suisse

PoC Demo – Deploy Application to Blueprint

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 21

Use Case: Deploy Application Components in Dev/Test

• self-service

• specify deployable application and configuration components per blueprint tier • deploy components per tier or for entire blueprint

• very fast deployment and activation of components (seconds/minutes)

interactively or programmatically

• semi-automated component wiring

• automated remote call setup when possible

• manual conflict resolution

• manual specification for missing standards

• component specifications are reproducible (can be stored/reloaded); several deployable to same blueprint

• result: specified application components deployed to specified tier(s), wired up, and activated (ready to be used in application client requests)

Page 22: Using Java in Credit Suisse

Credit Suisse Platforms

Outline

Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 22

1

2 Java Application Platform

3 Java Application Platform

3

Our Vision: JAP in the Cloud

4 A Customer’s Perspective

May 15, 2013

Page 23: Using Java in Credit Suisse

Is Java EE ready for the Cloud?

A Customer's Point of View − Some Questions

Is VM template cloning supported?

− burnt-in assumptions about machine-specific configurations? (e.g. hostname hardwired in scripts)

Is elasticity supported? (in general: dynamic automated blueprint management)

− Growing: create and add instance to blueprint

rapid provisioning of a new instance (incl. application components) - e.g. VM template cloning helps

reproducible stack and configuration with own identity

after provisioning: startup of container and of application should be fast

KPI: how long does it take until new instance is ready to accept application requests

− Shrinking: shutdown and remove instance from blueprint

block any new requests (not belonging to active sessions)?

session migration on demand? (some state might be hard to migrate to a different instance, e.g. distributed trx state or local cache)

other graceful starvation/shutdown measures? (incl. standard events to application?)

KPI: how long does it take until an instance's capacity can be given back?

− Connection/environment management

can connection pools gracefully and transparently grow and shrink? (i.e. without application involvement)

load balancer, monitoring, log file mgt., etc. adjustable automatically?

− Clustering

dynamic ad hoc adding/removing of an instance to/from a container cluster?

avoid cross-site clusters (operational independence!); avoid clustering anyway as much as possible (except for HA)?

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 23

Page 24: Using Java in Credit Suisse

Is Java EE ready for the Cloud?

A Customer's Point of View − Some Questions (cont.)

Maintenance supported?

− in place patching

guaranteed backwards compatibility

without reboot?

− rolling upgrade (similar to elasticity!)

add new upgraded instance, then shutdown an old one - or the other way around

again: session migration on demand or other graceful shutdown measures?

Resource management in shared environments?

− heap size adjustable?

− CPU and I/O requirements expressible by container? -> standard way to pass that to JVM and from there to OS and to hypervisor

− in general: standard indication to hypervisors about memory usage for code that can be potentially shared across VMs

May 15, 2013 Infrastructure Architecture & Strategy, Susanne Cech Previtali (KIVO) and Peter Schnorf (KIVB) 24