The  microservice architectural style structures an application as a collection of services. These services are often large, monolithic applications that are broken into smaller services. Additionally, microservices are:

  • Highly maintainable and testable.
  • Loosely coupled.
  • Independently deployable.
  • Organized around business capabilities.
  • Typically owned by a small team, which enables the rapid, frequent, and reliable delivery of large, complex applications and lets organizations evolve their technology stacks.

In this article, we discuss the advantages of the microservice architecture and look at a travel booking application that illustrates how to develop applications using various microservices.

Note: If you like the discussion in this article, check out the  Bee Travels session at Red Hat Summit, where we’ll dive into developing and deploying microservices using Bee Travels.

Why develop with microservices?

There are many benefits to developing applications with microservices:

  • They act independently. Microservices are applications that are separated into a collection of small, independently deployable services. Because microservices are designed to act independently, they are naturally consistent with agile principles that promote end-to-end team ownership.
  • They simplify deployment. Each microservice is built and aligned around a feature to reduce the complexity of the application change-management process. Because each service is individually changed, tested, and deployed without affecting other services, deployment is accelerated.
  • They improve application quality. Because microservices enable a “divide-and-conquer” approach, both functional and performance testing are easier with microservices than they are with monolithic applications. Microservices architecture lends itself to test-driven development, as components can be tested in isolation and combined with a full or virtualized set of microservices. This approach results in overall improvement in application quality.
  • They’re easier to scale. Teams can more efficiently scale applications by scaling individual services based on how critical they are to the overall application, throughput, memory, and CPU load.

Now that we’ve explored the overall concept of microservices and their advantages, let’s dive into a sample application that uses them!

#microservices

Bee Travels: A Microservices Coding Adventure
1.35 GEEK