
18 segments available
This presentation was recorded at YOW! 2016. #GOTOcon #YOW https://yowcon.com Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development ABSTRACT Martin Fowler shares his views on Microservices. Martin is Chief Scientist at Thoughtworks, Opinion Leader and Author of many Development books. Martin concentrates on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. He's been a pioneer of various topics around object-oriented technology and agile methods, and written several books including "Refactoring", "UML Distilled", "Patterns of Enterprise Application Architecture", and "NoSQL Distilled". Martins also writes at https://martinfowler.com. [...] RECOMMENDED BOOKS Martin Fowler & Pramod Sadalage • NoSQL Distilled • https://amzn.to/3ChIpu7 Martin Fowler • Patterns of Enterprise Application Architecture • https://amzn.to/3lp4sIq Martin Fowler • Domain-Specific Languages • https://amzn.to/3nzOIFk Martin Fowler • UML Distilled • https://amzn.to/3kahjyA Martin Fowler • Analysis Patterns • https://amzn.to/3Emabar https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.facebook.com/GOTOConferences #Microservices #SoftwareArchitecture #SoftwareDevelopment #Thoughtworks #SoftwareEngineering #Programming #MartinFowler #YOWcon Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Martin Fowler introduces the concept of microservices, discussing its rise in popularity and the importance of breaking down monolithic systems into independent services. He emphasizes the need for a sensible understanding of microservices amidst the hype, setting the stage for a deeper exploration of its characteristics.
"okay so if you've ever heard me speak before you've heard me speak to this title because I got tired of making up titles for talks ages ago and this way I can just use one title and reuse it to mean a..."
Fowler delves into the definition of microservices, highlighting the shift from monolithic architectures to componentization via services. He discusses the importance of independent processes that collaborate, and the need for a clearer understanding of what constitutes microservices in the software industry.
"I see this topic at its heart is the idea that when we think about building our systems instead of putting all of capabilities and features of a system into a single process as a single monolithic thi..."
In this segment, Fowler explains the concept of 'componentization via services,' emphasizing the need for independently replaceable and upgradable services. He contrasts this with traditional libraries and discusses the implications for deployment and service independence in microservices architecture.
"industry the only way you can approach a definition is to say well what are the common characteristics for the various people out there who say they are doing micro Services what is it what are the th..."
Fowler stresses that a key characteristic of microservices is the ability to deploy and upgrade services independently. He warns against architectures that require coordinated deployments, asserting that true microservices should allow for flexibility and autonomy in service management.
"work with software the way we like to work with say our stereo our Hi-Fi where we can actually take our components and replace them independently and you know we can also upgrade them independently wh..."
Fowler discusses the organizational structure that supports microservices, advocating for small, cross-functional teams that are directly connected to customer needs. He introduces the concept of 'two-pizza teams' from Amazon, emphasizing the importance of team size and direct customer interaction in successful microservices implementation.
"a term so that's what we mean by componentization by Services it's really quite a strong statement even though it's uh quite a small phrase now for some people and in fact for my colleague Sam Newman ..."
In this segment, Fowler highlights the necessity of cross-functional teams in microservices, where all necessary skills for delivering customer functionality are present within the team. He draws parallels to agile methodologies, emphasizing that this approach is not new but a critical aspect of microservices.
"end user within the business so we do not separate in terms of analysis UI database things of that kind we put we get a cross-functional group of people all there to support a single usage which in fa..."
Fowler explains the principle of 'smart endpoints and dumb pipes' in microservices architecture. He critiques traditional service-oriented architecture (SOA) for relying on complex middleware and advocates for simplicity in communication between services, promoting a decentralized approach.
"definition so again if you see people saying they're doing microservices and they have their front-end services and their service services and their database services that should indicate there's some..."
This segment focuses on the decentralization of data management in microservices. Fowler argues against shared databases and emphasizes that each service should manage its own data, allowing for flexibility in technology choices and promoting independence among services.
"me and he must be right a key again element of this is to move that smarts out of the the bus and into the systems themselves so that you've not got some bursts cleverly figuring out how to root messa..."
Fowler briefly introduces the topic of infrastructure automation, indicating that he will delve deeper into this subject later in his talk. He sets the stage for discussing infrastructure as code and its relevance to microservices.
"applications they often share via a database now I've always found this a little bit odd I was taught from my very early days of structured programming that shared Global state was generally a bad thi..."
In this segment, Fowler addresses the common confusion between microservices and service-oriented architecture (SOA). He clarifies that while microservices can be seen as a subset of SOA, they represent a distinct approach with specific characteristics that differentiate them from traditional SOA practices.
"about that a bit later so with all of this we have an interesting list of characteristics but one of the first questions people ask towards mocha Services became talked about in fact it became the per..."
In this segment, Fowler discusses the inherent complexities that come with adopting Microservices. He outlines the benefits of independent deployment and technological diversity, while also warning about the challenges of distributed systems, including communication issues and the need for asynchronous processing.
"the software now another survey of microservices is one by again another early user guilt and they created this little graph and they did look at lines of code um and I love this graph because I mean ..."
Fowler clarifies that Microservices are not a panacea for all computing challenges. He emphasizes that while they offer certain advantages, they also come with significant costs and complexities that should not be underestimated. This segment serves as a caution against viewing Microservices as the ultimate solution.
"mean but that's what I mean and that was based on the early adopters of this technique and what they tended to do and I'm hoping that what we tried to do with that article will give it a bit more of a..."
Fowler summarizes the trade-offs involved in using Microservices, highlighting the benefits of strong module boundaries and independent deployments against the backdrop of increased operational complexity. He stresses the importance of understanding these dynamics when considering Microservices for software architecture.
"whole thing thought either the thing is that microservices have costs and benefits um obviously the independent deployment is a big factor it's really nice that you get a great deal of technological d..."
Fowler advises on the appropriate contexts for adopting microservices. He suggests that smaller teams or projects may not benefit from microservices due to the added complexity. However, as team sizes grow and the application complexity increases, microservices can provide a better organizational structure. He warns against using microservices in unfamiliar domains, advocating for starting with a monolith and transitioning as needed.
"apart from my microphone falling off when I say Docker Docker docker is you've got a situation where uh for a system that has a lower level of what I would call Basic complexity and basic complexity i..."
In this segment, Fowler shares cautionary tales from projects that attempted to implement microservices prematurely. He recounts instances where teams had to abandon microservices in favor of monolithic architectures to regain control and speed up development. He emphasizes the importance of understanding the domain and the potential pitfalls of strong module boundaries in microservices.
"from distribution and the motor services but then there's base complexity Rises then microservices become more attractive and again one of the core things I think to look at look at is people if you'v..."
Fowler outlines the essential skills and practices needed to successfully implement microservices. He stresses the importance of rapid provisioning, effective monitoring, and a strong DevOps culture. This segment highlights the additional complexities that come with microservices and the need for teams to be well-equipped to handle these challenges.
"actually send it into production and that's within you know the early days of the hype cycle and I'm sure there'll be a lot more of that going on so microservices is not the best compared to a monolit..."
Fowler concludes with a discussion on the choice between monolithic and microservices architectures. He emphasizes that the decision should be based on the application's complexity and the team's organization. He notes that microservices can help manage larger teams but warns that they are not a one-size-fits-all solution, especially for those unfamiliar with their domain.
"work against you the strong module boundaries only help you if you get it make your good choice as to where those boundaries should fit and of course the whole thing and early on is you don't know whe..."
In this final segment, Fowler addresses the organizational aspect of microservices. He explains how microservices can help structure teams effectively, especially in larger organizations. He acknowledges the natural tendency to form silos and discusses how to arrange teams to maximize productivity while leveraging the benefits of microservices.
"microservices there's a lot of material in next of it and if you want it all in a coherent form I recommend my book the book by my colleague Sam Newman but the main thing to realize is that monoliths ..."