Cloud Computing is becoming a mainstream technology with almost all major industry heavyweights backing it. As details emerge and the platforms and technologies are refined, many software vendors are evaluating the move to cloud. Being a fairly new and emerging technology, there is a need to evaluate the value of migration to cloud at minimal cost.
In this post, we will look at two pieces of software that a vendor can move to the cloud without a negative impact, and in fact benefiting from inherent strengths of the cloud platforms. These are meaningful and progressive steps towards the cloud that have a very good chance of being in the mainstream cloud when the air clears around it.
Identify your Whole Product pieces and move them to a cloud-enabled data center
Every product has bells and whistles that create a complete experience for the users. In product management parlance, this is called the Whole Product or Augmented Product, as opposed to just the software. Following are some examples of whole product:
- All the rich content around a trip planning website such as city guides, attractions and images
- User Generated Content (UGC): The traditional definition of Whole Product included only the stuff that product managers and companies included to complement the user experience of their product. For example, the iTunes Store completed the iPod user experience. In the Web 2.0 realm, user generated content is one such item. Moving out the augmented product pieces to the cloud is a smart idea for two reasons. Firstly, it is usually safe to say that the augmented pieces are an essential, but non-core part of your product that you would want to manage easily and efficiently without losing your focus on the core. Secondly, UGC and other content are a big part of user experience these days, and are inherently very elastic and unpredictable in growth. Cloud computing will enable you to manage and scale them very effectively.
Move data with complex structural requirements to the cloud
Traditional way of looking at data has been in a relational model or maybe a hierarchical model. Any other complex view of data was modeled in these forms and the resulting performance hit was handled by de-normalization and other techniques. However, with the explosion of data that we have seen in the last few years, these models seem to be breaking at the seams.
So, the erstwhile taxonomy of entity, relationships, joins etc. is being fast replaced by priorities like replication, redundancy, partitioning and folksonomy. As you can imagine, these requirements actually end up requiring a whole lot of computing power and scalability. Enter cloud computing. All cloud computing platforms sport multiple data modeling architectures. Amazon uses SimpleDB, Google has BigTable and Microsoft has SQL Data Services, which supports Queue, (Non-relational) Tables and Blobs. Any part of your application that you think has been force-fitted into an RDBMS structure is best moved to this newer paradigm of data management. Some examples of such complex information are:
- Tagging: When I first started using GMail, I was blown away by their email “Labeling” feature. Labels allow you to “tag” your email by different names. Labeling is clearly superior to using folders, since if you tag an email as Work, Project and Web 2.0, you have not one, but three different ways of reaching the email. So, few years of GMail use later, I struggle today with the idea of having “folders” in my email client. Tagging or labeling of information is just not practically suited for RDBMS or hierarchical databases. So, if you have or plan to use tagging or folksonomy in your product, you would do well to move it to the cloud.
- Data-centric applications that have multiple interconnections between nodes: This is quite self-explanatory, but there are many data intensive applications out there that can benefit from a rethink in the way their data is modeled. This harks back to the force-fitting I alluded to earlier, and you would be clearly making the right move by moving it to the cloud.
Seen from the perspective of data modeling then, cloud computing becomes a piece of an extremely important puzzle. You need scalability in using some of these newer data models, and cloud computing is your best bet to be able to do that properly.