Exploring the differences between SaaS, PaaS and IaaS

In Cloud Technologies class today, we used both the course outline¬†and the notes from MSFTImagine’s Github repo to talk through the differences in service offering.

I used the canonical service model responsibility chart to start the conversation off.

servicemodeldivisionofresponsibility
Service Model Division of Responsibility, via MSFTImagine on Github.

It’s fairly straightforward to talk to these divisions, of course. I often use it to drive home the NIST 2011 definition of cloud services. With emphasis on the service delivery models.

In today’s presentation, one of the things that jumped out at me was the slide that provided a distinction between SaaS Cloud Storage and IaaS.

distinctionbetweensaasandiaas
SaaS or IaaS, via MSFTImagine on Github.

Finally, when talking about the ever versatile Salesforce, and how its PaaS solution works out it reminded me of the Online Accommodation Student Information System (OASIS ūüôā ) that I had built when I was in undergrad.

I’d built OASIS as a commission for the Office of Student Advisory Services. It was a tool to help off-campus students more easily find accommodation. Prior to OASIS all the information was a notebook in an office. It was built before I learnt about the utility-based computing of cloud. I’m thinking about using that as the basis of an exploration of the architectural changes need to move an old service to the cloud.

Hopefully, I’ll be able to revisit it when we touch on Cloud Design Patterns.

Advertisements

Teaching Cloud Technologies (2016/2017)

We just concluded another run of the Cloud Technologies course at the University of the West Indies. This course is part of the MSc Computer Science program.

As lecturer, I had to come up with the course outline as well as the content. In so doing, I get the opportunity to refresh what we talk about as well as how we approach assignments.

This course comprised of ten modules:

  1. Intro to Cloud Technologies
  2. Cloud computing infrastructure
  3. Virtualization
  4. Big data
  5. Cloud development patterns
  6. Cloud resource management
  7. IaaS Automation
  8. Microservices
  9. IoT
  10. Cloud for Research

Though our primary cloud platform is Microsoft Azure, students are free during assignments and project submission to use other cloud providers.

One of the assignments involves virtual machine scale sets and containers. The draught goes like this:

Z. Zanko Systems provide sales processing systems for large commercial banks.

They receive more than 5 million JSON requests per hour (revised to 300,000).
Each request must be stored in permanent storage. The format of the request is:
“{“TransactionID”:”1″,”UserId”:”A1″,”SellerID”:”S1″,”Product Name”:”Financial Trap”,”Sale Price”:1000000,”Transaction Date”:” “}”

You have been hired as a System Developer by Zanko. You have access to VMs whose capacity is equal to that of A1 VMs in Azure IaaS or Containers of similar capacity.

Develop a mechanism to generate the requests your system faces.

Design and implement a solution using a container-based approach or a
virtual machine-based one to process 5 million requests in an hour.
For your receivers introduce a failure rate.
Store the occurrence of failures.
Justify how you chose to store and monitor failures.

Though most students can build this out using azure, one enterprising student chose to use AWS and reading his submission was a nice view of getting this done using Amazon’s resources vs Azure.

This year, Microsoft put a halt to the Azure for Education Academic grant, but did have a number of other ways for students to get into cloud, including DreamSpark and other offers.

The project component this year changed a bit, too. In the two years prior, we asked students to build working cloud services themselves. This year, we asked them to propose a cloud service that featured understanding of:

  • Cloud service definition
  • Cloud service models
  • Cloud delivery models
  • Cloud for research
  • Cloud development with a regional focus

We saw some excellent solutions that we hope to hear more about in the future.

Teaching Cloud

I’m lecturing at the University of the West Indies this year. ¬†I’ll be teaching the MSc. course in Cloud Technologies. ¬†This year, I’ll be working along with Alysia Huggins. She’ll be bringing expertise in distributed systems to the course, but not just that, some very cool approaches.

  • We’re looking to have more interaction from professionals, so there’ll be in-class Skyping, interviews and assignments that require our students to get out and look around at what’s happening in the region ’round Cloud Technologies.

Their first assignment will be to take a look at IaaS and start to answer the question, “Is the West Indies¬†ready for building/deploying it’s own IaaS services”?

Cloud Technologies

Recently¬†worked with Dr. Patrick Hosein to help deliver the University of the West Indies’ first ever Cloud Technologies course – it’s part of their MSc in Computer Science programme.

It was a challenging engagement that allowed us to help the students navigate how to get started with the Cloud. We had a good spread of concerns in the class, too. Students were software developers, involved in management and service delivery of IT services, researchers and lecturers.

We basically started with a definition – the NIST definition – of what Cloud computing is and built on that with examples, assignments, case studies and projects.

The NIST definition of a cloud service is:

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.

At the end of the course, the students needed to build projects that demonstrated their understanding of what a Cloud Service is.  We saw projects that featured:

  • Employee Task¬†Tracking
  • Academic Course Management
  • Transport Ticketing Service
  • Vehicle Tracking Service
  • Health Data Management

All developed as Cloud Services. Most were challenged around the metering aspects and ideas that leveraged services other than exclusively web-based technologies were at a minimum.  However, they seemed to get that a implementing a Cloud Service has a number of considerations that go beyond just making software execute a core task remotely.

Most of the students utilized Microsoft Azure, as this was the primary platform we used for the course. ¬†Azure was a good fit for us as they made it very easy for students to get on and interact with the platform – via Microsoft’s Azure Academic Pass. This pass gave students access to almost all of Azure – Storage, SQL, Machine Learning & Hadoop. ¬†And any issues were sorted with a short email exchange.

Thus, as a first course, there are things we¬†will have to improve on, but it definitely was a good experience and I’ll look out for more of those in the future.