Presenting on Cloud Native

I presented on the imperative of designing specifically for the Cloud at the 13th edition of CaribNog.

My central treatise was that entities are moving away from simply Cloud-enabling existing solutions and having the Cloud as a backup. Analysts, architects and developers are strongly moving towards building solutions that are native to the Cloud.

Here’s the presentation.

 

Defining Cloud

When we teach on Cloud Technologies at UWI, we start with building the context.

Many students come to class with ideas about what cloud is from their experience with service providers. Perhaps they use Gmail for email, or One Drive for storage.  What they know is that some provider manages the concerns attached to a service they use.

We start off with a definition investigated and shared by the US National Institute of Science and Technology (NIST). As outlined by NIST, when they developed their definition, they were going for a yardstick that could allow consistent comparison among service providers, deployments and strategies.

According to NIST, cloud computing is a model. A way of thinking with regard to requesting, deploying, managing and monitoring computing resources. This model anticipates broad network access as the means to interacting with service providers. The resources being provisioned are expected to be shared.

In the NIST version of the cloud model,

  • There are 5 key characteristics.
  • There are 3 service models.
  • There are 4 deployment models.

When delivering this understanding we tend to repeat those characteristics often.  They are:

  • Self-service
  • Network accessibility
  • Pooled resources
  • Elastic resourcing
  • Closely monitoring

Services being built today may feature the use of cloud resources but themselves may not actually be cloud services.  Walking along with those characteristics, we encourage students to ask, “can I order this up, pay and have it available, without human involvement?”. Then it’s self-service. Can service modification be done over a network? Does the underlying infrastructure automatically assign and un-assign the use of resources? Does the billing reflect up-to-the-minute information on when a customer provisioned/de-provisioned services?

Those are the starting questions that can be used to evaluate services when spotted, or as they are being built.

The service models are Software-, Platform-, Infrastructure- as a Service.  The concept of “[x] as a Service” is essential to understand when considering the degree of abstraction.

Breakdown of Cloud Computing Services
Cloud Services, image via Wikipedia

Service models let a person evaluating or implementing cloud to know what will be in their hands to manage vs what is being managed by a service provider.

And finally in the NIST-defined model  of cloud computing there are the deployment models – private, public, community & hybrid.

We start with this definition because from there we expect students to be understanding how in an MSc focused on Cloud Technology, they need to be oriented.

There are two forms of orientation I’ve experienced. It is knowing the responsibility for developers & software designers to build with cloud in mind, paying attention to relevant patterns & principles, such as service orientation.

And it is also the great empowerment one should feel when embracing use of these services. Literally, the savvy can provision servers, services and other resources via code. That is tremendously advantageous. The course is about exploring how so.

When I teach these courses, I come at the students as someone who’s been witnessing the change in how software is conceptualized, built & delivered.  It’s hoped that from the experiences shared, they’d be empowered to jump in, and take part.