Application Modernization and Rabbits
Do you want to know what rabbits have to do with app modernization? Let me explain. There are more similarities between microservices and rabbits than you think.
Join the DZone community and get the full member experience.Join For Free
If this article is too long for you, you can also watch the 1:40 min video at the bottom of the page.
Earlier this year I got my children two rabbits. I never wanted to have pets, but this year I thought it was a good distraction and I knew my kids would enjoy it.
The two rabbits were supposed to be females, but as it turned out they were not. All of a sudden, we had seven additional baby rabbits.
The original cage became too small.
So we had to build a new set of hutches. In order to be flexible, we connected several hutches with pathways. The pathways can be closed so that, for example, male rabbits can be separated from female rabbits.
The hutches are similar to loosely coupled microservices. You can use them independently from other hutches. The pathways are like network traffic which can be controlled via Kubernetes and Istio. In the next picture, the microservices are marked in red and the pathways are blue.
I explained the Reasons why Enterprises should modernize Applications in an earlier blog. Essentially it boils down to three points:
- More Agility
- Better Experience
- Reduced Costs
With the new structure, we can be more agile and adopt faster to new situations. For example, when I need to repair one of these hutches, the rabbits can continue moving around. Similarly, in a microservices application, if you need to fix or improve one of your microservices, you can replace it while your application continues to run.
My ‘end users’ are having a much better and faster experience with this modernized structure. There’s a petting zoo, which means they can play with the rabbits at the same time without having to wait for their turn. Similarly, your end users will appreciate better experiences built via modern web or mobile technologies, since it makes them more productive.
My children promised me to help more with the rabbits if we can keep all of them, which means less work for me. Similarly, modern cloud-native architectures save costs. Containers are usually more efficient than virtual machines and require less resources. Additionally, when all enterprise applications run on container platforms like Kubernetes or OpenShift, they can be managed consistently. Everything is a container, no matter what programming languages and application stacks are used, and this makes operations easier.
Published at DZone with permission of Niklas Heidloff, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.