How the cloud made computing harder, not easier

Remember when cloud computing was supposed to make life easier for IT professionals? When would PaaS and IaaS free IT teams from the burden of managing physical infrastructure, e Saas would it make it easier to distribute applications to any user, anywhere, anytime?

The cloud did those things, sure. But overall, the cloud has made life of Computer engineers (and developers, security teams, and pretty much everyone else who plays a part in modern IT) harder, not easier.

The question that remains to be answered is: why? Why cloud computing has ended up making the job of IT departments harder and more time-consuming, while also exposing businesses to new types of cybersecurity threats and increase overall IT spending?

Let’s explore this question by examining how the cloud has evolved and the factors that have led to a cloud computing ecosystem that is far more complex than it likely needed to be.

Why managing the cloud is hard

Again, it’s certainly true that the cloud has simplified computing in some respects. It has allowed most companies to say goodbye to physical infrastructure management. It has also placed sophisticated tools and services, such as Managed Kubernetes cloud-based big data environments and services, in the hands of IT organizations that would struggle to implement these technologies on-premises due to staffing or skill constraints.

But in other ways, the cloud has added many difficulties to the lives of IT professionals:

  • Other tools to master: Instead of only having to master server administration or learn the ins and outs of Linux CLI tools, today’s IT professionals must also master various vendor-specific cloud computing tools and services.
  • New tool types: The cloud has introduced (or spread) some categories of tools that would not exist — and therefore should not be managed — in on-premises environments. Before the cloud, few IT teams had to worry about writing IAM policies, for example, or figure out how to connect cloud-based remote workloads to a VPN.
  • More complex budgets: The cloud has enabled companies to move to an OpEx model for infrastructure needs. But it also made it much more difficult, in many cases, to predict costs reliably, due to the Byzantine pricing schedule that cloud service providers impose on users.
  • More options: Cloud computing gives IT teams a much wider range of options when it comes to how and where they will host workloads. But that also means they have to spend more time evaluating and validating different approaches. In an on-premises world, there was a limited selection of ways to do things and less time spent trying to optimize strategies.
  • Limited visibility: In some cases, the amount of visibility and control IT teams have over cloud workloads is limited. Many cloud services only expose certain types of metrics and logs, for example, and almost never allow customers to see what’s happening in the underlying infrastructure. This means that IT teams have less information to operate with, even if they are expected to maintain the same (or better) levels of performance and availability they had in the days when on-prem reigned supreme.

How to simplify cloud computing

Indeed, the complexity of the cloud stems significantly from the flexibility and power offered by cloud computing. complexity it’s the price IT teams pay to leverage the cloud.

That said, the cloud probably wasn’t meant to end up being this hard to manage. And it shouldn’t stay that way. Here are some ways cloud computing can be simplified from the perspective of engineers managing cloud workloads.

Standardization across clouds

For one thing, cloud service providers could do a better job of standardizing the way their services are configured. All major clouds offer the same set of core services, such as virtual machine hosting, object storage, and IAM. However, the configuration tools and policy frameworks used by each cloud are different enough that it is impossible for an engineer who has mastered one cloud to administer another cloud with equal proficiency.

This problem would be solved if cloud vendors agreed on some form of core standard. They shouldn’t be offering the same exact services; this would obviously not be commercially advantageous. But they could do things like standardize how IAM policies are written, which would greatly reduce the complexity of cloud administration.

Easier pricing schedule

Simplifying pricing schedules is another way public clouds could make life much easier for IT teams. Instead of looking at a complex set of variables when calculating cloud service costs, clouds could do something like offer tiered pricing options, where customers would pay a consistent and predictable price for fixed levels of consumption. In other words, they would get pre-set levels of runtimes, outbound traffic, API calls, etc., and their workloads could consume up to the pre-set levels at a pre-set price.

To be sure, tiered pricing doesn’t make sense for all cloud services, and some customers benefit from being able to pay based on exactly what they use. But offering simpler pricing terms at least as an option would solve the cloud computing pricing puzzle for many customers.

custom metrics

It would be unreasonable (not to mention highly insecure) to expect cloud service providers to give customers full access to the underlying cloud infrastructure. But vendors could at least provide ways for customers to define custom metrics or pull data lower down the hosting stack, within limits.

For example, instead of allowing customers to collect only the metrics that a cloud chooses to expose for their VM hosting service, the cloud could allow them to eBPF programs on the server hosting the virtual machines to collect low-level data through the host kernel. This would open up a whole new set of possibilities for monitoring and observability because IT engineers would not be limited to the metrics provided by the cloud service and the data available within each VM instance. Instead, they could see what the host hypervisor and kernel see.

Doing this securely (without allowing customers to collect data on other customers’ workloads) would be no mean feat from an engineering standpoint. But if anyone has the development resources to build this kind of solution, it’s cloud vendors like Amazon and Microsoft.

Prefer open source tools

Part of the reason why learning to administer cloud services is difficult is that cloud service providers have a habit of building their own administration tools, even when good open source alternatives are available.

For example, most managed cloud-based Kubernetes services come with various vendor-specific CLI tools, such as eksctl and gkectl. These tools are likely unnecessary because vendors may instead choose to use open source Kubernetes tools, such as kubectl, for this purpose. They may need to add some proprietary extensions to the tools, but the core tools may be open source.

Bottom line: The cloud is great, but it could be easier

To be clear, I’m by no means suggesting that IT teams should move away from the cloud or that cloud vendors deliberately make cloud services harder to manage than they need to be. Instead, the problem is that cloud services and management tools have evolved in a way that has made cloud administration more complicated than it needs to be.

The good news is that there are workable ways to reduce (if not completely solve) the challenge of cloud complexity. Most of them require effort from cloud providers, but there’s no reason they can’t be managed.

About the author

Christopher Tozzi is a technology analyst with experience in cloud computing, application development, open source software, virtualization, containers and more. He also teaches at a large university in the Albany, New York area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.

Leave a Comment

%d bloggers like this: