Recently I had the mission to decide which cloud provider my company was to adopt. After taking a deep look at the capabilities, benefits, and other key important points of the three main clouds in the market (Azure, Amazon, and Google), I was very excited about the result and the effort put on and decided to share so it could help more people. This is a decision matrix developed to take the decision in my company. I strongly encourage you to inspire in this one and make the needed changes for yours. I hope it helps you to take your own decision as well. There are three main areas in this article: 1) Define the goals of the journey, 2) The spreadsheet, 3) the Adopted Criteria, and 4) the Final Decision.
1 — Define the goals for the cloud journey
When we start such an important project like this, it must be very clear to all high management the goals involved. These are the goals I defined together with my peers and validated with all the company senior management.
- Overall company speed — essential for keeping competitive time to market.
- Teams autonomy — one more important move to keep time-to-market as fast as possible and to foster DevOps adoption.
- Cost savings — use the cloud benefit of the pay-as-you-go.
- Enable software scalability — some of the products still suffer from on-prem challenges to scale.
- Security — improve security while handing over a few of the key concerns to the cloud provider.
- Better infrastructure costs management
- Keep auditing key aspects valid — eg.: PCI compliant.
2 — The spreadsheet
In this spreadsheet, you can find the summarized version of all the criteria presented in the next section. The values in it are the actual result of my analysis. You should take a look by yourself and change the values according to your scenario.
3 — Define the criteria list
The following items are those important for this scenario’s migration. They are a total of Seventeen criteria analyzed to achieve a better overall understanding.
Five is the highest possible score. One is the lowest. Any other number between those are valid scores.
* These items were not included in my initial analysis and were suggested by a couple of friends using the model. I’m bringing them here as a few more suggestions for you.
Why this criterion is important: Since the cloud move is an already taken decision, the goal of this criterion is to evaluate which cloud is the cheapest for this specific scenario need.
2.2. Feature count
Why this criterion is important: innovation appetite of each cloud provider.
2.3. Oracle migration ease
Why this criterion is important: needless to say.
2.4. Available SDKs
Why this criterion is important: SDKs are important for applications under development.
2.5. DDoS protection
Why this criterion is important: DDoS is a common attack for digital products. This is an important feature thinking about the future.
2.6. Security overall
Why this criterion is important: there are some key security features my company is audited by third-party partners to which we must keep compliant.
Source: Three main sources from security experts blogs were used to this evaluation:
- TripWire — Difference cloud security standpoint.
- DisruptOps — Security pros — quick cloud comparison
- Cloudorado — AWS vs Azure vs Google
2.7. Machine Learning and Data Science features
Why this criterion is important: looking for the future, it’s important to think about new services to be consumed. This feature received a low maximum score because it is not something critical for this stage of the cloud adoption.
Why this criterion is important: a strong community makes easier to find solutions for the problems that will come in the future.
2.9. Professionals availability
Why this criterion is important: the ability to hire qualified professionals for the specific cloud vendor is crucial for the application lifecycle. This research was performed on LinkedIn with the query “certified cloud architect <vendor>”.
2.10. Professionals cost
Why this criterion is important: as important as professionals availability, the cost involved in hiring each of these professionals is also something important to keep in mind.
2.11. Companies already present in each cloud
Why this criterion is important: taking a look at companies help to understand where the biggest and most innovative companies are heading to. And if they are doing so, there must be a good reason for that.
2.12. Internal team knowledge
Why this criterion is important: the more internal knowledge for a cloud adoption, the faster it will be to achieve a good level of maturity.
2.13. Auditing capabilities
Why this criterion is important: auditing capabilities are important to keep compliant to some existing contracts.
2.14. Cloud migration products
Why this criterion is important: since this is intended to be a company wide adoption, some areas will have more or less maturity to migrate to a new paradigm of cloud native software development. The more the cloud provider can assist with simpler migration strategies such as an “AS IS”, the better for this criterion.
4 — Conclusion
Below is presented the final result for this comparison. Having reached this, I intend to help your cloud journey adoption decisions, but please do not stick to these criteria presented here. Always take a look at what is important to your company and business evolution.
This adoption must also come hand-by-hand with an internal plan to improve people’s knowledge of the selected cloud. The cloud brings several benefits compared to on-premises services, and like everything in life there are trade-offs and new challenges will appear.