Showing posts with label IAAS. Show all posts
Showing posts with label IAAS. Show all posts

Friday, 28 January 2011

CaaS – Now what is that?

There is too much cloud these days. And still plenty more to come. What started as something called as Application Service Provider (ASP) way back during late 90s, has been transformed to different names with minor changes or additions to it. In the modern era, it is known to all of us as SaaS or S+S (as Microsoft would call it) or in more generic terms – Cloud computing. This doesn’t end here. The cloud strategy matures more and more as day progresses, and we see more variations and more versions of the cloud computing such as PaaS (Platform as a Service) and IaaS (Infrastructure as a Service),

In between all these, what does CaaS mean?

Well, to be honest this isn’t any jargon or buzzword or any standard term used in the Cloud computing arena. This is something coined by me to revive something which used to be once prevalent during the ASP days and the Dotcom boom days and it has tend to remain constant rather than seeing an exponential growth as compared to other cloud terminologies. I call it “Components as a Service”.

Now, before you jump up on me and thrash me for trying to teach you something you already know in a different form, I would like to declare here that this is NOT anything new that I intend to express. This is just an attempt to provide some idea to people thinking to make a new living out of cloud (may be thinking of building a product to be made available to customers as SaaS), that there are even thousands of opportunities to build what I term as CaaS i.e. Components as a Service. Not all software built for the could has to be SaaS. One could build generic parts or components that can be used by others who would build SaaS.

As I mentioned earlier, this isn’t anything new. Way back, in its original form, CaaS providers built many on-the-web “facilities” or “components” to be consumed by web sites. But during that era, the web applications were confined to only e-commerce or a portal in some form or the other. With the cloud becoming more and more a norm to deliver entire software solution on the web, the market for consumption of these components which would be used to build such SaaS applications grows exponentially. The target market for CaaS once that used to be only to Web sites and portals, now is the entire cloud in various forms like the SaaS, PaaS.

Component As A Service

A component as a service as the name suggests is nothing but a ready-made piece of a (web) “functionality” available for other web applications to consume thereby saving their time to build these themselves. One may argue that there is nothing new to this. A custom web control (like Graph or Chart control, a video display control) etc. can be called as a CaaS as they may be used by other SaaS products as is, without them having to develop it on their own. Or in another argument, one may say that any “service” provided in the form of “Web Service” that performs a particular (outsourced) business operation for you may also be called as CaaS. Well the point is not to prove that these are NOT CaaS or otherwise. The point is to throw some light to a broader spectrum of components that can potentially emerge into the cloud arena with a difference.

To my mind, a CaaS is something which provides an end-to-end “independent” business functionality that can be used by other SaaS products within their software so that they would not have a need to build these functionality on their own. It ideally comprises of all the 3 layers of any 3-tier system (UI, Application Logic and Database) but only for that functionality. If you recollect, this is what was once called “Application Service Provider”. So time and again, I would like to stress a point, this is nothing new.

