As a hot topic nowadays, microservices architecture has been examined from a variety of viewpoints in a wide range of publications. As analogy is the core of cognition, and as cooking forms an integral part of our lives, this is the first post in a blog series that will discuss certain issues and problems of microservices architecture by analogy with cooking. Find out how a kitchen trainee could help an IT professional in understanding and developing a microservices architecture.
Before we head into the kitchen, however, it’s worth mentioning why microservices architecture is a relevant concept in the world of NNG. It can be used throughout many different areas of the IT industry, and it has a large impact on our workings in the automotive sector. But, the good news is that the concepts and themes are pretty universal, so they can apply to companies working in many different areas!
Presumably, you know what finger food is. Imagine a variety of small—a mouthful of—food items, normally with a stick in the middle, piled on a platter. Sometimes you can see very spectacular party food platters, a testimony of great creativity. The snacks are artistically arranged on the platter. For example, a line of cheese rolls, meatballs, bacon-wrapped potatoes, etc. If the colours are matched and the snacks are geometrically arranged, the gastronomic delight may be preceded by aesthetic pleasure.
What is the problem with these food platters? Absolutely nothing! They are beautiful, varied, designed to meet everybody’s needs and desires … until the guests start to eat. What happens then? Some of the snacks are more popular than the others. This causes two kinds of problems. It means the end of the aesthetic pleasure, on the one hand. To give continuous aesthetic pleasure, the waiter has to replace the platter. On the other hand, you can provide better service if you serve more platters, however, it implies an increased number of the less popular snacks on the table.
You may notice that only a few people prefer the honey-rosemary-wood ear mushroom bites. Moreover, owing to the high temperature in the room, the honey starts to run down the sides, thus spoiling the aesthetic pleasure as well. Well, this is when you have to redesign the platter, replace the honey-rosemary-wood ear mushroom bites somehow, and serve the new platters. The personnel faces similar challenges if the pumpkin seeds used for the raspberry-cheese-pumpkin seed crostinis are not delivered in time. In this case, either the serving is delayed, thus making the guests wait for a while, or the platters are arranged without the raspberry-cheese-pumpkin seed crostinis, and as soon as the pumpkin seeds arrive, the platters need to be redesigned and new ones have to be served, while the previous ones have to be taken back.
Furthermore, the chef may be so flexible that he is ready to make a new kind of snack upon the guests’ ad hoc request. Serving this new type of finger food also requires the redesigning and re-serving of the platters.
What if we put only one type of snack on one platter? Well, yes, it won’t give the same aesthetic pleasure. This is true, however, neatly arranging the food platters with the same type of snack can also bring some pleasure for the eyes. Not to mention the fact that aesthetic pleasure is probably second to gastronomic delight at a party.
What are the benefits if we put only one type of snack on one platter? If one type is more popular and runs out, you’ll only have to serve a new platter with the given snack. To provide a better service, you can also serve more of the most popular snacks. You can replace the platter with honey-rosemary-wood ear mushroom bites with something else. The delay in the service of the raspberry-cheese-pumpkin seed crostinis won’t be a problem: You place the other platters on the table, and the guests can help themselves right away. If the chef thinks of a new type of finger food, it can be served immediately, you don’t have to wait to serve it with the others.
Moreover, if the guests have a big appetite, the cooks can independently work on the various platters. Additionally, the platters containing special snacks can be prepared by specialists. That is, not each of the cooks has to know how to make sushi.
As was already mentioned, these same ideas translate well into our main topic.
- Microservices architecture can solve scalability problems. You don’t have to scale the whole system, scaling the critical services is enough.
- Microservices architecture provides a shorter time to market. If you fix a bug or develop a new feature, you don’t have to test and release the whole system again; developing, testing, and releasing a new version of the microservice(s) playing a role in the implementation of the fixed or new feature is perfectly enough.
- With microservices architecture, the development will also become scalable. Multiple teams, even with different competencies, can work on the same system independently.
Hopefully, you have got the hang of microservices architecture or, at least, raspberry-cheese-pumpkin seed crostinis. Enjoy your meal!