Looking for books & other references mentioned in this video? Check out the video description for all the links! Want early access to videos & exclusive perks? Join our channel membership today: kzbin.info/door/s_tLP3AiwYKwdUHpltJPuAjoin Question for you: What’s your biggest takeaway from this video? Let us know in the comments! ⬇
@-andymel7 жыл бұрын
01:00 What is a monolithic application (Everything together in one process) 01:16 For Microservices take each capability and put it in separate processes 03:30 Article about *9 Characteristics of Microservices* Common Characteristics 03:43 *Componentization via services* 04:23 Components should be independently replaceable and independently upgradeable 04:55 2 forms of components - libraries (needs same plattform) - services (more independent) 06:28 *Organized around business capabilities* 07:57 *Smart endpoints and dump pipes* 09:19 *Decentralized Data Management* 10:17 Never talk to another services data store directly - only over the services API 11:01 Choice of data persistence, language and tools should totally be at the individual service 11:23 *Infrastructure Automation* is crucial 12:10 *Explicit design for failure* Usual Questions 13:22 *Are microservices the same as 'Service Oriented Architecture'?* 14:37 'Microservices' = subset of 'SOA' 15:46 *How big is a Microservice?* 17:49 *Microservices vs Monoliths* - Advantages Monoliths: Simplicity up to some size, Consistency, Inter-module interface refactoring - Advantages Microservice: Partial Deployment, Availability, Preserve Modularity, Multiple Platforms 24:03 *Basic things to make sure if you do microservices* Rapid Provisioning, Basic Monitoring, Rapid Application Deployment, Devops Culture
@thapakazi_5 жыл бұрын
Thanks, I was taking the similar note, but you have timestamp too :) just adding these links: - martinfowler.com/bliki/TalkNotes.html - martinfowler.com/articles/microservices.html
@goverdhank5 жыл бұрын
Very crisp and helpful
@therealjayz80365 жыл бұрын
You the real MVP
@valtih19788 жыл бұрын
Very articulate, clear-cut, easy to follow diction. That is a great speaker.
@hayderimran76 жыл бұрын
lmao hes boring af....
@soberhippie6 жыл бұрын
That's cause he's British. Or at least his accent is.
@scoett4 жыл бұрын
Fantastic, concise overview of microservices. My favorite part: @23:30: Use any programming language(s) for microservices except JavaScript, you have to do something to fight back against that monster. 4 years later, rewrites refactoring book with all examples in JavaScript. :)
@GeorgeTsiros3 жыл бұрын
1) difficult to avoid js, what with it being the only client-side web-browser scripting language 2) a refactoring book makes sense to target js, since most people will need the help _for_ refactoring (shitty) js code.
@andreadiotallevi57802 жыл бұрын
I wonder what Martin thinks in 2022 regarding using TypeScript instead as it got quite mature.
@CrustyPea7 жыл бұрын
Things I learned from this talk: - Helpful to think of microservices vs monolith as distributed vs centralised - Microservices allow greater deployment flexibility and release granularity - Microservices might not be a good choice if boundaries in a system are poorly defined/understood
@kahnfatman2 жыл бұрын
Startups should NEVER go micro service for the third given reason: Product is not defined, service is not well-bounded.
@TechnologyRules6 жыл бұрын
That Netflix guy talk about microservices doesn't ever get close to the quality of this talk. Thank you, Martin!
@jeremykaplan1886 жыл бұрын
I've worked in organizations where the shift from monolith to microservices was well thought out, planned and executed. I've also worked in organizations where the attempt to make that shift resulted in the most awful mess that created nothing but tech debt and resulted in massive technological silos that no one understood. It reminds me of the early days of the design pattern movement where developers were picking up the latest cookbook, learning a couple patterns and then shoe-horning every software challenge into them regardless of fit. I think that as with any other software development fad, microservices are great for specific cases. In most cases it's just not needed and creates complexity rather than enabling solutions.
@recoveringheart8 жыл бұрын
Summary of this video: American pizzas are very large, americans love shopping, fight back the javascript monster
@paoloproni1975 Жыл бұрын
Thank you for clarifying those concepts
@RoryBramwell9 жыл бұрын
Great high-level talk on microservices! Concise and highly informative.
@davemcgivney35637 жыл бұрын
Another great Martian Fowler talk
@mohankumarc.kannangnatt96488 жыл бұрын
Finally, I found one meaningful presentation about micro services. I still have so many questions..
@ericoudammerveld4248 жыл бұрын
Actually a quite good and ,now and then, quite humorous story. I now understand why no-one was laughing though: "This presentation was recorded at GOTO Berlin 2014"
@goranmatic9 жыл бұрын
As always, some very valuable, astute and insightful commentary from Martin Fowler - thanks!
@westfield906 жыл бұрын
This and the noSql speech have made me a big fan of Martin
@anug149 жыл бұрын
23:30 why not javascript? In the context of services, is the speaker alluding to node.js?
@Suamere9 жыл бұрын
+anug14 Never again refer to Martin Fowler as "the speaker." Refer to him as God, Master Fowler, or His-Grace. To answer your question: He was alluding to the fact that Javascript is growing like mold and taking over many responsibilities. It's a good thing, but also scary. We all know it will never take over CPU-intensive development, that's why node uses C++ for the backend, and we can use C++ for those CPU intensive things, and plug it into the javascript.
@energale9 жыл бұрын
+anug14 node.js seems like the perfect match for microservices. I mean it comes with built in networking and an event loop.
@anug149 жыл бұрын
energale i agree...from what i have known about node.js, it should lend quite well to this type of architecture...i wonder how node.js community responding to this buzz or concept or reinvention ..whatever... spring cloud foundry project seems to be promising and would greatly help java developers to adopt to micro services
@bartolomeonew8 жыл бұрын
+Suamere This CPU-intensive processing applies to Node.js architecture, not to the JavaScript itself. Anyway, in case you need to do this kind of task, probably a better idea is not to 'plug it into javascript', but have a separate (micro ;) ) service which does this task and is implemented in completely different language/app server...
@Suamere8 жыл бұрын
bartolomeonew well said.
@eyhjehjeh2 жыл бұрын
I had a bad bias against microservices. This presentation made it clear why I was right... And why I was wrong :)
@reneetsielepi1609 жыл бұрын
Good solid overview of microservices by Martin Fowler
@deloford5 жыл бұрын
What a legend Martin Fowler is
@sadigovelvin6 жыл бұрын
Martin Fowler is one the great one in software development area. Thank you.
@mikhailfranco9 жыл бұрын
Mircroservices is just Erlang implemented with other languages and runtimes. Any Erlang programmer can eat two of your American pizzas.
@energale9 жыл бұрын
+Mikhail Franco my thougth watching this video: "if only there was microservices on a language level.." now i'm going to look into erlang :)
@ThrashAbaddon7 жыл бұрын
there is also elixir, phenomenal language that works on beam vm and can use all erlang code
@BruskAwat5 жыл бұрын
And now Elixir. I was exactly thinking the same. It's Microservices on the language level.
@kevinjang82093 жыл бұрын
Wow nice! He did a great job at explaining micro services
@kevinaud64618 жыл бұрын
Smart Ends and Dump Pipes is a good band name
@factorfitness37137 жыл бұрын
"For the first time on stage together, ladies and gentlemen, Smart Endpoints and Dumb Piiiiiiiiiiiiiipppppesssss!!!"
@stringlarson12477 жыл бұрын
It's a Pr0n film.
@deanwalliss87397 жыл бұрын
Sounds like a Beck album.
@Suamere9 жыл бұрын
Development in isolation. The key of modularity, and I think a better phrase when discussing the pros and cons of modularity. Development in isolation is impossible in a monolith, but a monolith has the benefit of discovering boundaries and simpler troubleshooting prior to those boundaries being found. Development in isolation is the only option in Microservices, but troubleshooting becomes difficult if your boundaries aren't clear. The key is that a microservice shouldn't be developed with unclear boundaries. And when you start with a monolith and extract services with clear boundaries, you can then develop and troubleshoot in isolation. SOME Developers (lol if he reads this) like to run every micro service and the root application(s) simultaneously and locally to troubleshoot. That either means the boundaries aren't clear (which they should be), or it means your mindset is stuck in the monolith and you don't know how to deal with development in isolation. Long-story-short: Start with monoliths, don't prematurely microptimize (lol?), but try to get to clear boundaries asap, and move to micro-services if you can support the requirements the Master Fowler speaks of toward the end of his talk.
@deloford5 жыл бұрын
Good point, agree later refactoring is better. You can refactor towards Microservices when you understand the boundaries, but its far harder to go the other way.
@KevinJingQiu9 жыл бұрын
Very good intro to micro service architecture given by The Martin Fowler.
@JaysonSunshine7 жыл бұрын
Thank you for providing your thoughts on microservices, Martin.
@glennblock110 жыл бұрын
Easy to understand, that's a plus!
@786gnafis4 жыл бұрын
Martin Fowler is a Prophet in SOA world!
@stenmartens71795 жыл бұрын
For what it's worth, I've come across another key difference between SOA and microservices. as stated by Mark Richards in the book Software Architecture Patterns published by O'Reilly, the difference is that a microservices do not use any form of service orchestration (which i would rather call composition). when talking about SOA, there are structures where multiple services might work together to deliver one (partial) result.
@coder85153 жыл бұрын
Very clear and well explained.
@laynepeng43279 жыл бұрын
Very good and neutral view on Microservice!
@gobibava7 жыл бұрын
Explaining in great way.Easy to undertand
@hnasr7 жыл бұрын
Hope he changed his mind about javascript two years later. That monster is becoming stronger and stronger thanks to Node.
@artgentumk4 жыл бұрын
Not really changed his mind, but sort of gave up. Still hates it, but code examples in new edition of his Refactoring book are in javascript.
@mirageman24 жыл бұрын
@@artgentumk how ironic is that, the language overpowered him at last
@fritzschnitzmueller37684 жыл бұрын
sure, because if you want to write code for the web, you have to use javascript. Ofc you can use transpilers to generate javascript from other languages like C++
@ashishkalra47698 жыл бұрын
Thanks for such a wonderful explanation. Component:Independently Replaceable and Independently up gradable. Infact this monolithic approach's problem was with Microsoft .Net framework also. That's why they gave MVC as a nuget package instead of integrated with .Net otherwise they would have to wait until the next version
@wantaoyu67228 жыл бұрын
Impressive presentation. And I just like your humor.
@ConanFC10 жыл бұрын
Excellent talk!
@kahnfatman2 жыл бұрын
Ideology versus the real world: That's gonna my future book. Things that look so nice on paper could appear thousands fold more so when an articulate speaker delivers a keynote on it. Things turn into hell during implementation because the real world deals with aspects not mentioned during the talk. LISTEN TO ALL but THINK FOR YOURSELVES and trust a few.
@2000kasparov8 жыл бұрын
You are a great presentator Martin
@JeremyAndersonBoise8 жыл бұрын
Egregious Spaghetti Box, pure gold.
@professorneila78214 жыл бұрын
I laughed out loud at work, heh.
@confused65267 жыл бұрын
Great Presentation. Thanks J.N
@ravipasumarthy87328 жыл бұрын
I like it - " You got to fight back that monster"
@trile27138 жыл бұрын
Quite impressive presentation. Clear thought expressed thru attractive powerful voice. This pres paired with the one of Eric Evans here should round up a good overview of microservices.
@shantiswarupsatapathy79037 жыл бұрын
Hello , I need to know if there is any industry standard to follow on how to split a monolithic application. Kind of guiding principle. This is from the perspective of a functional person who will be logically splitting the application to smaller one.
@deloford5 жыл бұрын
There is no 1 principle. I would say focus on logic and responsibility boundaries, too many services = too much 'talk', too few services = no benefits. Marin also highlighted several areas to focus on, services should revolve around a product rather than a technology (e.g Orders).. well written monoliths are often built with microservices so look for service classes e.g CustomerService, OrderService, these are good starting places. Also check for resource access, you don't want lots of services accessing the same resource. Be very careful splitting database access across several services, this is a classic versioning and compatibility trap.
@valentintudormocanu84837 жыл бұрын
Decentralized data - sometime it is an illusion if the micro-services data are strongly coupled in the problem space. The best solution is the one that model the problem not something else.
@manishkrai4 жыл бұрын
Good explanation
@SuperSparkLight8 жыл бұрын
Great as always.
@sapnokiranii6 жыл бұрын
Great presentation!
@aranichat7 жыл бұрын
Very interesting and thought provoking
@vivekach18 жыл бұрын
Thank you.. Great presentation..
@maxpaynestory8 жыл бұрын
when to have a new Microservice is easy. Every new feature is a new Microservice.
@ajeetganga73108 жыл бұрын
You Sir, are the reason why consultants get paid more.
@pengthomas64907 жыл бұрын
Very good speech!!
@chihabahmed52078 жыл бұрын
Hi there i want to build a microservices backend for android app. what is the best backend technologies for this i was thinking of using Node.js but i also though about using Python. ANY THOUGHTS THANKS
@ericoudammerveld4248 жыл бұрын
It was the only moment I actually heard 3 people laugh!!! LOL
@rishi82india8 жыл бұрын
Very Well Explained Martin,
@hamidrezamoradof17715 жыл бұрын
Thanks for sharing knowledge
@raju18a9 жыл бұрын
awesome talk..
@DarthChrisDK8 жыл бұрын
Great presentation. Very understandable. He also sounds like John Oliver, which is a good thing.
@JeanNascimentosuissa10 жыл бұрын
Wonderful!
@AnnielMenezesCruz10 жыл бұрын
Se liga nessa série de posts da galera do SoundCloud sobre quebrar um sistemas monolítico em micro-serviços developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith
@professorneila78214 жыл бұрын
Hi there, I'd like to get clarification, is it 2 American pizzas to feed 2 American people?
@ngdinhthi5 жыл бұрын
Nice, thanks!
@oswaldumeh7 жыл бұрын
I think the characteristics of Micro Services and Domain Driven Design seem to overlap in my opinion.
@ivanbulanov57547 жыл бұрын
What can I cook on this snake oil?
@andreykarayvansky95495 жыл бұрын
Partial deployment can be also a disadvantage
@kumaranand19248 жыл бұрын
Good overview
@grk53088 жыл бұрын
loved it..
@HarshaXSoaD8 жыл бұрын
All good except that comment about javascript. There's no such a rule. It comes in handy in some situations and sometimes it isn't. always has two sides.
@factorfitness37137 жыл бұрын
I'm not sure where he was leading with that. A shot at NodeJS? Why? I'm not sure what the issue with that is.
@farhan23ism7 жыл бұрын
A typical old style .NET and JAVA developer.
@blasttrash6 жыл бұрын
I think this is an old talk when ES5 was out perhaps? A lot of people in js community back then felt that js was a badly thought out language with inconsistent features etc. I am more of a Java person, but that comment would probably not hold true today. JS is heading in a great direction indeed with ES6 and some of its new features. I am still a beginner though. :)
@7th_CAV_Trooper5 жыл бұрын
exact moment I clicked like: "don't use javascript" - damn straight!
@Daniel-dj7vc3 жыл бұрын
Funny thing, he write a book where he uses javascript for example code. :p
@7th_CAV_Trooper3 жыл бұрын
@@Daniel-dj7vc We've all done things we're ashamed of. lol
@dawsdep8 жыл бұрын
Another reason to love Elixir and the Erlang VM
@ramdasnair56552 жыл бұрын
"What is the most important things to Americans?....shopping!" - Martin Fowler
@valentintudormocanu84837 жыл бұрын
Modularity discipline - if i will multiplied 500 business rules in 20 microservices, each multiplied 10-20 times - this a fatal illness for your system. DRY options - use a library - encapsulate in services - cost of a rocket for bicycle
@naren_legha6 жыл бұрын
Multiple instances off each service in an illness? How? Use a library. So I'm stuck to a language/stack when though there are better solutions available in some other stack.
@shuaibird.official6 жыл бұрын
OMG, I'm surprised about the bad comment of JavaScript.😂
@slawomirczekaj66675 жыл бұрын
amen to the java statement!
@procsharp9 жыл бұрын
Doesn't R.C Martin clean architecture give you the ability to leave the decision of monolithic vs WS to the time you will have enough knowledge to decide? Boundaries and size is not a WS problem, its a components/libraries challenge. .By the time you create components and test it, you have enough data to decide.
@berkarslan8 жыл бұрын
Boundaries have to be explicit in SOA..
@moistbrownypoints7 жыл бұрын
23:46 Javascript in 2017 did not notice the fighting back..
@rahulraviprasad9 жыл бұрын
Great talk about Microservices, but doesn't say anything about how to actually implement in code. :(
@energale9 жыл бұрын
+Rahul R that's because it is not at the code level, but an architectural pattern.
@DanVasquez0xFF8 жыл бұрын
Apache Thrift is a great tool that glues microservices together in a SOA.
@palakurthipradeep62566 жыл бұрын
Completed
@kennethcarvalho36846 жыл бұрын
Sounds like someone jumped out of a Harry Potter movie and started studying Microservices
@deloford5 жыл бұрын
Sounds like you jumped into coding and didn't bother to check who Martin Fowler is.
@teslavoltagames32085 жыл бұрын
Microservices: doing what Linux has been doing for decades in a more convoluted way.
@Damien-y9c5 жыл бұрын
Completely different scale. Elaborate.
@RBC2_9 жыл бұрын
It is a good concept, but there is nothing new here. Most of the top software designers have been using these ideas for years.
@kadirgulec5914 жыл бұрын
shopping must go on :)
@TheGrimDazzle7048 жыл бұрын
Lot funnier and interesting when you put into into 1.5x speed!
@mikailmohamed34782 жыл бұрын
Man like Martin F
@valentintudormocanu84837 жыл бұрын
The independent "upgradability" of technology - yet it is enabled, but heterogeneous technologies will increase your system complexity, and also the cost of change from heterogeneous suppliers. We really want that ?
@naren_legha6 жыл бұрын
Ability to cater to change, without having to notify clients about downtime, at cost of some complexity is not a bad deal at all. BTW what kind of complexity are you referring to here ?
@aliasalias5104 жыл бұрын
Martin Fowler is Jesus for software developers.
@lepidoptera93373 жыл бұрын
Jesus is dead, though.
@valentintudormocanu84837 жыл бұрын
Messages - are flexible but ... The cost of a asynchronous solution for a synchronous problem will raise to the sky for only benefit of a solution provider. So. I will do not trust to any solution provider that will propose me a solution with a model that does not fit with the model of the problem. More - asynchronous software is a hell for testing - hard to test. I need good reasons to go there ...
@Alberto_Cavalcante3 жыл бұрын
remains actual
@JD-xd3xp7 жыл бұрын
put microservices in DOCKER and that helps much better.
@rajarakeshsingh8 жыл бұрын
How big is a microservice... he did not answer.. mocked others??
@farhan23ism7 жыл бұрын
He seems a typical JAVA and .NET lover, who loves Object oriented styles. Java Script is the future , better that you learn to work in that and get rid of writing restful apis in .Net and .JAVA because that does not make sense to me.
@PMFOXTECHNOLOGIES23 жыл бұрын
Una charla muy interesante, me.ayudo a complementar lo que sabía kzbin.info/www/bejne/hGqYiGl_lKmiiNU Saludos y seguiré viendo el bueno contenido.
@soberhippie6 жыл бұрын
American-sized pizzas? But then again, those are American sized people. You can't feed "a hell of a lot" of americans with two american pizzas.
@awksedgreep Жыл бұрын
This didn’t age well
@estrellapedroza7374 жыл бұрын
Cool, but dude get to the point lol.
@dmitrynutels93404 жыл бұрын
It's funny how the only time there was an applause during this, otherwise excellent, talk is when the mandatory JavaScript bashing manifested... It's 6 years later, and JavaScript microservices are one of the more common ones being done, thanks to Node.js... Who's laughing and applauding now, bunch of dudes in 2014?
@anonhater19138 жыл бұрын
Boring fluff.
@firmsoil9 жыл бұрын
Any "ROOTING" stuff.. lol.. english language speech is such a phonetic disability!