In general, 'governance' means establishing and enforcing how people and solutions work together to achieve organizational objectives. In the context of SOA, SOA governance guides the development of reusable services, establishing how services will be designed and developed and how those services will change over time. It establishes agreements between the providers of services and the consumers of those services, telling the consumers what they can expect and the providers what they're obligated to provide. In SOA Governance there are two types of governance that are in common use:
Design-time governance - defining and controlling the service creations, design, and implementation of service policies
Run-time governance - the ability to enforce service policies during execution
So, what does governance in MindMajix Microservices Training context really mean? In microservices architecture, the microservices are built as fully independent and decoupled services with the variety of technologies and platforms. So, there is no need of defining a common standard for services designing and development. So, we can summarize the decentralized governance capabilities of Microservices as follows:
In microservices architecture, there is no requirement to have centralized design-time governance.
Microservices can make their own decisions about its design and implementation.
Microservices architecture fosters the sharing of common/reusable services.
Some of the run-time governances aspects such as SLAs, throttling, monitoring, common security requirements and service discovery may be implemented at API-GW level.