Cloud computing is mainstream. That's a fact.
Chances are if your company isn't already extensively using the cloud, it is planning on doing so in the very near future.
But be careful. There are many mistakes that companies new to the cloud make when they begin looking into cloud adoption. Here are three of the main ones.
#1 The Cloud Isn't Secure
One of the biggest misconceptions that companies new to the cloud deal with is the issue of trusting the cloud. This shows up in many different ways.
One of the most common ways is in dealing with security.
Security is very important to nearly all companies. Moving to the public cloud means taking my application that is safely behind my company's firewall, and putting it on a public cloud service.
Can I trust the cloud to keep my application and my data secure?
Here is the truth. For the vast majority of companies, your company is probably safer in the hands of a public cloud provider than it is behind your own firewall.
Why is that true? Because cloud service providers make a living on trust. They would not be in business if they could not keep their customer's data secure.
They invest heavily in building high-quality security teams that spend their time advancing the state of the art in security protocols and procedures.
By putting your data in the hands of a reputable public cloud provider, you take advantage of the learnings and best practices created by the leaders in the security field. Unless your company has the same resources to invest in security as the cloud providers do, your company can benefit from these learnings in so many ways.
By using a public cloud provider and taking advantage of all the security offerings they provide, you can actually keep your applications and data safer in the public cloud than you can behind your own firewall.
#2 Lift-n-Shift is a Cloud Migration
Early in the process of adopting the cloud, many companies consider moving applications to the cloud by simply taking the application off of servers running in their own data center and move them to servers they've created in the cloud.
This type of migration is often called “Lift-n-Shift”.
While lift-n-shift is a valid way to very quickly get your application out of your data center and into a cloud-based data center, it doesn't do anything to make your application cloud friendly.
And while you can get some benefits from this approach, such as the ability to expand to additional data centers simply by launching servers in another region, the benefits of this approach typically stop there. In fact, the cloud can actually be inferior at basic application hosting such as this than your own data center in one big area – that is cost.
The cloud can and does provide significant cost benefits for users that take advantage of the dynamic allocation capabilities of cloud resources.
But it typically can't compare in cost to the basic, static infrastructure provided by a non-cloud data center. When you use the dynamic capabilities of the cloud, you can save money. If you simply lift-n-shift, you typically don't save money and often spend more.
#3 Serverless Solves All My Problems
It's easy to get caught up in the hype of the cloud, and the latest and greatest cloud service offering often seem like the solution to all your problems.
However, like any new technology, understanding how and where to apply the technology is critical to successfully using the technology.
This most certainly applies to the newest Function as a Service (FaaS) offerings by cloud providers, such as AWS Lambda, and Microsoft Azure Functions.
These offerings promise the ability to provide an execution environment for your software without the need for managing the servers they run on.
This “serverless computing” offering is very attractive to companies that are wanting to use the cloud to reduce their infrastructure management costs.
But, like all new technologies, FaaS offerings such as Lambda are good for some class of problems and they are not good for other class of problems.
Yet, I often hear statements from individuals such as “Lambda will solve my computing infrastructure problems” and “we're moving all of our software to Lambda”.
To people thinking that FaaS offerings such as Lambda are a solution to all your woes I say this: be careful. AWS Lambda and the equivalent offerings by other cloud providers give a huge advantage to certain class of computing environments, but they can be overused.
If they are force fit into solving problems they weren't designed to solve, they actually can create more problems for you and your infrastructure management than they solve.
Use them as an important part of your application architecture, but don't depend on them to solve all your computing problems. Use them only where they make sense.