What We Learned Moving to a Multi-Cloud Solution
Over the last couple years, we've received requests from customers to support other cloud providers. We started as primarily an AWS shop, so the task of learning a new cloud provider followed a path familiar to many companies going through a similar process: take what you know in your current cloud and find the equivalent in the new cloud. At first, this is a good way to determine what services can be used for the same tasks and which services are unique. However, we quickly learned that to achieve multi-cloud success you must deep dive on each of the services to determine how it works and, more importantly, determine the best practices for using each service.
Multi-Cloud is Good
Every engineer has his/her favorite programming language. The same is true with clouds. Most cloud management teams have spent many hours learning the ins and outs of one cloud. They know the strengths and weaknesses, and they know how to keep everything running. We see very few cloud management teams that have well-managed multi-cloud environments, i.e., teams that are proficient with AWS, Azure, and GCP. Typically, it's one of these environments.
Cloud management teams have their favorite cloud just like an engineer has a favorite programming language. Like programming languages, cloud providers have built their clouds to solve specific problems. Using only your favorite cloud to solve every business problem is like using only your sports car for all travel: it's probably not going to handle well in the snow or rain.
You should choose the cloud that best addresses the problem you're trying to solve. If you have an entire application architecture that already uses .NET and you need to migrate it to the cloud, chances are Azure will provide the best support and tooling to get you migrated quickly. If you are purely an open source shop and have a team of developers that have used AWS in a past life to build enterprise applications, AWS is a great choice. The next challenge once you know which clouds you will offer is how you will get your teams up to speed on them.
Lead by Example
A great way to learn material is to pretend like you will teach it to a class. Luckily, everyone on the cloudtamer.io team needs to understand each of the clouds that we support so when someone does pick up new information, we share it during one of our team meetings. To get the entire team up to speed on each of our cloud providers, we have weekly meetings dedicated to sharing what we've learned over the past week. We also ensure important information is updated in our knowledge base for new team members that need to get up to speed more quickly. Weekly, we demonstrate new capabilities that we've built into our products to ensure we are building features that will deliver the most value to our customers.
Bridging the Gap
There have been a few articles published around the dangers of the multi-cloud promise. Cloud providers have different sweet spots, but there are still gaps that enterprise teams have when trying to build out their multi-cloud environments. Those gaps are not necessarily felt by the engineering teams but, rather, by the cloud management teams.
Tracking finances across projects and cloud accounts is a great example of a gap. All of the various cloud providers support some level of setting budgets and triggering notifications or actions when the budget is reached. That's a good start, but where we found cloudtamer.io really shines is providing more capabilities around tracking funding from various funding sources as well as delegating the ability for different team members to set their own budgets on projects from an allocation that has been approved at a higher level. At a multi-cloud level, this is a big need for our customers because the financial teams don't want to go into one, much less two, different cloud providers to set budgets on every cloud account. This doesn't scale very well because as the number of cloud accounts increases, the number of budgets that needs to be tracked and edited increases as well. By delegating to your project leads the ability to set budgets in cloudtamer.io, you're reducing your individual workload and helping the owners of your teams to manage their projects.
Plotting the Right Course
Building a solution around multi-cloud support needs to be done with caution because you don't want to lead customers away from the best practices set by the individual cloud providers. We learned early on that our customers did not want a cloud broker. Why? Because it's very challenging to keep pace with the innovation of cloud providers today. We want to ensure our customers can use the latest AWS EC2 and Azure Virtual Machines when they are released - not when we finally push an update to our software to enable an upgrade. Trying to keep pace like this slows innovation in the cloud - you don't want a third-party affecting your productivity. We give customers native access to the AWS and Azure consoles so engineers can build with the tools they know and love.
Which Way to Migrate
If you are migrating to the cloud there are two paths you can take: lift and shift (also known as rehosting) if you need to get your application moved ASAP or rearchitecting (also known as refactoring) if you have the time and money.
Lift and shift is typically easier and cheaper if you have a more modern application. The goal is not to make any large changes in the application or optimize to run on new hardware - the goal is to get the application to the same operating condition as it is currently.
Rearchitecting is better if you have resources available and you're not in a rush. It could also be a good choice if you have an older application where it would take just as much effort to get the application to run in the cloud as it would to rearchitect with cloud technologies. It is primarily only recommended for experienced cloud migration teams. Generally, a combination of the two methods is a good way to go so you notice a few of the cloud benefits upfront and the time to migrate the application is still relatively quick.
Meet with the Experts
If your organization is invested in cloud, set up meetings or attend training with the experts at the cloud provider to ease the learning curve. You can spend a lot of time troubleshooting or using services improperly if you don't have the knowledge you need. The cloud providers want you to be successful with their platforms so reach out to them and utilize them when you have the bandwidth.
Joe leads engineering at cloudtamer.io.