The term Cloud computing refers to the 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 your application will reside. This broad overview will discuss the pros and cons of Cloud computing.
Every design approach comes with a set of pros and cons and Cloud computing is no exception to this rule. Cloud computing has helped many enterprises reduce overhead costs and has also helped users to focus on core development rather than spending time discussing the infrastructure issues of a project. In addition, small organizations now have access the same computing power as much larger organizations.
Categories of Cloud computing: Cloud computing covers a vast area and it includes a lot of things in terms of technical and non-technical specifics.
Cloud computing comes in four major categories:
- Infrastructure as a Service or IaaS - This provides a virtual infrastructure to the user who outsources the servers, the data storages, 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, and more.
- Software as a Service or SaaS - In this category, the service provider provides access to the consumer for an existing application that 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, such as a virtual private network (VPN).
These days, SaaS is a popular model for providing software/product services to customers who use the service and pay accordingly (pay per use).
Advantages of Cloud Computing
Let us go through 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 costs and the time required setting up these servers. Also, the Cloud infrastructure takes up the maintenance and software updates required on these servers.
- Convenience and Continuous Availability - The services offered by a public Cloudare available over the internet and can be accessed from anywhere. Users across different time zones and in geographic locations can easily access services. The Cloud also guarantees continuous availability of these services.
- Backup and Recovery - Cloud computing simplifies the process data backup and recovery as the data resides in Cloud and not on a single physical device. Different service providers offer reliable and flexible backup/recovery solutions.
- Environmentally Friendly - The Cloud infrastructure requires fewer resources than the typical IT infrastructure. In this approach, only the resources that are truly required are consumed by the system.
- Scalability and Performance - Scalability is one of the major aspects of today's applications that come as a built in feature for Cloud deployments. These instances are dynamically deployed as required. Another feature - elasticity helps you to scale up or scale down depending upon your needs. As a consumer you have to pay only for the applications and the storage that you need.
- 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 of time. The addition of new instances can be performed very quickly. In a Cloud environment, software can easily be integrated. Hence, minimum effort is required to customize and integrate the applications.
- Storage Capacity - The Cloud offers almost unlimited storage capacity. Thus the worry of running out of space is ruled out and as a consumer you do not have to think about upgrading the hardware.
- Device Diversity and Location Independence - The services offered by Cloud computing can be accessed by an array of devices that have access to the Internet—ranging from traditional computers to smart phones, tablets, etc. As an end user, you have the freedom of not just accessing these services from any device but also from any location.
Disadvantages of Cloud Computing
Having discussed some of the advantages of Cloud computing, let us now explore some of the disadvantages of Cloud computing:
- Security and Privacy - Security and privacy are the two main concerns when talking about data. As you have seen, by outsourcing the IT infrastructure, the service consumer company gives away data that might be sensitive and confidential. The consumer has to rely on the provider to maintain the security 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 data is leaked. 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 difficult to migrate from one Cloud vendor to another because of the huge data migration. This may also lead to risking the security and privacy of the data.
- Downtime - Outage and downtime are two of the most important aspects that even the best service provider of Cloud computing can't absolutely guarantee. Also you 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 has less control over the hardware and the software.
- Vulnerability - In Cloud computing, since every component is available on the Internet the risk of the entire environment being highly vulnerable to hackers and unwanted users is always there.
When implementing Cloud computing you must consider these critical points since you are having an application, that potentially involves the 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 brokering: 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 the disadvantages listed above and the fact that Cloud computing is still in an infancy, it has a great potential for the future. The user base for Cloud computing is growing every day and big players are now fully invested. This helps the service providers to offer better and finer tuned services and solutions.
About the Author
Kaushik Pal is a technical architect with 15 years of experience in enterprise application and product development. He has expertise in web technologies, architecture/design, java/j2ee, Open source and big data technologies. You can find more of his work at www.techalpine.com and you can email him here.