Cloud computing, according to Wikipedia ‘refers to the practice of transitioning computer services such as computation or data storage to multiple redundant offsite locations available on the Internet, which allows application software to be operated using internet-enabled devices. Clouds can be classified as public, private, and hybrid.’
That is a fine starting point. Cloud computing is simply the ‘As a Service’ (XaaS) approach to providing compute, storage, networking and all sorts of application and services over public and private networks. The cheapest, easiest version to access and utilize is the Public Cloud where shared datacenters and servers deliver the capability, primarily over the public Internet.
In many ways, cloud computing is no different than basic web hosting approaches Managed Service Providers (MSPs) have been delivering since the nineties. When MSPs are leveraging cloud technologies which virtually all now are, they can be referred to as Cloud Service Providers (CSPs). CSPs may deliver many levels of service from the infrastructure level (IaaS) up to managed platforms as a service (PaaS) for things such as relational databases (RDS in AWS) and finally true Software as a Service (SaaS) where you can purchase whole software suites and functions as a service as in Salesforce.com, SAP and Oracle cloud services.
On the other hand, everything is different. The level of automation, virtualization and speed of provisioning is like legacy infrastructure on steroids. The way you procure and manage it is totally different and much more self-service. To truly benefit from the cost savings aspects of cloud, you need to fundamentally change how and when you spin up and shutdown environments, tieing those events much more closely to demand and consumption rather than following the ‘if we build it they will come’ deployment model of days gone by. There is no excuse any more for leaving idle instances running for ever wasting space, electricity and money.
Automation and speed of provisioning lead to a related concept you are going to hear a lot about. Elasticity. A lot of the offering or capability names in AWS have elastic in the name (elastic compute or EC2, elastic block storage or EBS, elastic load balancers or ELBs,…) because it is an important property. It means you can scale capacity up and down depending on what you use, and only pay for that amount. This is where the cloud gets radically different and beneficial.
Most of these concepts of automation, virtualization and elasticity can be built in private, dedicated, onsite data centers. That is the concept of a Private Cloud.
Most enterprises today are using heterogeneous combinations of onsite infrastructure combined with multiple offsite shared clouds at the same time (AWS, Office365, ServiceNow as three very common examples). Integrating all these disparate capabilities into a seamless cloud infrastructure is where the concept of Hybrid Cloud computing becomes important. The critical thing about private cloud is to have modular, automated deployment practices that allow you to quickly and easily target multiple cloud hosting environments with common hypervisors or virtualization engines such as Xen and VMWare. To provide a common interface and management layer whole consortiums have evolved such as OpenStack and tools have become common for developing and deploying via scripted cookbooks such as Chef. With modular, automated workloads, and a plethora of public clouds becoming available, your deployment options become as limitless as your imagination.
All this freedom is not easy or free of course. The complexity of securing and managing hybrid cloud requires some engineering discipline and IT knowledge. That is part of what I hope to share through this blog.
So that is what cloud is. To answer the final question in the title. Do you need one?
If you need a compute environment that has the following characteristics, you need one. Would you like to:
- Trade capital expense for variable expense – Only pay when you consume computing resources, and only pay for how much you consume.
- Have fewer up front investments – Benefit from massive economies of scale. Thousands of cloud customers leveraging cloud services such as AWS translates into lower cost per unit than dedicated data centers.
- Stop guessing capacity – Avoid expensive idle resources and unacceptable capacity limitations. Access as much or as little as you need, and scale up and down as required with very little notice
- Increase speed and agility – Cloud provisioning makes resources available to your developers in minutes instead of weeks.
- Dramatically decrease the cost and time it takes to experiment and develop
- Stop spending money on running and maintaining data centers
- Focus on projects that differentiate your business and on your own customers – Leave the heavy lifting of racking, stacking and powering servers to the service provider
Go global in minutes – Regional points of presence near your users means you can provide lower latency and a better user experience without the need to build out your own global infrastructure
If that sounds like an AWS sales pitch, that is ok, it basically is. The benefits of cloud are very real though for any business and application owner/developer willing to make the leap and adapt to cloud deployment and management practices.
What are you waiting for? Dive in!