Last updated 22/07/2021
If we start by looking at the future, say 2030, the conversation will change its course from “Why cloud?” to “When cloud?” because we all know that computing’s future relies heavily on the Cloud. NIST (National Institute of Standards and Technology) defines cloud computing as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
So in a gist, cloud is everywhere and it can do everything — why not move to the cloud and save all the money it advertises you can, right? Well, not really. Also, this thought process is one of the main reasons why cloud migrations fail in general. I will loop back into the details of this in a bit, let us first have a walkthrough of how cloud operates and why it creates this urge among companies and developers.
Cloud Computing typically stands for a pool of resources that may or may not be owned, managed by the end-user. Some organizations need a private cloud where they require more control over data, or use a public cloud where resources are shared with other users. At times a hybrid or multi-cloud model is used where a combined set of features from both public and private offerings can be used. For example, a new employee on boarding application could run on the public workspace and bank account details of that employee could be stored within an on-prem data warehouse. Private cloud’s optimal use case is for fixed, long-running and ongoing workloads. Public cloud’s optimal use-case is utility computing for workloads which can be turned on-and-off at will. Now that we have an idea of what cloud offers and in what ways, let’s move towards the migration part of applications.
However, be forewarned: Not all cloud deployments go smoothly. Migrations often take longer than expected, or they fail completely, resulting in wasted time and expense. It’s not unusual to discover, after moving an app into the cloud, that it doesn’t work as well there as it did on-premises. The result might just be another migration — back to the data center. A recent study, sponsored BBC by security provider Fortinet and conducted by supply chain specialists IHS Markit, found that many companies, 74% of those surveyed, have moved a cloud-based app back on-premises after failing to achieve the anticipated benefits.
The question is how to go about adoption. You need to integrate cloud into your overall business strategy, which includes assessing how it can help boost revenue, gain competitive advantage, improve productivity and manage costs. You need the right framework in place at the outset, and a continual cadence of innovation and updates over time. Let us look over some common reasons of failure first:
Writing and deploying a code to cloud is not the same as uploading the code that ran locally to a public cloud container and expecting it to perform the same way. The reason this fails is, on-prem applications are used to consuming resources at peak, on the other hand the cloud is designed to use resources when needed and then return them back. Therefore, any traditional application is not built with that level of autonomy and orchestration. As a result, on performing a lift and shift, application running on cloud continue to use all the assigned resources 24x7 irrespective of when they are, or are not functional. This increases the operational costs exponentially and the organization pulls back from cloud stating it is costlier than maintaining apps in-house.
Moving to the cloud is not just the function of a company’s IT team stirring their code to a cloud platform but, it also requires the entire organization to be ready to shift to a new culture which would also mean bringing every stakeholder into the plan. According to research recently released by Unisys, about 75% of cloud migrations fail because companies do not include cloud as a core part of their business strategy. A basic error here is, projects are driven by the IT department and then they tell those impacted after the project is done. This causes a ripple effect across the organization, therefore a vital part of the process is gathering detailed information and knowing the key stakeholders early on. Projects need very good governance, and that means involving everyone touched by the transformation to the cloud.
Cloud Infrastructure has a very different approach towards costs of provided resources. Pricing of service plans and operational costs on the cloud are complex and extremely granular in nature when compared to singular ownership costs of on-prem hardware/software. Two important things to know here are fiscal consumption and workload predictability. Since cloud operates on a pay-as-you-go model, you need a strong definition of what the workload is going to be in the near future. Based on this workload it becomes easier to choose the best possible resources for that requirement. Next comes the decision of renting or buying up-front and the logic to follow is simple. Need storage to keep backup? Rent it. Need containers for a livesite? Buy it. The principle here is that you buy resources only for something that is permanent and core to your business. Rent everything else.
Dreaming that migration to cloud will magically enhance the performance, security and ROI of apps, you may be in for a worrying awakening. The on-premises network was not created overnight, so having unrealistic expectations for migration would not lead anywhere. A poorly targeted cloud effort can slow down a business and disrupt its operations too. In the same way that software programming has progressed to an agile approach in which development is broken into micro initiatives that are continuously tested, the operability of each migrated application needs to be confirmed and thoroughly tested along the way. In some cases, applications will have to be re-platformed in order to accommodate their new cloud environments. Some workloads (like ERP) require much more time for performance-tuning than easily deployable applications (like web and email servers).
Although difficult and challenging, cloud migration is not impossible and organizations are successfully carrying it out. Assuming the above mentioned errors do not occur during initiation of your cloud migration strategy, let us now walkthrough what would make this migration a success.
It must start right at the top of the ladder. Migrations cannot happen only within the technology team of the organization. Technology is only a part, but one where an organized strategy can quickly loosen. Impending the cloud tactically means rethinking budgets, processes, skills, security measures, data integration, and on and on. A successful migration includes making conscious portfolio decisions of what to keep on-prem and what to move, which platforms to stick with or abandon, what cloud providers and services to pick and how to refactor applications to take advantage of the cloud’s benefits. By standardizing on common compute, storage, and database platforms, you can reduce both complexity and the costs of management and operations. Keeping things simple also means avoiding an overcomplex migration and biting off more than you can chew. Bad things happen when the scope of the project is too vast, or the time frame or budget is too small. This planning and execution can only be done if the plan is solid and is being followed by the entire organization.
The smart answer here would be to use a hybrid approach, keep some things in your premises and push some to the cloud. Elements that are not differentiating to the business core, like emails, calendaring, resource monitoring, ERP, incident management should be moved to the cloud since there origin alone would not determine much. On the other hand set up on-going replication of live data and key-vault information on the private cloud. Pushing everything to the cloud will start incurring cost and make management tougher.
IDC predicts that digital transformation spending will grow to more than 53% of all information and communications technology (ICT) investment by 2023. Here going digital means a lot of things, from creating custom KPIs to analyzing for growth. About 60% of all cloud service users exploit intelligence tools like Adobe and Google Analytics to forecast behavior of web apps. With the cloud integrating features like Application Insights within its infrastructure, this digital analysis will be simplified. Moreover, cloud infrastructure management is primarily based on digital transformation. Take the example of Netflix; Before Netflix, people chose movies to rent by going to stores and combing through shelves of tapes and discs in search of something that looked good. Now, libraries of digital content are served up on personal devices, complete with recommendations and reviews based on user preferences. Now its not about waiting for customers to find you, its about being present everywhere they can reach, digitally.
The first step is to realize you can’t do this alone, especially in the beginning. From developers to architects everyone needs to be upskilled and you should look for teams that have a proven record of successful migrations. You would need to rearchitect as many on-premises apps as possible for a cloud native design, where the app is elastic and scales up and down as needed. Demand for cloud services is outstripping supply and there is a dearth of highly qualified people to do the work that needs to be done and therefore the team that works on migration should have the right skills needed for it.
Data Warehouses on the cloud have a different schema and functionality when compared to on-premises applications. AWS Redshift is PostgreSQL compatible, and therefore has the most familiar set of data types. BigQuery, on the other hand, uses STRING instead of VARCHAR, and employs RECORD (semi structured objects) and REPEATED (arrays) types. Snowflake introduces VARIANT, OBJECT, and ARRAY, for supporting semi structured data. There is also a wide set of eclectic data types which are not supported at all (BLOBs, geographical coordinates, etc.). Furthermore, cloud data warehouses encourage an approach of schema denormalization for increased performance. Another challenge for data management is the support for stored procedures, although cloud providers allow the use of user-defined functions in various languages, data managers have a solid connection with Stored Procedures since it keeps data, schema intact. You will need to adopt to tools like Luigi and Airflow to fulfill this requirement.
Sooner or later, the world is going to be revolving around the cloud for all computational needs. Since commodity hardware is easily available and running high requirement tasks on a standalone computer would require a lot of Capital Expenditure. In order to avoid that, horizontal scaling of resources across hardware that is low-cost has to replace standalone high configuration systems. The idea here is to not eliminate cloud possibilities but to find the perfect way of moving to the cloud. Organizational readiness, the skillset to manage cloud operations and an application stack that has malleability to transform into a scalable cloud program are the primary requirements and later comes the decision of choosing what form of cloud (public, private or hybrid/multi cloud) architecture to use.
Rahulraj Singh is a Software Engineer currently working in the Data Analytics and Machine Learning domain for a Fortune 500 company. His professional aim is to bridge the gap between collection of data and the ease of extracting insights from it. he also take part in creating tutorials for aspiring Data Scientists and Engineers
* Your personal details are for internal use only and will remain confidential.
|AWS Solution Architect Associates|
|SIAM Professional Training & Certification|
|ITIL® 4 Foundation Certification|
|DevOps Foundation By DOI|
|Certified DevOps Developer|
|PRINCE2® Foundation & Practitioner|
|ITIL® 4 Managing Professional Bridge Course|
|Certified DevOps Engineer|
|DevOps Practitioner + Agile Scrum Master|
|ISO Lead Auditor Combo Certification|
|Microsoft Azure Administrator AZ-104|
|Digital Transformation Officer|
|Certified Full Stack Data Scientist|
|Microsoft Azure DevOps Engineer|