Modernize your Java EE App Server Infrastructure Srinivasan Ranganathan Head Enterprise Architecture (Aug 16, 2011)
Nov 01, 2014
Modernize your Java EE App Server Infrastructure
Srinivasan Ranganathan Head Enterprise Architecture
(Aug 16, 2011)
Introduction to ZSL and Practice Area
JEE Application Server Migration - Trends
Business Challenges
Technical Challenges and Best Practices
ZSL Value addition
Q & A
Agenda
15+ years Global Technology Integrator & Business Solutions Provider, Headquartered
in Edison, NJ
State-of-the-art Technology Research & Development Centers in US, Canada and
India
4000 employees with offices in US, UK, Canada, France, Germany, Malaysia,
Singapore, Middle-East and India
Dedicated R&D Division to Offer Value Added R&D Services & Product Development
Services to the ISVs and SPs
Emerging Technologies Specialization with the leading technology vendors alignment
Pioneer in Industry Solutions Development (Insurance, Finance, E-Governance,
Consumer Electronics, Pharmaceutical & Telecom)
Award Winning & Proven Partnership Program “Get IT Together” Partnership for ISVs,
VARs, SPs and SIs
ISO and CMM Certified Solution Provider
Company Overview
Practice Area’s Specialization
Practice
Area’s
Specialization
Based out of
Edison, NJ
and Chennai,
India
Enterprise
Modernization
IDEA Lab –
Value-added
R&D, Product
Development/
Engineering
• Legacy Application
Migration
• Application Server
Migration
• Database Migration
• OS Migration
• Application portfolio
management
What is Application Server Migration
Migrating from One JEE Application
Server to Another JEE Application Server
Example
Websphere
Weblogic
Weblogic
Websphere
Websphere
JBOSS
Etc
Cost - Increase in Licensing fees, support or capacity expansion
Changing Application Server landscape
Support issues
Long term strategic objectives
Architecture Changes
Acquisition
Business Drivers
1
2
3 4
5
6
Choosing the Right Application Server
Cost – License / Operational cost. Administrative Cost
Support Stability Middleware support
Deployment features Scalability Industry trends.
Expertise available in the market
Monitoring
Why do I Migrate. Current application is
doing the job and its Java
Disruption in business
Effort/Cost and Time taken to Migrate
Performance SLA
ROI
Integration points
Skill required for Migration
Training
Business Concerns
Migration Requirement
Functional Requirements
Non Functional Requirements
Similar Functionality
Minimum Disruption while migration
Similar or Better Performance
Better Deployment and monitoring
Risk Mitigation. Ex - Roll back option
Cut over plan with minimum disruption to business
Technical Planning
Effort Estimation
Note – Typical Migration also includes Java Version upgrade and an OS Upgrade or OS Migration
Application Assessment
Understanding the current architecture/design of the existing application
Deployment Architecture
Metrics Calculation – Like third party utlities , EJB, Servlet, Webservices etc.
Inbound and outbound interfaces
Build and Deployment
Non Functional Requirements
Future Architecture/Design needs/vision
Effort Estimation Collect Metrics based on Application assessment
Example
Identify the migration points
Calculate the Effort Estimation based on the facts
Add Buffer to the above estimate for unknown risks
• Number of
• All third party
vendor jar files
used
• Technology
mapping after
migration
Migration
Upgrade Java
Use Tools provided by the target application server
for assisted semi automated migration
Solve Compile Time Issues ( jar files, refactoring etc )
Solve Deployment Issues
Look for class loading issues
Solve Runtime Issues
Migration – Easy Ones
Migration – Easy Ones
XML Config Files Migration
Java Up gradation
API Mismatch/Interface
Mismatch
Compile time issues
Deploy time issues
Migration – Medium Ones
Vendor Up gradation Application Refactoring.
That is EJB converted into Spring or POJO classes
Class Cast Exception, Class Not Found
Exceptions , Null Pointer Exception and other Runtime Exception
Interfaces to other application
Web services
Migration – Hard Ones
Vendor Bugs – Example icefaces and weblogic
Application throwing exception in the server side but not affecting the application functionality. Ex –
Memory leaks
Application have no exception but calculations are performed wrong. That is
Functional Bug
Class Loading issues. Example – Icefaces and Websphere
Other unknowns
Example Pass by
reference/Pass by Value
Session handling
etc
DB2 JDBC Driver issue
Make it vendor neutral. Sometime it is not possible
Have interfaces for intermodal interaction
Modular SOA design
No Inter coupling of Modules. Switch it using callback
interfaces or clean separation of concern
Do not modernize and migrate at the same time to
reduce risk
Design Suggestions
Non Functional Testing
Fix Issues
Complete Functional Test
the whole application. No
functionality should be left out.
Do not do just smoke testing
Load Testing
Performance Testing
Test
Maintain/enhance/ Modernize the
application
Monitor the application closely for few weeks
Train users if needed
Backup Plan
Plan your deployment and
cutoff
Deploy and Maintain
What are your software team capabilities
Can they handle it apart from the current work
How critical is the application to your business.
How complex is your application? Is the team
that developed the application intact
What is your Budget
Can you hire consultants for a short period in
need if you face issues
Can you test the entire application including
load , stress testing etc.
Outsource or Do it yourself?
• Lot of experience in Application Migration and building
java application for various application servers
• Off shore / near shore for cost savings with the right
customer support
• A Consistent framework that guarantees success.
• Fixed Cost/Fixed Time for the right project
• Set of tools to assist migration/ detect migration issues
• Responsive team for Customer Support during UAT,
deployment and Production
ZSL Offering
Zylog Framework
Phase 1
Assessment Phase 2
Discovery
Phase 3
Plan
Phase 4
Migration
Phase 5
Test
Phase 6
Deployment
Phase 7
Maintenance
Application Architecture
and Design
Deployment Architecture
Frameworks and
technology used
Inbound and Outbound
Interfaces
Build and Deployment
Non Functional
Requirements
Future Vision
Ear and War file analysis
Configuration Analysis • web.xml
• Ejb.xml
• Spring xmletc
Class Loading and class
names
Code Scanning
• Class Path Review
• Java Code Review
• JSP Code Review
Target Application Server
& Capabilities
Target Deployment
Architecture
Framework Mapping
Version Upgrade
Non Functional
Requirements
Potential Migration risks
Action Plan
Automatic Migration • Config Files
• Code Fixes
Manual Migration • Config
• Code with errors
Refactor
Unit test and Fix Issues
Build Deploy Changes
Functional Testing
Integration Testing
Performance Testing
Capacity Planning
Stress, Endurance
Testing
Application Server
Configuration
Build and Deployment
Monitor
Test
Support
Support
Monitoring
Training
Enhancement
New Development