Minimum Viable Architecture • Randy Shoup • YOW! 2022

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 มิ.ย. 2024
  • This presentation was recorded at YOW! 2022. #GOTOcon #YOW
    yowcon.com
    Randy Shoup - VP Engineering & Chief Architect at eBay @randyshoup46
    RESOURCES
    / randyshoup
    / randyshoup
    / randyshoup
    www.randyshoup.com
    ABSTRACT
    There is no such thing as a one-size-fits-all architecture. For example, most large-scale web companies have over time evolved their system architecture from a monolithic application over a monolithic database to a set of loosely-coupled microservices connected by asynchronous events.
    This presentation introduces the idea of a "Minimal Viable Architecture". As a company and product evolves, its architecture needs to evolve as well. We talk about the different phases of a product -- from the idea phase, to the starting phase, scaling phase, and optimizing phase. For each phase, we discuss the goals and constraints on the business, and we suggest an appropriate software architecture to match. Throughout the presentation, we use examples from eBay, Google, StitchFix, and others [...]
    TIMECODES
    00:00 Intro
    02:10 eBay architecture
    04:54 Amazon architecture
    06:33 Takeaways
    08:33 "Prototype" architecture
    11:08 "Just Enough" architecture
    12:51 Monolithic architecture
    15:57 Modular monolith
    17:00 Continuous delivery
    18:00 Feature flags
    20:42 When to rearchitect?
    23:10 Scalable architecture
    26:17 Microservices
    29:06 Incremental migration
    34:46 Carving up the monolith
    36:34 Extracting microservices
    40:54 Stable architecture
    42:10 Outro
    42:21 Q&A
    Download slides and read the full abstract here:
    yowcon.com/sydney-2022/sessio...
    RECOMMENDED BOOKS
    Mary & Tom Poppendieck • Lean Software Development • amzn.to/3CxlMUq
    Ron Kohavi, Ya Xu, Diane Tang • Trustworthy Online Controlled Experiments • amzn.to/3qIsTaa
    Simon Brown • Software Architecture for Developers Vol. 2 • leanpub.com/visualising-softw...
    David Farley • Modern Software Engineering • amzn.to/3GI468M
    Dave Farley & Jez Humble • Continuous Delivery • amzn.to/3ocIHwd
    Woods, Erder & Pureur • Continuous Architecture in Practice • amzn.to/2QWAmkl
    George Fairbanks • Just Enough Software Architecture • amzn.to/3uZzVo0
    / gotocon
    / goto-
    / gotoconferences
    #SoftwareArchitecture #MinimumViableArchitecture #ModularMonolith #Monolith #Microservices #FeatureFlags #ContinuousDelivery #RandyShoup #SoftwareEngineering #Programming #SoftwareDevelopment #YOWcon
    Looking for a unique learning experience?
    Attend the next GOTO conference near you! Get your ticket at gotopia.tech
    Sign up for updates and specials at gotopia.tech/newsletter
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    th-cam.com/users/GotoConf...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 32

  •  11 หลายเดือนก่อน +35

    Randy delivered a great talk as usual. Way too many startups these days start with a microservice architecture because it’s “considered a best practice”.

    • @ayanSaha13291
      @ayanSaha13291 11 หลายเดือนก่อน +3

      In fact, people who defaults their choice to microservices are considered Great architect in my organization. Sad Indeed!

    • @ChrisAthanas
      @ChrisAthanas 11 หลายเดือนก่อน +3

      Cargo cult practices are the norm and why most software projects fail
      Can’t outsource your method, you have to think. Avoiding this only ends in doom

    • @edgeeffect
      @edgeeffect 11 หลายเดือนก่อน +4

      It works both ways because way too many mature companies are still struggling along with the big ball of mud that results from ignoring Martin Fowler's "The best code you can write now is code you'll DISCARD in a couple of years time".

  • @josefpharma4714
    @josefpharma4714 11 หลายเดือนก่อน +6

    Great talk.
    One thing I’d like to subscribe to:
    Try to (enforce) modularity in the monolith.

  • @josemonge4604
    @josemonge4604 11 หลายเดือนก่อน +4

    Totally agreed. People tend to follow trends like mad men. I'm so glad there are reasonable people out there to balance it out.

  • @IgorVe
    @IgorVe 10 หลายเดือนก่อน +2

    Great talk. Agree with every word! The biggest problem in all teams I saw is that they think that they are already at second stage. But usually people just want to try something new only because it sounds cool

  • @fabiomirgo
    @fabiomirgo 7 หลายเดือนก่อน +3

    Love that talk! If people knew it the world would be a better place.
    One point I'd like to add, is that if you did the modular architecture right, so it won't be hard to find a seam later.

  • @asandor83
    @asandor83 11 หลายเดือนก่อน +18

    That 16k method C++ architecture still leading to a successful business tells me architecture doesn't matter 😂

  • @branmuller
    @branmuller 11 หลายเดือนก่อน +1

    Really good talk! I’ve definitely experience over engineering the first phase as if I am on the second which became problematic

  • @kousheralam8657
    @kousheralam8657 4 หลายเดือนก่อน +1

    Very insightful!!

  • @tylerhudson6195
    @tylerhudson6195 11 หลายเดือนก่อน +2

    Bravo!

  • @edgeeffect
    @edgeeffect 11 หลายเดือนก่อน +6

    The problem comes when you skip the Martin Fowler quote at 11:47.
    When you build this prototype and rather than discard it in a couple of years time, you're still trying to patch all manner of production needs into it 10 years later.
    Instead of step-by-step moving from no architecture to a little bit of architecture to a "properly" architected system you're caught between a rock and a hard-place - either a big ball of mud or a big rewrite.
    I'm tempted to print that slide on a big piece of paper and stick it to my wall.

    • @ForgottenKnight1
      @ForgottenKnight1 2 หลายเดือนก่อน

      With the speed of tech today, software that is build now might be retired before it hits the 10 year mark. I am working on products that are 5 years old and already considered obsolete...

  • @xdman2956
    @xdman2956 11 หลายเดือนก่อน +3

    35:44 savage persuasion

  • @nerdative
    @nerdative 11 หลายเดือนก่อน +4

    Couldn't agree more with what he's saying...

  • @richardfrimpong5891
    @richardfrimpong5891 10 หลายเดือนก่อน +1

    Randy is just wow

  • @ValeriyaSerdyukova
    @ValeriyaSerdyukova 6 หลายเดือนก่อน +1

    Awesome talk

  • @vrjb100
    @vrjb100 11 หลายเดือนก่อน +5

    If you cannot write a clean maintainable monolith, why do you think you can write maintainable microservices? That should be a guideline

  • @lordkopi603
    @lordkopi603 11 หลายเดือนก่อน +2

    what was the previous talk ?
    which video?

  • @tsh4k
    @tsh4k 11 หลายเดือนก่อน +2

    Great talk. 15 years ago using Rails or PHP for "the Just Enough" phase made sense. Today you have languages like Go that scales well, is more maintainable, and is safer all without sacrificing short term agility.

  • @ianhayes9101
    @ianhayes9101 11 หลายเดือนก่อน +3

    Great talk!

  • @xdman2956
    @xdman2956 11 หลายเดือนก่อน

    16K methods per class :o
    that's some next level lunacy, and it's me saying this watching this at 4 am

  • @steav677
    @steav677 25 วันที่ผ่านมา

    After all, what is the Minimum Viable Architecture? I don't get it.

  • @aslkdjfzxcv9779
    @aslkdjfzxcv9779 10 หลายเดือนก่อน

    i

  • @vichoohciv9443
    @vichoohciv9443 9 หลายเดือนก่อน

    I may require more experience, but is it really microservices THAT slower than monolith?
    I mean, if you do a "clean" monolith, it means you have been making it modular, so the team can parallel their effort.
    If that is the case, how is it different the efficiency of both workflows? As I see it, when working with any of those, you start with some "quality assurance" repo, which provides a time save on the coding, with that in mind, the impact of that previous work is actually higher on microservices, so it could even be faster.
    This first part of the talk confuses me a bit, I think it applies only to starting enterprises, with no previous works and in search of their product.

    • @asdasadsfa2
      @asdasadsfa2 8 หลายเดือนก่อน +1

      If you work with a monolith, you just skip the whole messy deploy/latency/availability/distributed derived problems. Not to mention that you can simply work faster with things like MVC or similar.

  • @dbaltor
    @dbaltor 2 หลายเดือนก่อน +1

    I'm afraid this kind of mentality of deliberately starting with a crappy architecture to fix it later has also killed many companies. Very few ones can afford the cost of recovering from a full rewrite such as the one Twitter made when moved out of Ruby and MySQL.

    • @ForgottenKnight1
      @ForgottenKnight1 2 หลายเดือนก่อน +1

      It's not crappy, it's just enough. Over-engineering is a mistake some companies do and the result is them throwing millions (instead of 100-200k) out the window.

  • @FlamencoDeniz
    @FlamencoDeniz 8 หลายเดือนก่อน +3

    I watched the first 25min, contrary to most commentators i cannot find anything spectacular in this talk. This seems rather a listing of anecdotes than a logical coherent or in any other way scientific approach. At some point we were down to phrases like "write solid code". For example at 19:28 there is no value in stating that 2/3 of features are "flat or negative" unless you clarify how you measured these "figures" and what you mean by "flat" and "negative". At 22:31 he poses a question on himself that he doesnt even answer. And his assumption here, which is also mentioned in his beginning examples, that "rearchitecting is a sign of success", does not encounter a single point validation throughout his speech other than "I think that..." and then he just repeats his statement 23:02.
    Lastly, I cannot believe that someone truly thinks that the specific architecture of say ebay and AMZ was the reason for their success. At some point they had to scale yes, but they probably could have chosen a slightly different architecture as well and the main reason that had to scale in the first place was that these companies fullfilled a need - shopping online so you dont have to go to a physical store - that turned out to be a mass market. They could have stayed on perl for the next 100 years if what i just said was not true.