Everybody wants to be on the cloud, and even though sysadmins understand that the cloud is just somebody else's bare metal, there are good points to shifting some of your infrastructure onto the cloud. As long as you keep a few important principles in mind, you can safely move some of your workloads onto the cloud and maintain final authority over your services.
Not all cloud service providers afford you the same flexibility, so you must do your research and choose wisely, just as you would before outsourcing to a VPN or VoIP provider. In the past, I've been made (usually by a manager who's been beguiled by marketing material) to engage with companies without appropriate consideration. I've recently had the luxury of investigating options, auditing processes, and even examining source code for hybrid cloud setups.
Here are five things I've found helpful when evaluating a cloud service provider for your organization.
1. Cloud services can be open
Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS) can be unsettling because you don't own the thing you rely on. But that changes when you build on open source.
The best cloud service providers build on an open stack (which may literally be OpenStack), creating reproducible runtime environments and portable software that supports the vital components of your infrastructure
When it's open source, you own what you use. Should you decide to change cloud service providers, you get to take everything with you.
2. Cloud scripting can be easier than you think
When you think of cloud services, you might picture a web-based admin panel with very few control options and seemingly endless recursion into platforms running in containers inside a platform. That level of abstraction might be useful in some ways, but a busy sysadmin appreciates the ability to automate common tasks.
Before signing on with a cloud service provider, look into the tools they use to provide you with portable automation. I've used services that provide an API, others with terminal commands, and still others with webhooks driven by Git commits. When these components are open source, it's even better because they're portable, which is essential if you change providers.
[ Considering a change? Learn about developing and deploying containers using Red Hat & AWS solutions. ]
3. Cloud-native apps are easier than you think
It's not uncommon to get requests from users for odd little services that nobody's ever thought about before. You might be offered an application to convert one obscure document type to another, or maybe an application to detect the color space of an image or the length of a video.
There's always some small repetitive task your users need. As a sysadmin, you sometimes have a brilliant solution that not only saves your user time and effort but also makes the whole organization run a little smoother than it did before. Depending on your industry, you might be comfortable just handing over a shell script, or maybe you rely on an open source forge like GitLab or GitHub to provide a desktop app.
In this day and age, the unifying interface for nearly every user is the web browser. You might be surprised to find that a good cloud service provider can make it trivial for you to invent useful Python applications in no time using a good Web Server Gateway Interface (WSGI) framework like Flask. Ideally, you can write a quick application on a desktop, publish it to a Git repo, and have it running in a container in just an afternoon or less.
[ Learn more about how you can deliver innovative applications faster. ]
That's been exactly my experience with CodeReady Workspaces. With only slight modifications (specifically a YAML file for configuration and a name change for my main application), I've gotten Flask apps running on my cloud service provider in as little time as it took me to write the YAML configuration. It is live and available for my users almost instantly, and the interface is as easy as writing basic HTML.
4. Cloud services can be self-service
After adopting a cloud service provider, there have been many cases where the task of getting services up and running for users never even crossed my desk.
A good cloud service provider has an interface like OpenShift that acts like a web content-management system (CMS) for your infrastructure. You can assign specific users permission to access different cloud services, handing over responsibilities to the users requesting the service. For internal services, a good hybrid cloud permits you to keep within your committed spending limit by avoiding charges for local services.
5. Cloud services exist to serve
Most importantly, cloud service providers are meant to serve. Far from being a package deal you buy off the shelf and put into play, the best cloud service providers make tools highly available so that you can craft a system that works for you and your organization.
A good cloud service provider understands that you need to maintain control over your environment and has applications to help you understand, script, and configure the way your cloud works.
If you're researching a provider and can't find the documentation you need, or don't understand how a cloud service will integrate with your existing infrastructure, then the chances are they don't.
Do your research in advance. Try out the different services available, and test your mission-critical apps on them. See how easy it is to transfer data, configuration, and apps from one to another. The concept of an open hybrid cloud isn't just a fun idea to keep open source high on the leaderboard. It's a necessity that keeps you, the sysadmin, at the forefront of the infrastructure you're responsible for designing, improving, troubleshooting, and maintaining.