Application Server Migration Presentation


Published on

Published in: Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Application Server Migration Presentation

  1. 1. Migrating Enterprise Applications Between J2EE Application Servers Ajit Sagar Enterprise Editor, Java Developer’s Journal Founding Editor, XML Journal Senior Technical Architect, Infosys Technologies, Inc.
  2. 2. <ul><li>Facets of Migration </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Summary </li></ul>Contents <ul><li>Why Migrate? </li></ul><ul><li>Migration Concerns </li></ul><ul><li>Migration Requirements </li></ul><ul><li>Stakeholder Perspectives </li></ul>
  3. 3. Why Migrate? <ul><li>New strategic partnerships </li></ul><ul><li>Product/Vendor upgrades </li></ul><ul><li>Increasing demands of businesses </li></ul><ul><li>Rapid technology changes </li></ul><ul><li>Performance requirements </li></ul><ul><li>Improved service to customers </li></ul><ul><li>Market pressures from competing vendors </li></ul><ul><li>Cost </li></ul>
  4. 4. Migration Concerns Will the integration with other components, products change? How can I achieve migration without impacting my current customers? How much will it cost? How long will it take? What technology / business benefits will I get after migration? My current application works fine. Why do I need to migrate? Where will I get skills / training for the migration? How will I accommodate the migration effort in my schedule?
  5. 5. Migration Requirements <ul><li>Functional </li></ul><ul><ul><li>Similar or better functionality </li></ul></ul><ul><ul><li>Minimum disruption to existing business services </li></ul></ul><ul><li>Non-Functional and QoS </li></ul><ul><ul><li>Similar or better performance </li></ul></ul><ul><ul><li>Standardization around IT strategy </li></ul></ul><ul><ul><li>Cost-effective solution </li></ul></ul><ul><ul><li>Rollback option </li></ul></ul><ul><ul><li>Minimum downtime of applications </li></ul></ul>
  6. 6. Stakeholder Perspectives <ul><li>Business Owners </li></ul><ul><ul><li>Business impact </li></ul></ul><ul><ul><li>Cost </li></ul></ul><ul><ul><li>Downtime </li></ul></ul><ul><ul><li>New features </li></ul></ul><ul><li>Technical Services </li></ul><ul><ul><li>Performance and capacity planning </li></ul></ul><ul><ul><li>Deployment process </li></ul></ul><ul><ul><li>Skills needed to set up new environments </li></ul></ul>
  7. 7. Stakeholder Perspectives <ul><li>Enterprise Architecture Team </li></ul><ul><ul><li>Architecture roadmap </li></ul></ul><ul><ul><li>Standards and governance </li></ul></ul><ul><li>Application Team </li></ul><ul><ul><li>Effort required to migrate </li></ul></ul><ul><ul><li>Required skills to migrate </li></ul></ul><ul><ul><li>Design based on new features </li></ul></ul><ul><ul><li>Additional work in an already busy schedule </li></ul></ul>
  8. 8. Stakeholder Perspectives (contd.) <ul><li>Application Server Vendor </li></ul><ul><ul><li>Backwards compatibility </li></ul></ul><ul><ul><li>Product roadmap </li></ul></ul><ul><ul><li>Competitive advantage </li></ul></ul><ul><li>Third Party Vendors </li></ul><ul><ul><li>Compliance with new APIs </li></ul></ul><ul><li>Program Management </li></ul><ul><ul><li>Risk mitigation </li></ul></ul><ul><ul><li>Project management for analysis, planning, execution </li></ul></ul>
  9. 9. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Summary </li></ul>Contents <ul><li>J2EE Evolution </li></ul><ul><li>The App Server Market </li></ul><ul><li>Role of App Server Vendors in the Organization </li></ul>
  10. 10. J2EE Evolution <ul><li>Before Java 2, Java was simple </li></ul><ul><li>Complexity due to segregation into J2SE/J2ME/J2EE </li></ul><ul><li>Complex packaging and deployment </li></ul><ul><li>Some key upgrade drivers: </li></ul><ul><ul><li>JSP 0.9-1.1 </li></ul></ul><ul><ul><li>JDBC 1.x-2.0 </li></ul></ul><ul><ul><li>Servlets 1.x-2.3 </li></ul></ul><ul><ul><li>EJB 2.0 </li></ul></ul><ul><ul><li>MDBs in EJB 2.0 </li></ul></ul><ul><ul><li>Web Services support </li></ul></ul>
  11. 11. App Server Market <ul><li>A few years ago, there were 20+ major app server vendors </li></ul><ul><li>Now, for large organizations, there are: </li></ul><ul><ul><li>IBM WebSphere </li></ul></ul><ul><ul><li>BEA WebLogic </li></ul></ul><ul><ul><li>Oracle Application Server </li></ul></ul><ul><ul><li>JBoss </li></ul></ul><ul><ul><li>Sun One </li></ul></ul><ul><li>The differentiation is in terms of technical capabilities, packaging, </li></ul>corporate relationships, and cost
  12. 12. App Server Market (contd.) <ul><li>Implementations and optimizations were done ahead of API releases </li></ul><ul><li>Some App Servers were late to adopt to the latest J2EE releases </li></ul><ul><ul><li>e.g., IBM included EJB 2.0 support more than a year after BEA </li></ul></ul><ul><li>App Server vendors solution stack includes offerings supplementary to Java </li></ul>
  13. 13. Role of App Server Vendors <ul><li>Licensed product </li></ul><ul><li>Licensed product + consulting </li></ul><ul><li>Licensed product + technical services </li></ul><ul><li>Licensed product + infrastructure management </li></ul>
  14. 14. Contents <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Case Studies </li></ul><ul><li>Upgrade </li></ul><ul><li>Cross App-Server Migration </li></ul><ul><li>Cross Hardware/OS Migration </li></ul><ul><li>Cross Software Platform Migration </li></ul>
  15. 15. Upgrade <ul><li>Phasing out support for previous versions </li></ul><ul><li>Compliance with latest J2EE standards </li></ul><ul><li>Standardization to consolidate version of Java APIs across the organization </li></ul><ul><li>Typical upgrade timeframe is every 12-18 months </li></ul><ul><li>Example – WebSphere 3.5 to 5.1 upgrade </li></ul>
  16. 16. Cross App Server Migration <ul><li>Vendor solution stack offerings </li></ul><ul><li>Cost advantage </li></ul><ul><ul><li>Examples – migration to Sun One, migration to JBoss </li></ul></ul><ul><li>Consolidation to one application server for all applications </li></ul><ul><li>Corporate agenda/partnerships </li></ul>
  17. 17. Cross Hardware/OS Migration <ul><li>Migration to cheaper hardware </li></ul><ul><ul><li>Example – migration to Linux/Red Hat, migration to Windows 3K servers </li></ul></ul><ul><li>Migration to higher performance hardware </li></ul><ul><li>Migration to “one-stop shop” </li></ul><ul><ul><li>Example – IBM, Sun </li></ul></ul>
  18. 18. Cross Software Platform Migration <ul><li>Migration from mainframe to J2EE application server </li></ul><ul><li>Migration from .NET to J2EE application server </li></ul><ul><li>Migration from PowerBuilder to J2EE application server </li></ul>This can be categorized as a rewrite/re-architecture, and not migration
  19. 19. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Case Studies </li></ul>Contents <ul><li>Application Footprint </li></ul><ul><li>J2EE Migration Considerations </li></ul><ul><li>Integration Components </li></ul><ul><li>Third Party Vendors </li></ul>
  20. 20. Application Footprint J2EE APIs Messaging Security/SSO Portal Legacy Reporting Other Internal Applications Workflow External Applications
  21. 21. J2EE Migration Considerations <ul><li>Packaging – IDE specific, vendor specific </li></ul><ul><li>IDEs </li></ul><ul><li>Authentication and Authorization mechanism </li></ul><ul><li>Off the Shelf Components </li></ul><ul><li>System Interfaces </li></ul><ul><li>Third-party libraries </li></ul><ul><li>Persistence Mechanisms </li></ul><ul><li>Changes to specifications </li></ul><ul><li>Use of proprietary technologies </li></ul>
  22. 22. J2EE Components and APIs <ul><li>JSPs </li></ul><ul><li>Servlets </li></ul><ul><li>EJBs </li></ul><ul><li>JDBC </li></ul><ul><li>POJOs </li></ul><ul><li>JMS </li></ul><ul><li>Web Services APIs </li></ul>
  23. 23. Integration <ul><li>Security </li></ul><ul><li>In-house frameworks and components </li></ul><ul><li>Integration with legacy systems </li></ul>
  24. 24. Third Party Vendors <ul><li>Compatibility with target application server </li></ul><ul><li>Compatibility with target hardware/OS </li></ul>
  25. 25. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Summary </li></ul>Contents <ul><li>Characteristics of Enterprise Applications </li></ul><ul><li>Large Scale Migration Challenges </li></ul>
  26. 26. Characteristics of Enterprise Applications <ul><li>Varying levels of complexity </li></ul><ul><li>Enterprise Applications are distributed applications </li></ul><ul><li>Involve varying versions of technologies and APIs </li></ul><ul><li>Unique integration requirements </li></ul><ul><li>Integration with third party packaged products </li></ul><ul><li>Integration with in-house frameworks and components </li></ul>
  27. 27. Characteristics of Enterprise Applications <ul><li>Application teams have differing levels of expertise </li></ul><ul><li>Can require communication between heterogeneous hardware/software platforms </li></ul><ul><li>Typically involve multiple stakeholders </li></ul><ul><li>Dependencies between applications in a portfolio </li></ul><ul><li>Usually have stringent SLAs </li></ul><ul><li>Complex testing requirements </li></ul>
  28. 28. Large Scale Migration Challenges <ul><li>A structured migration attempts to apply a “one shoe fits all” approach </li></ul><ul><li>Different application teams see different benefits/challenges </li></ul><ul><li>Schedule and functional dependencies make overall planning very complex </li></ul><ul><li>Infrastructure planning is inherently complex </li></ul><ul><li>A substantial investment is required for the migration </li></ul>
  29. 29. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Case Studies </li></ul>Contents <ul><li>Migration Phases </li></ul><ul><li>J2EE Migration Methodology </li></ul>
  30. 30. Migration Phases
  31. 31. J2EE Migration Methodology
  32. 32. J2EE Migration Methodology Highlights <ul><li>Leverages tools available from the vendor </li></ul><ul><li>Incorporates phased approach for migration </li></ul><ul><li>Enables better planning and scheduling </li></ul><ul><li>Provides end-to-end migration solution </li></ul><ul><li>Aids in migrating portfolios of J2EE applications </li></ul><ul><li>Substantially mitigates migration risk </li></ul>
  33. 33. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Case Studies </li></ul>Contents <ul><li>Migration Approach </li></ul><ul><li>Migration Analysis </li></ul><ul><li>Prioritization </li></ul><ul><li>Cost </li></ul><ul><li>Migration Scheduling </li></ul>
  34. 34. Migration Approach Infrastructure Set up Program Management Testing Services Technical Migration Perform unit testing for components Prepare migration strategy Migrate code to new environment Integration, UAT, stress and regression testing Develop sizing and scheduling estimates Collect Information on Testing processes, Tools Project management, Risk management, Resource management, Knowledge management, Change management and Leadership, Quality & Metrics Management Understand As-Is and To-Be Infrastructure Program Managed Application Server Migration Tracks Perform IDE testing for application Analysis, Planning & Scheduling Code Migration & Deployment Testing and Release Transition and Warranty Deploy code in new environment Define testing strategy & plan Complete DRR request and deployment map Verify availability of target environments Review and Standards Prepare review documents, participate in review check points and work with standards groups, to align the application architectures with technology standards within the organization.
  35. 35. Migration Analysis 1 2 3 4 5 6 7 2 3 4 5 7 3 3 2 3 4 5 6 7 2 3 4 7 A B C G D, J E F H N I,L M K Risk Time Activities 1 => Application SMEs not known 2 => Migration effort not known 3 => Schedule and functional dependencies not analyzed 4 => Infrastructure requirements not determined 5 => New feature benefits not evaluated 6 => Application Characteristics not known 7 => Alignment with standards not assessed Risks A => Identify application stakeholders B => Prepare sizing template C => Feedback and finalization of responses D => Analysis of data collected E => Prepare a feature cost vs. benefit analysis F => Analyze third party tool dependencies H => Analyze integration dependencies I => L => Prepare Training Plan M => Get Stakeholder buy-in N => Finalize strategy and migration plan Activities A structured approach mitigates the risk of migration and optimally leverages the features of the new platform Migration strategy, planning, & execution
  36. 36. Detailed Planning Activities Project Inception Preparation of application inventory and templates Information Gathering Team interviews and data collection Analysis Sizing, estimates. and schedule Prepare and finalize application inventory Refine pre-defined sizing and analysis templates to for enterprise application migration needs Review & Publication Estimates Review, publication and presentation to stakeholders Meet with subject matter experts for each application to capture application characteristics in the templates Analyze and estimate testing and training efforts for the development and production environments Meet with application teams to refine the process for estimating the effort Prepare migration cookbook for WAS migration specific to target environment Produce migration estimates based on dependencies on Java architecture components, 3 rd party libraries and products, and integration requirements Refine and enhance sizing and effort formulas and factor in each application’s business constraints to prepare initial schedule Collect information on existing strategy for individual applications Present migration plan to key stakeholders Factor in per-application project costs and overall PMO costs Migration Estimates and Analysis Workbook Application characteristics Executive presentation Migration estimates, schedule , Analysis Workbook , and Migration Cookbook Determine the future states for the APIs and third party versions based on enterprise architecture standards ACTIVITIES TASKS OUTPUT
  37. 37. Example - Migration Analysis Workbook Illustrative This workbook constitutes a framework for WAS migration analysis and estimation. It consists of templates to capture the various facets of an enterprise level migration involving applications owned by multiple portfolios/LOBs The contents of this analysis and estimation workbook can be customized for the client, based on the requirements and the scope of the engagement. Worksheets can be added or deleted from this workbook
  38. 38. WebSphere Upgrade - Transition 3.5x 2.03 4.0x Recommended Enterprise Architecture Components may not be used MQ Development Environment VAJ WSAD Source Code VAJ CVS IDE App Server Versions Run Time Environment Sun Solaris, UNIX APIs Servlets 1.x 2.1 2.2 JSPs 0.9 1.0 1.1 EJBs 1.0 1.1 JDK/JRE 1.2.x 1.3.x 5.1 Recommended JAT Components used MQ Development Environment WSAD 5 Source Code CVS IDE App Server Version Run Time Environment Intel, Linux APIs Servlets 2.3 JSPs 1.2 EJBs MDB 2.0 JDK/JRE 1.4 CURRENT STATE FUTURE STATE J2EE 1.3 UDB 7.x Sybase UDB 8.x Sybase Illustrative
  39. 39. Migration Prioritization Technical Complexity Business Criticality Quadrant 4 Technical Index = Low Business Index =Low Quadrant 1 Technical Index = High Business Index = High Quadrant 2 Technical Index = Low Business Index = High Quadrant 3 Technical Index = High Business Index = Low App 1 App 5 App 4 App 3 App 2 App 7 App 6
  40. 40. Cost Estimates <ul><li>SUMMARY </li></ul><ul><li>Application Migration Effort (code migration and testing) = 20,939 hours </li></ul><ul><li>Total cost = USD 9,240,640 </li></ul><ul><li>Largest cost = Application 7 (USD 2,304,834) </li></ul><ul><li>Smallest cost = Application 15 (USD 71,831) </li></ul><ul><li>High hours (due to benchmarking requirement) = Application 29 (2,380 hours) </li></ul><ul><li>NOTES </li></ul><ul><li>External costs for are not factored in </li></ul><ul><li>Updates from some applications may change the estimates </li></ul><ul><li>Application Migration includes code migration and testing </li></ul><ul><li>Project and PMO costs include training </li></ul>Illustrative
  41. 41. Migration Schedule Illustrative
  42. 42. Contents <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Summary </li></ul><ul><li>Migration Frameworks </li></ul><ul><li>Migration Tools </li></ul>
  43. 43. Migration Aids <ul><li>Automated migration tools </li></ul><ul><li>Migration Service Offerings </li></ul><ul><li>Training </li></ul><ul><li>Migration guides </li></ul><ul><ul><li>Migrating to WebSphere V5.0 An End-to-End Migration Guide </li></ul></ul><ul><ul><li>Migrating J2EE applications into Weblogic product family </li></ul></ul><ul><ul><li>Migrating J2EE applications into Sun Java System application server product family </li></ul></ul><ul><ul><li>Moving a WebLogic Server Application into WebSphere Studio </li></ul></ul>
  44. 44. Migration Frameworks <ul><li>Analysis and Estimation frameworks </li></ul><ul><li>Planning and Execution frameworks </li></ul><ul><li>Benchmarking frameworks </li></ul>
  45. 45. <ul><li>Why Migrate? </li></ul><ul><li>How We Got Here </li></ul><ul><li>J2EE Migration By Any Other Name … </li></ul><ul><li>Migrating J2EE Applications </li></ul><ul><li>Migrating Enterprise Applications </li></ul><ul><li>Migration Methodology </li></ul><ul><li>Migration Planning </li></ul><ul><li>Migration Aids </li></ul><ul><li>Summary </li></ul>Contents <ul><li>Migration Best Practices </li></ul>
  46. 46. Migration Best Practices <ul><li>Program manage your migration </li></ul><ul><li>Prepare your arsenal </li></ul><ul><li>Invest in a planning phase </li></ul><ul><li>Communicate and educate </li></ul><ul><li>Get everyone working towards the same goal </li></ul>
  47. 47. Migration Best Practices (contd.) <ul><li>Prepare questionnaires and templates for gathering migration requirements </li></ul><ul><li>Consider the least common denominator in a plain vanilla migration </li></ul><ul><li>Invest in specialized training for migration </li></ul><ul><li>Wade the waters before jumping in </li></ul><ul><li>Always leave a back door open </li></ul>
  48. 48. Thanks Ajit Sagar [email_address]