The decision of whether to adopt microservice architecture (MSA) in an enterprise is not an all-or-nothing proposition. Depending on the nature of business, the maturity level of IT, the competency level of software engineers, all of the MSA patterns found in the pioneering companies may not be necessary or feasible.
To select appropriate MSA patterns to adopt in an enterprise, the company should think about the business goals to achieve and/or the urgent business or IT problems to solve by adopting MSA. Business drivers for adopting MSA of early adopters have been:
Fast Release Cycle: Pushing each feature in one cycle using IaaS+PaaS and DevOps automation.
Global Scalability: Automated scaling based on IaaS+PaaS.
Technological Diversity: Allowing multiple languages, development frameworks, data storage technologies, infrastructure types within an application.
Large Development Organization with Small Independent Teams: Small autonomous teams (1~10) comprised of fully empowered, competent developers independently producing microservices.
In some companies, application users or product customers don't need or want fast upgrades. Not many companies need extreme agility, global-scale scalability and technology diversity that drove the MSA patterns found in those pioneering companies. If your company doesn't really have any of the above drivers, you should step back and now think about the benefits of service-oriented architecture (SOA) in general. MSA evolved as a new style of SOA exploiting new advances in computing technologies such as IaaS, PaaS, containers, container management tools, CI/CD automation tools, API gateways, and backing services such as persistent services and messaging services, and telemetry including monitoring, logging, etc. Even if your company can't use all these new technologies enabling the emerging MSA patterns, you can still pursue benefits of SOA by selecting those SOA patterns and some of the new MSA patterns that fit your business purpose and can be handled with your current IT capabilities.
In fact, Gartner predicted that by 2019, more than 90% of organizations that investigate MSA will find the paradigm too disruptive and adopt miniservices instead. Here miniservices mean SOA services that have relaxed architectural constraints than state-of-art microservices; for example, sharing a database instead of physically owning one; using RPC or orchestration instead of choreography based on the publish-and-subscribe, event-driven messaging, etc. (Gartner, Innovation Insight for Miniservices, 2017.)
Why should you consider SOA while there are more advanced architectures like MSA, even-driven architecture, etc? SOA remains the foundation of modern application architecture. Understanding principles of SOA, its benefits, design patterns, and engineering methods to build SOA applications are all still essential to understand and implement MSA correctly. Refer to: Gartner, Where to Start (or Restart) with Service-Oriented Architecture, 2016. SOA contributes to many patterns of software business: service-oriented architecture pattern and mass customization pattern for software product business, business analysis expertise pattern and asset-based service pattern for professional IT service business, self-service pattern for cloud service business, continuous deployment pattern and partner ecosystem pattern for SaaS business, IoT reference architecture pattern, pace-layered application architecture pattern and system of systems pattern for digital business. SOA is also a critical factor in business analysis as mentioned in domain & engineering expertise pattern, business requirements specification pattern, business service model pattern, business process model pattern, use case-object model mapping pattern, software requirements metamodel pattern for business analysis.
If your company aspire any of the SOA benefits discussed below, but has not institutionalized SOA yet, you should start the journey of adopting SOA. MSA patterns can be adopted selectively along the way, but you will have less risk after you have built a solid foundation in SOA.