Long time ago, I was studying at Imperial College and took a course on Advanced Computer Architecture.
First day of the course, the prof gave us some C code that multiplied randomly generated matrices of a given size.
Rest of the semester, we would compile the code (with interesting flags), run it under a loop (with increasing size) on random machines and then try to deduce the architecture features of the machine by looking at the run-time chart.
We didn't look at many block diagrams but we learned a lot and we had a lot of fun.
---
In 2019, we decided to run a Kubernetes workshop in PyConUK, and thought it would be fun to try and follow the same principle as that course.
This is a writeup for that workshop.
It was very well received and so we thought that we should publish it as a tutorial - which is easier said than done. We have been working on it off-and-on for the past year or so. Please give it a read, tell us how we can improve it and see if you also enjoy learning by tinkering :)
The only 2 valid reasons I have come across for using microservices based system architecture:
1) There is a codepath in the application that has radically different load characteristics.
2) We want to give each team in the organisation ownership of (most of) their stack, release cadence, SRE etc.
(2) seems like an attempt at engineering but is often about management - empowering the teams yada yada.
There is a thread here about: "Technology opinion-sphere is a FAANG monopoly" aka "Dude, we got like 3 paying customers!". I'll leave that for another day.
First day of the course, the prof gave us some C code that multiplied randomly generated matrices of a given size.
Rest of the semester, we would compile the code (with interesting flags), run it under a loop (with increasing size) on random machines and then try to deduce the architecture features of the machine by looking at the run-time chart.
We didn't look at many block diagrams but we learned a lot and we had a lot of fun.
---
In 2019, we decided to run a Kubernetes workshop in PyConUK, and thought it would be fun to try and follow the same principle as that course.
This is a writeup for that workshop.
It was very well received and so we thought that we should publish it as a tutorial - which is easier said than done. We have been working on it off-and-on for the past year or so. Please give it a read, tell us how we can improve it and see if you also enjoy learning by tinkering :)