Many, Many Options
It could be seen as a benefit, but it's also a challenge, as it's scaled system driven, you can choose different technologies, differenc approaches, different implementations, differente languages, and so many options suddenly could become into a huge heterogeneous distributed system.
Takes time to get there
Implementing microservices could involved a learning curve, new tools, new work modes for teams, it involves adjusting the whole organization.
Testing is more complex
Testing becomes challenging, as we have an api driven system, how could you test this kind of thing.
Monitoring is more complex
This could be an issue as we have scalability, different technologies applied, and distributed stuff that need to be centralized in some way
Resiliency isn't free
With microservices we can create scalable services, we can approach fail safe approaches, but only if we can handle the possibility of everything failing and the system should be able to have this covered.
Lots More boxes
More SO's to handle, more configurations, more runtime environments, etc
Distributed systems are hard
Lots of issues related to distributed systems arise in the idea of microservices approaches.
Category: "The Principles of Microservices"
Many, Many Options
Adopt microsevices into the organization, gives us the chance to align according to it, because teams can work more independent and specific to what is the intention to work as microservices focus on 'do one thing, and do one thing well'
Release Functionality Faster
As microservices are autonomus, and it deploys independently, gives us the chance to work in some specific service withoug afecting the other's work, in this way you can deliver faster
As microservices are autonomus they give us the chance to scale easily without affect other services..
Easier to focus on sercurity concerns
As scalability is not a matter of a huge subject, we can focus in other more important stuff
Adopt Technology Faster
We can use different kinds of technology for other microservices, so if we use old stuff in one, we can just use new tech in the new ones.
Embrace uncertainty in digial
Digital media changes a lot, microservices gives us the chance to adopt easier because of their api driven architecture..
Sam Newman defines Microservice as
"Small Autonomus services that work together"
Interesting definition, he said that saying 'small' is cuestionable, but he recommends to focus on one thing, microservices must do one thing, and do that thing well.