Skip to main content

You don’t need cloud

A recent survey by Flexera found that businesses waste an estimated 30% of their cloud spend on unused or unnecessary services. For small businesses with tight margins, this isn't just inefficient—it's potentially devastating. While tech giants promote cloud solutions as essential for every modern business, the reality for most small operations is quite different.

Cloud is flexible, not cheap.

Although you can build cost-effective solutions on a cloud platform, you have to be purposeful about this and design your solution specifically for it.

The cost predictability problem

One of the most frustrating aspects of cloud services is their variable pricing models. While providers advertise low entry prices, costs can quickly spiral as your usage increases:

  • Pay-per-use pricing makes monthly bills unpredictable
  • Resource provisioning often requires overestimation to prevent outages
  • Hidden costs for data transfer, API calls, and storage can shock you at month's end

With traditional hosting or on-premises solutions, you generally pay a fixed monthly or annual fee. Your hardware costs are upfront and depreciate over time rather than being a perpetual expense. This predictability is invaluable for small business budgeting.

John O'Hara explains in one of his talks that the cloud pushes you to a consumption-based model. Although this is good news (at least for your cloud bill) when you have few or no customers, it can become problematic when your costs are directly related to your cloud consumption.

What many small businesses also fail to factor in is the specialized talent required to properly manage cloud infrastructure:

  • Cloud architects command salaries 20-30% higher than traditional IT staff
  • Training existing staff requires significant time and financial investment
  • Cloud certification programs cost thousands of dollars per employee
  • Cloud environments require constant monitoring and optimization to control costs

Ask yourself:

Are your profits going to your company or your cloud provider and the specialized staff needed to manage it?

The scale mismatch

Cloud platforms like AWS, Azure, and Google Cloud are designed for massive scalability. They're built to handle millions of users, petabytes of data, and traffic spikes that would crash most traditional servers. But let's be honest about your business needs:

  • Most small businesses serve local or niche markets with predictable user bases
  • Your customer data likely measures in gigabytes, not terabytes or petabytes
  • Your traffic patterns are relatively consistent and foreseeable

When cloud providers tout their ability to "scale infinitely," ask yourself: do I really need to scale infinitely? If your business serves a few hundred or even a few thousand customers, traditional hosting or on-premises solutions can handle that load without breaking a sweat.

Gregor Hophe describes this in the 'first law of enterprise IT':

No, you're not Google, Meta, or Temu.

The complexity burden

Cloud platforms offer hundreds of services and configurations. For tech giants with dedicated DevOps teams, this flexibility is powerful. For a small business owner or solo IT person, it's overwhelming:

  • Configuration requires specialized knowledge and training
  • Proper security setup is complex and mistakes can be costly
  • Ongoing maintenance demands constant attention and updates

Simpler solutions like traditional hosting packages or local servers with standard configurations require far less technical expertise to manage effectively.

The right tool for the right job

Before making cloud decisions, consider these key questions:

  1. Predictability vs. Efficiency: Is cost predictability more important than potential cost efficiency?
  2. Growth Pattern: Is your business steadily growing or subject to unpredictable spikes?
  3. Technical Resources: Do you have cloud expertise in-house, or would you need to hire or train?
  4. Data Volume: How much data do you actually process and store?
  5. Compliance Requirements: Do you have specific regulatory requirements that affect hosting decisions?

Not everything has to be all-or-nothing. Consider these hybrid approaches:

  • Email and Basic Productivity: Cloud-based Microsoft 365 or Google Workspace
  • Critical Backups: Cloud storage for disaster recovery
  • Core Business Applications: On-premises servers or traditional hosting
  • Customer Data: Local storage with strong security measures

This balanced approach gives you predictable costs for your main operations while leveraging cloud flexibility only where it makes financial sense.

So no cloud then?

I'm not anti-cloud; in fact, quite the contrary. But design for the scale you need and ask yourself what's more important for your business: cost predictability or cost efficiency? As every architect knows, there is no right or wrong answer; everything is a tradeoff.

Conclusion

While cloud services certainly have their place, they're not the universal solution that cloud vendors would have you believe. For many small businesses, the predictable costs and appropriate scale of traditional IT solutions can be a more sensible choice.

Before jumping on the cloud bandwagon, carefully assess your actual needs, technical capabilities, and budget constraints. You might find that keeping your feet on solid ground makes more business sense than having your head in the clouds.

 

More information

Uncomplex: Modern Hardware for Better Software – InfoQ

Architecture is a game of constraint satisfaction. - The Architect Elevator

Cloud computing Stats: Flexera 2023 State of the Cloud Report

Popular posts from this blog

Podman– Command execution failed with exit code 125

After updating WSL on one of the developer machines, Podman failed to work. When we took a look through Podman Desktop, we noticed that Podman had stopped running and returned the following error message: Error: Command execution failed with exit code 125 Here are the steps we tried to fix the issue: We started by running podman info to get some extra details on what could be wrong: >podman info OS: windows/amd64 provider: wsl version: 5.3.1 Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM Error: unable to connect to Podman socket: failed to connect: dial tcp 127.0.0.1:2655: connectex: No connection could be made because the target machine actively refused it. That makes sense as the podman VM was not running. Let’s check the VM: >podman machine list NAME         ...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.

VS Code Planning mode

After the introduction of Plan mode in Visual Studio , it now also found its way into VS Code. Planning mode, or as I like to call it 'Hannibal mode', extends GitHub Copilot's Agent Mode capabilities to handle larger, multi-step coding tasks with a structured approach. Instead of jumping straight into code generation, Planning mode creates a detailed execution plan. If you want more details, have a look at my previous post . Putting plan mode into action VS Code takes a different approach compared to Visual Studio when using plan mode. Instead of a configuration setting that you can activate but have limited control over, planning is available as a separate chat mode/agent: I like this approach better than how Visual Studio does it as you have explicit control when plan mode is activated. Instead of immediately diving into execution, the plan agent creates a plan and asks some follow up questions: You can further edit the plan by clicking on ‘Open in Editor’: ...