The cloud brings tremendous opportunities for businesses to store, process, and interpret their internal and external data. Many businesses across a variety of industries have already partially or fully migrated to the cloud to unlock these opportunities and enable real-time data-informed decision-making. However, migration to the cloud comes with significant consequences for some of these businesses with a short-term focus, as this only leads to long-term pain. Hence, this short-sighted approach to the cloud prevents them from grasping a significant share of the value the cloud could bring to their organization.
When IT departments migrate a set of applications, potentially the easiest workloads, to the cloud without a clear cloud strategy and solid architecture, companies then face unexpected costs to recover the damage they create, such as increasing headcount to hire cloud engineers and architects.
Putting together a solid foundation and gradually building on top of it helps businesses prevent undesired consequences and expenses and makes the digital transformation of organizations seamless and sustainable. According to a study by McKinsey & Company, companies that put in place a solid cloud foundation reap benefits in the form of a potential eightfold acceleration in the pace of cloud migration and adoption and a 50 percent reduction in migration costs over the long term—without delaying their cloud program.
According to the Google Cloud migration methodology, the cloud migration journey includes four fundamental phases.
Assess: Lay the migration groundwork, and determine the requirements and dependencies
At this phase, you perform the following steps:
Build a comprehensive inventory of your apps.
Catalog your apps according to their properties and dependencies.
Train and educate your teams on your cloud vendor.
Build an experiment and proof of concept on your cloud vendor.
Calculate the total cost of ownership (TCO) of the target environment.
Choose the workloads that you want to migrate first.
Plan: Pick your strategies for application, data, migration solutions, and test
At this phase, you must ask and answer essential questions for your organization before building your foundation on your cloud vendor. This process will facilitate conversations between your architecture teams and business leaders on choosing the proper infrastructure, tools, security, and account management, preparing you for the formal planning of your cloud infrastructure and services that support your migration.
The major types of migration are Lift and shift (Migrate an app without major changes), Improve and move (Refactor and modernize an existing app before moving to the public cloud), and Rip and replace (When modernizing an app is not cost-effective or possible, replace it entirely).
Deploy: Move to the cloud, validate, and automate processes
At this phase, you need to design a deployment process. Based on your design, you should build your team, collect requirements and available resources, evaluate your transfer options, organize for transfer, and assure the integrity of your transfer.
Optimize: Consider all ongoing operations and refine your environment to make it more efficient
At this phase, you start boosting your potential in performance, scalability, disaster recovery, costs, and training, taking further steps towards ML and AI integrations for your app and benefiting from cloud-native technologies.
In this article, we will walk you through the critical steps you should take into account to thrive when migrating to the cloud.
1) Evaluate your readiness
Before starting the migration, you must evaluate the maturity of your organization in adopting cloud technologies. Google Cloud Adoption Framework serves as a map for discovering your current business information technology capabilities and as a guide showing your direction.
The below diagram illustrates the framework for assessing your organization’s readiness and the steps you need to take to fill in the gaps and develop new competencies.
2) Create a roadmap and responsible team for migration
It isn’t realistic to aim to migrate all applications and data to the cloud concurrently.
McKinsey & Company study indicates that in order to prioritize jobs that can deliver significant performance improvements or cost savings, you can leverage an approach to include colleagues from the business, application and service development, and IT infrastructure to create an application scorecard together based on;
dependencies on other applications
security controls required by the application
services consumed by the application
data required by the application
the underlying technology architecture
the effort required to rewrite code and configurations and conduct testing
the costs of cloud-deployment options
the business risks of performing a migration
3) Prioritize migration components
The migration is ideally done by moving selected workloads respectively without disrupting the business operations. Therefore you need to prioritize specific workloads while other components continue to function.
Start with workloads for applications that are not essential to your business (that do not need to run 24/7) so that there is no significant risk to the company’s overall operations. Some examples include seasonal applications and training or demo environments.
Continue with low-risk applications that run 24/7 but are not essential to the business and do not jeopardize operational functionality.
End with business-critical applications. This step is tricky as these apps require the most technical expertise to migrate successfully with minimal disruption.
Shortly, start with the most negligible impact on your business, then slowly continue with mission-critical applications.
4) Optimize current technology for a smoother migration process
Before the actual migration, rethink your entire IT strategy, structure and tools, review policies, perform any necessary refactoring, update versions, modernize your infrastructure, and automate as many steps of the production journey as possible such as CI/CD, containerization, and IaC. This will be the perfect moment to make important technology and methodology decisions.
5) Act with Zero-Trust and make cloud security and compliance the bedrock of your project
Traditional security models would be inadequate to safeguard cloud-based and distributed environments and the workforce. As you move to the cloud, you must develop new and comprehensive approaches to protect your users, apps, and data while sustaining compliance and digital sovereignty objectives.
Always look deeper into the physical security of your potential cloud vendor’s data centers, even the hardware security at the compute level to the network cables. Consider leveraging products and frameworks that support risk management by design, and adopt policies and tools that would enhance the security and resilience of your apps, data, APIs, and all systems.
Proactively be prepared for possible threats, frauds, and attacks, deep dive into security best practices, and incorporate access management, key management, alerting, and encryption rules into your systems.
Establish a zero-trust network where no person, device, or network obtains inherent trust from your organization. Any privilege of access to information must be earned by exhibiting a valid identity before providing access to any part of the system. Every web application should have its own access control for thorough security and lower risk.
6) Always consider different cloud topologies, resource combinations, and commitment models for maximum savings
Cloud costs can be affected by many variables. You can optimize your resources depending on your business objectives and capacity requirements.
Check whether you can get flexible configurations (number of cores, memory capacity), flexible billing options such as per-second billing, automatic discounts, preemptible machines, committed use discounts, etc.
Vendor lock-in is a significant barrier to the adoption of the cloud. Always check upfront if there are any termination fees or legal constraints involved in your cloud vendor contract.
If you think it will be costly to move everything to the cloud, it would be an option to gradually progress your project and retain some workloads on-premise, modernizing at your own pace. A Mckinsey & Company study reveals that the characteristics of applications and data-storage systems affect technology costs. For instance, a large financial services company may find that I/O-intensive applications are costly to host in the public cloud because the cloud vendor may charge “egress fees” whenever data is retrieved from the company’s private data center. On the other hand, the same company may find that storage in the public cloud is much cheaper, so it is economical for them to run storage-intensive applications there.
7) Design a scalable, highly available, and resilient architecture
Selecting auto-scalable components in your architecture is vital. This way, your apps can automatically expand/shrink depending on the increases or decreases in load, handle spikes in traffic, and reduces costs when the need for resources is lower. This flexibility is key to meeting changing business needs and goals.
It would be wise to distribute compute resources, use load balancing, replicate data, and prefer managed services where possible.
All services in your architecture must work redundantly so that the system continues to remain operational, even if a server is not available. For disaster recovery, you should consider a multi-location backup, as well as a system backup and service backup.
8) Consider hybrid-cloud options if you are in a compliance-intense industry
As the hybrid cloud lets you decide where your app sits and where hybrid computing happens, it helps privacy improvements and ensures compliance for your regulated applications.
A hybrid cloud is suitable for you if you want to take advantage of the scalability and security of the public cloud while keeping your data and critical systems on-premises to comply with data residency laws or supporting the computing needs closer to your customers.
9) Establish cloud KPIs
It is essential to select relevant metrics for your app/service and measure their performance against your expectations after moving to the cloud.
Some important metrics include the following;
Infrastructure: CPU usage – Disk performance – Memory usage – Network throughput
App: Throughput – Error Rates – Uptimes -Latency
UX: Page Load time – Response time – Engagement Rate – Conversion
10) Choose a business partner you can trust
Many businesses may hesitate to work with a partner during their cloud migration journey as they feel they can manage everything in-house. Cloud migration is a complicated process; if you are not a domain expert for this, you may find yourself walking blindfolded through a minefield, leading to inevitable mistakes that cost even more than you plan on saving with the cloud.
A competent partner with extensive knowledge of different vendor services can guide you on migration best practices and provide consistent migration support and proven architectural planning. Some of the other advantages of working with a partner are better pricing and cost optimization opportunities, regular access to product and service updates, access to expertise on technical matters, and experienced support teams whose level of service is guaranteed by SLAs.
The best method to understand if your potential business partner is compatible with your business is to talk about your business goals, company culture, methodologies, and bottlenecks. In return, you should look for domain expertise in your industry, experience in migrating a wide range of systems, platforms, and apps, and skilled staffing.
If you want to migrate to the cloud smartly, taking comfort in Kartaca’s 10+ years of experience, please check our page and contact us.