The most popular and comprehensive Open Source ECM platform
Microservices: The Rise of the Minimal Component Architecture
Microservices are lightweight fine-grained services that can be deployed with middleware or brokers. The idea behind the approach has been around for some time, but a convergence of technologies, like the cloud, containers and REST/JSON services is making the approach more possible to achieve. Rather than build monolithic applications using “big balls of mud with tangled spaghetti code“, a microservice architecture builds many small and focused components that can easily communicate with each other.
Owen Garrett, head of product for Nginx, recently described how Amazon is using microservices. “When you go to Amazon.com and type in Nike shoe, over 170 individual applications get triggered potentially from that search — everything from pricing to images of the shoes to reviews of the shoes to recommendations of other products you may want to purchase. Each of those were individual services or subfeatures, if you like, of an application or an overarching experience, and all those were connected via HTTP. Each might be built in different languages. Each of those may have different requirements in terms of the data store, in terms of scaling and automation. Those were the attributes that we saw that were the fundamental anatomy of microservices architecture.”
Benefits of the microservices approach include scalability, agility, and greater resilience. More specifically, microservice benefits include:
- Individual components have simpler architecture and design
- Each component can be built using the right tools and language for the task
- The design promotes loose coupling and easier maintenance
- Promoted distributed independent parallel product development
- Works well alongside new technologies, like Docker
Eric Knorr, writer at InfoWorld, wrote that “the payoff [of microservices] is manifold: Services can be updated individually, new applications can be built quickly from existing services, and management actually has greater visibility into who is responsible for what.”