DEV Community

Lawrence Lockhart
Lawrence Lockhart

Posted on • Originally published at lawrencedcodes.blogspot.com on

Cloud Computing Basics, A Primer for Total Noobs

Cloud Computing Basics

A Primer for Total Noobs

What the heck is the cloud? To be as pervasive a technology as it is, there is still a surprising amount of misunderstanding as evidenced by nonsensical use in language and even questionable enterprise decisions from short-sightedness in the application. One would think “it’s just someone else’s computer” would be sufficient to answer all questions but deeper inspection reveals use cases where even this may not be sufficient a definition. That said, what the heck is the cloud?

We can thank the National Institute of Standards and Technology (https://www.nist.gov/) for a robust set of standards that can help wrap our minds around what the cloud is. As published in September 2011, authors Peter Mell and Tim Grance put it this way:

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models.

The five characteristics they mention are on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. The three service models include Software as a Service, Platform as a Service, and Infrastructure as a Service. Finally, the four deployment models are public, private, hybrid, and community. If this is your first introduction to these terms, I already know this definition is right now, clear as mud. The rest of this blog will parse out the 5, the 4, and 3 and remove the mud in the process.

The Five

Let’s start with the five characteristics. On-demand self-service is as literal a designation as we can ask for. To be cloud computing, the services must always be available and the user should be able to access and manage their instances with minimal interaction from the provider, i.e. no 3AM customer service calls to any unuseful bots. Broad network access refers to need of the user to access their data via a variety of resources, be they laptops, desktop, or even mobile phones. This contrasts sharply with a single terminal wired to the belly of a room-sized mainframe. A simplified example of resource pooling is apartment rentals. You may be able to buy the entire building but if you only need 1000 sq. ft. it benefits you the user and the landlord “provider” for you to share the building with other tenants and each contributes financially in proportion to the space you need. This is literally called multi-tenancy or the multi-tenant model in computing. Rapid elasticity means the user should be able to quickly scale in or out (more or fewer services) or scale up or down (larger or smaller instances) per the required load. Finally, measured services let the user know there will be billing commensurate with usage just like an electric or gas bill at home.

The Four

Let’s move on to the four deployment models: public, private, hybrid, and community. These models essentially tell the user what level of security they are being offered in terms of shared space. There are really 2 models: public and private with hybrid being a mix and community a variation on that theme. Public deployment means more sharing with other uses, less access to advanced security options, and subsequently less cost. This is ideal for heavy resource data processing that does not require advanced security. Private deployment is the polar opposite: the user (business) has access to cloud infrastructure that is not shared, does offer enhanced security options, and is accordingly more expensive where payment is no longer pay-as-you-go. Hybrid clouds are weird to me. They exist, but they don't. It just means the user has some services in the public cloud and others in private. It’s not an entirely different physical infrastructure. Community cloud models are basically private clouds shared by users of a type of business such as health, finance, or legal that are subject to strict regulatory compliance. Community clouds are also useful for joint projects among different businesses. It’s private but private with friends.

The Three

When I first saw the terms SAAS IAAS and PAAS I seriously thought this was a branch of study completely outside of the software development I had been learning since it seemed so foreign. Fortunately, this was far from the case once I learned the 9 things (my phrase). The 9 things are applications, data, runtime, middleware, operating system, virtualization, servers, storage, and networking. When the user is managing their servers on-premise (on-prem) they are assuming responsibility for all 9. With Infrastructure As A Service(IAAS) the provider (vendor) provides the virtualization, servers, storage, and networking and the user covers the rest. With Platform As A Service (PAAS) the providers cover the above plus the runtime, middleware, and operating system. Finally with Software As A Service(SAAS) the provider handles all nine layers, one example being the German-based SAP enterprise software products.

The Finale

So again what the heck is the cloud? It is someone else’s computer. Specifically, one that is always on and easy for the user to manage. These computers come in a variety of sizes, configurations, and levels of security. The moving of a company’s software from on-prem to cloud is typically accompanied by a change from capital expenditures (CAPEX) in land, buildings, and servers to operational expenditures (OPEX) which is paying the provider in billing to manage varying levels of physical, networking and software infrastructure. This is a basic level of understanding the cloud.

Top comments (0)