Scale up vs Scale out. First decision to make before moving to cloud
Before moving to cloud, First decision to make is whether Scale up the hardware or Scale out with multiple systems. Both has its pros and cons.
Scale up (Vertical scaling) is achieved by having bigger hardware say 64 bit system with huge RAM. Disk storage may not be the issue as terabyte of SAN storage drive could be mounted. RAM and CPU should be sufficient to take care of your load.
As years move and your business grows, you may hit the upper circuit. Your system cannot manage the growing load then in that situation , you may need to buy a bigger hardware and dump the current system. Clearly this seems to be costly affair but it is easy to manage and administer.
Scale out (Horizontal scaling) is achieved by adding multiple small systems. Load is shared across systems. This certainly helps as the application will get more CPU and RAM then the scale out option. When the business grows add one more system. This option will help to grow faster with less cost.
But the application should be capable enough to share the load. If it is multi user application, split User by name; say name starts with A - H will be processed by one system and I - M in other and so on. Clearly Application should have logic to share the load and retrieve the correct information from corresponding server and storage location. There is a good development effort involved.
There are also some alternatives available. Using hardware / software load balancer, Users request could be geographically processed in different systems. Using Hadoop and other distributed file system also helps to achieve scalability.
Horizontal scaling may not be so cheaper. If you consider hardware cost alone then it is but there is rack space required, power consumption, etc. If commercial software is used then more license should be purchased as more systems are added. Backing up data would be tough job for the Administrator. Scale out will have higher management cost than scale up.
Conclusion: Think before taking a decision. Don't take decision based on the current load / requirements. At least plan for 2 - 3 years. How much your application / business will grow and plan for the future.
See also: Open source products tagged cloud.
comments powered by Disqus
Lucene is most powerful and widely used Search engine. Here is the list of 7 search engines which is built on top of Lucene. You could imagine how powerful they are.
Solr and Elastic Search are built on top of Lucene. Both are open source and both have extra features which makes programmer life easy. This article explains the difference and the best situation to choose between them.
You may require GBs of data to do performance or load testing. How your app behaves when there is loads of data. You need to know the capacity of your application. This is the frequently asked question from the sales team "The customer is having 100GB of data and he wants to know whether our product will handle this? If so how much RAM / Disk storage required?". This article has pointers to the large data corpus.
Enterprise search software should be capable to search the data available in the entire organization or personnel desktop. The data could be in File system, Web or in Database. It should search contents of Emails, file formats like doc, xls, ppt, pdf and lot more. There are many commercial products available but LucidWorks and SearchBlox are best and free.
SeoToaster is a free Open Source CMS & Ecommerce solution to build, manage and market websites optimized for for top search engine performance. As the name implies, Seo Toaster is to date the only content management system (CMS) to truly integrate SEO execution and web marketing automation technology in full compliance with the search engines industry’s best practices.
MongoDB is the most exciting SQL-free database currently available in the market. The new kid on the block, called MongoDB is a scalable, high-performance, open source, schema free and document oriented database that focuses on the ideas of NoSQL Approach. Written in C++, it has taken rapid strides since its emergence into the public sphere as a popular way to build your database applications.
Cloud is nothing but more than one system or application distributed across the network, across the globe. It may have couple of application servers, database server, shared data storage, backup server and lot more. The resources in the distributed environment must have information about each other so that they could co-ordinate and share without any issues. ZooKeeper helps to do that.
F# is a functional programming language for the .NET Framework. It combines the succinct, expressive and compositional style of functional programming with the runtime, libraries, interoperability, and object model of .NET. Microsoft recently released its source code under Apache License.
Lucene and Solr are most popular and widely used search engine. It indexes the content and delivers the search result faster. It has all capabilities of NoSQL database. This article describes about its pros and cons.
What if you could reliably run PHP without Nginx or Apache, but also without relying on its internal server? What if you could do async operations in PHP with true multi threading, fully taking advantage of multi core processors without hacks or a jungle of callbacks? What if you had drag and drop installation support for your PHAR packaged web apps in an environment identical to its production counterpart? Welcome to appserver.io – the worlds first open source application server for PHP.