So what can really be developed as CaaS? Well to give an idea, lets look at some existing CaaS that are already available in the market (but people may not know if it could be a potential component that they may use it for their own SaaS product.

Scenario 1

Assume we need to develop an HR System and make it available as a SaaS. An HR system would typically have things like Employee Management, Payroll, Appraisals, Recruitment and so on. So just to make the problem a bit simple to understand the context, we need to develop 4 modules to build the HR system that we intend to make it available as a SaaS. It would be nice if one of these 4 modules is available as a generic “Web based plugin” so that we need to develop only 3 of the 4 modules. Surely the web based ready-to-use plug in should be so configurable that it may not feel different for our customers who would be using our system. It needs to integrate so seamlessly that for a customer who is using our system, would not make out that he is using a different system for 1 of the 4 modules than the other 3.

One such “web based end-to-end recruitment" system available in the market is “Taleo”. (www.taleo.com)

Although they have been providing their Talent Management software as CaaS to most of the top multi-nationals’ web site for Career management, they have a huge potential for being used by SaaS companies (building HR solutions) as a ready to use end-to-end recruitment module. The entire suite offered by Taleo has almost the entire HR operations and they themselves can offer the entire suite as a SaaS to customers, but that’s besides the point. They surely have the potential to offer parts of their software (as a service) to be offered as CaaS for other SaaS companies to consume and thereby giving a them a completely different market to enter.

Scenario 2

Most e-commerce sites these days provide an online chat assistance to shoppers or people who look confused navigating through their sites. This is nothing new to us. But most of these assistance are developed by the e-commerce sites themselves and they provide a very limited functionality. With applications now more widely available as SaaS, providing a Customer Interaction Management would be ideal as the cost of 1st line and the 2nd line support goes down to a great extent. Thus the assistance can be provided by using such web based chat tool. This again, may not be needed to be developed by each and every SaaS vendor (as most of the e-commerce website would have done). They can be hired as a CaaS.

One such “web-based customer interaction management” is provided by a company called “Live Person” (www.liveperson.com). There are far many companies providing similar service as CaaS but Live Person are the oldest and the most popular in this domain.

Scenario 3

The above 2 scenarios are good to explain what a CaaS could be. But they do not provide a new business idea to the readers as the 2 examples I provided are well established market leaders in their own market as CaaS providers. The key point to be noted here is the “concept”. With cloud getting more and more popularity there is a huge potential for building large varieties of CaaS. One such thing that comes to my mind is a Workflow Management component available as CaaS. To my knowledge, there is only 1 company (I may be wrong) providing a Workflow Management as a Service or a CaaS. They call it as WaaS (Workflow as a Service). They are PNMSoft (http://www.pnmsoft.com/workflow-software-as-a-service.aspx). The whole idea of “outsourcing” the workflow operations of our SaaS product to a Workflow CaaS provider for a nominal cost per seat is worth giving a thought.

In short after looking at all the 3 above scenarios, the concept is the same. A idea to develop such CaaS is up to the readers’ imagination. So I hope I have helped you all who are thinking of a SaaS idea to venture into, some food for thought about CaaS too, as a potential.

Monday, 29 November 2010

Ten Scenarios to go cloud

 

With everyone speaking about cloud and talking about developing applications, sometimes it is confusing to identify if our application really needs to be on the cloud.

If you are an ISV, the answer may be relatively simpler (of course after reading my previous blog  :-) )

If you are looking to develop an application to solve a Business problem or if you are looking to automate any of your business process, the first thing that comes to our mind as of today is, should be develop this on the cloud or are we fine keeping the software on premise.

The purpose of this blog is to provide ten most common scenarios where it may be wise to use the Cloud computing to develop the applications. Please note that these are NOT THE ONLY scenarios for exploiting the cloud platforms. The benefits of cost & maintainability do not form the part of this discussion.

1) SaaS offering

As mentioned in my previous blog, if you are an ISV, then you may want to offer your product as a SaaS rather than selling it as an on premise application. There are various business & technical benefits in doing so, but this is a complete chapter in itself. Developing a SaaS based application from ground up, or building it using a PaaS is again a different discussion. But surely a SaaS is a cloud offering in itself or / and may be build using a PaaS which is also a cloud offering.

2) Scalable Web Application

If you have a very large web application for your enterprise or planning to develop one  or if you have an e-commerce site and it needs to be highly scalable (as scalable as a SaaS application), this can be an ideal candidate for going cloud using a PaaS. PaaS provides flexibility of provisioning for spikes in user load. It provides a cost effective way of using more servers and load balance during load and can get back to minimum configuration when the load goes down. Moreover because PaaS or for that matter even IaaS is offered on pay per use basis, it saves a lot of maintenance as well as operational cost.

3) Dynamic requirement of resources

