Choosing the right cloud provider is a big decision for any organization. These can be costly services with a huge range of options and features. Sifting through all of that information to come to a meaningful decision that works best for your company’s goals and budget is challenging. Further, once a cloud provider is chosen, developers then have to setup and maintain new infrastructure in the cloud. One way to cut through the noise is to use managed services. Managed services provide an easy way to get into the cloud. Compared to unmanaged services, they keep the development and maintenance efforts low, minimize setup and deployment time, and avoid unnecessary specialization into the workings of cloud components and networking.
However, the similarity of the service offerings from the three major cloud providers (Microsoft Azure, Amazon Web Services, Google Cloud Platform) makes the choice of a cloud provider less impactful on projects than was previously the case. All three providers offer some variation of many common infrastructure components such as virtual machines, general storage, and databases. The maturity of different components and services varies among providers and should be considered while making a selection. Overall, what should drive your cloud provider decision is your organization's long-term goals and how managed services can support those goals.
How Do You Evaluate Cloud Managed Services?
Look at long-term architecture
What components are part of your desired future state architecture?
Compare these desired future components to those offered by the main three providers.
Key areas to consider:
- Are these components managed services?
- What’s the maturity of the service?
- What is the level of support offered for those components?
- Do you intend to grow your footprint beyond those components within the next few years?
Look at qualities of critical components
When we provide this kind of evaluation to our clients, we take each product offered for the critical components and score them based on the main considerations and goals for the client.
Key areas to consider:
- Locations - Often services are offered only in certain regions.
- Simplicity and ease of use - Complicated infrastructure or deployment steps not only cuts into the time it takes to get up and running with something but also increase complexity and conceptual overhead to maintain it.
- Deployment - Does the service require setting up underlying infrastructure and networking or is all of that abstracted away? For components that are abstracted away, will you need to customize them in later deployments? How easy is that process?
- Scalability - What is the expected workload of the solution, and how easily do its different components scale to meet it as it grows?
- Integrity and security - How secure are the default settings, and what tools are available to validate them? Are all the services certified to comply with the standards you care about? Which services can you put behind a firewall?
- Data Storage and Access - How quickly and easily can you configure backups? What services exist for ingesting and transforming the data? How easily can legacy apps access the new data resources?
- Monitoring and visibility - As projects mature and expand, situational awareness becomes increasingly important.
- Maturity - How battle-tested is the solution, and has the documentation grown along with it? All else being equal with a managed service, the edge cases in your problem space are more likely to have been encountered in the more mature product.
Long and short term considerations for each provider
GCP Managed Services
- Easy to get started
- Newest cloud features and products thus most up to date with recent advancements
- Encryption by default
- Easy security scanning
- Some of the products still need a lot of polish
- Doesn’t always work with legacy on prem clouds
AWS Managed Services
- Number of options and configurations can initially be overwhelming
- More setup needed for managed services vs GCP
- Mature service offerings like Lambda and database offerings
- AWS has the largest ecosystem of products
- Can create custom solutions when managed services are too costly or are not providing the service you need
- Constantly expanding offerings and is a huge part of the internet backbone at this point. It’s not going anywhere and has lots of support and training
Azure Managed Services
- Business focused and strive to enable analytics on big data
- Buckets a lot of services together so that you can spend less time tying disparate services together
- Overall, less knowledge of the cloud needed to get started
- Focuses on integration of Azure with on-prem data centers
- Can be more expensive than GCP and AWS
How Have Other Companies Evaluated Cloud Managed Services?
Our client, a Midwest-based health provider, pioneered many facets of virtual healthcare using an on-prem cloud. However, they wanted to develop a next gen virtual health platform in the cloud. While they had experience with on-prem networks, they had limited experience with the large cloud providers. As part of the project, we talked through their needs and each of the key areas to consider. The biggest issue was ensuring HIPAA compliance in everything we built. After reviewing the scope of work we decided to go with GCP as it was easy to get started, simple to manage, and had many security settings on by default.
An issue emerged in development though. One of our client’s requirements was to integrate the GCP network we built into their network through a VPN. The requirement was to make the platform only reachable internally. The issue boiled down to GCP’s managed services being too new at the time, and they didn’t easily integrate with our client’s legacy network hardware. It took a bit of extra work, but in the end, we got it working.
This example shows just how complex the cloud provider decision can be. While GCP has great services, a cloud provider’s product maturity is also a critical consideration along with what you intend to do with your cloud in the long term.
Your decision guide on cloud managed services
Download our easy decision guide evaluating the managed services offered by AWS, GCP, and Azure. This visual goes through our extensive research working with enterprise organizations to help them choose the platform and services that best fit their environment and goals.
Looking at this chart, Google is a clear winner of managed services and is a great place to start if you are a new company or building new apps. As you mature though, you might need more customized infrastructure at a lower cost. That's where AWS shines. If you already have a large on-premise presence and want to integrate it with a cloud provider, then Azure might be best for you. In the end though, creating an app that is cloud platform agnostic will allow you to switch providers partially or entirely, but that’s a topic for another day!
Read more about our modern software engineering practice and how we help enterprises navigate the cloud.