Should I upgrade the server or add another one?

When you think about scaling your architecture in a Vertical or Horizontal way (see my post Horizontal and vertical scalability), maybe you could find yourself wondering what the heck you should do. I’ll try to give you some scenarios where you should opt for one or another.

  1. So, you would need to upgrade your server, or even buy a bigger one (do a Vertical scaling) when:
    • You have some processing that can’t be splitted in more than one machine, or can’t be parallelized like:
      • Images rendering
      • Legacy batch processing
      • Transactions
      • Any other big process that is like a “atom”, can’t be divided (well… actually an atom can, but…)
    • You realized that your performance issues are just a lack of:
      • Memory
      • CPU
      • Storage
      • Networking
      • etc
  2. Then, you would need to add a new server to your architecture (do a Horizontal scaling) when:
    • You already has a cluster up and running but the servers are all working close to the limit:
      • Free tip: don’t ever, EVER, let this happening. If your cluster is working close to the limit and one of the servers fails, guess what? Yes, all the others will fail right after like a domino.
    • Your cluster is ok but you are foreseeing a growth in its load;
    • You have many things running in one server and they can easily (or not) be distributed like:
      • Services that are not related: database, e-mail server, applications, etc
      • The layers of your application (if it was right designed for it):
        • Web layer
        • Business layer
        • Data layer
        • Integration layer
        • Whatever layer
    • You already use micro services and one or more services need to be clustered or load balanced.

Of course, these are only some examples! If you know some others feel free to tell me at the comments bellow.

Advertisements

Author: Elder Moraes

My name is Elder Moraes and I am Brazilian. I am passionate for programming languages, specially Java. I've been working on IT market since 1999 and learned a lot of stuff (and maybe some tech things). I am also a husband, father, musician and an addicted reader.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s