Although technology is an important enabler of microservices, it’s not the defining characteristic. Microservices is primarily about building small, cross-functional teams that expose one granular piece of business functionality to the enterprise. Each team, in its own self-interest, will naturally pick the best technology to build its own microservice. This is referred to as inner architecture because its scope is the inner-workings of a single microservice.
Technically speaking, most of what’s in the microservices technology ecosystem is not actually necessary to implement microservices. You could implement microservices by using any technology stack. Again, microservices is more about organization structure than any particular technology. Technology is valuable because it helps operationalize microservices at scale. A proper monitoring system will allow you to identify microservices, versions, and instances that are causing problems.
Almost all of the software used for both inner and outer architecture is open source. Microservices arose from the hacker community. The traditional software vendors have been too slow to produce relevant products in this space. Cloud vendors offer some support, but both inner and outer stacks are often composed of various open source products.
Most technology procurement in enterprises is centralized. The CIO will pick one database, programming language, runtime, or whatever, and force everyone within the organization ...