Web Archive

Scale out vs Scale up

There is no doubt that cloud hosting is taking its place and it offers some advantages for managing your deployments but, is it the right choice to take?

This dissertation comes from the recent new that StackOverflow uses a scale-up methodology to handle its services. And that’s a quite strange thing to see nowadays. Every single web service tends to use Scale-out and that’s the same for our company services, OpenHost, where we have been migrating from metal-servers to the cloud “panacea”.

Our main aim to move to cloud servers was to reduce our costs when our infrastructure is not having a lot of load, which always use to be at nights, and to quickly replace malfunctioning servers with new servers by provisioning them with puppet.

Just to clarify the terms, below I will describe both:

  • Scale-up: it is as simple as adding more computational power and RAM to your server, by buying a more expensive and robust server.
  • Scale-out: Refers to adding more servers with less processors and RAM.

There are common pros and cons for scale-up and scale-out which are:

  • Scale-up: they are less challenging to implement, and given that they can use all the power of the “metal” you will retrieve far better performance from the same machine in cloud. As a counterpart, using metal tends to be a risky business due to greater risk of hardware failure that causes bigger outages (yes we have learned this by heart).
  • Scale-out: as the opposite solution, using cloud based solutions tends to be easier to run fault-tolerance and easy to upgrade, but it will have a bigger footprint which raises some doubts about scale-up being harder to implement.

Scale out is usually cheaper overall and can literally scale theoretically infinitely (although we know that there are usually limits imposed by software or the environment’s infrastructure).

Our experience says that you will need more servers due to the fact that those VMs will have far less performance against metal-ones, but they have helped us to autoscale when our infrastructure had a huge demand. And we have mitigated a lot of outages caused by server failures.

A good resource to read is the Scalability Rules: 50 Principles for Scaling Web Sites which explains in a good way how to handle with this problem. But again, it’s quite weird nowadays that services like StackOverflow uses the scale-up technique, but they have probed that this have been worked better than scale-out for them.Take a look at how the StackOverflow was back in January 2014.

Thoughts about our privacy in social networks

Recently I had an interesting conversation in G+ about social network privacy policies. I supported the view that their privacy policies are mere posturing. The moment you upload content to any social network that content is no longer belong to you just because they can be analyzed and schematized by incredible software that tracks that vast flow of information.

Lets analyze some of them:

By clicking the “sing up” button in any of the multiple available social networks, the company that is behind, always retains a clause that they can use all your data uploaded to use it  “internally” or by its affiliates. Among those affiliates we always can find in the web rumors that one of the intelligence agencies in the world (CIA) could be one of their investors in the dark.

Some valuable ‘User Interface Patterns’ resources

Last week I’ve been investigating about Web UI Patterns and anything concerning Social Media Patterns, mainly focused on building a consistent UI Pattern Toolkit that I’ll release as soon it will be ready.

In this searching I found some valuable resources with incredible useful UI Patterns solutions, with some discussions around them:

  • The first resource is about patterns that applies to social media sites, there you can find a lot of ideas for implementing common interface problems in a homogeneous way. This decrease the “User first expectation” a lot by trying to apply the same solution across every site: Here’s the link: http://www.socialdesignpatterns.com/
  • The second, and last, resource is focused directly on UI Patterns for the web. Here http://ui-patterns.com/ I found a lot of approaches that other sites have applied to it’s problems: drop-down menus, Calendar pickers, Activity streams, In-place editors, etc. all of them with screenshots and reviews.

Additionally, you can find a lot of books regarding this subject:

Amazon.comUX Pileupdating my skills

Certainly, some valuable UI Patterns solutions all of us must take in place. I hope you enjoy all of them and if you have any suggestion or tip please write a comment bellow.

Speed up Google Analytics js by caching it locally

The big problem of use Google Analytics is that you have to get its javascript to get to work statistics. For me this causes that my sites takes a lot of time to end the load. For this reason I always recommend put the GAnalytics code at the bottom of the page, but for me this is not enought.

One solution to this is to cache the external javascript locally but what if the external javascript changes? Here I go to explain how to store GAnalytics javascript locally and peridiocally check that is the lastest version.

Optimizing MySQL databases

A huge used database reverberate on a more fragmented database even if you delete any large data. The data base admin should optimize and take care of this especially if dealing with a lot of varying characters (VARCHAR).

At this article I will explain how to opmimize MySQL databases with tools that mysql provides. I will separate on two cases:

  • Optimizing just one table
  • Optimizing all the tables on a database

The main disvantage is that you can only optimize MyISAM, InnoDB, and ARCHIVE tables.

Page 1 of 3