In the past couple of years microservice architectures have risen to prominence. Leading technology organizations, from Netflix to Facebook, are using microservice architectures to ensure they have the flexibility and nimbleness to rapidly adapt and respond to their customers. Already in 2015, research from Gartner found that 68% of organizations were using or investigating microservices. This rise in prominence reflects the shift to smaller lightweight applications, from large, code-heavy applications (or monoliths as they are commonly referred to) which were the norm just a few years ago.
Application architects are no doubt already familiar with microservices, but here we want to examine them from the perspective of a business executive. What are they, and what do they mean for your business?
Software applications play a key role at the heart of today’s businesses – they define how your organization interacts with, and engages with customers. Due to the importance of certain applications to your business, it is likely that you have dedicated significant resources to your development team, and the team is working on deploying features and functionality to the application on a regular basis. The challenge with this very typical approach is that the application will quickly grow in size and complexity.
So if there is a problem, or a new feature does not work as you expect, then trying to diagnose and find the problem can be tough when applications start consisting of thousands of lines of code. Which part of the code of this increasingly complex application is causing the problem? As a result, you then spend significant time and resources trying to fix it, which has a knock-on impact on future releases. Before you know it, you’re constantly fighting fires rather than implementing the new services, features, and innovation that your customers want.
Without going into the technical detail, we can think of microservices as a modern, smaller software architecture, where the full application is put together using smaller independent parts. These different services then communicate via APIs. This means typically you don’t need much, if any, middleware. Sam Newman, the author of Building Microservices, describes them simply as “small autonomous services that work together”. Josh Evans, former Director of Engineering at Netflix, uses the analogy of organs in a human body – that each organ has a purpose, and then those organs form a system, and ultimately you have a human body. Taking that analogy further, if there is a problem with an organ, your liver for example, it is easier to fix just a small part or have a liver transplant, than heal your entire body.
While getting a grip on the complexity of today’s applications is a major reason for implementing a microservice architecture, they also have a variety of other benefits. These include:
Microservice architectures are complex, and many organizations struggle when trying to get started with them. If your organization is not already familiar with, or using, techniques such as Agile development methodologies, DevOps, and automation, then be hesitant about going directly to microservices. Those organizations already familiar with them will find the transition much easier, because:
The three options for deploying microservices are server-based, using containers, and finally serverless architectures. Within these three options, there is currently a fascinating debate between containers and serverless architectures, which we will explore more deeply shortly.
From a business perspective it is important to understand at a high level what are some of the key pros and cons of the different approaches to deploying microservices. When making the decision, ultimately you want to be able to deploy quickly and cost effectively. Let’s examine briefly what they are, and their pros and cons.
Microservices represent a fundamental shift in technology and the options that are available to you. This is why business executives are exploring their potential and how they can impact the services they deliver to customers. While software architecture can be an intimidating topic for non-technical individuals, software applications now lie at the heart of your business. Their performance, resiliency, and nimbleness directly translates to business metrics such as customer satisfaction, and ultimately revenue. This is why winning companies like Nike, Netflix, and Amazon, are rapidly moving to microservices architecture.