The most popular and comprehensive Open Source ECM platform
Breaking something big down into smaller easier-to-manage components is a best-practice design technique that applies to many disciplines, especially software engineering. The idea’s not necessarily new, but it is at the heart of a design approach being promoted recently called Microservices.
Instead of building a mammoth monolith of code, microservices encapsulates features and capabilities into an army of interchangeable services. With this architecture, upgrades and maintenance are typically simpler and often development time is shorter. The design technique plays off of ideas from object-oriented (OO) programming and technologies like Service Oriented Architectures (SOA).
Microservices compartmentalize and componetize. Applications using microservices are built up from the building blocks of service groups, and each of these blocks comes with a well-defined API.
Benefits of the microservices approach 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
Martin Fowler says of Microservices that “we do not claim that the microservice style is novel or innovative, its roots go back at least to the design principles of Unix. But we do think that not enough people consider a microservice architecture and that many software developments would be better off if they used it.”