Це відео не доступне.
Перепрошуємо.

Microservices • Martin Fowler • GOTO 2014

Поділитися
Вставка
  • Опубліковано 18 сер 2024

КОМЕНТАРІ • 151

  • @-andymel
    @-andymel 6 років тому +109

    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_
      @thapakazi_ 5 років тому +3

      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

    • @goverdhank
      @goverdhank 5 років тому +1

      Very crisp and helpful

    • @therealjayz8036
      @therealjayz8036 5 років тому +1

      You the real MVP

  • @valtih1978
    @valtih1978 8 років тому +148

    Very articulate, clear-cut, easy to follow diction. That is a great speaker.

    • @hayderimran7
      @hayderimran7 6 років тому

      lmao hes boring af....

    • @soberhippie
      @soberhippie 6 років тому

      That's cause he's British. Or at least his accent is.

  • @scoett
    @scoett 4 роки тому +18

    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. :)

    • @GeorgeTsiros
      @GeorgeTsiros 2 роки тому +3

      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.

    • @andreadiotallevi5780
      @andreadiotallevi5780 2 роки тому +1

      I wonder what Martin thinks in 2022 regarding using TypeScript instead as it got quite mature.

  • @CrustyPea
    @CrustyPea 7 років тому +10

    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

    • @kahnfatman
      @kahnfatman 2 роки тому

      Startups should NEVER go micro service for the third given reason: Product is not defined, service is not well-bounded.

  • @jeremykaplan188
    @jeremykaplan188 6 років тому +4

    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.

  • @TechnologyRules
    @TechnologyRules 6 років тому +2

    That Netflix guy talk about microservices doesn't ever get close to the quality of this talk. Thank you, Martin!

  • @ericoudammerveld424
    @ericoudammerveld424 7 років тому +13

    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"

  • @RoryBramwell
    @RoryBramwell 9 років тому +6

    Great high-level talk on microservices! Concise and highly informative.

  • @mohankumarc.kannangnatt9648
    @mohankumarc.kannangnatt9648 8 років тому +1

    Finally, I found one meaningful presentation about micro services. I still have so many questions..

  • @davemcgivney3563
    @davemcgivney3563 6 років тому +2

    Another great Martian Fowler talk

  • @goranmatic
    @goranmatic 8 років тому +2

    As always, some very valuable, astute and insightful commentary from Martin Fowler - thanks!

  • @paoloproni1975
    @paoloproni1975 9 місяців тому +1

    Thank you for clarifying those concepts

  • @recoveringheart
    @recoveringheart 7 років тому +74

    Summary of this video: American pizzas are very large, americans love shopping, fight back the javascript monster

  • @westfield90
    @westfield90 5 років тому +1

    This and the noSql speech have made me a big fan of Martin

  • @reneetsielepi160
    @reneetsielepi160 9 років тому +2

    Good solid overview of microservices by Martin Fowler

  • @Suamere
    @Suamere 8 років тому +1

    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.

    • @deloford
      @deloford 5 років тому

      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.

  • @glennblock1
    @glennblock1 9 років тому +2

    Easy to understand, that's a plus!

  • @deloford
    @deloford 5 років тому +2

    What a legend Martin Fowler is

  • @eyhjehjeh
    @eyhjehjeh 2 роки тому +1

    I had a bad bias against microservices. This presentation made it clear why I was right... And why I was wrong :)

  • @kevinjang8209
    @kevinjang8209 2 роки тому +1

    Wow nice! He did a great job at explaining micro services

  • @stenmartens7179
    @stenmartens7179 5 років тому

    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.

  • @ashishkalra4769
    @ashishkalra4769 7 років тому

    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

  • @JaysonSunshine
    @JaysonSunshine 7 років тому

    Thank you for providing your thoughts on microservices, Martin.

  • @kevinaud6461
    @kevinaud6461 8 років тому +29

    Smart Ends and Dump Pipes is a good band name

    • @factorfitness3713
      @factorfitness3713 7 років тому +1

      "For the first time on stage together, ladies and gentlemen, Smart Endpoints and Dumb Piiiiiiiiiiiiiipppppesssss!!!"

    • @stringlarson1247
      @stringlarson1247 7 років тому

      It's a Pr0n film.

    • @deanwalliss8739
      @deanwalliss8739 6 років тому

      Sounds like a Beck album.

  • @kahnfatman
    @kahnfatman 2 роки тому +1

    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.

  • @mikhailfranco
    @mikhailfranco 9 років тому +58

    Mircroservices is just Erlang implemented with other languages and runtimes.
    Any Erlang programmer can eat two of your American pizzas.

    • @energale
      @energale 8 років тому +6

      +Mikhail Franco my thougth watching this video: "if only there was microservices on a language level.." now i'm going to look into erlang :)

    • @ThrashAbaddon
      @ThrashAbaddon 7 років тому +6

      there is also elixir, phenomenal language that works on beam vm and can use all erlang code

    • @BruskAwat
      @BruskAwat 5 років тому +2

      And now Elixir. I was exactly thinking the same. It's Microservices on the language level.

  • @coder8515
    @coder8515 3 роки тому +1

    Very clear and well explained.

  • @markosuntu
    @markosuntu 6 років тому

    Martin Fowler is one the great one in software development area. Thank you.

  • @JeremyAndersonBoise
    @JeremyAndersonBoise 8 років тому +14

    Egregious Spaghetti Box, pure gold.

  • @laynepeng4327
    @laynepeng4327 9 років тому +2

    Very good and neutral view on Microservice!

  • @KevinJingQiu
    @KevinJingQiu 9 років тому

    Very good intro to micro service architecture given by The Martin Fowler.

  • @786gnafis
    @786gnafis 4 роки тому

    Martin Fowler is a Prophet in SOA world!

  • @hnasr
    @hnasr 7 років тому +5

    Hope he changed his mind about javascript two years later. That monster is becoming stronger and stronger thanks to Node.

    • @artgentumk
      @artgentumk 4 роки тому

      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.

    • @mirageman2
      @mirageman2 4 роки тому

      @@artgentumk how ironic is that, the language overpowered him at last

    • @fritzschnitzmueller3768
      @fritzschnitzmueller3768 3 роки тому

      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++

  • @gobibava
    @gobibava 6 років тому

    Explaining in great way.Easy to undertand

  • @ConanFC
    @ConanFC 9 років тому +1

    Excellent talk!

  • @ravipasumarthy8732
    @ravipasumarthy8732 8 років тому +6

    I like it - " You got to fight back that monster"

  • @2000kasparov
    @2000kasparov 8 років тому

    You are a great presentator Martin

  • @manishkrai
    @manishkrai 4 роки тому +1

    Good explanation

  • @trile2713
    @trile2713 8 років тому

    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.

  • @valentintudormocanu8483
    @valentintudormocanu8483 7 років тому +1

    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.

  • @confused6526
    @confused6526 6 років тому

    Great Presentation.
    Thanks
    J.N

  • @wantaoyu6722
    @wantaoyu6722 8 років тому

    Impressive presentation. And I just like your humor.

  • @vivekach1
    @vivekach1 7 років тому

    Thank you.. Great presentation..

  • @aranichat
    @aranichat 6 років тому

    Very interesting and thought provoking

  • @hamidrezamoradof1771
    @hamidrezamoradof1771 4 роки тому

    Thanks for sharing knowledge

  • @SuperSparkLight
    @SuperSparkLight 7 років тому

    Great as always.

  • @DarthChrisDK
    @DarthChrisDK 8 років тому +4

    Great presentation. Very understandable. He also sounds like John Oliver, which is a good thing.

  • @rishi82india
    @rishi82india 8 років тому

    Very Well Explained Martin,

  • @pengthomas6490
    @pengthomas6490 7 років тому

    Very good speech!!

  • @sapnokiranii
    @sapnokiranii 6 років тому

    Great presentation!

  • @JeanNascimentosuissa
    @JeanNascimentosuissa 9 років тому +2

    Wonderful!

    • @AnnielMenezesCruz
      @AnnielMenezesCruz 9 років тому

      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

  • @raju18a
    @raju18a 8 років тому

    awesome talk..

  • @ngdinhthi
    @ngdinhthi 5 років тому

    Nice, thanks!

  • @grk5308
    @grk5308 8 років тому

    loved it..

  • @kumaranand1924
    @kumaranand1924 8 років тому

    Good overview

  • @oswaldumeh
    @oswaldumeh 7 років тому +1

    I think the characteristics of Micro Services and Domain Driven Design seem to overlap in my opinion.

  • @maxpaynestory
    @maxpaynestory 8 років тому

    when to have a new Microservice is easy. Every new feature is a new Microservice.

    • @ajeetganga7310
      @ajeetganga7310 7 років тому +1

      You Sir, are the reason why consultants get paid more.

  • @7th_CAV_Trooper
    @7th_CAV_Trooper 4 роки тому +4

    exact moment I clicked like: "don't use javascript" - damn straight!

    • @Daniel-dj7vc
      @Daniel-dj7vc 3 роки тому +1

      Funny thing, he write a book where he uses javascript for example code. :p

    • @7th_CAV_Trooper
      @7th_CAV_Trooper 3 роки тому

      @@Daniel-dj7vc We've all done things we're ashamed of. lol

  • @anug14
    @anug14 8 років тому +3

    23:30 why not javascript? In the context of services, is the speaker alluding to node.js?

    • @Suamere
      @Suamere 8 років тому +9

      +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.

    • @energale
      @energale 8 років тому +3

      +anug14 node.js seems like the perfect match for microservices. I mean it comes with built in networking and an event loop.

    • @anug14
      @anug14 8 років тому +1

      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

    • @bartolomeonew
      @bartolomeonew 8 років тому +1

      +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...

    • @Suamere
      @Suamere 8 років тому

      bartolomeonew​ well said.

  • @dawsdep
    @dawsdep 8 років тому

    Another reason to love Elixir and the Erlang VM

  • @andreykarayvansky9549
    @andreykarayvansky9549 4 роки тому

    Partial deployment can be also a disadvantage

  • @palakurthipradeep6256
    @palakurthipradeep6256 6 років тому

    Completed

  • @shantiswarupsatapathy7903
    @shantiswarupsatapathy7903 6 років тому

    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.

    • @deloford
      @deloford 5 років тому

      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.

  • @ramdasnair5655
    @ramdasnair5655 2 роки тому

    "What is the most important things to Americans?....shopping!" - Martin Fowler

  • @valentintudormocanu8483
    @valentintudormocanu8483 7 років тому +1

    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_legha
      @naren_legha 6 років тому

      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.

  • @slawomirczekaj6667
    @slawomirczekaj6667 5 років тому

    amen to the java statement!

  • @professorneila7821
    @professorneila7821 4 роки тому

    Hi there, I'd like to get clarification, is it 2 American pizzas to feed 2 American people?

  • @shuaibird.official
    @shuaibird.official 6 років тому +2

    OMG, I'm surprised about the bad comment of JavaScript.😂

  • @mikailmohamed3478
    @mikailmohamed3478 2 роки тому

    Man like Martin F

  • @chihabahmed5207
    @chihabahmed5207 7 років тому

    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

    • @ericoudammerveld424
      @ericoudammerveld424 7 років тому

      It was the only moment I actually heard 3 people laugh!!! LOL

  • @Alberto_Cavalcante
    @Alberto_Cavalcante 3 роки тому

    remains actual

  • @kadirgulec591
    @kadirgulec591 4 роки тому +1

    shopping must go on :)

  • @HarshaXSoaD
    @HarshaXSoaD 8 років тому +15

    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.

    • @factorfitness3713
      @factorfitness3713 7 років тому

      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.

    • @farhan23ism
      @farhan23ism 6 років тому +1

      A typical old style .NET and JAVA developer.

    • @blasttrash
      @blasttrash 6 років тому

      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. :)

  • @moistbrownypoints
    @moistbrownypoints 6 років тому

    23:46 Javascript in 2017 did not notice the fighting back..

  • @ivanbulanov5754
    @ivanbulanov5754 6 років тому +1

    What can I cook on this snake oil?

  • @rahulraviprasad
    @rahulraviprasad 8 років тому +1

    Great talk about Microservices, but doesn't say anything about how to actually implement in code. :(

    • @energale
      @energale 8 років тому +17

      +Rahul R that's because it is not at the code level, but an architectural pattern.

    • @DanVasquez0xFF
      @DanVasquez0xFF 8 років тому

      Apache Thrift is a great tool that glues microservices together in a SOA.

  • @procsharp
    @procsharp 8 років тому

    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.

    • @berkarslan
      @berkarslan 7 років тому

      Boundaries have to be explicit in SOA..

  • @RBC2_
    @RBC2_ 8 років тому

    It is a good concept, but there is nothing new here. Most of the top software designers have been using these ideas for years.

  • @teslavoltagames3208
    @teslavoltagames3208 4 роки тому +3

    Microservices: doing what Linux has been doing for decades in a more convoluted way.

  • @kennethcarvalho3684
    @kennethcarvalho3684 5 років тому

    Sounds like someone jumped out of a Harry Potter movie and started studying Microservices

    • @deloford
      @deloford 5 років тому

      Sounds like you jumped into coding and didn't bother to check who Martin Fowler is.

  • @TheGrimDazzle704
    @TheGrimDazzle704 8 років тому +4

    Lot funnier and interesting when you put into into 1.5x speed!

  • @aliasalias510
    @aliasalias510 4 роки тому

    Martin Fowler is Jesus for software developers.

  • @valentintudormocanu8483
    @valentintudormocanu8483 7 років тому

    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_legha
      @naren_legha 6 років тому

      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 ?

  • @JD-xd3xp
    @JD-xd3xp 7 років тому +3

    put microservices in DOCKER and that helps much better.

  • @rajarakeshsingh
    @rajarakeshsingh 8 років тому +5

    How big is a microservice... he did not answer.. mocked others??

  • @valentintudormocanu8483
    @valentintudormocanu8483 7 років тому

    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 ...

  • @farhan23ism
    @farhan23ism 6 років тому +2

    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.

  • @PMFOXTECHNOLOGIES2
    @PMFOXTECHNOLOGIES2 2 роки тому

    Una charla muy interesante, me.ayudo a complementar lo que sabía ua-cam.com/video/N95W6I_DoRs/v-deo.html
    Saludos y seguiré viendo el bueno contenido.

  • @awksedgreep
    @awksedgreep Рік тому +1

    This didn’t age well

  • @soberhippie
    @soberhippie 6 років тому

    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.

  • @estrellapedroza737
    @estrellapedroza737 4 роки тому +2

    Cool, but dude get to the point lol.

  • @anonhater1913
    @anonhater1913 8 років тому +3

    Boring fluff.

  • @dmitrynutels9340
    @dmitrynutels9340 4 роки тому

    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?

  • @firmsoil
    @firmsoil 8 років тому

    Any "ROOTING" stuff.. lol.. english language speech is such a phonetic disability!

  • @slavikkurnosenkov6740
    @slavikkurnosenkov6740 8 років тому

    bla-bla-lba.