To start migration you must understand why selected project needs Cloud Capacity. This section gives the answers to the questions about the subject in order to help you improve your understanding of it.
Migration to a Cloud
This topic contains the following sections:
- Information to Consider Before Migrating
- Unified Cloud Migration Flow
- Cloud Enabling in 8 Steps
- Why do customers migrate to Cloud?
Why do customers migrate to Cloud?
On the one hand, the answer to this question is quite complex, but on the other hand, the main benefits are pretty obvious.
* There is no need to care about hardware availability, reliability and maintenance.
* You get relatively stable performance of hosted applications.
* Performing backup of the whole system or a part of becomes easy and transparent.
You can find this information in almost every marketing prospect on Cloud Computing and Cloud Hosting out there. It does not, however, answer another vital question...
What happens behind the scenes?
Hardware Availability or, in case of Cloud Computing, availability of platforms to increase a number of virtual instances is a relatively trivial point - it's either you have enough or you don't.
Reliability and Maintenance is a bit more complex:
* Does a Cloud Management service support infrastructure network isolations and is it secure enough?
* Does it also support automatic instance recovery after failure?
Performance stability is a very important point for customers migrating to Cloud. It can be reached through establishment of proper networking and resource allocation. Also it is crucial that we have the ability to increase the amount of servers (instances) dynamically from some application components.
Easy backup and restoring of new instances with the same configuration should also be available on the level of Cloud Management service, but for the sake of client confidence they need to be sure that each of their components can be backed up, restored and even launched as a new instance from backup.
Information to Consider Before Migrating
We studied the White Paper from IBM as one of the best practices carefully and came up with some thoughts of our own in scope of offering solutions to our customers.
At first you must not only understand but also have actual numbers and statistical information about whether it is advantageous to move to Cloud Computing upon these factors:
- Think about the value of your data and application assets and understand how crucial it would be if they were lost.
- Get understanding of which risks you currently have and will they increase or decrease after moving to Cloud.
- Compare existing costs and used assets to newly calculated ones, those in Cloud.
If you are already thinking about moving your project to Cloud, here are some main benefits of it:
- Rapid Elasticity: Elasticity is defined as the ability to scale resources both up and down as needed.
- Measured Service: Cloud services are controlled and monitored by the cloud provider, and the provider bills the consumer only for what they use.
- On-Demand Self-Service: A consumer can use cloud services as needed without any human interaction with the cloud provider.
- Ubiquitous Network Access: The cloud provider's capabilities are available over the network.
- Resource Pooling: Resource pooling allows a cloud provider to share its physical and virtual resources according to consumer demand.
These characteristics provide two significant advantages:
- Lower costs: The ability to add virtual machines, storage and other resources dynamically means consumers can buy hardware based on their normal workloads instead of over-buying to allow for their heaviest workloads. The organization can do the same amount of work with fewer machines. That means lower costs for buying hardware and software, lower costs for keeping machines powered, and lower staffing costs because fewer administrators are required.
- Flexible and fast resource allocation: Sometimes, requisitioning a new machine, database or other resource can take days, weeks, or even months. With cloud computing, those resources can be acquired (and later released) as needed. Even better, that process can be automated so that no human involvement is required.
Clearly, it's information and your product that has most value. You also have to think about security of your data, because although moving to Cloud does not introduce any additional security challenges, still number of people to potentially access your resources increases.
Good idea is to setup a pilot project so you can see and feel what cloud is and how it works for you. Also Cloud gives you freeness to use resources right at the time when they needed and minimizes costs. You don't have to buy costly resources for short span tasks and then keep them idle.
Availability and reliability can be set to a new level and costs for support can be decreased, you don't pay staff for that. You get Support with the Cloud as one of the many other services. However there is a risk that this service is not provided by you directly and you do not have full control over it.
With the benefits of cloud computing in mind, there are several kinds of applications that are good candidates for moving to the cloud:
- Pilot Projects: A cloud pilot project is a good way for an organization to evaluate cloud services to see how useful, reliable and cost-efficient they can be. A pilot project should be a non-critical application that has a limited scope, a short time frame and loosely defined estimates of its ROI. Building a pilot project has the added benefit of giving the organization a chance to learn how to use cloud services.
- Variable Workloads: Some workloads have low requirements the majority of the time, with occasional periods of very high requirements. An organization must buy resources to handle the maximum workload, even though most of the time those resources will be idle. Moving that workload to the cloud can free the organization to buy only the resources to handleits normal requirements.When the workload peaks, the organization can use cloud computing to provision the resources it needs, then release those resources when the workload returns to normal.
- Non-Essential Tasks: Certain applications and data are essential to an organization's core mission; they typically have much higher requirements for resources and much tighter restrictions on how and where they are used. If there are low-risk applications and data that could be processed off-site, moving them to the cloud would free resources for the rest of the organization.
- Data Mining: Data mining typically requires substantial hardware to find patterns in massive amounts of data. Done in-house, the organization must buy, maintain, power and cool all of that equipment. Moving that task to the cloud can provide substantial savings. The machines required can be virtual machines that run only when needed.
- Development and Test: Development and testing require substantial resources when done on in-house systems. Developers must have the same level of development tools on their machines. Testers must maintain many different machine environments and test applications on all of them. Moving development tools into the cloud ensures that all developers are using the same level of tools, and upgrading the organization to a new version of the tools requires one upgrade in one place. Doing testing in the cloud allows the organization to define a single set of virtual machines for testing; those virtual machines can be started when needed, then shut down when the tests are complete.
Unified Cloud Migration Flow
Now to describe the actual migration process pay attention to the following diagram:
- Activation of project consists of accumulating basic information of existing process flow and utilized technologies, contact points, for further understanding of project needs and its scale shape. This also includes introduction of Cloud Solution and comes down to configuring Virtual Hosting.
- Configuration and preparation for performance testing and following enrichment and automation of existing environment.
- Automation. Vertical and horizontal scaling of project, betterment and reliability improvement, setting up automation for development process. Sustaining of high availability.
- Support. Supervising of set up project environment, high level support and monitoring.
In result of these entire steps one can have a doubtlessly stable Cloud Capacity nested project.
Cloud Enabling in 8 Steps
There are 8 steps for comfortable migration to the Cloud:
- Any needed project environment that's scaled in Cloud should be saved as a Template. This gives additional benefits for future scaling and reusability. Multiple Templates can be configured for elastic and varied project scaling.
- Run of the Environment, this process can be considered Virtual Hosting.
- Manual Configuration and sharing expertise before attempting automation of mentioned process.
- Automation and improvement based on previous step to help minimize affected resources and simplify configuration.
- Centralizing requirements for security rules and standards on project environment.
- Environment load and performance test for further optimization.
- Continuous Delivery configuration and Development Process optimization.
- Finally, acknowledging requirements for support and monitoring process.
All this can help one to understand benefits for migrating existing environment to Cloud Capacity.
Cloud Migration Workflow
Starting from mid-September, 2012 EPAM Systems begins moving its virtual infrastructure to EPAM Cloud.
In order to make this process as smooth as possible our Cloud Consulting department prepared a workflow be followed during migration of each separate Project.
The document Migration Workflow process guide below contains a detailed description of the process with emphasis on goals and results.
You can also download the document from the Documentation section.
Below is a list of documents related to this section. You can find the full list of our documents in the Documentation Storage.
Please select a required document:
The guide contains the detailed description of EPAM Cloud migration process.