While some of its benefits go back to development practices as old as Unix, the modern concept of microservices architecture originated at born-on-the-web companies in the last decade. At first, many observers were skeptical microservices could work outside of a few web-based firms. These days, companies from a wide range of industries have successfully embraced the approach.
If you’re new to microservices, you might be wondering what makes them unique. The quick explanation is that developers build applications by putting together smaller, independent pieces of software, each with a specific purpose. These smaller services are aptly named microservices.
The development world’s push toward more fine-grained components can also apply to integration. Integration between applications can be more agile, too, with agile integration architecture (AIA).
Before exploring integration, first, it’s important to understand microservices. Microservices contrast with the monolithic application architectures traditionally used in most enterprise software.
Here are four benefits that make microservices so attractive to today’s development teams:
Productivity. Building software as independent services means teams can autonomously work on different pieces without waiting on one another for connected software. Testing is also much faster because each component can be tested independently. All of this means fewer coordination headaches and better productivity.
Organizational advantages. Building an application as a set of smaller, discrete pieces enables teams to have much more clearly defined goals, and, as a result, better focus on the business objectives. With microservices, each team will work autonomously on a functional service that is a lot like a miniature product. This is very different from the dependent projects and so-called “glue code” that teams would work on with more traditional architecture. Microservices are ideally suited to agile organizational structures and methodologies.
Maintenance advantages. In a monolithic application, changing any service can have major implications for the entire application since the boundaries between components are less strict. Microservices allow teams to fix a single service at a time without diving into the entire application. Not only does this make maintenance much easier, but it also means teams can reuse some of the same services in multiple applications.
Technology flexibility. Since each service is separated from the rest of the application, developers are free to use whichever language or technology works best. While it is possible to use multiple languages in a monolithic application, it is much easier with microservices.
These are only some of the many potential benefits of microservices architecture. It should be clear how these same benefits would be powerful in the integration space, too. Imagine, for example, if you could break up your existing centralized enterprise service bus (ESB) pattern.