aai-1304 technical deep-dive into ibm websphere liberty
TRANSCRIPT
© 2015 IBM Corporation
Technical Deep Dive into IBM WebSphere Liberty Dr Alex Mulholland WAS Liberty Architect
Please Note Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
2
Reasons to love WebSphere Application Server……
3
Secure
Well-tooled
Robust
Scalable
Very Fast!
Java EE Compliant IBM Support and
Training
• WAS 8.5.5.4 outperforms WL 12.1.3 by 32% on per core basis and retains Industry leadership on SPECjEnterprise 2010 Benchmark results published on latest Intel Haswell EP Processors
• WAS leads on per Processor
performance as well beating WL 12.1.3 on the latest Intel Haswell EP processors as per results published on SPEC
IBM is World Leader in Enterprise Performance
Both published Feb 2015
… but you asked us for something more…..
• Lightweight • Composable • Simple • Flexible • Dynamic • Open & Extensible • Cloud-ready
…. but as production-ready as the original….. …. with even higher management scale!
5
WebSphere Application Server Liberty Profile
WAS 8.5, June 2012
Lightweight download & install • Java EE 6 Web Profile certified app server in a 59MB
download
6
java -jar wlp-developers-runtime-8.5.5.4.jar
• Archive install:
Installation Manager is also an option
Archives fully supported with fix packs and iFixes
no login required!
Lightweight runtime is very fast • Server starts in 3 seconds…
7
Lightweight runtime is very small • Server starts in less than 3 seconds… • … with a memory footprint around 60 MB…
8
Lightweight – but still faster than the competition!
9
Intel IvyBridge 2-cores enabled, Linux 64-bit Oracle JDK 7 u67 is used for all products
Lightweight developer tools • Powerful developer tools as an Eclipse plugin
10
Eclipse WAS Developer Tools Rational Application Developer
Paid Offering Freely available Supported with WAS 8.5.5
Com
preh
ensi
ve
Focu
sed
Bas
ic
Web 2.0 & Mobile
Portal & Portlet
OSGi Java EE
WAS & Liberty Profile
Cloud
JCA
Batch
SCA
JSF
Visualization
Team Debug
Analysis
Profiling
SIP
CEA
Team Code Coverage
Free
Data
Maven
! install runtime and related plugins ! automatic feature setting ! rich configuration editor ! remote server support
Composable architecture • Tiny kernel with optional features
11
Full profile
runtime services config model
Java EE Implementation
WAS Extensions
Liberty profile
kernel
servlet http app mgr
security jsp jsf
Component reuse from full profile provides ! common behavior for applications ! common performance profiles (throughput)
12
Runtime Performance (DayTrader 3)
SUT: Intel IvyBridge 4-cores enabled, Linux 64-bit
Composable server instances
• You control which features are loaded into each server instance
13
<feature>servlet-3.0</feature>
<feature>jsf-2.0</feature> <feature>appSecurity-2.0</feature>
Liberty profile
kernel
servlet http app mgr
security jsp jsf
Liberty profile
kernel
servlet http app mgr
Internal feature dependencies are managed for you, for example: ! jsf feature includes jsp ! jsp feature include servlet ! jdbc feature includes transactions
z/OS Edition Adds z/OS exploitation features
Network Deployment Edition
Adds centralized management and clustering features
Composable feature sets
14
" Product editions contain nested sets of features
“Base”, Express and Developers’ Editions
Adds some Java EE 6 (full) Profile features
Liberty Core Edition Java EE 6 Web Profile + some Java EE 7 Web Profile Other core features
Initial install features – archive or IM
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
nd base
wab-1.0 concurrent-1.0
collectiveMember-1.0 restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0 json-1.0
timedOperations-1.0 monitor-1.0 oauth-2.0
blueprint-1.0
servlet-3.0 jsp-2.2 jsf-2.0 ejbLite-3.1 jdbc-4.0
jndi-1.0 appSecurity-2.0 managedBeans-1.0
core
ssl-1.0 beanValidation-1.0 cdi-1.0 jpa-2.0
serverStatus-1.0
Initial install content varies by edition • Base adds entitlement
to features not included in initial install
• ND adds clustering • z/OS adds z/OS
platform integration
Extended programming model features
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
nd
mongodb-2.0 wsSecurity-1.1 wmqJmsClient-1.1 wasJmsServer-1.0
jmsMdb-3.1 wasJmsClient-1.1 jaxws-2.2
jaxb-2.2 wasJmsSecurity-1.0
base
wab-1.0 concurrent-1.0
collectiveMember-1.0 restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0 json-1.0
timedOperations-1.0 monitor-1.0 oauth-2.0
blueprint-1.0
servlet-3.0 jsp-2.2 jsf-2.0 ejbLite-3.1 jdbc-4.0
jndi-1.0 appSecurity-2.0 managedBeans-1.0
core
ssl-1.0 beanValidation-1.0 cdi-1.0 jpa-2.0
serverStatus-1.0
Extended programming models optionally installable on all editions except Liberty Core
extended programming models
Currently available features
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos nd
mongodb-2.0 wsSecurity-1.1 wmqJmsClient-1.1 wasJmsServer-1.0
jmsMdb-3.1 wasJmsClient-1.1 jaxws-2.2
jaxb-2.2 wasJmsSecurity-1.0
base
wab-1.0 concurrent-1.0
collectiveMember-1.0 restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0 json-1.0
timedOperations-1.0 monitor-1.0 oauth-2.0
blueprint-1.0
servlet-3.0 jsp-2.2 jsf-2.0 ejbLite-3.1 jdbc-4.0
jndi-1.0 appSecurity-2.0 managedBeans-1.0
core
ssl-1.0 beanValidation-1.0 cdi-1.0 jpa-2.0
zosConnect-1.0
zosLocalAdapters-1.0
adminCenter-1.0
jca-1.6
servlet-3.1
scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0
openid-2.0
openidConnectServer-1.0
websocket-1.0
openidConnectClient-1.0
couchdb-1.0
serverStatus-1.0
repository-only
jcaInboundSecurity-1.6 mdb-3.1 jms-1.1
jsonp-1.0
collectiveController-1.0 clusterMember-1.0
8.5.5.5 announced
jsp-2.3 el-3.0
spnego-1.0
websocket-1.1 jdbc-4.1
osgiAppIntegration-1.0
http://wasdev.net/repo
WAS Liberty Base v8.5.5.x Freemium
Announcement: No-charge, no-support option for deployment in test and production. The usage is restricted to a maximum of 2 GB of JVM heap size across all instances of application servers for the licensee.
18
" No cost for small deployment and grow as needed
" Real production experiment: in addition to current free development usage
" Full functionality in WAS Liberty Base with huge performance and functionality advantages
" Both On-prem and public clouds deployment option for flexile choices
How to Experience it? Why WAS Liberty Base Freemium?
# Download it through Wasdev.net
# You can still use free WAS forums and document to get answers for your question
Composable Admin Center
19
NEW! Configure tool in Feb Beta
Deploy packaged servers and join to collective
Explore applications, clusters, servers and hosts
beta
Configure tool design view
20
beta
Current beta only works with config for server running adminCenter
Continuous Delivery of new function • Bluemix and beta drivers every month
21
• GA features delivered regularly via Liberty Repository
servlet-3.1 websocket-1.0 jsonp-1.0 openid-2.0 couchdb-1.0 + others
4Q 2014
• Java EE7 features started 4Q 2014
2Q 2014
jca-1.6 adminCenter-1.0 zConnect-1.0 + others
1Q 2015
jsp-2.3 el-3.0 spnego-1.0 adminCenter+ plus…. -java 8 -docker4dev
Simple to get started locally
22
1. download liberty archive 2. java –jar <archive> 3. bin/server create myServer 4. cp myapp.war usr/servers/myServer/dropins 5. bin/server run myServer 6. http://localhost:9080/myapp
Even simpler in the cloud
23
IBM BlueMix public / dedicated
app is auto-wired to cloud services
Elastic MQ
Session Cache
Data Cache
Log Analysis
Twilio Mobile "Data
SQL (DB2) Database
Mongo DB
MySQL
Monitoring and Analytics
app is packaged with runtime by liberty buildpack
+ +
cf push app.war
Developer desktop
Simple to configure
24
• ONE required configuration file • ${wlp.install.dir}/usr/servers/server_name/server.xml • User configuration for kernel and features
• Optional files in same server directory • server.env – read by server script – useful to override locations
• eg. JAVA_HOME, WLP_USER_DIR, and WLP_OUTPUT_DIR • jvm.options – provided to JVM at startup – JVM settings, system properties
• bootstrap.properties – to initialize core runtime (before XML config is read) – predefined properties – any custom property, variable for XML config etc
Simple to configure
25
• All features have useful built-in defaults for their XML config
View the defaults easily in the WDT config editor
• Some default config instances are also provided
<distributedMap id="defaultCache” jndiName="services/cache/distributedmap” memorySizeInEntries=”5000" cacheProviderName="default"/>
Attribute values for default instances can be overridden in server.xml
Simple to configure
26
• server create command generates simple working server.xml
! Runs servlets and JSPs
! Default endpoint shown to make port overrides easy
Simple to share config files
27
${wlp.install.dir}/usr/servers/server_name/server.xml
<server description="new server"> <featureManager> <feature>jsp-2.2</feature> </featureManager> <include location="${shared.config.dir}\common-config.xml" /> </server>
• Include files from local filesystem or network
derbypath=/usr/derby
bootstrap.properties file
<variable name=”derbypath" value=”/usr/derby" />
server.xml or included xml file
export derbypath=/usr/derby
environment variable
<fileset id="DerbyFileset" dir="${derbypath}" includes="derby-10.10.1.1.jar" />
• Use variables to maximise sharing
${wlp.install.dir}/usr/servers/shared/config/common-config.xml
Application
API
Internal classes (hidden)
libx v2.2
libx v1.6
Liberty classloading
Application
API
Internal classes (visible)
libx v2.2
libx v1.6
Traditional classloading
Simple to use third-party libs • Hidden internals keep classloaders clean
28
<classloader xmi:id="Classloader_1347543866613" mode="PARENT_LAST"/>
X
Simple to update • Architectural Goal: Zero migration for unchanged apps
Bring your config
Choice: Features limit runtime behavior change Existing features remain unchanged eg. servlet-3.0 New feature versions contain updates, eg. servlet-3.1 No custom properties for behavior switching
Point to your existing JRE Within supported software levels. Java 6 will not last forever New Java EE features may require higher versions of Java
8.5.5.2
8.next
Your configuration, applications,
resources WLP_USER_DIR
java -jar wlp-developers-runtime-8.5.5.2.jar
java -jar wlp-developers-runtime-8.next.jar
Spec updates often force behavior changes
30
Singleton features
8.5.5.4 runtime 8.5.5.4 runtime
servlet-3.0 servlet-3.1
old app
new app
servlet-3.0
old app
servlet-3.1
new app
invalid configuration
Existing features run on updated kernel • support existing applications with no change in
behavior New features are available for new and changed applications These features are singletons and cannot be configured into the same server instance
31
Java EE 6 & 7 toleration
servlet-3.1
websocket-1.0 (servlet-3.1)
A full feature stack is always supported
jsp-2.2 jsf-2.0 websocket-1.0 etc… servlet-3.0
Some EE7 features will prereq others, affecting the allowed configurations
servlet-3.1
jsf-2.0 jsp-2.3 el-3.0
Not all combinations are possible, per spec requirements and practicality
servlet-3.0
jsf-2.0 jsp-2.3 el-3.0
8.5.5.5 runtime
Flexible Java support • Bring your own Java…6, 7 or 8
32
Develop and test apps on your macbook
Flexible deployment: server package • Package runtime, config and app in an archive
33
myapp.war server.xml runtime
minify option packages only the runtime features used by the server
server package myServer –include=minify
• ftp to hosts, unzip and run
Resulting installs fully supported with fix packs and iFixes
Flexible to Run Everywhere
Bluemix public, dedicated, local
Cloud Services built on Liberty
BPM Workflow Watson DA Data Cache
…
Operating systems
linux windows
aix
solaris hp/ux
z/linux
z/os
ibm-i
mac/osx
Private IaaS Liberty Patterns Pure App Virtualized systems Containers
Containers
Embedding products >100
isa spss as
infosphere
worklight wamc
itsm
algo one
rsa
rad
z/os mf sterling b2b
mq appliance
i2 coplink
cics
ims
Public IaaS IBM Softlayer
MS Azure Amazon AWS
PaaS hybrid
private
public
OpenShift
Heroku
Cloud Foundry
Use your WebSphere PVUs both on-premise and in IBM cloud!
On-Premises Total Control
Maximum Flexibility Maximum Security
IBM Cloud Public Cloud Economies
Time to Market
IaaS – SoftLayer BYOS&L – WebSphere App Server
Promotion: IBM WebSphere on SoftLayer
WAS 2-for-1 offer Promotion period:
Mar. 09 - Sept. 09, 2015
No additional charge during promotion
• No restrictions on use. Support through your S & S • No need to contact IBM or “order” anything. Customers track “dual usage” of PVUs • Cost of the cloud infrastructure is not included as part of the promotion
• Requires SoftLayer. PureApplication Service is optional • When promotion ends, customer will need to purchase additional WebSphere
PVUs to continue running in the cloud. • Announcement Letter Number: ZAAM5188A
Announced for NA with other IOTs to follow
Dynamic updates to the runtime • Dropin application install and update • Configuration files also monitored for updates
• All configuration changes are dynamic
36
running server
Copy app to ‘dropins’ or Add <application/>
Add <feature>jdbc-4.0</feature> <dataSource/>
Add <library/> Modify <dataSource> <properties/> </dataSource>
Dynamic routing • Routing information in web server plugin can be dynamically
updated as application endpoints change
37
Controllers
ODRLIB plugin
IHS Web Server
HTTP traffic
Config changes
Routing info updates
Collective members
Based on highly scalable, agentless Liberty Collectives
Dynamic scaling • Servers can be started and stopped per scaling policy
38
Controllers
ODRLIB plugin
IHS Web Server
HTTP traffic
Start & stop servers
Routing info
Scaling Cluster members
Scaling policies based on: • min / max # running servers • thresholds for monitored resources
• cpu, memory, heap
Scaling
Resource data
new member
beta: add new member to cluster
Open Liberty Community • WASdev community site for information, assets and help
39
http://wasdev.net
Forum monitored by Liberty dev team
Source samples for ant, maven, chef, puppet integration and more
Open Ecosystem
40
Jenkins
IBM integrations
Third party integrations
Open kernel: extensible and embeddable
• Run liberty inside in your java app
41
Your JVM
Liberty profile
web app Future<Result> startFuture = libertyServer.start();
Future<Result> stopFuture = libertyServer.stop();
CICS TS 5.2 does this !
• Open kernel SPI lets you plug in your own features
Liberty profile
kernel
servlet http app mgr
mySvc myUI ! Manage as runtime feature, not application ! Integrate with liberty configuration & tools editor ! Expose API, services and http endpoints ! OSGi management of native libraries ! Access to powerful product SPI ! Tools support for feature development
Where can I hear more about Liberty?
42
Key Sessions:
# Meet the Liberty Experts Tuesday, 2:00pm Session 1314A
# 10,000 Servers and Climbing: Achieving Liberty at Scale Tuesday 3:30pm Session 2827A
# Deploying Apps to Liberty in Bluemix Tuesday, 3:30pm Session 2694A
# Liberty support for Java Batch and JSR-352 Tuesday, 5:30pm Session 1841A
# Shaping the Future of Liberty Admin Center Tuesday, 5:30pm & Wednesday 9:30am & Thursday 9:00am Session 3319
# Problem Determination Tools and Strategies for Liberty and Full Profile WAS Tuesday 5:50 Session 2793A
# Comparing Liberty and Full Profile to Tomcat, JBoss and WebLogic Wednesday, 2/25 – 8:00am Session 5630A
# Liberty: From Inspriation to Production in an Hour Wednesday 9:30am Session 4465A
# Top 10 Tuning Recommendations for Full and Liberty profiles Wednesday 9:30am Session 2611A
# Bluemix Application Runtimes Wednesday 11:00am Session 2637A
# Get Rapid, Right-Sized and Recent with Liberty Repository Wednesday 11:00am Session 2358A
# Choosing Liberty for Deployment (Roundtable) Wednesday, 2/25 – 3:30pm & Thursday 9:00 am Session 3083
# Full Disclosure on Performance Characteristics of Liberty Wednesday 3:30pm Session 4847A
# Why Sparda loves the Liberty Profile on zOS Wednesday, 2/25 – 5:30pm Session 4348A
# Choosing Liberty for Java EE Deployments Wednesday 5:30pm Session 1305A
# Production Deployment Best Practices for Liberty Wednesday 5:30pm Session 3218A
# Using WMQ with WAS and Liberty Thursday 9am Session 2287A
# Liberty Real Time Communications Thursday 2/26 – 1:00pm Session 2811A
Questions?
We Value Your Feedback • Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to continually improve the conference.
• Use the Conference Mobile App or the online Agenda Builder to quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions you’ve attended
44
Notices and Disclaimers Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
Thank You Your Feedback is
Important!
Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone,
laptop or conference kiosk.