Heavy Metal Bearer: Bare Metals

In the beginning God created the heavens and the earth. And God Said “let there be punch cards”. The writings of the greatest software architectures alive (Uncle Bob, Martin Fowler, Gergor Hohpe and others) are also history books. That’s what I love about them. History makes you really appreciate and to better understand where and why you are here. Now that I’m older than younger, I wish to do the same to you, to better understand what cloud computing actually is and through it, what cloud infrastructure today is.

Compute on Demand: Virtual Servers

Who is going to backup and replace those hard drives? “Don’t care, not my problem!”. The hardware, the bare metals are no longer your concern. It is now your Cloud provider’s responsibility to maintain it for you. You’ve outsourced it to someone who will do it better than you ever will, that is higher resiliency. That is what is called IaaS – Infrastructure as a Service.

The Bin Packer: Container Orchestration

Containers are so amazing but do they also present new challenges in the Ops world.

Let’s continue with the example from the previous article, two applications and two database instances. For simplicity and generalisation, let’s presume that all the applications in the world require exactly 1 CPU and 1GB of RAM and also all the servers in the world have only 4 CPUs and 4GB of RAM.… Continue Reading ->

Scaling Strategies: Infrastructure or Applicative scaling

For the last few years I’ve taken part in a philosophical debate on how to better handle concurrency and throughput. I would say three are three main approaches to this:

  1. Programmatically in the application layer:
    • Multi threaded programming
    • Low-level languages over high level ones (C++ over Java for example)
    • Code/OS optimizations
    • Garbage collection tuning
    • (many other kinds)
  2. Scale your infrastructure layer:
    • Launch larger servers
    • Scale with more instances (servers, containers or functions)
  3. Combinations of the above two

I see two main reasons that tilts towards infrastructure scaling:

  • The costs of infrastructure and infrastructure maintenance are constantly reduced while personnel costs are constantly on the rise
  • Doing it once on the infrastructure layter, instead of customizing each application individually.
Continue Reading ->