Ain’t no magic in that cloud...

Ain’t no magic in that cloud...

One of the cost saving measures that is common in a traditional (non-cloud) hosting environment (e.g. on-prem) is to co-locate applications and services on larger compute nodes. This is driven by the basic resource constraints inherent in using physical infrastructure.

It’s often asked whether this same approach can or should be taken during a cloud migration, for the same reasons of cost-out.

Yes, even in cloud, you can run multiple applications on the same host. In fact, the same instructions apply whether doing this on-premise or in cloud: https://www.google.com/search?q=how+to+make+spaghetti

Shared compute nodes have always and always will create nothing but problems. In fact, it’s one of the main problems that virtualization, cloud and containers have been trying to solve for many years.

Ultimately, with the right amount of automation, it is far cheaper and more effective to manage many smaller and more specialized compute nodes than it is to pack many processes into a few large nodes.

Unfortunately, there’s no magic fix! If you want to save costs in cloud, don't look at infrastructure, look at your applications! You’re just not going to see much cost savings by running your same old applications on a brand-spanking new cloud.

The key is to refactor (or rewrite) your applications to take advantage of the unique capabilities that the cloud provides. Well designed and implemented applications that are highly modular (e.g. microservices) can scale very tightly to demand. This keeps costs to a minimum by consuming just enough resource as required at the moment.

Likewise with databases. Yes, you can run a small number of database nodes that each host many schemas, but then you lose much of the ability to easily automate your infrastructure. Well designed and implemented applications utilize many different data persistence technologies (relational, NoSQL, object storage, ephemeral, etc) that closely fit specific requirements. This keeps costs to a minimum because data persistence is optimized to specific requirements.

Running the same old apps the same old way in cloud will probably be more expensive than running them in the same old data centers.

With cloud you’re not just paying for compute, network and storage. You’re also paying for the privilege of the API that you can use to drive your infrastructure, the high level services that are built on top of the low level IaaS layer and the high availability and flexibility that a proper cloud provides.

You don’t have to use all the special things that make a cloud a cloud, but if you don’t, why did you move anything to the cloud?

To view or add a comment, sign in

More articles by Bernie Durfee

  • Design as Code

    Software Engineering has come a long way. From the primordial days of "hacking it until it works", through the dark…

  • Software Development Principles

    Whenever I embark on a project, I always like to define a set of fundamental guiding principles for future reference…

    3 Comments
  • Don't wait... iterate!

    Two talented architects, Amanda and Sarah, are each handed a sheet of paper and a pen. Their task is to design a…

    1 Comment
  • The Cost of Velocity

    I was sitting in a status meeting for one of our development teams who are working on a new project. As often happens…

    28 Comments
  • RPA: Really Primitive Automation

    Sorry folks, I need to kick RPA a little before it becomes the next big thing. I’ve been hearing this acronym bandied…

    3 Comments
  • Better DX + Better UX = Better Software

    The experience of the developers (and architect, designers, etc) that are creating a software product (aka the…

  • Cannonballs, Feathers, Perception and Intuition

    If you drop a cannonball and a feather off a poorly built tower, which one hits the ground first? No matter how many…

    1 Comment
  • Defining Cloud

    When is it a cloud and when is it something else? The great thing about answering this question is that, there is no…

  • Better Living Through Containers

    I’ve officially been containerized. It took me a while, but now I get it.

  • Never trust a client, not even your own!

    This article is about a principle that ought to be followed in every system, everywhere, all the time. Yet, I see time…

Others also viewed

Explore content categories