Overview: Cloud computing is nothing but delivery of computing as a service rather than as a product. When we use the word computing, it includes the cost of CPU, the memory, the storage, network and other software required to create the ecosystem where our application would reside. It is easy to talk of these things but we should also consider the advantages and disadvantages of this approach.
In this document I will talk about the pros and cons of cloud computing.
Introduction: Every design approach comes with a set of pros and cons and cloud computing is also not an exception in this theory. Cloud computing has helped the enterprises to reduce their costs. It also helps the users to focus on their core development rather than spend their time discussing the infrastructure issues of a project. So the cloud based computing is become the buzzword in modern IT industry. People are also getting tremendous benefit out of this cloud computing services. The other aspect is the affordability, now the small organizations can also use the same computing power as the biggies.
Categories of Cloud computing: Cloud computing is a vast area and it covers lot of things in terms of technical and non-technical area. But we will talk about the major areas to get an initial understanding.
Cloud computing comes in four major categories –
- Infrastructure as a Service or IaaS – This provides a virtual infrastructure to the user e.g. the servers, the data storages etc. In this category the enterprise using this service, outsources the hardware used to run the applications, its storage, network components etc. The service provider is the owner of these components and is responsible for their maintenance.
- Platform as a Service or Paas – Here, the service provider provides the development platform where the consumer can develop and run their applications. These services include the operating system, the programming language execution, database servers, web or application servers etc.
- Software as a Service or SaaS – In this category, the service provider, provides access to an existing application to the consumer which is running on the cloud. This eliminates the need to install and run the application on any environment.
- Network as a Service or NaaS – In this category, the consumer is provided with services for network connectivity e.g. VPN etc.
Now a day, SaaS is a popular model for providing software/product services to their customers. The customers will use the service and pay accordingly (pay per use). This model is also widely used by different product vendors also.
Advantages of Cloud Computing:
Let us go thru some of the advantages of cloud computing both from the perspective of the enterprise and the end users:
- Cost Efficiency – This is the biggest advantage of cloud computing. Cloud computing eliminates the investment cost on standalone servers and respective software. Enterprises can save on license cost and the time required setting up these servers. Also the cloud infrastructure takes up the maintenance job of these servers and also up-gradation of the software required on these servers.
- Convenience and continuous availability – The services offered by public cloud are available over the internet and can be accessed from anywhere. Users across different time zones and in geographic locations can access easily to these services. Cloud also guarantees continuous availability of these services.
- Backup and Recovery – Cloud computing simplifies the process of backing up data and their recovery as the data resides on cloud and not on a physical device. Different service providers offer reliable and flexible backup/recovery solutions.
- Environment Friendly – The cloud infrastructure requires less resource to compute than the typical IT infrastructure. In this approach, only the resources which are truly required are consumed by the system.
- Scalability and Performance – Scalability is one of the major aspects of today’s applications which come as a built in feature for cloud deployments. These instances are dynamically deployed as and when required. Another feature – elasticity helps us to scale up or scale down depending upon our needs. As a consumer we have to pay only for the applications and the storages which we need.
Cloud based systems use the distributed architecture which offers excellent speed of computations. Also it is the responsibility of the service provider to ensure that the services run on high end machines. Instances can be added or removed instantly as a when required.
- Faster Deployment and simple Integration – One of the biggest advantages of a cloud based system is that it can be easily setup in a very short period. Addition of new instances is instantly done. In a cloud environment, software can easily be integrated. Hence minimum effort is required to customize and integrate the applications.
- Storage Capacity – Cloud offers increased storage capacity as it can accommodate and store more data in comparison to a personal computer since it has almost unlimited storage capacity. Thus the worry of running out of space is ruled out and as a consumer we do not have to think of upgrading the hardware.
- Device Diversity and Location independence – The services offered by cloud computing can be accessed by an array of devices which have access to internet ranging from traditional computers to smart phones, tablets etc. As an end user, we have the freedom of not just accessing these services from any device but also from any location.
- On top of all these, the learning curve of cloud computing is very small.
Disadvantages of Cloud Computing:
Having discussed about some of the advantages of cloud computing, let us now talk of some of the disadvantages of cloud computing:
- Security and Privacy – Security and privacy are the two main aspects when we talk about data. As we have seen that by outsourcing the IT infrastructure, the service consumer company gives away data that might be sensitive and confidential. The consumer company has to rely on the provider company to maintain the secrecy of their data. Data security is such a vital issue that all possible alternatives must be explored before taking the final call to implement cloud computing as the existence of the company could be in danger if any data goes out. At the same time, the cloud service providers must ensure the privacy of the data by protecting them from unauthorized access.
- Dependency – Dependency is one of the major drawback of cloud computing. This is known as ‘vendor-lock-in‘ as it is almost impossible to migrate from cloud vendor to another because of the huge data migration. This may also lead to risking the security and privacy of data.
- Downtime – Outage and downtime are the two important aspects on which even the best service provider of cloud computing can’t guarantee. Also we must keep in mind that the whole setup is internet based. Thus, any downtime on the internet side will lead to a connectivity issue.
- Limited Control – Since the services run on a remote virtual environment, the service consumer party have less control over the hardware and the software.
- Vulnerability – Even today, we know that how vulnerable is the public internet. In cloud computing since every component is available on the internet the risk of the entire environment being highly vulnerable to hackers and unwanted used is always there.
While implementing cloud we must consider these critical points since we are having an application, which works with personal data of millions of end users and any information leak may lead to a disaster.
Important terms used in cloud computing: Following are some important terms used in cloud computing.
- Public cloud: This is the cloud environment available for public use.
- Private cloud: This is a completely separate environment specific to the owner organization.
- Virtual private cloud: This is basically a public cloud environment but the customer knows where the data is located.
- Converged cloud: This is the hybrid cloud with single view.
- Cloud broking: This is emerging as more and more companies are moving into cloud environment. Brokers are middle man providing the bridge between the client and the cloud service providers.
Despite of the above disadvantages and the fact that cloud computing is still in an infant age, it has a great potential for the future. The user base of cloud computing is growing every day and big players are getting attracted to it. This helps the service providers to, offer better and finer tuned services and solutions.