what are cloud migration steps?
- 1) what are cloud migration steps?
- 2) 1) Understanding the application portfolio
- 3) 2) Map current and target states
- 4) 3) Assemble a team
- 5) 4) Identify applications that can be migrated to the cloud
- 6) 5) Prepare applications for migration
- 7) 6) Test migrated applications
- 8) 7) Migrate applications to a production environment
- 9) 8) Maintain migrated applications
- 10) 9) Manage cloud infrastructure
- 11) 10) Monitor applications
- 12) 11) Manage cloud security
- 13) how to run an infrastructure host in a private cloud
- 14) Migrate application’s dependencies (e.g., databases)
- 15) Decide what kind of infrastructure should be used for migrated applications
- 16) Test applications after migration if possible
- 17) Add monitoring of migrated applications
- 18) Replay application dependencies after the migration are done
- 19) Migrate users after all components are moved to the cloud
- 20) Migrate third-party services after all applications are moved to the cloud
- 21) Check component dependencies after the migration is over
- 22) Check application dependencies after the migration is over
- 23) Check application security after the migration is over
- 24) Analyze the impact of new architecture on overall performance after the migration is over
- 25) Check if all applications are migrated to the cloud
- 26) Check application for sensitive information after the migration is over
- 27) Restore backups after the migration is over
- 28) Think about improving security after the migration is over
- 29) Check if all employees have been educated about the migration process
- 30) Check if all employees follow best security practices
- 31) Turn of unmanaged devices (if possible)
- 32) Patch applications and components (if possible)
- 33) Apply access rights management (if possible)
- 34) Think about using a CDN or WAF
- 35) Add multi-factor authentication to all cloud services
- 36) Keep all business applications up to date
- 37) Enable application logging (if possible)
- 38) Delegate administration (if possible)
- 39) Think about getting rid of all physical devices
- 40) Make sure that user accounts are re-enabled automatically after password change
- 41) Don’t use default FTP or SFTP login credentials
Cloud migration consists of moving an application from a legacy on-premise platform to a cloud platform. The aim is to achieve significant business value while reducing costs by optimizing the workloads to take advantage of specific cloud characteristics.
It also brings direct business benefits to customers by making their applications more responsive and delivering higher availability.
The process to migrate an application can be decomposed into different phases. These are the most common cloud migration steps:
1) Understanding the application portfolio
Analyze the existing application portfolio of your company, which includes both on-premise and cloud applications. This step is important because it will define a target state in which applications will be migrated.
2) Map current and target states
Analyze the existing state of your application portfolio to identify the use cases well suited for cloud migration. You can also take advantage of this step to check if there is a better way to develop an application by leveraging public cloud capabilities.
Define the target state of your application portfolio and check if the use cases identified in step #1 can be implemented with this new architecture.
3) Assemble a team
Create an internal team to perform application cloud migration activities. Remember that this task should have different people working together, including business analysts, cloud architects, developers, testers, etc.
This will make the team accountable for all application migration activities.
4) Identify applications that can be migrated to the cloud
Categorize applications using business criticality and then compare different characteristics of both on-premise and public clouds platforms to identify possible candidates. For instance, it is possible to choose between migrating an application with heavy usage during weekday business hours or migrating an application with a requirement for performance.
This decision will allow you to define specific criteria for the applications that can be migrated, like the minimum number of instances or specific workload type (batch processing, real-time, etc.).
5) Prepare applications for migration
It is essential to understand that public cloud platforms are not identical. The most common factors that influence migrating an application are workload, performance requirements, and data management strategies.
For instance, it is necessary to prepare databases to migrate them with an on-premise application properly. Public cloud platforms usually don’t provide storage features like snapshots, so administrators can improve database migration performance by disabling database logs when applying migrations.
It is also necessary to make sure that an application meets the specific requirements of a target platform in terms of programming language, frameworks, or libraries. For example, you will need to migrate Java applications to AWS using Elastic Beanstalk, which provides developers the necessary tools to develop, test and deploy their applications.
6) Test migrated applications
It is important to include performance tests in your test phase to measure how well an application performs after it is migrated. This way, you will be able to verify if there are any changes in a migrated application’s performance or resource consumption.
You can also check if the new infrastructure is providing the required level of availability and security. This step will allow you to identify possible issues that have been introduced during migration so that they can be fixed before going live with an application.
7) Migrate applications to a production environment
Finally, you can migrate applications to a production environment. You should provide enough time for testing and review of migrated applications to avoid common mistakes related to application migration.
8) Maintain migrated applications
It is necessary to include specific tasks to maintain migrated applications after they go live. These activities usually involve monitoring migrated applications and verifying if the cloud platform meets the application’s performance requirements.
You should also check if there are no issues with new infrastructure components, verify that applications are using them correctly and maintain them when necessary. It is important to define specific tasks for all team members to be accountable for their responsibilities.
9) Manage cloud infrastructure
To have a successful application migration, you need to maintain the new infrastructure. This includes managing different components of a public cloud platform like virtual machines, storage, networking, etc., and monitoring the performance and health of these resources. It is crucial to understand how vendors provide support for their products (SLA), so you can verify the level of performance offered by them and identify possible issues before they become critical.
10) Monitor applications
Pre-migration tasks are completed after an application is migrated to a production environment. Monitoring of migrated or running applications includes checking performance data together with availability and security levels. Tools like Amazon CloudWatch, Microsoft System Center, and New Relic are usually used to gather metrics.
It is important to implement specific alerts (e.g., an availability threshold, a critical performance level), so you can receive notifications when there is an issue with migrated applications or infrastructure components. You should also check if there are no issues related to the security of migrated applications or not using resources in an unauthorized way.
11) Manage cloud security
Security is one of the essential tasks that administrators should perform during application migration to a public cloud platform. This includes physical data security (like data centers, servers, etc.) and logical data security (e.g., setting solid passwords).
It is also important to create a continuous monitoring playbook, so you can identify possible security issues as soon as they appear. You should configure different systems for this kind of task. For example, use virtual machine software like Veeam to back up virtual machines (and store them in the cloud storage) and use security information and event management (SIEM) tools like Splunk to monitor changes.
how to run an infrastructure host in a private cloud
If you want to migrate applications that run on an infrastructure hosted in a private cloud, you can follow similar steps as the ones described above. However, some other specific tasks need to be performed, such as:
Migrate application’s dependencies (e.g., databases)
To have a successful application migration, you should also migrate all components that are used by it. These include databases, load balancers, etc., so both applications and dependencies can work together after the migration. You need to create a detailed list of required infrastructure components before starting the actual migration process.
It is also important to check if the new environment supports all application components and verify that they are not deprecated or unsupported. You can use different sources to find out about changes made on the vendor side. For example, read release notes of public cloud vendors before you migrate your applications so you can understand what changes you need to apply.
Decide what kind of infrastructure should be used for migrated applications
Before you start an application migration, you should carefully plan the whole process to be completed without any issues. One of the first things that usually require attention is how migrated applications run on a public cloud platform. It would be best if you chose the best possible cloud test environment for this task.
If you want to migrate existing virtual machines, public cloud platforms must support them. For example, AWS provides detailed information about the compatibility of supported operating systems and virtual machine types on their website. Virtual machines created with unsupported software or VM types cannot run in the cloud.
Another thing is cloud infrastructure sizing. It would be best to estimate how much resources migrated applications will require from a cloud provider and then configure a virtual machine that matches your requirements. It would be best to do all of this before starting the migration process because changing compatible VM types or decreasing virtual machine size after the migration is finished is very time-consuming.
Test applications after migration if possible
You should check migrated applications as soon as you finish the migration process. Public cloud platforms are compatible with most virtualization technologies, but not always with every one of them. Also, there might be compatibility issues between hardware virtual machines and software containers that can influence migrated applications.
If you cannot test migrated applications on the same cloud platform, you can also use your local environment for testing purposes. However, this requires more time and effort than just checking apps directly in the public cloud.
Add monitoring of migrated applications
Once you finish migrating hosted applications or depending on components, you should start monitoring them. This is required because if the infrastructure of any cloud application stops working or does not function correctly, there might be an impact on user experience and overall business operations.
To monitor migrated applications, you can use tools like Nagios to check the uptime and liveness of web services and AWS CloudWatch for other cloud components. This is also important from a security perspective because you need to ensure that all migrated applications are up and running before the next migration phase begins.
Replay application dependencies after the migration are done
If you plan to use environments like Kubernetes or Mesos during future cloud migrations, it might be wise to rethink your strategy after you finish the actual migration. Depending on how application dependencies are built, it might be better to change them to simplify the cloud migration process. For example, if a message broker runs locally and depends on some other services, these services should run directly on the same host as the message broker itself. This way, you can quickly deploy and maintain the whole system with minimum downtime.
Migrate users after all components are moved to the cloud
After migrating hosted applications and depending on components, you should think about moving your users if possible. Depending on how complex their authentication process is, this might be a rather demanding task that requires more preparation. Also, it would be best if you made sure that the cloud platform can support reverse proxy apps and provide user identification information correctly.
If you migrated hosted applications and components, but users cannot be moved as well, you might want to look into web browser sessions and what kind of timeouts or default values they have. If web browsers save information for an infinite amount of time, you can wait until all users are migrated and then update web sessions.
Migrate third-party services after all applications are moved to the cloud
If your business depends on suppliers or partners that use non-cloud technologies, it might be necessary to check with them if they have finished or are still working on migrating their systems to the cloud. If they are done, you can ask them if they have information about changes that need to be applied to your system after moving primary hosted applications and components.
If these suppliers or partners still use non-cloud technologies, you might want to check with them if they can move to the cloud as well.
Check component dependencies after the migration is over
After all hosted applications and components are moved to the cloud, check their dependencies from a logical perspective. If any services provided necessary functionality for migrated apps, make sure to add them as separate services in your infrastructure or update existing ones.
If you have many components, it might be wise to create little documentation about all services and how they work. This can be helpful in case there is any new team member that needs to deal with the system later on.
Check application dependencies after the migration is over
After migrating primary hosted applications and components, you should check their dependencies from a logical perspective. If any services provided important functionality for migrated apps, add them as separate hosted applications or update existing ones.
If you have many components, it might be wise to create small documentation about all services and how they work. This can be helpful in case there is any new team member that needs to deal with the system later on.
Check application security after the migration is over
After migrating hosted applications, you should check their security settings. You can do this by checking if all firewall rules are in place and configured correctly, ensuring that passwords for administrative accounts don’t often expire, checking if all users have strong passwords, and so on.
After you change the majority of security settings in your infrastructure, think about changing the password for your account as well. This can be done by running some simple command-line tools directly from the cloud system.
Analyze the impact of new architecture on overall performance after the migration is over
After you finish migrating your hosted applications and components to the cloud, you need to ensure that they provide the same performance as before. If there was a significant decrease in performance, you might want to check with your cloud platform provider if this issue can be resolved somehow. This is usually done by changing some settings or maybe even updating your system.
Check if all applications are migrated to the cloud
When you finish migrating primary hosted applications and components, you should check if all applications have already been moved to the cloud. This can be done by searching for sensitive terms in application descriptions or corresponding with different team members. If some application is still using your on-premises infrastructure, you should try to move it to the cloud as well.
Check application for sensitive information after the migration is over
After all your applications and components are moved to the public cloud environment, check if any potentially sensitive data were left in them. If this is the case, inspect each hosted application and component to see any sensitive data saved in them. This is usually done by searching for different keywords or even running some specially created tools for this task.
You should also check the settings of these applications and components. It might be possible that specific applications store their customer’s personal information in plain text files on the system. If this is the case, you should change it immediately.
Turn off or delete old equipment after the migration is over
If you have any old on-premises equipment that doesn’t work correctly anymore, don’t forget to turn it off. In addition to this, you might want to think about getting rid of these machines. The simplest way to do this is to sell them or give them away if possible. If it’s not possible, you can throw them away in a proper manner. Just make sure that no sensitive information remains on the system after you turn it off.
Restore backups after the migration is over
After migrating your infrastructure to the cloud, you might want to restore your old on-premises backups as soon as possible. You will probably need these backups if something goes wrong after the migration. If this is not an option for you, you should try to configure some monitoring system that regularly backs up different hosted applications and components automatically.
The best way is to use a cloud platform that creates backups automatically.
Think about improving security after the migration is over
After migrating to the public cloud, you will probably notice some possible security improvements. This might be the case because you don’t have access to your on-premises equipment anymore, or maybe because it’s hosted in an external data center. In any case, this is a good moment to think about increasing the security of your environment even further.
There are many different options in this area, and you should choose them depending on your situation and requirements.
Check if all employees have been educated about the migration process
After migrating all hosted applications and components to the cloud, you should check if all employees have been educated about the security process. If they haven’t, you should provide them with information regarding potential threats after moving your infrastructure to a public environment. You can do this by providing current employees with articles or giving presentations on the topic.
Check if all employees follow best security practices
After your infrastructure is migrated to the public cloud, it might be good to check which employees are following best security practices. This can be done by checking if they often change passwords and use different types of USB drives. In addition to this, you should check if these employees avoid connecting their phones or tablets to the corporate network. Try to perform these checks regularly.
Turn of unmanaged devices (if possible)
After migrating all your applications and components to the public cloud, make sure that you turn off any unmanaged equipment such as printers or scanners. It might be possible that these devices store sensitive information of your customers. If this is the case, you must turn them off right away because these devices might become compromised by third parties who are trying to leak sensitive information.
Patch applications and components (if possible)
After migrating your infrastructure to the cloud, ensure that all hosted applications and components are patched immediately. It might be the case that your software is outdated, which means it’s vulnerable to different types of attacks. In addition to this, you also have to make sure that all servers are patched as soon as possible. This might improve security in general.
Apply access rights management (if possible)
Implementing access rights management after migrating your hosted applications to the cloud might be a good idea. This way, you will be able to control the permissions of each employee separately. It might also be a good idea to plan different roles for your employees. For example, junior employees should not have permission to access sensitive information, while senior ones should have this permission by default.
Think about using a CDN or WAF
Suppose your business is highly dependent on the availability of your website. In that case, it might be a good idea to consider using a Content Delivery Network (CDN) or Application Firewall (WAF). This way, you will probably decrease downtime and improve security as well. If you don’t have enough resources in-house, you can always rely on Managed Security Service Providers.
Add multi-factor authentication to all cloud services
To increase the security of your hosted environment, it might be a good idea to add multifactor authentication to all cloud services that your organization is using. If you have migrated websites and intranet portals to the cloud, you should also make sure that they are MFA-enabled.
Keep all business applications up to date
After migrating your infrastructure to the public environment, make sure that all business applications are kept up to date at all times. You can do this by checking what updates or upgrades were added recently. In addition to this, you should plan update schedules for your applications and make sure that users know that updates must be applied immediately after release.
Enable application logging (if possible)
It might be a good idea to implement application logging after migrating services to the cloud. This way, you will be able to monitor different events that are related to your application. This means that you will be able to identify trends that might cause performance problems in the future.
Delegate administration (if possible)
One of the essential things about migrating services and data to the cloud is delegation of authority. You should ensure that employees, department managers, and people authorized to manage specific services have enough privileges. This way, you will be able to improve your business applications’ security, performance, and uptime.
Think about getting rid of all physical devices
If your business is already using the cloud for processing order requests or other sensitive data, ensure that you get rid of all physical devices used for management purposes. These devices might be physically stolen, so anyone who manages to get their hands on them will be able to access your data and probably monetize it in the future.
Thoroughly test all business applications
You should thoroughly test all business applications after you have migrated them to the cloud. This way, you will identify potential weak spots and address them as quickly as possible. In addition to this, you should also make sure that your applications are not using default login credentials.
Make sure that user accounts are re-enabled automatically after password change
If you have enabled authentication based on passwords, make sure that user accounts are re-enabled automatically after someone changes their password. This way, you will be able to avoid possible access problems and other security-related issues. Remember that users should also get notifications about the changes in their account status.
Don’t use default FTP or SFTP login credentials
When migrating your services or third-party service providers, make sure that you don’t use default FTP or SFTP login credentials. This way, your network, and services will be better protected against unauthorized access.
Public clouds can provide a lot of advantages to organizations that are looking for scalability and cost reduction. To improve security and reduce downtime, organizations should follow simple steps on how to secure cloud services.