470 likes | 681 Views
Application Migration Necessity, Concepts, and Techniques . Brian Hetrick SAIE (Systems Application Integration Engineering) Compaq IQ Center. Software development/ migration in Nashua NH, co-located with and cooperating with BCSG Software Engineering Performance facility in Littleton MA
E N D
Application Migration Necessity, Concepts, and Techniques Brian HetrickSAIE (Systems Application Integration Engineering)Compaq IQ Center
Software development/ migration in Nashua NH, co-located with and cooperating with BCSG Software Engineering Performance facility in Littleton MA Develop integrated applications / solutions for vertical markets Address customer solution needs for: Migration Supply chain integration Customer relations management Business intelligence Zero Latency Enterprise systems SAIE/IQC New England
Agenda • Why Migrate? • Application Development • Migration Types and Techniques • Reengineering = Development • Migration Costing • Migration Process
Financial Models • Manufacturing Model • Set all of good, fast, cheap • Engineering Model • Set two of good, fast, cheap • Third can be estimated • Research Model • Set two of good, fast, cheap • No idea of third
Development Behavior Rewarded isDevelopment Behavior Obtained Team Goal Team Rating For Time Size Data Clear UI Time to Complete 1 4 4 5 3 Program Size 2-3 1 2 3 5 Data Space Size 5 2 1 4 4 Program Clarity 4 3 3 1-2 2 UI Friendliness 2-3 5 5 1-2 1
Budget-Driven Development ... • Cost and duration are easy to measure, so often become driving metrics. • In the three-way trade-off, “good, fast, cheap: pick two,” fast and cheap get picked. • For minimum time, project cost should triple; but flat budget means two-thirds of the work is not done.
… Sacrifices “Invisible” Deliverables • Under pressure, parts of project are sacrificed • Pieces sacrificed are “invisible” • Reliability • Maintainability • Documentation • Adaptability • Performance
Applications Are Liabilities, Not Assets • Maintenance costs are 50-95% of total lifetime costs • Every application is an expense stream incurred but not yet paid • Development actions determine expense of maintenance
Why Migration Can Be Expensive • If people built houses the way they write computer programs, the first woodpecker to come along would destroy civilization — Dijkstra • We do not know what a software “safety factor” is • We build environment-specific software
Transient Components • Migration “scaffolding” or “bridges” may be needed, later removed • Tools may need to be invented or adapted to the unique needs of the migration • While “non-deliverable” or “disposable,” these are essential
Migration Scope and Stages • Migration happens to a business system, not just an application • Application, platform, operations, environment, business process, work flow, documentation, users all interact • Changes must be: • coordinated to avoid pain • rate limited to avoid chaos
Migration Types • Re-implementation: move application “as is” to new platform • Re-architecting: move application and exploit properties of new platform • Re-engineering: rethink business processes, work flow, and application
Source application on target platform No functional changes Re-Implementation
Source function on target platform Changes to exploit platform Rezitigamed Renaelc Daeh Kcart E OK Re-Architecting
New architecture, functions to support new processes Re-Engineering
Migration Techniques • Platform Emulation: emulate original hardware • O/S Emulation: emulate original operating system • Idiom Translation: change idioms to that of new platform • Adaptation Layer: extract “kernel” application, add interface to new platform
“Big Bang” or Stepwise Migration • Migrating an application is like getting to the top of a cliff • There is always a direct, high-energy, high-risk route • There are usually several roundabout, low-energy, low-risk routes • Direct path is not always quicker or cheaper
Risk Minimization • Minimize risk: change one factor at a time • “Platform” is just one factor • Other factors: • database • network and IPC methods • transaction manager • object manager • etc.
Sequence Planning • Theoretically, a combinatorial non-linear optimization problem • Practically, finding a path through alternatives where information is difficult to obtain
AcquireHardware AcquireHardware MigrateSoftware Deploy Test MigrateSoftware Deploy Test Update Emulation as a Sequencing Aid • Emulation permits reordering the initial deployment and migration • Can deploy, then migrate
Architectural Preparation • On source platform, parameterize system and third-party dependencies • Recreate implementation of system and third-party dependencies for new system, third-party products • Easily move “kernel” application to new environment Application Adapter Adapter Adapter Adapter Adapter Adapter TPS TPS O/S O/S D/B D/B Hardware Hardware
Application Size Type of Migration Concurrent Migration and Development Informal Development No current sources No build procedures No test procedures Parochialism Application designed for source platform Application micro-optimized for source platform Language dialects Major Migration Cost Drivers
Check Validate Check Report D/B Update Validate Update Report D/B Recast as Client/Server
13 14 Observe Subvert 12 11 Impersonate 10 Consume 9 Destroy 4 2 6 8 1 3 5 7 Security Audit/Upgrade
Application Migration Predictability • “Estimated Delivery Date (EDD): the earliest time for which we cannot prove we will not be finished” does not work “Problems” $ • Some migration costs are predictable Predicted • Some are unpredictable, and might be large
Predictable Migration Costs • Measurable properties: • Application size • Language standard conformance • System dependencies at expression level • Module cohesion • Measure with: • Diagnostic compilers • Specialized tools
Unpredictable Migration Costs • Unmeasurable properties: • System dependencies at architectural level • Quality of interface abstraction layers • Resilience to changes in environment • Identify factors by: • Manual inspection • Subsystem sample migration
Rules of Thumb • Abstraction is good • Use major new technologies where applicable • The best code is the code that is not there • Migration costs 3-10% of redevelopment
Statistical Correlations • Richard Bellman: the use of statistics is a measure of our ignorance, not our knowledge • But it is better than nothing
IQC NE Discoveries • Currently being written up for submission to IEEE Transactions on Software Engineering or JACM TUIT,round,quantity 1
$ Estimate of Unpredictable Problems • Multifactor cost model gives estimates of cost of unpredictable problems within factor of 2 • Bulk estimates can be refined through detailed analysis of stratified sample of code
Compaq Upgrade/Migration Services • Services local through PS or remote through IQC: • Turnkey migration • Co-development migration • Project management • Remote through IQC NE: • Architectural assistance • Oracular assistance retainer (question line)
Deploy Test Application/System Migration Migration Assessment Migration Workshop Migration Conference Call Contact Compaq Migration Process Overview
Preparing for Migration • Change = disruption = risk • Lessen risk by migrating in stages or steps • Each stage proves concepts and provides process • Small changes to avoid chaos • The system supports the business at all stages of the process
Business Business functions and processes When migration must be complete Maximum migration investment and expense Environment Operating systems Third party products Other applications External interfaces Requirements and Goals
Preparation Strategy • Identify: • critical functions • type, technique, phasing • in-house expertise • timeframe, budget, and resources • application environment • related business process • supporting batch processes
Identify Migration Techniques • Find which technique is best suited for this migration • Affects immediate investment and risks, long-term costs, and the next migration
Plan Risk Management • Risk identification • Risk evasion tactics • Event detection triggers • Process metrics • Event recovery