One of the biggest technology trends in 2017 and 2018 was the movement toward microservices architecture, in which complex applications can be broken down into small, independent processes that communicate with each other using standard APIs. The trend is expected to continue through 2020 and shows no signs of abating, as more and more companies seek to be as agile as possible in their development and delivery.
What Are Microservices?
In computing, microservices are small building blocks that focus on doing a single small task, thus enabling a modular approach to system-building. Each component is continuously developed and separately maintained, and the application is the sum of its basic components. By contrast, traditional, monolithic applications are developed all at once, in a single piece.
Benefits of Microservices
Microservices allow companies to deliver new capabilities more quickly and efficiently to customers—both businesses and consumers—through all digital channels. Individual components or discrete pieces of a larger solution can be replaced without affecting the entire application, and new components can be added without having to rewrite the whole system. When one microservice fails, it does not bring down the whole application, thereby increasing resiliency.
As noted by Opensource.com and QAT Global, microservices have other benefits, too, including:
- Scalability. Smaller components use fewer resources and can be scaled as demand increases.
- Lifecycle automation. Individual components fit more easily into continuous delivery pipelines and complex deployment scenarios that are not feasible with monoliths.
- Developer independence. With microservices, small teams work in parallel and can iterate faster than larger teams.
- Relationship to the business. Microservice architectures are typically distributed along business domain boundaries.
- Localized complexity. The development team for each microservice is only concerned with understanding the complexities of their service. Other teams only need to know what capabilities the other services provide; they don’t need to know how those services work internally.
- Cross-cutting business functionality. The use of microservices obviates the need to build standard pieces of functionality used across the organization multiple times.
- Output flexibility. Because data can be extracted more simply for various end-users, microservices makes data customization much easier.
- Best-of-breed technology use. When a large application’s functions are broken up into microservices, a development project is no longer limited to a single technology set. Each service can be developed using the best programming language and data storage technology for its function.
- Outsourcing flexibility. Microservices allows the business to outsource their non-core business functions without compromising the intellectual property within their core services.
- Higher quality. By breaking a large application into components by business capability, development teams can focus on one small set of functionalities at a time, thereby enabling more precise coding and testing of individual services.
Is Traditional Architecture Outmoded?
Given all of these benefits (and more), companies are rapidly adopting microservices architecture where possible. Last fall, International Data Corporation (IDC) predicted that by 2022, “90 percent of all apps will feature microservices architectures that improve the ability to design, debug, update, and leverage third-party code.”
Microservices have already become common practice, and using them should be a critical piece of a company’s IT strategy going forward. To enable integration and interaction among businesses around the world, microservices architecture is expected to gradually replace traditional architecture.
Still, many existing applications are not conducive to microservices and cannot simply be re-architected overnight. Moreover, some experts predict that companies that have experimented with microservices may retreat toward more traditional middleware approaches when their use cases or organization cannot support the complexity and overhead that come with microservices architecture.
Microservices and traditional architecture can—and likely will—co-exist for the foreseeable future. Most organizations, then, should be prepared to work with both approaches for years to come, and their IT strategies should reflect this reality.