Cloud is often considered as a new holy grail in terms of infrastructure. It promises flexibility, cost reduction and scalability along with ease of use. These arguments, and the amount of hype the cloud is receiving often pushes companies to a radical decision - migrate everything into the cloud.
However, it's worth noting, that not every infrastructure is suitable to live on a cloud. In this article, you will find most common mistakes businesses make while migrating to the cloud.
Lack of detailed requirements research
The requirements reseach is often treated as a basic child's math problem:
- We have 100 machines,
- We want to be in the cloud,
- How much will it cost us?
Then, an engineer is asked to perform a quote - how much the infrastructure on a cloud provider will cost. So let's break it down with the following assumptions:
- Each machine has 2 CPUs, 8 GB of memory and 50 GB of storage space,
- 10 of these 100 machines are databases,
- 10 of these 100 machines are caches (e.g.
- 80 of these 100 machines are webservers (e.g.
- Amazon Web Services region is Frankfurt. (Due to some compliance.)
So, the most common scenario would be to choose the closest matching instance types for each component.
|Component||Price per month||Total price per month|
|EC2 instances (||$82.8||$6,624|
This gives us average of $113.19 per month per machine. Not too bad, eh? Of course, there are cost optimization techniques and possibilities that could be leveraged to decrease the bill even further. However, that is not the main point.
As you've probably guessed, there's a lot of things missing here. Lots of factors, that should be taken into consideration. For example:
- Application stack and it's requirements. For example RDS does not support all database extensions that might be required by the application. Some low-level parameters are completely not configurable in the Amazon's service.
- Growth perspective. Sometimes it's cost ineffective to move to the cloud as for example storage growth will result in a very large bill.
- Operational cost. Does the company have staff experienced with a particular cloud? If not, how much it will cost to hire such people?
- Migration effort and cost. Is there a possibility to perform zero downtime switch or is downtime required? How much would such downtime cost, in terms of revenue lost?
- Cost optimization. How will migration to the cloud lower the overall infrastructure cost? If cost is not the deciding factor, what are the other factors that would justify moving to the cloud?
- Timeline. How long it will take to plan, prepare and perform this migration? Is the company able to dedicate enough resources to limit the window where there are two infrastructures running simultaneously?
- And many, many more.
It is crucial to do a very detailed requirements research before decision is made. It might end up in a conclusion that either company cannot afford this operation at this point in time, or it will not benefit the company enough to make up for the costs and labor.
If you are thinking about migration to the cloud, and need support in decision-making, we will be happy to help. Check out our services page to find out how can we help you and your business.
Lack of monitoring data
It is also extremely important to gather detailed, comprehensive monitoring data that will be used to estimate resource requirements within the cloud. This is important mainly because you will be able to:
- Estimate the cost in a more predictable manner,
- Properly assess the architecture size,
- Handle potential bottlenecks with benefits of the cloud.
Taking any decisions while being blind on the current affairs is the most irresponsible thing you could do. You do not want to end up in a situation where you estimated a bill of $1000 per month and in reality it will cost you $5000, because you did not know network traffic volume. For some companies, this could even mean bankruptcy.
Remember. Visibility and observability is the key to the success.
Lack of expertise
In order to create a cost effective and optimized migration plan you need a team of people with enough experience in the field. Depending on the size and complexity of the current infrastructure it can take one or multiple engineers to form a realistic and reliable game plan.
This kind of exercise requires an excellent knowledge of the current infrastructure and how to shift it towards the cloud. It is crucial to understand intricacies such as:
- Current network design and how to translate it into "cloud" network design,
- Services architecture, dependencies, which services must be tied together during the migration, possible risks of migrating piece by piece,
- The complicated art of choosing services that will be moved towards managed cloud services (e.g. databases) and picking which will stay as instances,
- Rollback plan. It is very often ignored, but you need a written down rollback plan in case the migration fails.
It takes time to analyze everything and form a plan with a decent timeline and budget. Of course, it is very difficult to foresee all corner cases, but you should cover as much as you possibly can.
Relying too much on managed services
Managed services are a blessing. Ability to utilize a particular service without the burden of operational work is often very tempting for people that consider moving to the cloud. Additional benefits such as higher availability, scalability and automated backups are things that push people to try to fit their services into these offerings, even if they are not entirely a fit.
The best example would be databases. Foundation of the application. It must be available and performant at it's best. So, why should you take on the responsibility of managing the cluster yourself? It is very frequently a complicated task that requires at least average knowledge of the software. It is much easier to just click and deploy a database cluster based on the engine you require, quickly ready to fulfill your needs.
What about application requirements? Additional extensions? Custom configuration? With ease of use comes lack of ability to craft it towards your specific use case. Managed services are configurable up to a certain point to not pose a risk to the cloud provider. It is absolutely critical to do a deep research on requirements, before taking on a decision to use managed service.
Another factor that needs to be taken into a consideration is the cost. Managed services are not cheap and the bill can become overwhelming very quickly due to how easy it is, to access and deploy them. Always do a cost forecast before you decide.
These are the most common (in my opinion) mistakes that companies make during their cloud migration. It is vital to perform an excellent research and have team of experienced people around, to create a reliable and realistic migration plan. If you are currently thinking about moving your company to the cloud, make sure to check our Cloud Migration Packages offer, we will be very happy to assist you in this journey.