# 5 things sysadmins should know about cloud services providers

Everybody wants to be on the cloud now, and even though you as a sysadmin understand that the cloud is just somebody else's bare metal, there are several luxuries 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 workload onto the cloud, but maintain final authority over the services you provide.
Not all cloud service providers afford you the same flexibility, though, 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.
Recently I've also had the luxury of investigating options, auditing processes and even source code, for hybrid cloud setups.
Here are five things I've found to be helpful when looking at cloud services for your organization.

## 1. Cloud services can be open

Infrastructure-as-a-Service (Iaas), Platform-as-a-Service (PaaS), and SaaS (Software-as-a-Service) can be unsettling, especially for open source enthusiasts, 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 open stacks (which may literally be [OpenStack](https://opensource.com/resources/what-is-openstack)), creating reproducible runtime environments and portable software that ensures 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 the 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, should I change providers.

## 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.
An application to convert one obscure document type to another, or 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, and as 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 what industry you work in, 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 WSGI framework like Flask.
Ideally, you can get a quick application written on desktop, published to a Git repo, and running in a container in just an afternoon or less.

That's been exactly my experience with [Codeready Workspaces](https://developers.redhat.com/products/codeready-workspaces/overview).
With only slight modifications (specically a [YAML file](https://www.redhat.com/sysadmin/yaml-beginners) 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 was live and available for my users almost instantly, and the interface was as easy as writing basic HTML.

## 4. Cloud services can be self-serve

After adopting a cloud service provider, there have been many cases in which 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](http://console.redhat.com) that acts like a sort of web 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 hydrid 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 you can craft a system that works for you and your organization.
A good cloud provider understands that you need to maintain control over your environment, and [has applications](https://opensource.com/article/22/3/x-open-source-tools-developing-cloud-while-using-multiple-providers) 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 can't understand how a cloud service will integrate with your existing infrastructure, then the chances are *they don't*.

## Choose wisely

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 leader board.
It's a necessity that keeps you, the sysadmin, at the forefront of the infrastructure you're responsible for designing, improving, troubleshooting, and maintaining.