Cloud Migration

The Need

Cost reduction, solving new business problems, and improving system performance are at the core of today's IT agendas. Recognizing how cloud computing can help you achieve these goals is the first step. But how do you make the cloud work for your enterprise architecture?
Finding the professionals with the experience and the resources in this emerging technology to save you money and implement an enterprise class solution are essential. We understand how to successfully migrate your apps to the cloud so you can reduce the cost of IT and provide more flexibility to the business.

Our Solution

We have migrated applications to some of the most popular cloud platforms including Amazon AWS and RackSpace. Our experience migrating and building applications for these clouds speeds your migration time using our repeatable process to Plan, Port, and Launch a cloud system.

In the Plan phase we rapidly assess your current system architecture and environments, SLAs, operational tools and processes, and launch goals. Next we come up with a new platform architecture and configuration, a cost model for the configuration, and an operation plan to monitor and manage the solution. The new platform configuration will be sized to minimize your costs and meet your scalability and performance needs. We will walk you through the new platform design so you understand:

  • How the architecture will integrate with external data sources, platform security and access needs and infrastructure sizing and configuration requirements
  • How key production processes will work such as disaster fail-over/fall-back, backup and recovery, capacity additions, deployment, and high-availability
  • Test plans to assure the new infrastructure operates properly, can be managed, and meets your scalability and performance requirements
  • The plan for the remainder of the migration

Next we will Port your application to the new platform. Key steps in this stage are:
Provisioning and configuration of new environments

  • Setting up the application in the new environment and migrate data
  • Configuring integration with external data sources and feeds to external environments
  • Validating the new platform

We will provision cloud servers and storage for all your environments from Production, Disaster Recovery, Staging and QA, to Development environments based on your needs and current application stack. Database dumps and files from your current environments will be loaded into the new environments to replicate your setup and preserve your test data. We test with production sized datasets to properly assure configuration correctness and provide realistic load and performance test results. Operational and management tools will be setup and configured to work with the new platform.

Many migrations can be done without code changes. If needed, we develop applications, and can make any code changes necessary for the system to scale better on the cloud. System configuration files and database driven configurations need to be updated to reflect any server infrastructure changes in the new environment.

Integration with external data sources and external data feeds to other systems for accounting, reporting, BI, etc., most often require access changes in infrastructure and setup changes. Batch jobs need to be configured in the new environment for routine maintenance and processing of data feeds and business logic. Before the testing phase begins, unit testing of the new configuration assures system components function and are properly integrated.

Next the validation step of migration tests the platform in a number of critical ways. Our testing approach starts with the new application deployment process and assures the system functions properly on the new platform. The validation step checks that:

  • The application deploys and rolls back correctly
  • Key functions work as expected
  • All system components are properly integrated
  • External integration points are configured properly including external data feeds
  • Database maintenance tasks work
  • Batch processing jobs run and function as planned

The new platform needs testing of infrastructure configurations in case something goes wrong. This includes failure, disaster, and recovery tests to make sure the configuration operates as planned in those scenarios. System component failures will be induced and recovered to test these scenarios. These tests will be monitored through operational and management tools to validate that components have been instrumented and management data is being collected as planned. System backup and recovery tests are the last of the failure scenarios that will be tested.

We make sure the transition is seamless to end users. Rounds of performance and load testing with system tuning between rounds optimize the system. We test system scaling by provisioning and configuring additional components from the cloud. We use additional loads after each round to measure the performance and load characteristics of capacity adjustment.

As part of system testing, ethical hack services can be used to test the new system security infrastructure. Hack testing should start early to detect problems requiring changes which could affect later tests results such as performance and load testing.

Launching in production can go smoothly with a well orchestrated plan. Having the benefit of fully configured environment to swing to helps minimize downtime. Pre-launch activities should include any tasks that can be done before the launch date to minimize system outage time. A thorough review of the launch plan with all participants and review of the runbook with platform operations procedures are two important best practices. A rollback plan in case the launch is aborted can assure minimized downtime if the unexpected happens. Some important best practices for the launch include:

  • User notification of system maintenance
  • Final data backup & migration
  • Data and configuration updates post migration
  • Testing of the new environment to assure proper functioning and data cutover
  • Go/no-go decision
  • DNS changes to direct to new site
  • Post launch monitoring check list
  • Operation meetings for system health updates
  • Sunset meeting on launch activities to improve process