Showing posts with label Software as a service. Show all posts
Showing posts with label Software as a service. Show all posts

Wednesday, November 18, 2009

Cloud Computing Demystified

What is cloud computing? No one knows. Every one has his own definition to suite his needs. To add to confusion I also add my two cents to definition of cloud.

In my point of view cloud computing is an umbrella term for XaaS and virtualized IT assets supported by Utility, Grid and Autonomic Computing in one offering. But due to early in life cycle of evolution not all cloud offering are based on Utility, Grid and Autonomic computing principles. X in XaaS has many metaphors and there also exist great divide among analysts, vendors and service providers.



Infrastructure as s Service (IaaS): This is Data Centre as a Service or remotely managed data center.

Storage as a Service: This is Disk Space as a Service or in simple terms Disk Space on Demand. You can consider this as remote storage for consumer but local for application.

Database as a Service (DaaS): This service provides consumers to access and manage persistence layer (RDBMS, Hierarchal Database – LDAP, File System, etc).

Information as a Service: This is granular business services on demand. For example tax calculation for a product/service.

Software as a Service (SaaS): This is Application as a Service. Here a major portion of or full business application is offered on demand. On the extreme of Cloud is Process as a Service (process outsourcing).

Integration as a Service: It is one of the most interesting aspects of Cloud. It provide features of traditional EAI/B2B but as service.

Platform as a Service (PaaS): This is offering provide complete SDLC of Cloud hosted application/service. Most of the matured Clouds provide this service by default.

Governance as a Service: This is basically mechanism to manage cloud computing resources, typically managing topology, resource utilization, up time, policy management and other related issues.

Testing as a Service: This is facility provides sandbox testing of developed application/service using PaaS offering.

Security as a Service: Due to open nature of internet, security is must for any offering. Security as a service may offer identity management, encryption/decryption, etc.

Saturday, April 25, 2009

Scalability in an application

Scalability is one of the biggest concerns in enterprise grade application architecture and it gains more importance for SaaS applications due to their very nature of business model.

Scalability in an application can be achieved in three dimensions.

1. Vertical Scalability: This is the easiest form of scalability. In this approach just keep on adding horse power of m/c on which application is deployed. Practically, here effort on the part of application architectural and engineering team is zero.
2. Horizontal Scalability: This approach is quite common. This approach supports two flavors. Hardware approach and software approach. In layman’s terms if one can run two or multiple instances of application then software based scalability can be achieved by utilizing m/c’s resources optimally. The hardware approach requires little effort on architectural and engineering team. In this approach application should be able to on multiple m/c s to cater increasing business demands. The common technique used to achieve this type of scalability is clustering – software & hardware clustering.
3. Multi Component Scalability: To achieve this form of scalability application to be developed very carefully. This approach requires significant effort from architectural and engineering team. In this case components of application should be independently deploy-able and should be scalable – horizontally and vertically. The famous example of this approach is EJB based solutions where EJBs can scale separately from web server.



Due to very nature of SaaS application customer class is very important. Customer may have various needs in terms of QoS and security. This challenge open one more dimension of scalability.

4. Customer Class Scalability: In this approach one can scale customer as per the required QoS and security needs.



Just to make picture clearer, all four dimensions of are applicable to binaries (code) and persistence layer (RDBMS; hierarchical data base – LDAP; File system – logs, file servers, multimedia repositories, etc).