Translation


by Transposh

Posts Tagged ‘Web services’

Goodbye Shared Hosting, Welcome to the Cloud

Thursday, October 15th, 2009
Cloud Computing

Back in 2007 I got a shared hosting account from Hostmonster which claimed to offer me “300GB of space” which was later upgraded to “Unlimited“, “3000GB monthly bandwidth” which was later upgraded to “Unlimited“, “Unlimited MySQL databases“,  “Unlimited mails“, etc. all for a meager amount of 5.95 USD/month. I felt as if I had all the power in the web but soon realized all the “Unlimiteds” were awfully limited. Although I had a shell access for the account, the best I could do with it was copy or move files. I couldn’t install anything onto it or modify anything I needed. What good was all the unlimited for when you had small limits on processor timings and memory usage. Especially when hundreds of shared hosted sites are hosted on the same server its only a matter of time when your site becomes listed as a malware website with Google and co just because some unscrupulous user setup a malware website on the same server as yours. Then I felt the need of having a dedicated server. Now we run Ajatus on a dedicated server which we got for a steal of a deal from Serverminds.

But, now times have changed, for a blogger of today what is the best option to host his websites along with the freedom of trying out his hands on the various components of his server? It can’t be shared hosting, and dedicated web servers are a tad bit too expensive for him. VPS (Virtual Private Servers) is another option where the hosting provider gives the user slices on servers shared over a visualization layer like that of XEN or VMWare. But, VPS are also not very recommended if you have a hunch that your site might need scaling because of a rise in traffic, as it limits the users scope for scaling without moving entire data and setup and their price are also not as reasonable. So what other option are we left with, Cloud Servers, for most of us it might sound something which would be extremely expensive and an enterprise solution. But the fact is its not at all expensive when it comes for a starting user with minimalistic requirements, provided that you choose the right hosting provider. I will provide a small price comparison of the most popular Cloud Server hosts later in this post. So, what is Cloud computing all about? Cloud Computing can be considered as an extended VPS which can be seamlessly scaled dynamically over the Internet. Amazon is one of the largest providers of Cloud computing infrastructures. But except for Amazon’s Simple Storage Service (S3) all others seemed pretty much expensive to me especially the Elastic Compute Cloud (EC2). So, what can you do with a cloud server? Well on a cloud server you can do everything that you can do on a dedicated server with an added option of dynamic scalability. You can host your blogs, experiment with all sorts of fancy technologies and once you feel you are going out of resources ask your service provider to expand your Cloud Server in-terms of memory, storage or processor cycle limits. Having told all this lets have  look at the pricing for a minimalistic Cloud Server configuration provided by some of the Industry leaders:

Amazon EC2: For the smallest Cloud Server they charge 0.10 USD/hour that makes it 0.1 x 24 x 30 = 72 USD/month. For the same price you could easily rent a dual Opteron Dedicated Server with 2GB memory for your self.

Aptana Cloud: Their pricing for 256 MB memory and 5 GB storage is  20 USD/month. This seems a bit more reasonable. Actually this would also be the price of an equivalent VPS.

RackspaceCloud or Mosso CloudFS: Their pricing seemed the best to me. For 256 MB memory and 10 GB storage they charge on 1.5 cents/hour or 10.95USD/month. Now that is extremely low. This is just a little bit more than what most of the shared hosting provider charge for their pseudo “Unlimited” hosting. What more whenever your site seems to soar up in traffic just dynamically add another Cloud Server and share your load.

GoGrid Cloud Hosting: Their minimum offering is half a Gig of Memory and 30 GB of storage at a price of 0.095 USD/hour = 68.4 USD/month. This also seems high for a beginer.

There are other Cloud Computing service providers also, but most of their offerings target the enterprise more than to the  personal usage. One such example is RightScale, although they provide Developer free trials their pricing is simply too expensive for a beginner.

The Future of Scalable Databases

Thursday, October 8th, 2009

For most of us database is synonymous to tables, tuples, SQL, RDBMS, or normalization, but is that what databases actually mean or is it beyond just the relational data-model? Relational data-model although the most popular and the most accepted data-model is not apt for all problems. And how far can we go by mapping all our problems on to the relational data-model. After certain table size eventually the database starts slowing down so we move towards replications via multiple configurations which obviously increases the operating expenses. Now when this is not enough we employ some expensive sys-admins to configure sharding for our database for which we require still more resources or pay a fortune worth of money to the “Big Guys” like Oracle and Microsoft to tweak our databases for performance. But is this the future of databases? I guess not. Let us have a look at what other database options which are not based on the RDM and are free from SQL:

  • MongoDB: It is a very high performance open source, schema-free document-oriented database.It provides a JSON like data-store mechanism which can free the software architects from the limitations of the RDBMS. It also supports full indexing including inner objects and arrays, dynamic queries, query profiling, efficient storage of binary data including blob data, replication and fail-over, auto-sharding for extreme loads and we thought MySQL was ultimate for databases?
  • CouchDB: It is a free and open source document-oriented database written in the Erlang programming language which is a functional language. It is well suited for local replications and vertical scaling. It again has a JSON data-store as documents which need not share a schema, but retain query abilities via views. Views are a combination of aggregate functions and filters and are computed in parallel, much like MapReduce. With bindings for many languages this is sure to become one of the most popular databases in the future.
  • Mnesia: It is a distributed database system written in Erlang. The data-store of Mnesia can be considered Relational but isn’t what someone familiar with SQL might expect. A database contains tables. Relationships between them are modeled as other tables. A key feature of Mnesia’s is tables can be reconfigured within a schema and relocated between nodes, not only while the database is still running but even while write operations are still going on which make both the read and write operations extremely fast and fault tolerant.
  • Cassandra: It is an open-source distributed database management system with a five dimensional Key value hash. It was developed by facebook and open sourced in July 2008. It provides a structured key-value store with eventual consistency. The major components of a Cassandra data-model are Columns, SuperColumns, ColumnFamily and KeySpace. It is considered as a Hybrid of the BigTable and Amazon Dynamo Key Value store. It is currently used by facebook, twitter and Digg.
  • HyperTable: It is an open-source database based on Google’s BigTable. It used HDFS (Hadoop Distributed File System) as a storage file system and is distributed.
  • Amazon Dynamo Key-Value Store: It is a proprietary high availability Key-Value data-store which has properties of both Databases and distributed hash tables. It powers parts of Amazon Web services.

So seeing these I am sure Relational Databases are soon to loose their share of importance when concerns like high scalability of databases arise.