Google SPDY For a 2X Faster Web

November 12th, 2009 Murali No comments

Google is really obsessed with "Speed". Google’s browser Chrome is already the fastest browser in the world (2X the nearest competitor) and here is some news that will just blow your mind. The web could get 2X faster.

Today we’d like to share with the web community information about SPDY, pronounced "SPeeDY", an early-stage research project that is part of our effort to make the web faster. SPDY is at its core an application-layer protocol for transporting content over the web. It is designed specifically for minimizing latency through features such as multiplexed streams, request prioritization and HTTP header compression.

So far we have only tested SPDY in lab conditions. The initial results are very encouraging: when we download the top 25 websites over simulated home network connections, we see a significant improvement in performance – pages loaded up to 55% faster.

Source:Chromium Blog: A 2x Faster Web

How To Choose A Database For Your Next Application ?

November 7th, 2009 Murali No comments

Well, it depends.

Want to know what options are available and how to choose one for your own application, read this wonderful article by James Hamilton. Though this article does not include all possible options (particularly those on the cloud), but its a nice introduction to classify databases based on what you need.

Relational databases have become so ubiquitous that the term “database” is often treated as synonymous with relational databases like Oracle, SQL Server, MySQL, or DB2. However, the term preceded the invention and implementation of the relational model and non-relational data stores remain important today.

Relational databases are incredibly rich and able to support a very broad class of applications but with incredible breadth comes significant complexity. Many applications don’t need the rich programming model of relational systems and some applications are better serviced by lighter-weight, easier-to-administer, and easier-to-scale solutions. Both relational and non-relational structured storage systems are important and no single solution is appropriate for all applications.

Source: One Size Does Not Fit All by James Hamilton (b:Perspectives)

Good to know. But before you start researching for a perfect Database for your App ..

Keep this great suggestion from 37signals in mind. I am big fan of “Getting Real”. The team behind “Getting Real” @ 37Signals suggest that you don’t worry too much about Scalability aspects early in the design of your application, as you will have lots of time later on to figure out.

In the beginning, make building a solid core product your priority instead of obsessing over scalability and server farms.Create a great app and then worry about what to do once it’s wildly successful. Otherwise you may waste energy, time, and money fixating on something that never even happens.

Believe it or not, the bigger problem isn’t scaling, it’s getting to the point where you have to scale. Without the first problem you won’t have the second.

Source: Getting Real – Scale Later

Buzz In The Cloud : Cloud Computing Is The New Web2.0

November 7th, 2009 Murali No comments

These days, not a single day goes by without talking, hearing or reading something about Cloud Computing. It appears, the whole cloud (I mean the world; don’t blame me for overusing the word ‘cloud’, I just want to make a point) is totally excited about ‘Cloud’ suddenly.

In a way, Cloud Computing is the new web2.0, in terms of hype, buzz and activity all around. Every business has something to offer ‘on cloud’. Every consultant is busy selling strategies to cash in on the cloud. And every analyst is preparing a report on the cloud. Every developer is trying to equip to engineer applications on the cloud.

Simply put ..

What is really Cloud computing is all about? Why not look up the definition of Cloud Computing by going to the Encyclopedia on the cloud (??), Wikipedia.

The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network diagrams and is an abstraction of the underlying infrastructure it conceals. – Wikipedia

Cloud computing is an example of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. – Wikipedia

Though Cloud Computing could be everything for everybody (just like Web2.0), most stakeholders would agree to confine Cloud Computing in three forms.

Three Forms of Cloud Computing

Cloud Computing Stack.svg

1. Software-As-A-Service (SaaS)

Refers to Software Applications offered over the internet as a service. SalesForce.com is an excellent example and one of the most successful SaaS offerings. BaseCamp for Project Management, Google Apps are few other successful and well known SaaS offerings.

2. Infrastructure As A Service (IaaS)

Refers to Servers, Storage and Networks offered as a service over the internet.  Most Internet hosting providers fall in to this space. Amazon ECS, Rackspace, AT&T, Akamai are very good examples. They offer servers, databases, storage area networks, networking gear, content delivery networks as a service.

3. Platform As A Service (PaaS)

These providers offer Infrastructure as a Service with a limitation or leverage (depends on what you are looking for) that all applications must be built and run on top of their often proprietary platforms or technology stacks. PaaS inherently include IaaS. Google App Engine, Microsoft Azure, SalesForce Force.com are fine examples for this service.

SaaS and IaaS have been offered in the market for a while. Though there are lots of advances in the technicalities of managing them and lot more new players in the market, these services are not entirely NEW.

What is new in Cloud Computing is the third service, Platform-As-A-Service (PaaS). Not only Infrastructure to run your Business applications but a full platform to develop those applications. It is quite unlikely that these PaaS offerings (at least initially) will not provide a smoother migration for Enterprises to adopt Cloud Computing as this means re-developing most of their business applications.

Easier Adoption Path for Enterprises

For most enterprises, the only option that make sense at this point is IaaS. Instead of running their own data centers, applications can be moved to a public Cloud or a private cloud or managed cloud with little to no impacts. Cost of migrating to a Cloud will be quite insignificant and offer the best level of cost savings, while not forcing a vendor lock-in as applications run on generic platforms. This is the best option.

Or Enterprises can migrate to SaaS offerings, if there are comparable applications are available. For instance, instead of running your own CRM solution on premises, can migrate to SalesForce.com.  But it is a big question for how much generic application like SalesForce.com can offer unique capabilities for each organization, a primary reason why Enterprises developed their own software in the first place. Vendor + Application lock-in is implicit. All Employees and Customers need to be retrained in new sets of applications. Extensive customization is required.

The latest entry in to Cloud Computing, the PaaS is the most Unlikely path of migration of any Enterprise application to the cloud, as this needs re-architecture of their applications and Migration of application software as well  along with data migration. And this would be quite expensive and time consuming for any non-trivial, uncommon business application. Vendor + Platform lock-in is implicit.  Need to retrain Software Development groups and it could be quite extensive as the Platform could be significantly different from generic platform most software developers are comfortable with.

That’s my 2 cents on the Cloud. You can read a little more on the Wikipedia. Or anywhere on the Cloud (:-)).

Isn’t Cloud Computing Just Hardware-As-A-Service?

November 7th, 2009 Murali No comments

Cloud Computing is the new web2.0, in terms of hype and buzz all around. I hate to invent yet another Buzzword. But isn’t Cloud Computing just a Hardware-As-A-Service (HaaS)?

If you look at the definition on Wikipedia, that is what Cloud Computing is all about. Isn’t it?

Cloud computing is an example of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. – Wikipedia

If you agree in principle that Cloud Computing = HaaS, then there is nothing really NEW about it. It must be as old as the concept of renting a server or the first internet Hosting company. And, all internet (as well as in house applications) that we know of did scale as needed. They are all in principle dynamically scalable. Didn’t they?

Then why so much undue buzz about Cloud Computing?

Is it because now there are more players in the hosting market? Amazon, Microsoft, Google, Rackspace … etc.

Or is it because of the new Billing model of hosting services that charges based on actual usage rather than a fixed cost?

Categories: Cloud Computing Tags: ,

TechCrunch RoundTable : Whose Cloud Is It Anyway?

November 7th, 2009 Murali No comments

Cloud is many things to many people. It is a a data center in the sky, a platform for a new bread … and so on.  Watch this Round Table discussion by almost ALL of the Whos Who in the cloud.

Rackspace, Google, SalesForce, Amazon, Microsoft, Yahoo, Sun, Ning and FriendFeed.

image 

Will add more notes on the discussion shortly.