Almost twenty years ago, IDesign's Juval Lowy identified the potential of microservices. His vision for "every class as a service" was ahead of its time, and yet the advantages of pushing the benefits of service-orientation to the lowest level of your system remain now as relevant as ever. IDesign has also created a set of tools (such as the in-proc factory) that enable you to mimic the programming model of regular classes, while utilizing services. This allows you to leverage microservices without the ownership overhead of regular, system-size services. The IDesign Method for system analysis and design also clearly defines the taxonomy you need for microservices, specifically which components in the architecture should be microservices and the roles they play in your system. The IDesign Method also mechanizes the various design aspects the microservices would require, from hosting to security boundaries, transactions, notifications, instantiations and queuing. This greatly simplifies the act of introducing microservices into your architecture.
From the business perspective, a microservice architecture is a software design technique that promotes shorter release cycles and improves overall agility by leverage the modularity of a service-oriented system into well-defined units that can operate for the most part independently. This purposeful segregation of components makes microservice architectures different from traditional service-oriented approaches that often sought to express the system in its entirety through a single monolithic service. When done correctly, a microservice-oriented system can truly unlock a business’ agility. You should think of ‘micro’ in this context to suggest that a microservice is part of the whole, not tiny. The system then comes alive through the designed integration and collaboration of microservices.
The IDesign architects have used our unique service-oriented analysis and design methodology, The IDesign Method, across hundreds of projects, helping our customers conceive, design and build microservice-oriented systems. A structured and engineered approach, The IDesign Method provides teams with the consistency and repeatability they need in their microservice architecture to achieve sustainable successful delivery over the full course of a system’s lifecycle.
An important and often overlooked aspect of microservices-based architecture is the significant impact it has on the project design. Adopting modularity at a small level affects every aspect of the development process, from planning, to staffing to tracking to metrics. You have to take the highly modular nature of the many new microservices into account, and assure that each individual service is rock-solid as far as quality. This literally forces you to manage and execute each microservice as an independent micro-project, a world on its own right. Unlike traditional projects which largely follow the natural dependencies between code modules, you can design a microservices-based project using the architectural layers. This drastically simplifies the project execution and reduces overall risk and complexity.