Application Migration: Stages, Timeline, Skills and Cost Factors
In IT since 1989 and with 9 years of experience in cloud computing, ScienceSoft provides comprehensive application modernization and migration services.
APPLICATION MIGRATION: THE ESSENCE
Application migration is the process of moving software from one computing environment to another. Nowadays, the most popular application migration scenario is moving apps to the cloud (public, private or hybrid) to benefit from cloud opportunities for applications, including greater flexibility and agility and easier innovation.
Application migration stages and their timelines may differ depending on the number of applications under migration, their architecture, legacy software modifications required, migration approach, the complexity of security and compliance requirements, and more. Below, we describe the common phases of application migration.
Migration prerequisites gathering and high-level planning
Duration: 2-4 weeks
- Audit an application/application portfolio (app technology stack, when an app was created, its availability, scalability and fault tolerance requirements, etc.), the server environment.
- Assess application security and compliance risks, clarify app user access management, and determine app migration readiness.
- Prioritize applications or app parts to be migrated based on their dependencies, availability requirements and business criticality level.
- (for business software) Review key business processes supported by an application under migration, identify a business owner of each process. Develop business process maps to make sure that all the necessary functionality was taken into account for migration.
Hint 1: For business app migration, ScienceSoft recommends customer-facing apps and apps with fewer dependencies as the first choice for migration.
Hint 2: To reduce your migration budget, time and risks, interdependent applications should be migrated together. Create ‘migration groups’ bases on the analysis of the applications’ business and technical requirements, including dependency details.
Migration design and planning
Duration: 1-2 months
- Select the target environment (cloud, on-premises, hybrid).
- Select the most efficient migration approach (e.g., for cloud migration, one out of 6 Rs – rehost, replatform, refactor, retain, repurchase (for enterprise apps), retire – or a combination of several approaches).
- (for cloud migration) Choose a cloud platform and decide on fitting cloud services.
- (except for purchased enterprise apps) Taking into account the technology stack, conduct code audit to identify application areas that require modifications and adjustments for the target platform; decide on the application code conversion strategy.
- Gain a 360-degree view of dependencies:
- data flows and their dependencies;
- containers and microservices;
- hardware and software load balancing;
- Create a detailed migration plan with the required efforts and schedule the exact steps to get to the new environment.
Updating application architecture and code (except for purchased enterprise apps)
Duration: depends on the scope and depth of changes
Unless it’s simple lift-and-shift migration, there’s often a need to adjust application code and design for the new environment (especially, for app parts that are too risky and expensive to migrate, e.g., for legacy apps). At this stage, software engineers change and update application architecture design and code to take advantage of cloud services and general cloud elasticity and scalability, in case of cloud migration.
Hint: ScienceSoft recommends using code conversion tools and, if required, make targeted manual adjustments to the results of automated conversion.
Duration: 3–10 weeks
For complex and data-intensive applications, the migration team works out a strategy and chooses tools to migrate the app data. The team:
- Performs a data quality check to make sure that data is valid and has no duplicates.
- Creates scripts to perform data extracting, cleaning and loading to the target environment.
- Builds a tool or creates a script to automate data migration (automation is optional and depends on the data availability requirements).
- Performs and validates trial data migration.
- Executes massive data migration and tests the results.
Mock migration and failover testing (optional)
Duration: 2-4 weeks
To minimize possible migration risks, the migration team can execute pilot migration that doesn’t affect the real production environment. To do that, the team:
- Sets up a beta environment.
- Tests and fine-tunes the functionality of the migrated application using test data and test database.
- Tests scalability, load balancing, and capacity of the app and its infrastructure after loading production-equivalent test data.
- Assesses the results of pilot migration, finalizes the future app architecture.
- Develops and applies solutions for problems identified during mock migration.
Migration, testing and going live
Duration: 3-6 weeks
Actual application migration is structurally much the same as mock migration. The team:
- Schedules and communicates applications’ downtime.
- Sets up a new production environment.
- Sets up DevOps tools and processes.
- Migrates the application(s).
- Migrates APIs and dependent apps (optionally).
- Documents app changes, updates configurations.
- Validates that migration activities haven’t affected application functionality and performance.
- Sets up monitoring tools.
Hint: To minimize operational downtimes, split the cloud migration process into clear, manageable parts and be always ready to roll back. Also, a good practice is to employ automated tests to check the changes promptly, frequently and comprehensively.
Decommissioning of an old application/unneeded application parts
Duration: 2-4 weeks
The team removes an old application or unnecessary software parts of the migrated application, cancels relevant vendor contracts (if any), shuts down related application and its infrastructure monitoring tools.
Hint: ScienceSoft recommends leaving the source environment for 2-4 weeks after migration in case issues occur in the new environment (especially if any code conversion took place). After that, you can disable the unnecessary application/applications but don’t delete them for another 6-18 months in case any significant problems arise.
The team sets up monitoring tools to keep track of logs, performance, response time, load, etc., of the application/applications operating in the new environment. Also, the team can develop and implement an operating cost optimization strategy for the migrated application/applications.
- Planning the app migration project, assigning tasks to the migration team and overseeing tasks’ execution.
- Making sure to provide stated project deliverables on time, on budget and of the required quality.
- Timely updating required stakeholders on the migration project progress.
- Communicating with cloud providers, SaaS vendors (in case of enterprise apps), and other vendors.
- Analyzing business needs triggering the need for migration.
- Defining the migration scope.
- Eliciting migration requirements.
- (optional, for software product migration) Planning the transition to a new business model (e.g., when switching to SaaS).
(Cloud) Solution Architect
- Drawing up technical requirements for applications under migration.
- Designing a new cloud environment and how cloud features will be configured and implemented.
- Deciding on the migration approach (rehosting, replatforming, refactoring, etc.) and the new app architecture.
- Applying modern architecture patterns (cloud-native, serverless, etc.) and fitting cloud services to an application under migration.
- Refactoring and containerizing an application under migration or application parts.
Code audit of an app under migration, re-coding or introducing code changes. For a repurchased app – configuring and customizing an app to meet new business needs.
- Helping decide on the target database platform.
- Implementing data migration tools.
- Incorporating an infrastructure-as-code approach.
- Optimizing orchestration.
- Automating deployments, incl. introduction of automated testing, CI/CD pipelines.
- Select and configure tools to monitor performance of a migrated app, detect issues, and provide alerts when those issues arise.
IT Security Specialist
- Making security recommendations at each stage of the cloud migration process.
- Setting up network security, access control mechanisms, monitoring and event management for a migrated app.
The entire migration process is in-house
- Full control over the migration process and team productivity.
- Migration activities can require specific skills that will not be needed after migration.
- (for enterprises) IT department may have to give up other priority projects to carry out migration/modernization.
- All hiring and managerial efforts are on your side.
Partial or full outsourcing of technical resources
- Quick project ramp-up.
- Optimal resource utilization.
- Wide migration expertise of the outsourced team helps anticipate possible problems in migration.
- Partial or total project team coordination, quality control and risk management are required from your side.
Full migration process outsourcing
- A vendor assumes full responsibility for the team assembly and management and the quality of migration.
- Established migration planning and execution.
- High migration/modernization vendor risks.
Amazon Web Services
Best for: migrating large-scale applications
- For 10 years in a row, AWS has led Gartner’s vendor evaluation for both cloud infrastructure and platform services.
- 175+ services (IaaS, PaaS, SaaS).
- 77 availability zones to deploy applications in for enhanced fault tolerance and low latency.
Best for: migrating apps with strict compliance requirements
- Second in Gartner’s Magic Quadrant for Cloud Infrastructure and Platform Services.
- 200 + services (IaaS, PaaS, SaaS).
- 60+ availability zones for application deployment.
- Offers industry-best 99.99% VM uptime.
- Has industry-largest 90+ compliance certifications.
Google Cloud Platform
Best for: migration projects requiring app containerization
- Third in Gartner’s Magic Quadrant for Cloud Infrastructure and Platform Services.
- 100+ services (IaaS, PaaS, SaaS).
- 73 availability zones to deploy applications in.
- A strong offering in containers (Google Kubernetes Engine fully managed by the Google SRE (Site Reliability Engineers) team; Google Cloud Run, etc.).
Taking into account the required human resources, the cost of cloud migration for a small application will around $50,000 and for a medium/large application will be around $200,000, in case there are no legacy platforms or languages involved and no complicated code conversion is needed. The final app migration costs will vary greatly depending on the migration project specifics and will also include the price for new infrastructure and cloud platform services costs.
Major migration cost factors
Major post-migration cost factors
- Infrastructure costs, monthly/yearly application and its infrastructure support and maintenance costs.
- IT support team training.
APP MODERNIZATION AND MIGRATION SERVICES BY SCIENCESOFT
With 31 years in IT and 9 years in cloud computing, ScienceSoft can help with:
Application modernization and migration consulting
Our consultants cover:
- Analyzing business needs behind migration, the application (application portfolio) to be migrated and the related infrastructure.
- Estimating TCO and ROI of migration/modernization activities.
- Planning a migration/modernization initiative.
- Designing a target app architecture.
- Choosing the cloud platform, CI/CD tools, data storage option, etc.
- Advising on cost-effective management of modernized applications, and more.
Application modernization and migration implementation
Our migration/modernization team covers:
- App migration/modernization strategy.
- Automated code analysis and conversion.
- Iterative app modernization (including legacy re-engineering and re-architecting).
- Public/private/hybrid cloud app migration.
- New app development (including cloud-native development).
- Decommissioning of old applications/unnecessary software parts..
- Managed cloud services (ensuring app availability, stability, security, cost optimization, evolution).
With 31 years in IT, ScienceSoft is an established US-headquartered provider of cloud migration and app modernization services. Our approach to application migration resides in maximum migration automation and gradual transition from one stable state to the next, which helps migrate applications with minimal disruption, fewer risks, and lower costs.