Patterns for Cloud Computing Software Development

 

Our text today came from the Cloud Architecture Patterns from Microsoft. This was our first class on cloud architecture and so we spent time looking at several popular patterns, including,

Circuit Breaker

I called back to that night I built a website for tracking the St. Joseph By-election in 2015 and how I could have used this on the client side when things became too intense for the database server.

Compensating Transaction

The writing on this is great, but Clemens Vasters explanation of  Sagas really brought this home to the class.

Competing Consumers Pattern

This is one of the patterns we’ve used a lot for our messaging solutions at Teleios, so it was easy to walk through and talk about messaging demos featuring it with the class.

Compute Resource Consolidation Pattern

I used this pattern to start the discussion on how containers are a great way of consolidating a set of compute-based activities. From the patterns guide, there was a great example though of the need for care to ensure that the right kinds of tasks are consolidated. Tasks with dissimilar characteristics can reduce the efficiency gained from pursuing consolidation.

In talking about this pattern, this amazing quote was uttered in class:

The next assignment is based on Event Sourcing and Materialized Views, where students have to come up with a scenario that features the use of ES and MV and then build a demo that explores their chosen scenario.

It was also cool to see the call back from our big data class last week because I highlighted that Apache’s HBase might be a good data store for building a solution involving Event Sourcing.  There’s also a great article talking about the Command & Query Responsibility Separation pattern in the context of Event Sourcing, too.

 

 

Advertisements

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.

Cloud Technologies – 2017. Ready, class 1

Started back with the UWI Cloud Technologies course today. This class was an Introduction to Cloud generally, with some conversation about the course outline and expectations for assignments.

We still in the process of confirming the course outline, so I’ll share that next week. But I used the slides from the technical resources provided by the Azure Computer Science module on cloud technology.

On my way to class I met up with Naresh who runs the UWI’s Department of Computing and Information Technology servers. He gave me a quick tour of their deployment. I’m looking forward to him sharing some stories from setting up that environment in our IaaS classes in a few weeks.

Recommended reading for today’s class is Consumption Economics: The New Rules of Tech

Stormy Weather and Nurse Carter

Just a small note to say I’ve added in to Nurse Carter the ability to provide information about shelters and emergency contact numbers.

Of course, there’s a wider story around this. About #OpenData and being able to leverage that for future needs. But I won’t go in to that now.

I did some scrounging around online, found the PDFs and stored them on github in case the Office of Disaster Preparedness and Management’s site goes down during build up to a hurricane again.  And that’s about it.

Time For Water: The bot edition.

Back in 2013, I built a small site that took some data that the Water and Sewage Authority released (@wasatnt on Twitter) and remixed it, to make it easier to consume.

Recently, @wasatnt released a document detailing the current distribution schedule in this dry season, 2017.  It’s a PDF doc, listing the data for all regions in Trinidad and Tobago. Hundreds of rows, I discovered.

It seemed  like a good idea to build a simple bot to provide information about service at a particular area. So, I did. Listed below are some  of the steps it took from prepping the data to working prototype.

  • Get the data
    • It’s a PDF, so this means downloading and then converting.
    • I converted using https://smallpdf.com/pdf-to-excel
  • Clean the data
    • Small PDF gave me an excel workbook with 15 worksheets
    • All the worksheets contained merged cells, so I un-merged them.
    • Delete unnecessary columns
    • Then, I duplicated the row data so that every row could stand on it’s own. That’s important for the look-ups I’ll do later on.
  • Convert the data
  • Finally, I was able to build a bot, Time For Water, that would respond to messages with look-ups of the data in the original schedule.

Forum on the Internet of Things: Smarter Living in the Caribbean

On April 24, I had the opportunity to be a panelist, presenting a project I built for my MSc final submission.

This was at the ITU’s Forum on IoT, held at the Trinidad and Tobago Parliament building.

My solution that demonstrated the use of RFID for collecting traffic data and using cloud computing to process and communicate that data.

While preparing the presentation I was asked to explore what elements may need to exist to create an “An Enabling Ecosystem for IoT use and monetisation”.

It was such a good opportunity to explore this idea. In researching that very thing, I found, “Understanding business ecosystem using a 6C framework in Internet-of-Things-based sectors”. A great paper that helped me contextualize the work I did, along with the challenges and opportunities that came after.

The actual presentation can be found here.

Beyond​ just presenting, the forum proved a good place to meet up real practitioners. From Fasove and their boat monitoring device, to Ancel Bhagwandeen and the work he’s done with restoring automobile batteries, to the recently-graduated University students making waves with company after company.

Some good connections were made and I look forward to following up with them soon.

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.