Blog

What are Microservices? An Expert Explains

Written by Ron Reeves | Mar 23, 2017 2:03:40 PM

The term microservices has been a hot buzzword in the market for the past few years. But what exactly are microservices? We interviewed one of V-Soft's best and brightest to help understand them. 

What are Microservices?

Microservices are what they sound like: they are a specific style to build a server application as multiple smaller services versus one large one. Each microservice is designed to run its own specific process and communicate with other microservices via common protocols like HTTP or WebSockets

Microservices perform specific, end-to-end domain and business capabilities, and must be developed individually, rather than in clusters. Each microservice should have its own, independent domain data model and domain logic, but can employ unique and separate programming languages and data storage technologies, like SQL or NoSQL.

How Can Microservices Help Companies?

As applications become bigger and more complex, the challenges of maintaining control and reliability grows. This is especially true as these applications grow and span multiple divisions and departments within organizations. This organic growth can cover decades of development activities across numerous leadership and employee changes. In addition, since the state of the art is, by definition, an ever-changing dynamic, these applications are frequently built upon different frameworks, languages, databases, and versions of all of the above.

Instead of endlessly refactoring existing systems, a microservices architecture allows a high level of decoupling of various business functions and applications. This provides a mechanism for developing microservices for new or changing functions without taking on a rewrite of an entire application.  Once the approach and interfaces are defined, robust new functions can be deployed specific to the current need and the genesis of an Enterprise Service Bus can be established.

The Scalability of Microservices

Another significant benefit is the scalability and robustness that this approach enables. Since microservices are relatively small and self-contained, they can be spawned across more servers and virtual environments to be able to meet growth and peaks in demand. Along with scalability, the architecture lends itself well to a higher level of robustness and insulates the enterprise from single points of failure.

 

Other Microservices Benefits

From a development and release perspective, other important benefits accrue with this approach. Architecting fine-grained microservice applications enables continuous integration and uninterrupted development practices, and accelerates delivery of new functions into the application.

Fine-grain decomposition of applications also lets you run and test microservices in isolation, and to evolve microservices independently while maintaining rigorous contracts between them. As long as you don’t break the contracts or interfaces, you can change any microservice implementation under the hood and add new functionality without breaking the other microservices that depend on it.

In summary, microservices can benefit a company in many ways. 

  • Microservices help by providing the foundation for a much quicker development and release cycle with smaller, incremental changes released more frequently
  • Quality is improved and the process is much more robust since problems are isolated to specific services and can be more easily identified and corrected
  • Scalability is greatly improved since high demand services can be spawned on more physical or cloud infrastructure

About the Author

Ron Reeves is V-Soft Consulting's Vice President of Business Solutions and is based in the Louisville, Kentucky headquarters. He has a background in software development, even creating a successful company and platform. When he is not at work, he enjoys spending time with his family and helping his children with any school projects.

Connect with Ron on LinkedIn today.