The advantages of Microservices with Spring Boot

Josh Long is a very knowledgeable person to hear talk about Spring.  He has published a few books on Spring and is a committer on several Spring projects.  Having watch recordings with Josh before I thought it would be good to check out his presentation entitled, “Building “Bootiful” Microservices with Spring Boot.”  He has a good sense of humor and even his title is trying to give us a grin.

Microservices vs Monolithic

Josh begins by starting out this presentation detailing the Microservices vs Monolithic conversation that has been going on for many years.  He shows us an email from 1992 from Ken Thompson discussing this very issue in regards to Linux.  Josh points out some of the issues we see when we have a monolithic architecture.  We add on another layer and we increase the complexity of the project.  As I have been a developer for fifteen years I have seen some large codebases that will confuse the most adept programmer.  Another issue is the code “on-ramp” or learning curve can be quite steep and we can be unsure where to start our work for a modification.

Elegant approach to use Microservices

One of the benefits of using the Microservices approach is to have single focused loosely coupled tools that can scale better.  One example Josh cites is Netflix, that  uses Spring Boot extensively.  He also described how Netflix has collaborated on Spring Boot to improve many aspects of it.  He also suggest we can take our monolithic applications and “tease out” microservice applications.  Josh talks about how Ticketmaster has leveraged this Microservice design to give them what Rod Barlow a senior technologist calls, “Boardroom agility or the process of quickly reacting to the marketplace.”  This design approach has come to be a competitive advantage.

Key Characteristics of Microservices systems

Some of the other advantages or key characteristics of microservice systems are that they are easy to deploy and easy to scale.  This gives the developers a low barrier to make changes and modifications.  These smaller applications also enable a new developer to come up to speed quickly instead of spending time reading through lots of code.  Josh uses an example of the body in describing this approach on how we can get a pin prick but the body degrades gracefully by bleeding a little and then it clots.  Josh described it this way,”The human body doesn’t blue screen after one pin prick.”

Choreographed vs Orchestrated

One interesting point that Josh brought up was the concept of the Netflix Chaos monkey that tries to wreak havoc on their production system.  The continually test the system to ensure it can handle many different types of challenges.  One part of me admires this and another part is very concerned to see this.  Josh shared a description from Matt Stine about Microservice systems compared to choreographed ballet where all the dancers move around the stage but make modifications if someone is out of place.  This different than the orchestra that is under the guidance of the conductor.  A true hallmark of good design, according to Josh is that there is no single point of failure.
Check out the rest of the presentation where Josh goes into how to use Spring Boot to enable the Microservice architecture.


No comments yet.

Leave a Reply

Powered by WordPress. Designed by Woo Themes