Dirt. Mud. Progress.

Jesus was born in a manger, so I cannot be too sour that to register the birth of my child I have to stand up under a tent in the rain.

Waiting in rain.

So, under that tent, ducking the wet seats, were a few parents. The instructions we received were to book an appointment at the site to register the fact that a new player had entered humanity.

Registering on the site to me was a breeze. No really, I felt the breeze blowing on my verandah in the comfort of my home when I filled in my details and promptly got a date to turn up. It felt easy. Maybe too easy.

Indeed, no tents or mud was mentioned.

When the day came, I wended my way around the Port of Spain General Hospital to arrive at the location in the appointment.

I know where the Blood Bank is located. When I saw “Blood Bank Compound”, I interpreted that to mean that the registrars were sharing the facility of the Blood Bank. Same building, maybe with their own office. The Bank is a small building, so I was curious as to the lay of the land in there.

Walking up to the guard, he seemed to sense that I was going in the wrong direction.

“Going to give blood?”

“Na, I -,”

“Oh, you’re Blood Bank staff.”

“No, I’m here to register a birth”

He spun me around with a nod of his head. He was confusing me while giving me direction. The area he pointed behind me was the carpark. But in that carpark was a nondescript shipping container. A big box. In that big box were the registrars for births.

A different breeze started to blow.

I stiffly walked over to the box, er container, and began the process. Very soon in to the interaction, I was made to understand that though I followed the guidelines on the registration site, I was still underprepared. I needed to go back home.

When I returned, the breeze became a Port of Spain storm. A Port of Spain storm is not a real storm. But the flash flooding, garbage flow and general concern for your car is as real as going through any actual storm.

And we waited in the tent for our names to be called.

While I was waiting, all documents in check, I was just about to check out, that is, while away the time on TikTok. What stopped me was a couple that walked into the tent, looking more confused than me. They asked to no one really about the process. A lady with a latin accent explained it to them. You have to register on “the website” to be able receive service.

The website. These days, there’s always a website. Few know about it, and as I was about to learn, even fewer can actually use it.

The couple were a bit put off. The wife of the pair said she had tried the website but it didn’t work. There was no crowd waiting to be dealt with so we all thought, they might have had a chance to get through.

The did not get through. The staff told them they needed to make an appointment on, you guessed it, the website. I knew what the site was, had a relatively straightforward process using it and was ready to scroll silently when it hit me, the couple might need help.

I offered to walk them through it and as is often the case, looking through the eyes of the end user saw things that you never see as a developer or denizen of these kinds of systems.

Sharing the good news…

The carousel was a bad design choice here. The site rendered well on mobile, but was too dense. Sign up and Login are sometimes confusing steps for users. Forget your password should not work if you don’t have an account. A really important question for when you’re dealing with a broad class of users is “How can someone struggle to complete this step? How can they get unstuck?” Essentially, how do we get users back on the happy path?

Getting them to get an appointment took much longer than I anticipated. And yet, because they could probably sense my own confidence, and were motivated to finish, the process did not feel frustrating. It felt like we were on a hike, maybe through the dirt and some mud, but we were definitely going somewhere and our destination would be rewarding.

And rewarded they were with a fresh appointment for two days from today. They knew they had to come back, but they were sure that they would not be turned away again.

So, my own visit resulted in more registrations than I planned. It’s normal to go through a range of service delivery challenges, especially with government services, but my own frustrations fell away when I saw that a more fundamental access problem existed. That turned my negative experience into a positive one for a new family.

Cloud teaching

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.

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.

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.


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

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.