Cloud computing may have become synonymous with Amazon Web Services and Microsoft Azure, but the term rightfully...
includes a broader range of vendors and technologies. There are three main types of cloud computing classes: public, private and hybrid. Each has its own benefits, key vendors, misconceptions and lessons to be learned.
Automation in the public cloud
Public clouds are a good place to start. The public cloud consists of IT resources made available by vendors to customers online in the form of VMs, space on a shared server -- virtual private servers -- or dedicated servers. Public clouds are differentiated from traditional hosting by the level of automation and orchestration involved in provisioning services.
Traditional hosting involves filling out a form and then having a technician at the hosting provider enable resources for the customer. Eventually, certain resources -- usually virtual private servers -- were provisioned automatically.
Over time these tools evolved to allow the provisioning not only of preallocated combinations of space on shared systems but to enable virtually any combination of infrastructure resources. Various operating systems could be selected and would be installed, configured and updated as needed. Even bare-metal servers could be provisioned automatically.
Individual applications could be rented, and these didn't require maintaining the underlying infrastructure or even the operating system. Increasingly, these applications could be rented on a per-user basis, rather than as a fixed chunk of infrastructure and a packaged software license.
This evolution of hosting automation truly becomes a cloud when customer-facing APIs are published, allowing developers to request and release various resources programmatically. This is where vendor-side orchestration of automated systems meets customer-side orchestration and automation. It is what makes the public cloud so enticing -- and what differentiates it from the notion that it is merely "somebody else's data center."
Private clouds offer resiliency
Some people would like to convince us that a private cloud is nothing more than a cluster of servers with hypervisors on them and basic management tools. This is not correct. The same rules and concepts apply to the private cloud as they do to the public cloud. A virtualization cluster is no more a cloud than a primitive vendor-run hosting facility requiring manual intervention. A hyper-converged cluster, similarly, is not a cloud; it is just an easy way to consume virtualization infrastructure.
A private IT infrastructure becomes a cloud when a self-service portal is put in place to allow users to request and release resources without having to submit change requests to IT personnel. This does not have to involve virtualization or containers, though both technologies lend themselves to self-service portals far more easily than bare-metal servers.
Getting to a full cloud takes more. As with the public cloud, it requires an API that allows for infrastructure to be managed programmatically. It also requires some form of accounting of resource consumption so the IT organization knows how much of the shared infrastructure the various departments are using.
Private clouds also tend to need to offer something public clouds do not: resiliency. Public clouds don't come with meaningful guarantees. Backups aren't performed unless you set them up to be. High availability is an additional feature. Essentially, public clouds are infrastructure that users or developers can boss around.
Private clouds are provided by professional operations teams that are beholden to the business. These teams must ensure that monitoring, backups, disaster recovery and so forth are baked into the infrastructure and enabled by default.
The hybrid form and automation
At its most basic, a hybrid cloud is a cloud where workloads can exist either on a vendor-run public cloud or on a customer-run private cloud. To be truly hybrid, workloads in the public cloud need to be able to communicate with workloads on the private cloud. In many cases, mechanisms move workloads from one place to the other.
The key to the hybrid model is in the networking. Overlay networks, VPNs, hybrid WAN technologies and software-defined networking can all play roles in ensuring connectivity between locations.
It helps if the application catalog allows for the same workloads to be deployed to the private cloud as to the public one, but, in practice, this almost never occurs. Some workloads must be in the private cloud for privacy and data sovereignty reasons. Some workloads must run only in the public cloud for licensing reasons.
With clouds, everything should be done in an automated fashion. While this automation and orchestration is ideal, it is rarely the case in practice.
Users and developers love to create workloads, but are careless about releasing resources when they are no longer required. Operations teams have proven equally ineffective, leading to virtual sprawl, which applies as much to traditional infrastructure as to cloud-enabled ones.
In practice this means that cloud usage -- regardless of on whose infrastructure those workloads are located -- needs to be driven by policy.
Automation must be employed to detect idle workloads and shut them down, and release workloads no longer needed. Regular audits should catch what the automation misses.
To understand and make use of the different types of cloud computing, you'll need to look at infrastructure provisioning in a new way. Whether public, private or hybrid, the endgame of cloud-enabled IT is infrastructure as code, where you're replacing manual actions with automated managing and provisioning.
Choosing the right virtualization and cloud management tools
VMware hybrid cloud management improves with vRealize