Media Query Source: Part 11
The responses I provided to a media outlet on February 8, 2018:
Media: Why are microservices becoming so popular with large brands like Netflix? Are they the future of app building? Are smaller companies seeing the same benefits? Do microservices bring the same benefits to small scale projects with small teams? What are the downsides to using microservices with smaller teams?
Gfesser: Microservices can offer significant flexibility to development teams, because application logic for each is intended to be limited to a discrete business domain or functional responsibility. The idea is that changes to each will have relatively little affect on other microservices, leading to the ability to test and deploy with less need to coordinate across development teams. Building applications in discrete units can have a significant upside relative to building monolith applications that combine functionality and data from multiple domains, because changes to monoliths are not isolated and tend to affect the entire application by requiring more testing and coordination between developers.
As with many application development practices, the decision to make use of microservices will partially depend on factors such as team size, company culture and organization, how and to what extent applications are used, and team familiarity of the problem space. And determination as to whether microservices should be developed is not an all-or-nothing proposition: monoliths and microservices can oftentimes work together to provide what is needed. Generally speaking, microservices tend to provide benefits for larger development teams presumably working on larger applications, but can be challenging to build for matrixed organizations, since microservices teams benefit from being cross-functional and having little dependence on other teams.
Development using microservices is not a silver bullet. While well designed microservices have much to offer the enterprise, it can be difficult to initially determine boundaries between different domains. Additionally, introducing independently running microservices brings complexity to the enterprise, especially when communication needs to take place between two or more microservices. Generally speaking, while microservices can help enable decreased time to market in the long-term, in the short-term it can make sense to make use of well-designed monolith applications that can be broken up into microservices at a later point, especially when domains become better understood. Oftentimes, it is difficult to predict how new functionality will be used and to what extent in terms of traffic volume. Prematurely making use of microservices, for example, can increase unnecessary developer workload at an early stage.
Keep in mind that Netflix didn't use microservices at the outset – it was a journey. Other organizations can benefit from the lessons that were learned by Netflix and others, but all development teams should expect to have their own journeys.
See all of my responses to media queries here.