What are microservices?
Microservices are all the rage at the moment, and with good reason.
It’s an approach to software engineering where rather than having one large program, you build lots of little programs responsible for a certain task (microservices). These microservices interact with each other in order to fulfill more complex tasks.
What is biomimicry?
Biomimicry has gained widespread recognition amongst hardware engineers. It’s about looking at the solutions that mother nature has developed, and adopting them in physical products. This approach can lead to more efficient and sustainable solutions than would otherwise be the case. An example is developing swimsuits with the same texture as shark skin, to reduce friction.
You don’t hear about biomimicry as much in software engineering, but there are many parallels to microservices in the natural world.
Biomimicry and microservices
At a fundamental level, the human body is a collection of microservices.
Cells are the basic building block of living things. Each cell does something quite simple, and they interact with each other to complete more complex tasks. There is no ‘super cell’ which does everything.
The human body has countless numbers of the same type of cell, performing the same function. It regenerates by creating new cells as old ones die. If any one cell dies, it doesn’t mean that the organism as a whole will fail.
There are many parallels to this in microservices (in frameworks like Kubernetes). Rolling updates can be applied to replace old microservices with newer ones. And if a microservice stops functioning, it can be destroyed and replaced by a new, healthy one.
When a human body responds to strain, it does so by adding muscle mass in the relevant area. If you’re using your forearm muscles all the time, these will bulk up. The same can be said with microservices. You can increase the number of them, if they’re being used all the time, and reduce the ones that are being used less often.
Truly robust systems
You can see from these examples that microservices, especially when deployed in a framework like Kubernetes, results in highly robust systems which mirrors effective solutions in nature.
It isn’t just a buzz word, or the latest fad - it’s the future of software engineering.