Microservices as a Model for Modularization
--
Microservices architecture is a software design methodology that creates and connects applications as “suites of independently deployable services.” (Source)
Understanding this model can help us better picture what a modularized university could look like.
In much of the same way that technology will mirror nature as it develops (biomimicry), so business models will come to model the very technology that disrupted them.
How Microservices Work
Computer science is more of an interest than an area of expertise, so I will defer to the experts for this section. One resource I found extremely helpful was this video by Gaurav Sen, a systems design expert and former software engineer at Uber.
I will summarize its major points below.
The two dominant software architectures are monolith and microservices. But, in order to make this easier to write about, let’s talk about this in terms of food.
In my understanding, a monolith structure resembles a crockpot meal. One takes all of the different ingredients and puts them together in the same machine (crockpot = computer server).
Crockpots are a great solution when you have a limited team (i.e., not dozens of cooks/programmers), when the meal/program is meant to be simple, and the individual pieces/ingredients work well together.
Microservices are more like a potluck. Each piece/dish is managed by a separate team/cook. Potlucks are excellent because everyone’s individual workload is less, yet the final product ends up being more than the sum of its parts.
Individuals produce a niche product and, ideally, perfect it over time.
If any single person forgets a dish, or it turns out not to taste great, the potluck can still succeed because there is no one single point of failure.
It’s incredibly easy to add or subtract dishes at any point in time.