
Application Migration
- 19 installs
- 14 repo stars
- Updated January 23, 2026
- dauquangthanh/hanoi-rainbow
Application Migration is an agent skill that structures assessment, planning, and execution for application migrations so developers can modernize systems with controlled risk.
About
The application-migration skill guides end-to-end migration programs from legacy modernization through cloud moves and stack upgrades. It structures assessment, strategy selection, execution, and cutover with explicit risk and rollback planning. Use it when you must replatform, lift-and-shift, or refactor and need a repeatable migration playbook rather than ad hoc tickets.
- Strangler fig, big bang, and phased strategies
- Application inventory and complexity scoring
- Data migration, testing, and rollback planning
- Compliance-aware assessment workflow
Application Migration by the numbers
- 19 all-time installs (skills.sh)
- Ranked #818 of 1,039 Cloud & Infrastructure skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dauquangthanh/hanoi-rainbow --skill application-migrationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 19 |
|---|---|
| repo stars | ★ 14 |
| Last updated | January 23, 2026 |
| Repository | dauquangthanh/hanoi-rainbow ↗ |
How do you choose a migration strategy and cutover plan when legacy dependencies, data moves, and downtime limits are unclear?
Plan legacy, cloud, and stack migrations with assessment, strategy choice, risk controls, and cutover testing.
Who is it for?
Engineers and tech leads running cloud, stack, or architecture migrations who need phased plans and risk mitigations.
Skip if: Greenfield projects with no existing system to move or teams only tweaking a single microservice deploy.
When should I use this skill?
Users mention migration, modernization, replatform, lift and shift, refactor, strangler pattern, or legacy transformation.
What you get
Assessment reports, migration roadmaps, execution checklists, and tested rollback procedures for cutover.
Files
Application Migration
Plan and execute application migration projects—from legacy system modernization to cloud migration and technology stack transformation.
Migration Workflow
Follow this systematic approach for successful migrations:
1. Assess Current State
Analyze the application portfolio and environment:
Actions:
- Create application inventory (name, tech stack, dependencies)
- Map data flows and integration points
- Identify business criticality (critical/important/low)
- Document compliance requirements (PCI-DSS, HIPAA, GDPR, etc.)
- Measure current performance metrics (response time, throughput, uptime)Output: Application assessment report with complexity scores (low/medium/high)
Example Assessment:
Application: Customer Portal
Tech Stack: Java 8, Oracle 11g, Apache Tomcat 7
Dependencies: Payment Gateway API, CRM System, Email Service
Business Criticality: Critical (revenue-generating)
Complexity: High (20+ integrations, legacy code)
→ Recommendation: Strangler fig pattern with 12-month timeline2. Select Migration Strategy
Choose the approach based on complexity and business constraints:
Strangler Fig Pattern (recommended for complex applications):
- Build new functionality alongside old system
- Incrementally redirect traffic to new components
- Retire old components gradually
- Timeline: 6-18 months
- Risk: Low (gradual transition with rollback capability)
Big Bang Migration (for simple applications):
- Complete migration in single cutover event
- All users switch simultaneously
- Timeline: 1-3 months
- Risk: High (no gradual rollback option)
Phased Migration (for multi-tenant or regional deployments):
- Migrate one tenant/region at a time
- Validate each phase before proceeding
- Timeline: 3-12 months
- Risk: Medium (parallel operations required)
3. Plan Migration
Create detailed execution roadmap with these components:
Timeline: Define phases with 2-week sprint cycles Resources: Allocate developers (3-10), QA (2-4), DevOps (1-2), architects (1) Budget: Estimate 1.5-2x initial projection (migrations typically exceed estimates) Risk Mitigation: Document top 5 risks with contingency plans Rollback Plan: Test rollback procedures before cutover
4. Execute Migration
Implement in controlled iterations:
Iteration Pattern:
1. Migrate component/module (1-2 weeks)
2. Deploy to staging environment
3. Run automated test suite (unit, integration, E2E)
4. Conduct performance testing (load, stress, spike)
5. Execute user acceptance testing (UAT)
6. Deploy to production with feature flag (OFF initially)
7. Monitor metrics for 48 hours
8. Enable feature flag for 10% of traffic
9. Gradually increase to 100% over 1 week
10. Retire old component after 30-day observation periodCritical Rule: Never migrate data and code simultaneously—migrate code first, then data.
5. Validate and Cutover
Execute final switchover with validation:
Pre-Cutover Checklist:
- [ ] All automated tests passing (unit, integration, E2E)
- [ ] Performance meets SLA requirements (response time < 2s for 95th percentile)
- [ ] Data validation complete (row counts match, checksums verified)
- [ ] Rollback procedure tested successfully
- [ ] Monitoring dashboards operational
- [ ] On-call team briefed and available
- [ ] Communication sent to all stakeholders
Cutover Window: Schedule during lowest traffic period (typically Sunday 2-6 AM)
Post-Cutover Monitoring: Monitor these metrics for 72 hours:
- Error rate (must be < 0.1%)
- Response time (must be < 2s for 95th percentile)
- Database connection pool utilization (must be < 80%)
- CPU and memory usage (must be < 70%)
- Business transaction success rate (must be > 99.5%)
Reference Documentation
Load detailed guides based on migration phase:
- [migration-assessment.md](references/migration-assessment.md) - Comprehensive assessment framework with templates and tools. Load when starting assessment phase.
- [migration-strategies.md](references/migration-strategies.md) - Detailed strategy patterns with decision matrices and application-specific recommendations. Load when selecting migration approach.
- [migration-planning.md](references/migration-planning.md) - Resource planning, timeline estimation, governance setup. Load when creating migration roadmap.
- [execution-playbook.md](references/execution-playbook.md) - Step-by-step implementation checklist with environment setup and deployment procedures. Load during execution phase.
- [best-practices.md](references/best-practices.md) - Proven patterns, common pitfalls, and optimization techniques. Load when encountering challenges.
- [metrics-and-success-criteria.md](references/metrics-and-success-criteria.md) - KPI definitions, measurement methods, success thresholds. Load when defining success criteria.
- [post-migration-activities.md](references/post-migration-activities.md) - Decommissioning procedures, optimization strategies, monitoring setup. Load after cutover completion.
Critical Success Factors
Never skip these steps:
1. Dependency mapping - Unknown dependencies cause 60% of migration failures 2. Data validation - Verify data integrity before AND after migration (row counts, checksums, business rules) 3. Performance testing - Test with 2x expected peak load 4. Rollback testing - Execute full rollback procedure in staging before cutover 5. Incremental deployment - Use feature flags and canary releases (10% → 25% → 50% → 100%)
Budget Reality: Migrations typically take 1.5-2x initial estimates. Plan accordingly.
Communication Cadence: Send status updates to stakeholders weekly during planning, daily during execution.
Best Practices
Do's
✅ Start Small: Pilot with non-critical functionality first ✅ Automate: Infrastructure, deployment, testing, data migration ✅ Monitor Continuously: Metrics, logs, user feedback ✅ Test Thoroughly: All test types, especially performance and data validation ✅ Communicate Often: Keep stakeholders informed throughout ✅ Plan for Rollback: Always have a backup plan ✅ Document Everything: Architecture, procedures, decisions ✅ Involve Users Early: Get feedback during UAT ✅ Use Feature Flags: Enable gradual rollout and easy rollback ✅ Celebrate Milestones: Recognize team achievements
Don'ts
❌ Don't Rush: Allow adequate time for testing and validation ❌ Don't Skip Testing: Every shortcut increases risk ❌ Don't Migrate Everything: Retire unused functionality ❌ Don't Over-Engineer: Start simple, add complexity as needed ❌ Don't Ignore Data Quality: Fix issues before migration ❌ Don't Forget Compliance: Security, privacy, regulatory requirements ❌ Don't Underestimate Complexity: Build in buffer for unknowns ❌ Don't Neglect Training: Users and support team need preparation ❌ Don't Lose Legacy Knowledge: Document before experts leave ❌ Don't Declare Victory Too Early: Stabilization takes time
Execution Playbook
1. Pre-Migration Checklist
Infrastructure:
- [ ] Target environment provisioned
- [ ] Network connectivity configured
- [ ] Security groups and firewalls configured
- [ ] SSL certificates installed
- [ ] DNS records prepared (not activated)
- [ ] Load balancers configured
Application:
- [ ] Code deployed to target environment
- [ ] Configuration externalized
- [ ] Environment variables set
- [ ] Database migrations tested
- [ ] Static assets uploaded (S3, CDN)
Data:
- [ ] Initial data load completed
- [ ] Data validation passed
- [ ] Delta sync process tested
- [ ] Final sync runbook prepared
Testing:
- [ ] All test phases completed
- [ ] Performance benchmarks met
- [ ] UAT sign-off received
- [ ] Security scan passed
Operations:
- [ ] Monitoring dashboards created
- [ ] Alerts configured
- [ ] Runbooks documented
- [ ] Support team trained
- [ ] Escalation paths defined
Communication:
- [ ] Stakeholders notified
- [ ] Users informed of changes
- [ ] Support documentation published
- [ ] Training completed
Rollback:
- [ ] Rollback procedure documented
- [ ] Rollback tested in staging
- [ ] Decision criteria defined
- [ ] Rollback team identified2. Cutover Execution
Cutover Runbook Template:
Migration Date: [Date]
Start Time: [Time]
Expected Duration: [Hours]
Go/No-Go Decision Time: [Time]
Team Members:
- Migration Lead: [Name]
- Technical Lead: [Name]
- DBA: [Name]
- Network Engineer: [Name]
- Application Support: [Name]
- Business Owner: [Name]
T-24h: Final Go/No-Go Decision
- [ ] Review system health
- [ ] Confirm all prerequisites met
- [ ] Verify team availability
T-4h: Begin Cutover
- [ ] Announce maintenance window
- [ ] Redirect users to maintenance page
- [ ] Stop background jobs
- [ ] Create final backup
- [ ] Begin final data sync
T-2h: Application Deployment
- [ ] Deploy new application
- [ ] Run database migrations
- [ ] Verify deployment successful
- [ ] Run smoke tests
T-1h: Data Validation
- [ ] Compare record counts
- [ ] Validate critical data
- [ ] Run reconciliation reports
- [ ] Resolve discrepancies
T-30m: Final Checks
- [ ] Health checks passing
- [ ] All services running
- [ ] Logs clean
- [ ] Performance metrics normal
T-15m: Traffic Switch
- [ ] Update DNS records
- [ ] Update load balancer
- [ ] Monitor traffic flow
- [ ] Verify requests succeeding
T-0h: Go Live
- [ ] Announce system available
- [ ] Monitor actively for 4 hours
- [ ] Document any issues
- [ ] Collect feedback
T+4h: Post-Launch Review
- [ ] Verify all functionality
- [ ] Review error rates
- [ ] Check performance metrics
- [ ] Confirm integrations working
- [ ] Declare success or initiate rollback3. Rollback Procedure
When to Rollback:
- Critical functionality not working
- Data corruption detected
- Performance below acceptable thresholds
- Security vulnerability discovered
- Cannot resolve issue within cutover window
Rollback Steps:
1. Declare Rollback Decision (5 minutes)
- Migration Lead makes decision
- Notify all stakeholders
- Begin rollback procedure
2. Redirect Traffic (10 minutes)
- Update DNS to legacy system
- Update load balancer rules
- Stop new application
3. Verify Legacy System (15 minutes)
- Check legacy system health
- Verify data synchronized back
- Test critical functions
- Confirm users can access
4. Communication (Ongoing)
- Notify users of restoration
- Inform stakeholders
- Document rollback reason
5. Post-Rollback Analysis (24 hours)
- Root cause analysis
- Update migration plan
- Set new cutover dateMetrics and Success Criteria
Track Throughout Migration:
Technical Metrics:
- Error rate: < 0.1%
- Response time: 95th percentile < target
- Availability: Meet SLA (e.g., 99.9%)
- Throughput: Handle expected load
- Resource utilization: CPU, memory, database
Business Metrics:
- User adoption rate
- Feature usage
- Customer satisfaction (CSAT, NPS)
- Revenue impact
- Cost savings
Project Metrics:
- On-time delivery
- Budget adherence
- Scope control
- Issue resolution time
- Team velocityMigration Assessment
1. Current State Analysis
Inventory Existing Systems:
Application: Legacy CRM System
Technology Stack:
- Language: COBOL, JCL
- Database: DB2 on mainframe
- Infrastructure: IBM z/OS mainframe
- Integration: Batch file transfers, MQ
- Users: 500 concurrent, 2000 total
- Data Volume: 5TB
- Transaction Volume: 10K/day
Business Criticality: High
Uptime Requirement: 99.9%
Compliance: PCI-DSS, SOXAssess Application Characteristics:
- Architecture: Monolith, microservices, n-tier, batch processing
- Dependencies: External systems, APIs, databases, file shares
- Data Complexity: Schema complexity, data volume, referential integrity
- Customizations: Extent of custom code vs. standard functionality
- Integration Points: Number and complexity of integrations
- Technical Debt: Code quality, outdated frameworks, security issues
- Documentation: Quality and completeness of existing docs
Identify Migration Drivers:
- Cost Reduction: Reduce licensing, infrastructure, or maintenance costs
- Performance: Improve response times, throughput, scalability
- Modernization: Adopt modern tech stack, architecture patterns
- Cloud Benefits: Scalability, reliability, geographic distribution
- Compliance: Meet new regulatory requirements
- End of Support: Vendor discontinuing platform/language
- Business Agility: Enable faster feature delivery
2. Target State Definition
Define Target Architecture:
Target: Cloud-Native CRM
Technology Stack:
- Frontend: React, TypeScript
- Backend: Node.js microservices, Java Spring Boot
- Database: PostgreSQL (Aurora), MongoDB (Atlas)
- Infrastructure: AWS (ECS, Lambda, RDS)
- Integration: REST APIs, Event-driven (Kafka)
- Authentication: Auth0, SSO
- Monitoring: CloudWatch, DataDog
Architecture Pattern: Microservices with API Gateway
Deployment: Containers (ECS), Serverless (Lambda)
Data Strategy: Polyglot persistenceSuccess Criteria:
- Performance: 95th percentile response time < 200ms
- Availability: 99.95% uptime SLA
- Scalability: Support 2x current load without degradation
- Cost: Reduce total cost of ownership by 40%
- Time-to-Market: Reduce feature delivery from months to weeks
- Security: Pass security audit, achieve SOC 2 compliance
3. Gap Analysis
Technical Gaps:
| Capability | Current | Target | Gap | Priority |
| ------------ | --------- |--------|-----|----------|
| API Layer | None | REST/GraphQL | Need to build | High |
| Authentication | Custom | OAuth 2.0/SAML | Need integration | High |
| Monitoring | Basic logs | APM, distributed tracing | Tooling needed | Medium |
| CI/CD | Manual | Automated pipelines | DevOps setup | High |
| Testing | Manual | Automated test suite | Test automation | Medium |
| Database | DB2 | PostgreSQL | Migration + conversion | High |Skill Gaps:
- Current team: COBOL, mainframe
- Target needs: JavaScript/Node.js, React, AWS, containers
- Training required: 3-6 months for upskilling
- Hiring needs: 2 senior cloud engineers, 1 DevOps engineer
Migration Planning
1. Create Migration Roadmap
Phased Approach:
Phase 1: Foundation (Months 1-3)
- Set up cloud infrastructure
- Establish CI/CD pipelines
- Deploy monitoring and logging
- Create API gateway
- Migrate reference data
- Build authentication service
- Deliverable: Core infrastructure ready
Phase 2: Read-Only Services (Months 4-6)
- Migrate product catalog (read)
- Migrate customer profiles (read)
- Migrate reporting/analytics
- Keep writes to legacy system
- Deliverable: 30% traffic on new platform
Phase 3: Write Services (Months 7-9)
- Migrate customer updates
- Migrate order creation
- Migrate inventory management
- Bi-directional data sync
- Deliverable: 60% traffic on new platform
Phase 4: Complex Workflows (Months 10-12)
- Migrate payment processing
- Migrate fulfillment workflows
- Migrate integrations
- Deliverable: 90% traffic on new platform
Phase 5: Decommission (Month 13)
- Final data migration
- Legacy system retired
- Deliverable: 100% on new platform2. Data Migration Strategy
Data Migration Phases:
Phase 1: Data Analysis
- Profile source data (quality, volume, structure)
- Map source to target schema
- Identify transformations needed
- Estimate migration duration
Phase 2: Data Cleansing
- Remove duplicates
- Fix data quality issues
- Standardize formats
- Archive obsolete data
Phase 3: Initial Load
- Migrate historical data
- Validate data integrity
- Run reconciliation reports
- Fix discrepancies
Phase 4: Delta Sync
- Replicate ongoing changes
- Minimize cutover data lag
- Use CDC (Change Data Capture) or batch sync
Phase 5: Final Cutover
- Final data sync
- Validate completeness
- Lock source system
- Switch to target systemData Transformation Example:
-- Legacy: Single customer table with embedded address
-- Target: Normalized customer and address tables
-- Transformation Logic
INSERT INTO customers (id, first_name, last_name, email)
SELECT
customer_id,
SUBSTRING(customer_name, 1, POSITION(' ' IN customer_name)-1) as first_name,
SUBSTRING(customer_name, POSITION(' ' IN customer_name)+1) as last_name,
customer_email
FROM legacy_customers
WHERE active_flag = 'Y';
INSERT INTO addresses (customer_id, street, city, state, zip)
SELECT
customer_id,
customer_address,
customer_city,
customer_state,
customer_zip
FROM legacy_customers
WHERE active_flag = 'Y'
AND customer_address IS NOT NULL;3. Testing Strategy
Test Types:
1. Unit Tests
- Test individual services
- Mock external dependencies
- Target: >80% code coverage
2. Integration Tests
- Test service interactions
- Test API contracts
- Test database operations
- Validate data transformations
3. End-to-End Tests
- Test complete business workflows
- User journey validation
- Cross-service scenarios
4. Performance Tests
- Load testing: Expected volume
- Stress testing: 2x expected volume
- Soak testing: Sustained load over time
- Target: Meet performance SLAs
5. Compatibility Tests
- Legacy system integration
- Third-party API compatibility
- Browser/device compatibility
6. Data Validation Tests
- Record count reconciliation
- Data integrity checks
- Business rule validation
- Before/after comparison
7. User Acceptance Testing
- Real users test real scenarios
- Validate business processes
- Identify usability issuesTest Data Strategy:
Production Copy:
- Full copy of production data (anonymized)
- Use: Final validation, performance testing
- Refresh: Weekly during migration
Synthetic Data:
- Generated test data
- Use: Development, integration testing
- Volume: 10% of production
Subset:
- Representative sample from production
- Use: Functional testing, debugging
- Size: 1000 customers, 10K orders4. Risk Management
Common Migration Risks:
Risk: Data Loss During Migration
Probability: Medium | Impact: Critical
Mitigation:
- Multiple backups before cutover
- Incremental migration with checkpoints
- Automated data validation
- Rollback procedures tested
Contingency: Restore from backup, revert to legacy
Risk: Performance Degradation
Probability: High | Impact: High
Mitigation:
- Load testing before cutover
- Gradual traffic increase
- Auto-scaling configured
- Performance monitoring active
Contingency: Roll back traffic to legacy, optimize
Risk: Integration Failures
Probability: Medium | Impact: High
Mitigation:
- Test all integrations in staging
- Keep legacy integration active during transition
- Circuit breakers implemented
Contingency: Fallback to legacy integrations
Risk: User Adoption Issues
Probability: Medium | Impact: Medium
Mitigation:
- Training before launch
- Documentation prepared
- Support team ready
- Gradual user migration
Contingency: Extended dual-running period
Risk: Extended Downtime
Probability: Low | Impact: Critical
Mitigation:
- Practice cutover in staging
- Detailed runbook
- Rollback plan ready
- 24/7 team during cutover
Contingency: Rollback to legacy systemMigration Strategies
1. Rehost (Lift and Shift)
When to Use:
- Quick migration needed
- Minimal changes acceptable
- Infrastructure cost reduction primary goal
- Low risk tolerance
Approach:
Steps:
1. Provision equivalent cloud infrastructure
2. Set up networking and security
3. Migrate applications as-is
4. Migrate data with minimal transformation
5. Update DNS and routing
6. Verify functionality
Example: Move VM-based app to AWS EC2
- Same OS, same runtime, same configuration
- Benefits: Fast, low risk
- Drawbacks: Doesn't leverage cloud benefitsEffort: Low | Risk: Low | Value: Low
2. Replatform (Lift and Reshape)
When to Use:
- Want some cloud benefits without full rewrite
- Database or runtime modernization beneficial
- Balanced approach needed
Approach:
Steps:
1. Identify platform upgrades (e.g., DB2 → PostgreSQL)
2. Update configurations for target platform
3. Modify data layer for new database
4. Test compatibility
5. Migrate and validate
Example: Migrate app to managed services
- Keep application code mostly unchanged
- Move database to RDS or Aurora
- Use managed services (Redis, S3)
- Benefits: Better scalability, reduced ops overhead
- Drawbacks: Some application changes neededEffort: Medium | Risk: Medium | Value: Medium
3. Refactor (Re-architect)
When to Use:
- Significant business value from modernization
- Current architecture limiting business
- Long-term investment warranted
Approach:
Steps:
1. Design target microservices architecture
2. Identify service boundaries
3. Rewrite services incrementally
4. Implement API contracts
5. Migrate data to appropriate stores
6. Decompose monolith gradually
Example: Monolith to microservices
- Break into bounded contexts
- Build new services with modern stack
- Use API gateway for routing
- Benefits: Scalability, independent deployment, tech flexibility
- Drawbacks: High effort, complex, long timelineEffort: High | Risk: High | Value: High
4. Strangler Fig Pattern (Recommended)
When to Use:
- Minimize risk during large migrations
- Maintain business continuity essential
- Gradual migration preferred
Approach:
Phase 1: Setup Infrastructure
- Deploy API gateway/proxy
- Route all traffic through proxy
- Legacy system continues serving requests
Phase 2: Incremental Replacement
- Identify high-value, low-risk functionality
- Build new service for that functionality
- Route specific requests to new service
- Legacy handles remaining requests
Phase 3: Gradual Migration
- Continue replacing functionality piece by piece
- Data synchronized between old and new
- Monitor and validate each migration
Phase 4: Decommission Legacy
- When all functionality migrated
- Redirect all traffic to new services
- Decommission legacy system
Example: E-commerce Migration
Week 1-4: Product catalog service (read-only)
Week 5-8: Product search service
Week 9-12: Shopping cart service
Week 13-16: Order processing service
Week 17-20: Payment processing
Week 21-24: Legacy decommissionedEffort: High | Risk: Low | Value: High | Recommended: ✓
5. Big Bang Migration
When to Use:
- Small, simple application
- Short maintenance window acceptable
- Testing fully validates migration
Approach:
Preparation:
- Build complete target system
- Migrate and validate all data
- Test thoroughly in staging
Cutover:
- Schedule maintenance window
- Final data sync
- Switch DNS/routing to new system
- Rollback plan ready
Example: Weekend cutover
Fri 6pm: Begin final data migration
Sat 2am: Complete data sync
Sat 4am: Switch traffic to new system
Sat 6am: Validation complete
Mon 8am: Users on new systemEffort: Medium | Risk: Very High | Value: Medium | Use Sparingly
Migration Patterns by Application Type
Mainframe Applications
Challenges:
- COBOL, JCL, CICS legacy code
- Tightly coupled architecture
- Complex batch processing dependencies
- Decades of accumulated business logic
Recommended Strategy: Strangler Fig Pattern
Implementation Approach:
Phase 1: Extract Business Services (Months 1-4)
- Identify business rules in COBOL programs
- Create API layer in front of mainframe
- Build new services that call mainframe via API
- Route new features through services
Phase 2: Replace Batch Jobs (Months 5-8)
- Convert JCL batch jobs to event-driven services
- Use message queues (Kafka, RabbitMQ) for orchestration
- Implement data replication (Precisely, Qlik, AWS DMS)
- Run batch and event-driven in parallel
Phase 3: Migrate Core Logic (Months 9-18)
- Rewrite COBOL business logic in Java/Python/C#
- Maintain data synchronization during transition
- Gradually shift traffic to new services
- Decommission mainframe modules incrementally
Phase 4: Data Migration (Months 19-24)
- Migrate VSAM files to relational databases
- Convert IMS/DB2 to PostgreSQL/Oracle
- Validate data integrity continuously
- Final cutover when all services migratedTools:
- Micro Focus COBOL Compiler for interim modernization
- AWS Mainframe Modernization or Azure Mainframe Migration
- Data replication: Precisely Connect, Qlik Replicate, AWS DMS
- API gateway: Kong, Apigee, AWS API Gateway
Timeline: 18-24 months for medium complexity mainframe
Monolithic Web Applications
Challenges:
- Single deployment unit (can't scale components independently)
- Shared database (tight coupling)
- Codebase sprawl (millions of lines)
- Long build and deployment times
Recommended Strategy: Strangler Fig Pattern with Service Extraction
Implementation Approach:
Phase 1: Identify Bounded Contexts (Month 1)
- Map domain model and business capabilities
- Identify service boundaries using Domain-Driven Design
- Prioritize by business value and technical feasibility
Phase 2: Extract Utility Services (Months 2-3)
Example Sequence:
1. Authentication/Authorization service (stateless, high reuse)
2. Notification service (email, SMS, push)
3. File storage service (images, documents)
4. Audit logging service
Phase 3: Extract Business Services (Months 4-9)
Example for E-commerce:
1. Product catalog service
2. Inventory management service
3. Shopping cart service
4. Order processing service
5. Payment processing service
6. Customer profile service
Phase 4: Database Decomposition (Months 10-15)
- Create separate database per service
- Implement data synchronization patterns
- Use event sourcing for cross-service data needs
- Migrate data incrementally
Phase 5: Retire Monolith (Months 16-18)
- All functionality extracted
- Monolith becomes thin routing layer
- Eventually decommission completelyArchitecture Patterns:
- API Gateway for request routing (Kong, Apigee)
- Service mesh for inter-service communication (Istio, Linkerd)
- Event bus for asynchronous communication (Kafka, RabbitMQ)
- Separate database per service (avoid shared database)
Timeline: 15-18 months for typical enterprise monolith
On-Premise to Cloud Migration
Challenges:
- Network connectivity and latency
- Security and compliance requirements
- Cost optimization needs
- Skills gap in cloud technologies
Recommended Strategy: Phased Multi-Stage Migration
Implementation Approach:
Stage 1: Rehost (Lift and Shift) - Months 1-3
Goal: Move to cloud quickly with minimal changes
Actions:
- Provision cloud VMs matching on-premise specs
- Set up VPN/Direct Connect for hybrid connectivity
- Migrate applications as-is to cloud VMs
- Replicate databases using native tools
- Update DNS and routing
Benefits: Fast migration, minimal risk
Drawbacks: Not leveraging cloud capabilities
Stage 2: Replatform (Optimize) - Months 4-8
Goal: Use managed services for operational efficiency
Actions:
- Migrate databases to managed services (RDS, Aurora, Cosmos DB)
- Move file storage to object storage (S3, Azure Blob, GCS)
- Implement managed caching (ElastiCache, Redis Enterprise)
- Use CDN for static content (CloudFront, Akamai, Fastly)
- Implement managed message queues (SQS, Service Bus, Pub/Sub)
Benefits: Reduced operational overhead, better reliability
Cost Savings: 30-40% reduction in management overhead
Stage 3: Refactor (Modernize) - Months 9-15
Goal: Cloud-native architecture for scalability
Actions:
- Containerize applications (Docker, Kubernetes)
- Implement auto-scaling (horizontal pod autoscaling)
- Adopt serverless for event-driven workloads (Lambda, Functions)
- Implement infrastructure as code (Terraform, CloudFormation)
- Set up CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins)
Benefits: Elasticity, pay-per-use, rapid deployment
Stage 4: Optimize (Continuous) - Ongoing
Goal: Cost optimization and performance tuning
Actions:
- Right-size instances based on actual usage
- Use spot/preemptible instances for batch workloads
- Implement reserved instances for predictable workloads
- Set up cost monitoring and alerts (CloudWatch, Datadog)
- Optimize data transfer costs
- Implement auto-shutdown for dev/test environmentsMigration Sequence by Workload:
Priority 1 (Months 1-3): Non-critical, stateless applications
- Development/test environments
- Internal tools and utilities
- Static websites and documentation
Priority 2 (Months 4-8): Moderate complexity applications
- Reporting and analytics systems
- CRM and marketing applications
- Employee self-service portals
Priority 3 (Months 9-15): Business-critical applications
- Customer-facing applications
- Core business systems (ERP, billing)
- Payment processing systems
- Real-time transaction systemsTimeline: 12-18 months for comprehensive cloud migration
Microservices to Microservices (Cloud-to-Cloud)
Challenges:
- Different cloud provider APIs and services
- Data residency and compliance requirements
- Minimizing downtime during migration
- Cost optimization across providers
Recommended Strategy: Parallel Run with Traffic Shifting
Implementation Approach:
Phase 1: Setup Target Cloud (Month 1)
- Provision infrastructure in target cloud
- Set up networking (VPN, VPC peering, transit gateway)
- Configure security groups and IAM policies
- Deploy monitoring and logging infrastructure
Phase 2: Deploy Services (Months 2-4)
- Deploy containerized services to target cloud
- Configure load balancers and service discovery
- Set up databases with replication from source
- Deploy message queues and event buses
Phase 3: Data Synchronization (Months 5-6)
- Implement bidirectional data replication
- Use database migration tools (DMS, Datastream)
- Set up event streaming between clouds (Kafka)
- Validate data consistency
Phase 4: Traffic Migration (Months 7-9)
Traffic Shifting Strategy:
Week 1: 5% traffic to target cloud
Week 2: 10% traffic to target cloud
Week 3: 25% traffic to target cloud
Week 4: 50% traffic to target cloud
Week 5: 75% traffic to target cloud
Week 6: 90% traffic to target cloud
Week 7: 100% traffic to target cloud
Monitor: Error rates, latency, throughput at each step
Rollback: If error rate > 0.5% or latency > 2x baseline
Phase 5: Decommission Source (Month 10)
- Stop data replication
- Remove source cloud resources
- Update DNS to remove source endpoints
- Archive backups and audit logsMulti-Cloud Considerations:
- Use Kubernetes for portability across clouds
- Terraform for infrastructure as code
- Avoid cloud-specific services during migration
- Implement feature flags for easy rollback
Timeline: 9-12 months for complete cloud provider migration
---
Strategy Decision Matrix
| Application Type | Size | Complexity | Timeline | Budget | Recommended Strategy |
|---|---|---|---|---|---|
| Mainframe | Large | Very High | 18-24 mo | High | Strangler Fig |
| Monolith | Large | High | 12-18 mo | High | Strangler Fig |
| Monolith | Medium | Medium | 6-12 mo | Medium | Phased + Replatform |
| Monolith | Small | Low | 2-4 mo | Low | Big Bang |
| Cloud to Cloud | Any | Medium | 9-12 mo | Medium | Parallel Run |
| Simple Web App | Small | Low | 1-3 mo | Low | Lift and Shift |
| Legacy Desktop | Medium | High | 12-18 mo | High | Rewrite + Strangler |
Key Decision Factors
Choose Strangler Fig when:
- Application is business-critical with high uptime requirements (>99.9%)
- Complexity is high (>100K lines of code, >10 integrations)
- Risk tolerance is low
- Team can commit to 12-18 month timeline
Choose Big Bang when:
- Application is simple (<10K lines of code, <5 integrations)
- Maintenance window is acceptable (4-8 hours)
- Comprehensive testing validates migration
- Quick migration is priority
Choose Phased when:
- Multi-tenant or multi-regional deployment
- Can isolate users/regions for migration
- Want to validate approach before full rollout
- Medium risk tolerance acceptable
Choose Lift and Shift when:
- Speed is critical (need to migrate in 1-3 months)
- Budget is constrained
- Current architecture is acceptable
- Plan to optimize later
Post-Migration Activities
1. Validation and Stabilization
Immediate (First 24 Hours):
- Monitor error rates continuously
- Watch performance metrics
- Track user feedback
- Address critical issues immediately
- Keep rollback option available
- Extra support staff on dutyFirst Week:
- Daily review of metrics
- Resolve high-priority issues
- Fine-tune performance
- Adjust scaling policies
- Update documentation
- Gather user feedbackFirst Month:
- Weekly reviews
- Optimize costs
- Address medium-priority issues
- Complete training gaps
- Refine operational procedures
- Plan next phase (if phased migration)2. Decommissioning Legacy
Decommission Checklist:
Phase 1: Parallel Running (30-90 days)
- [ ] Keep legacy system operational
- [ ] Monitor new system stability
- [ ] Validate all functionality migrated
- [ ] Confirm no legacy dependencies
Phase 2: Archive Legacy Data
- [ ] Export legacy data for compliance
- [ ] Store in accessible format
- [ ] Document retention period
- [ ] Test data retrieval
Phase 3: Shutdown Legacy Infrastructure
- [ ] Cancel licenses
- [ ] Terminate servers
- [ ] Remove integrations
- [ ] Update network configs
- [ ] Document decommission date
Phase 4: Cost Validation
- [ ] Verify license cancellations
- [ ] Confirm infrastructure terminated
- [ ] Calculate actual cost savings
- [ ] Report to stakeholders3. Knowledge Transfer
Documentation:
- Architecture diagrams
- API documentation
- Database schemas
- Deployment procedures
- Troubleshooting guides
- Operational runbooks
Training:
- Development team training
- Operations team training
- Support team training
- Business user training
Handover:
- Code repository access
- Infrastructure access
- Monitoring dashboard access
- Support tool access
- Contact informationRelated skills
FAQ
Which migration strategies does it describe?
Strangler fig, big bang, and phased approaches with timelines and risk notes.
Does it cover data migration?
Yes; planning includes data migration, testing, and cutover steps in the workflow.
When should it activate?
When migrating applications, modernizing legacy systems, or changing technology stacks.