If you have a requirement for large number of resources and the need for the same is highly dynamic, then the best option would be to accomplish the same using a IaaS. E.g. Assume there is a need is to build a data replication tool and lets assume you may want to test the tool to ensure that data is replicated smoothly across 100 servers. A huge amount of investment has to be made to buy a 100 servers and if you are not able to justify the spend or having a 100% utilisation of each one of them, then its a huge hit on the expense. You may opt to have 10 physical servers and create 10 each virtual machines on them, but again as long as there is a very large business benefit, doing so would not be ideal. Using a IaaS like the Amazon EC2, it is extremely easy and cost effective to hire as many server instances as possible. The same can be released if not required and thereby saving money on resources not utilised. Another similar likely scenario – To perform a physical load-test of an application with 10,000+ users on the portal and would like to gradually increase the load to know the breaking points of the system.

As you may recollect, there are many obvious advantages of using IaaS – no upfront investment, Pay per use, Ready to go server instances, on demand scalable model and many more.

4) High processor intensive application

Assume a requirement of an application that requires High end computing power to likes of 8 CORE processors with 32 GB RAM to run the CPU intensive calculations and it is estimated to have 20+ such servers to accommodate the desired throughput.

The same can be easily accommodated using IaaS as well as PaaS and all the benefits of going the cloud route like the no upfront investment and pay on demand model help us achieve the ultimate goal rather than going for a large upfront capital investment. Cloud is very useful in scenarios where time to market is one of the key requirement. Recently Microsoft showcased Pixar’s application called “Renderman” uses cloud to get the best benefit. Similar application requirements which need extremely high processing power can go cloud way either through IaaS or PaaS.

5) Provide a centralised high volume (yet highly secure) Data access

Application Storage Needs for applications to the likes of On-Demand Training Platform of a company are increasing significantly day by day.  The storage requirements are already in Several Terabytes (TB) (1 TB = 1024 GB) and growing at the rate of 100 GB/month. There is a need to have scalable storage solution at the same time stay close to the cost. A PaaS would be ideal in this case as it will save on a very high upfront investment on servers and maintainability, provide a very high scalability and also a guaranteed reliability,

6) Hybrid Applications

If there is a need to provide an application which has a on-premise version of the software as well as a web version of the same and both need to share the same data source, then hosting the database for such hybrid applications on the cloud is an ideal option. Both types of front-ends can be in sync and there is a huge save on the money spent on the infrastructure to accommodate connectivity from anywhere.

7) Central Data Repository

Similar to the previous type of application, if there is an application (on-premise or web) deployed and used by thousands of users from across the globe (may be from many different branches of a very large multi-national company), then having the database at a central repository makes sense. Although the same functionality can be achieved by hosting the database server on a secured local intranet and making it available for all the branches to connect, this requires a complex infrastructure setup and a huge investment which may or may not be the best option. Instead, having the database deployed on the cloud using either IaaS or PaaS may be a viable option.

8) Temporary requirement of Datacentre space

Most datacentres do not have a business model by which they provide server space on a need basis or on a temporary basis. Ideally they would want us to provide a minimum 6 month or in many cases a 1 year commitment to use their space so that they have a return on their investment. If your situation demands that you may want to use a datacentre only on a need basis and that too for a period of 1-2 months at a stretch or it is unpredictable, going the IaaS is the best option. IaaS providers like Amazon provides a flexible and cost effective mechanism to configure, host and release the server resources on a need basis.

9) Experimental Applications

If you have an idea to build a SaaS application (or would like to test the waters of building a SaaS version of your existing on-premise software, you may not want to put a high upfront investment if you are not sure of it’s success or failure. Using PaaS to develop your SaaS application idea or prototype provides a very high level of flexibility and safety to ensure you have a strong Business case to go back to your management to build a full blown SaaS application.

10) Freeware

If you are into building Freeware, you may want to keep your cost as low as possible, since the most likely scenario for building your brand would be only after there are too many (happy) users of your product. Keeping the cost low till the time would be key to success for your business. Building your application and / or hosting the same at a PaaS provider or an IaaS provider gives you a minimum till you sense the light of success.

 

The idea of this blog is to give people some food for thought about whether to build an application the conventional way or to build it for / on the cloud and there are too many reasons to go for it or even to go against it for each of the above types of application. But in most scenarios mentioned above, going the cloud way is surely a potential option.