As an architect surveying the landscape of cloud service providers, you probably either see nothing but gray or nothing but silver lining. Sometimes the most confusing thing about choosing a cloud provider is just a question of knowing what to look for.
Given the breadth of the cloud service provider ecosystem, including players such as Amazon Web Services (AWS), Microsoft Azure, and Google's cloud services, architects and IT leaders may feel uncertain about the right questions to ask. For example, what are the rules of engagement? Where does my environment end and theirs begin? Can this choice help me improve deployment speed and retain future flexibility?
Here are five things you should consider when exploring your cloud service provider options.
1. The cloud is mostly Kubernetes
Put aside extra features and custom technology for a minute. For many of an IT organization's key players (like developers and sysadmins), the cloud is mostly Kubernetes, a generic and standards-driven framework for container orchestration. That means that your teams can plan and develop your cloud deployment well before you engage with a cloud service provider.
Choosing a good cloud service provider means selecting one that uses industry standards so that you can work and test locally and then deploy to your public cloud without refactoring or reconfiguring.
2. Clouds can be open
A justified resistance to cloud migration is knowing that you don't own your infrastructure. Deploying to the cloud can feel like you're sending your business to somebody else. That's not the case when you build on open source.
Look for a cloud service provider building on an open stack so that you have reproducible runtime environments, portable software, and the ability to change providers at a moment's notice. You may never need to change cloud service providers, but you might implement a hybrid cloud as your teams increase their familiarity with cloud technology, or you may find a cost-cutting advantage in developing and testing on a local mirror of your environment (using DevStack or PrivateLink) before deploying.
[ Want to accelerate application development while reducing cost and complexity? Get the eBook: Modernize your IT with managed cloud services. ]
3. A good cloud caters to all users
Cloud service providers have a lot of value to add to what boils down to a global container engine, and that's a good thing because Kubernetes on its own is hugely flexible. When you don't want to build your own solution, one option is to buy one (like Red Hat OpenShift) from a cloud provider.
As The Enterprisers Project recently reported, there's an IT talent development consideration here. Some IT teams don't want to invest in the operational skills to manage and maintain Kubernetes in order to prioritize developing other cloud and automation skills. This is where managed Kubernetes cloud services, such as OpenShift Dedicated, Red Hat OpenShift on AWS (ROSA), and Microsoft Azure Red Hat OpenShift (ARO) can come into play.
But don't let your cloud provider's frontend scare away your developers and sysadmins. A good cloud provider offers direct access to your cloud, through commands like
crwctl, or just plain old
kubectl, allowing users who might benefit from interacting with the cloud through the terminal, scripts, or APIs to access what they need. Users who are more comfortable with web forms and bar graphs have the web admin panel for their work.
[ Learn more about developing and deploying containers using Red Hat & AWS solutions. ]
4. Containers are Linux
Developing for the cloud can sound complex because, technically, it is complex. In reality, cloud-native apps have potential for great flexibility, and some nuances are unique to the cloud environment. That's not very different from the learning curves of developing for a local machine and developing for the web or developing for multicore CPU threading.
The fact is that the containers running on the cloud are little instances of Linux. The cloud is a surprisingly consistent environment for something with so many providers to choose from.
- One provider may handle storage in S3 buckets, while another uses Swift.
- Load balancer options may differ.
- Secrets may be handled differently.
However, these differences can be handled modularly. The actual development and management of cloud services have common threads that can reduce the detailed work of overcoming the learning curve for a new provider, a relatively simple task for a specialized team.
5. The cloud isn't a cage
Ideally, a cloud service provider primarily offers added value to your container strategy. For you, that value may take the form of infrastructure you don't have to manage, increased availability you didn't have access to before, a control panel to make the technology approachable for your stakeholders, or a set of development resources to help developers work. Whatever value you're buying, your priority is to ensure that it works for you and your organization.
A good cloud service provider understands that the cloud is a part of your enterprise and doesn't treat your infrastructure like part of its business. If you're researching a provider and can't find the documentation you need, or you can't understand whether a cloud service will integrate with your existing infrastructure, or you don't have confidence that you can take your YAML files, container images, and source code and deploy them on a competitor with little to no loss of business, then the chances are the answer is no.
Find a cloud service provider that does exactly that: provides a cloud. The platform you run on that cloud and the way you interface with it are up to you and your organization's needs—now and later. Keep the cloud dynamic, and keep it open.
[ What should you know about AI/ML workloads and the cloud? Get the eBook: Top considerations for building a production-ready AI/ML environment. ]