I spent a half day with a very engaging speaker, Chris Richardson in his session “Introduction to Microservices”. I found the tutorial very useful because I have seen the challenges he discussed at our clients. I was at one of our healthcare clients, managing a team focused on the automation of test data. Other Perficient teams were responsible for the Enterprise Service Bus architecture and deployment and web development. One of the client’s challenges was the demands from the business, especially around new mobile features for their over 10 million members. The client found itself in the situation described by Chris, a series of monolithic applications that had grown to the point that each release required longer and longer QA testing.
Like all good speakers, Chris discussed where a microservices approach was useful as opposed to making a blanket statement that companies should adopt microservices. Chris discussed microservices in the context of the Gartner Hype curve and added his own corollary, the Rock/Suck dichotomy. The idea that too many discussions in technology break down along the lines of “my technology rocks and you should adopt it, in part because the technology you are using sucks”. Chris’ position is that microservices are following the hype curve but there are situations where companies will get great value. I also appreciated that although Chris has experience and knowledge about microservices, he stayed away from the dichotomy.
Chris described the process of determining when to adopt microservices and various approaches. Chris also detailed challenges to the microservices approach that monolithic development doesn’t have. As he pointed out, the worst situation is when an application has gotten too large but you don’t have the time to refactor the code. The phrase he used was marching to monolithic hell, which does not seem pleasant. Other areas that he discussed were challenges as applications are deployed at scale and approaches to ensuring that instances of a microservice was discoverable and useable, since we all live in a cloud elastic environment, whether your cloud is a private virtualized environment or Docker in the public cloud.
I also appreciated Chris’ approach of guiding the audience versus telling the audience. Unless I am learning to change a bicycle flat or other very specific task, I appreciate this style.
Chris also used real life examples such as Amazon and Netflix which have adopted a microservices approach. If you think a microservices approach might benefit you, I encourage you to look at Chris’ website. Even if you don’t see an immediate need, microservices are likely being used in consumer sites you frequent.