At present, scaling usually means one of two options: vertical scaling or horizontal scaling. Vertical scaling refers to increasing the capacity of servers: faster CPUs, better architectures, more cores, more memory, etc. Horizontal scaling means simply increasing the number of servers. As the popularity of cloud computing grows and the virtualization spreads everywhere, the importance of the server’s processing power is constantly decreasing, so horizontal scaling is the most cost-effective method of scaling websites according to their needs.
Ukrainian experts provide a world-class website testing service to improve your ecommerce resource’s ability to drive any commercial goal! We are known to experiment with variations on web pages of a given site to determine which alterations or modifications will ultimately lead to more conversions. Call us, if you are looking for truly competent persons!
During development of sites for the Node, you should always consider the possibility of horizontal scaling. Even if the application is very small (perhaps it’s just an application on the internal network of an organization that has always a very limited range of users) and, presumably, will never need to be scaled, it’s a great habit to develop. In the end, perhaps your next Node project will be a new Twitter and scaling will be vital. Fortunately, Node provides excellent support for horizontal scaling, and writing the application using this option is painless.
The most important thing to remember when creating a site that needs to be scaled horizontally is the storage of data. If you’ve get used to relying on this for file storage, stop right now! It will drive you crazy. Anyone who faces this problem for the first time feels frustrated at once. One of the customers run an Internet contest, while a web application was developed to notify the first 50 winners that they would receive a prize.
With this particular customer it appeared impossible to safely use the database due to certain corporate IT-constraints, so almost all the saving was done by recording unstructured files. As soon as the file recorded 50 winners, no one else was notified that he had won. The problem was balancing the load on the server: half of the requests were processed by one server, half by another. One server notified 50 people that they won … and the second server did the same. Fortunately, the prizes were small (woolen blankets), and not some iPad, so the customer agreed to additional spending and handed in 100 prizes instead of 50 (a certain man offered to pay for 50 extra blankets out of his own pocket, since it was his fault, but they nobly refused to take him at the word). The moral of this story is that if you do not have a file system available for all your servers, do not rely on the local file system for storing data.