Pros and cons of cloud computing
Benefits of the Cloud
The popularity of cloud computing is driven by its numerous benefits, including improved economics, simplified IT management, scalability, flexibility, improved utilization, and a reduced carbon footprint. Let us consider the cloud benefits individually:
Economic model: Organizations typically estimate their IT requirements for a period of 1 to 5 years in advance in a process called capacity planning. Capacity planning leads organizations to estimate IT investments for peak loads, which could lead to either excess capacity at times (underutilized resources) or deficient capacity when loads exceed projections (which could lead to service degradation). With the pay-as-you-go economic model, organizations pay for the resources that they need. Organizations no longer have to pay up-front costs, invest in and procure expensive computing infrastructure, or pay recurring costs to manage their infrastructure. This is particularly important for startups because by leasing compute resources, they benefit from reduced up-front cost and reduced time to market when creating and making their offerings available to the general public.
Simplified IT management: Users of cloud services need not allocate time and resources to set up, operate, and maintain their IT resources. The cloud provider, however, competes for clients and hence invests significant resources to manage and maintain their offerings with high reliability.
Scalability: In a traditional, in-house computing environment, organizations can take anywhere from a few days to several months to procure, set up, and operate IT infrastructure. Cloud service providers provision rented computing resources for their clients in a matter of hours or even minutes. Clients not only can scale up resources on-demand, but can scale them down during low-demand periods to save money. Therefore, clouds enable the important property of elasticity, wherein resources can be both provisioned and deprovisioned in a dynamic or programmatic manner to adapt to changing workloads. In order to support elasticity, many cloud service providers make automated scaling solutions available to dynamically alter resource provisioning as demand fluctuates.
Flexibility: For certain cloud services, providers offer their users the flexibility to configure any software platform to run on any available operating system as a virtualized image on custom-provisioned, rented infrastructure. Cloud offers a shift from an organization's inflexible IT design decisions (that are tied to specific development platforms and infrastructure) to more flexible, elastic, and modular choices.
Improved utilization: Resource utilization is significantly improved with cloud computing because physical resources are shared across users (multitenancy). Through virtualization, servers are now consolidated as operating system images that are sharing the same system resources. Hence, utilization is improved, which leads to overall savings in power and cooling and reduces the carbon footprint.
Rapid and Global Deployment: By employing the services of cloud service providers that also have a global data center presence, startups can compete with established players by rapidly rolling out applications and services across a global audience. This is particularly important of social media startups which may see viral growth trends as services become popular across multiple countries/regions.
Risks of Cloud Computing
By embracing cloud services, users and organizations can take advantage of many benefits. However, using these services introduces several risks, such as:
Vendor lock-in: Cloud computing platforms from major cloud vendors are largely proprietary. Lack of standardization can lead to the situation of vendor lock-in, such as when a client signs up for a cloud service, develops applications for it, and deploys data on it. The lack of standardization makes it unlikely that the client can move to another cloud platform seamlessly. The client often requires a third-party cloud migration specialist or an additional service to move the application to a different platform.
Security risks: Because cloud computing with public clouds can result in an organization's data being shipped beyond its four walls, security becomes a primary risk and concern. For certain domains, it is simply unacceptable for users or organizations to do so, in which case they may have to resort to building a private cloud or own resources with restricted access to meet their needs. However, certain markets that have tight security requirements have niche solutions. An example is Amazon GovCloud, which meets certain U.S. federal government requirements for data security and integrity. GovCloud is physically distinct from other cloud infrastructures that Amazon makes available to the public, thereby reducing exposure. Azure Government serves the same role in the Azure space.
Privacy risks: The use of the cloud also raises many privacy-related concerns. Depending on the laws under which a cloud service provider operates, governments may have the power to search and seize data from the provider without the client's explicit consent or notification. Furthermore, clients cannot be fully assured of data confidentiality when using public clouds. We discuss some of security risks associated with cloud computing later in this module.
Reliability risks: Even clouds aren't immune to reliability issues. In December 2012, Netflix users experienced a service outage due to Amazon's "connectivity issues and degraded performance" from their servers in Virginia. Amazon EC2's Northern Virginia data center went down for a few days in 2011, affecting websites such as Reddit and Foursquare. Microsoft Azure also faced a similar problem, and their services went down for 2½ hours in Western Europe. Public clouds pose a potential reliability risk that can affect organizations. Clients must design for failures and use features such as availability zones, in which clients can set up failover and redundant infrastructures to take over in case of failure, which comes at a price, of course. Cloud users attempt to mitigate the cloud reliability risk by signing service-level agreements (SLAs) that enable compensation when exposed to such events. Since cloud services can only be accessed over the network, any disruption of connectivity will cause the application to fail, possibly leading to a loss of reputation and/or revenue.
Some of these risks are not specific only to cloud computing, but are typical for any service provider, be they banking or health services. Cloud service providers must carefully consider the implications of these risks and design solutions to mitigate them as their credibility and reputation directly impacts their rate of adoption. Cloud adopters who offer their own services must also safeguard their reputation against these risks.
Challenges in Cloud Computing
Along with the benefits and risks, there are several challenges associated with the adoption of cloud computing:
Application engineering and development: A cloud inherently offers the promise of on-demand, dynamically scalable infrastructure. Programming a cloud, however, is more complex than writing code for a single machine. New programming paradigms such as MapReduce, Spark, and GraphLab, coupled with provider APIs to manage infrastructure, help developers manage complexity but still present a learning curve. In addition, skilled developers with cloud experience are still relatively rare yet are in high demand. Finally, cloud programming models and APIs are continually evolving, which may add to recurring engineering and development costs.
Movement of data: Use of public clouds typically requires connecting to the cloud over the Internet. Because of this requirement, movement of data to and from the cloud is significantly slower than in an organization's local area network (LAN). Although the cloud allows applications to target large amounts of data (big data), data movement can become a limiting factor for cloud adoption. For example, Amazon and Microsoft allow clients to upload large datasets for free or ship hard disks so the data on them can be loaded into the cloud.
Quality of service (QoS): As mentioned earlier, cloud infrastructure is typically shared among many users. This sharing presents a challenge for cloud providers to offer QoS assurances to their clients. This challenge could disallow certain performance-sensitive applications from being migrated to the cloud. QoS in clouds is an important area in cloud research. For example, regulating I/O bandwidth to specific virtual machines could offer predictable performance for critical applications.