Practical Classes

First class (16th of September)

For the first practical class you have to read the following articles, and watch the video, prior to the class:

(1) Microservices by James Lewis and Martin Fowler; 

(2) UBER system design by Narendra L

We'll discuss these articles, focusing on the differences between a monolith and a microservices architecture, and some of the qualities the software systems of Uber require. 

Important: For this first class, and the course in general, I expect that the students understand the basic layers and tiers of a enterprise application, as described in this article. If it is not the case, please, send me an email. Note that students that have attended LEIC/LETI Software Engineering course should be aware of these concepts.

Second class (23rd of September)

In this class we will discuss the UBER system design by Narendra L and How Uber Scales Their Real-Time Market Platform. Analyse the architectural elements and the qualities they provide. it is also relevant to understand what is Consistent Hashing.

Third class (30th of September)

For the third practical class, on September 30, you have to read Scalable Web Architecture and Distributed Systems by Kate Matsudaira. While reading, please, identify the software elements and their relations, the properties of both, and how they allow us to reason about the system architecturally significant requirements.

Fourth class (7th of October)

For the fourth practical class, on the 7th of October, we will analyse the Graphite case study, its qualities and what are its software elements, their relations and properties of both.

Fifth class (14th of October)

For the fifth practical class, on the 14th of October, we will write scenarios for the Graphite and High Performance Networking in Chrome case studies, and discuss which tactics are used to achieve them. Each group should prepare and present one scenario for each one of these case studies.

Sixth class (21st of October)

For the sixth practical class, on the 21st of October, we will write scenarios for the High Performance Networking in Chrome case study, and discuss which tactics are used to achieve them. Each group should prepare and present one scenario for each one of these case studies.

Seventh class (28th of October)

For the seventh practical class, on the 28th of October, we will write scenarios for the The Hadoop Distributed File System case study, and discuss which tactics are used to achieve them. Each group should prepare and present one scenario for each one of these case studies.

Eighth class (11th of November)

Discussion of Uber case studies.

Ninth class (13th of November)

Discussion of Uber case studies.

Tenth class (18th of November)

Discussion of Uber case studies.

Eleventh class (25th of November)

The DVD catalog case study: quality scenarios and their architectural views.

Twelfth class (2nd of December)

The Graphite case study: quality scenarios and their architectural views. Each group should choose two scenarios and prepare the architectural views that show how the qualities in the scenarios can be achieved by the architecture.

Thirteenth class (9th of December)

The High Performance Networking in Chrome and The Hadoop Distributed File System case studies: quality scenarios and their architectural views. Each group should choose two scenarios and prepare the architectural views that show how the qualities in the scenarios can be achieved by the architecture.

Fourteenth class (16th of December)

Each group can presents an architectural view of its case study and describe the scenarios that it fulfils.