Large-Scale Architecture: The Unreasonable Effectiveness of Simplicity • Randy Shoup • YOW! 2022

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ส.ค. 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
    ABSTRACT
    Building distributed systems that work is quite challenging. But systems that provide customer value will grow and evolve, and scaling those systems by multiple orders of magnitude is even harder. Citing specific failures and successes from internet-scale consumer properties like Google and eBay, and measuring customer value through the architecturalilities, this session deep-dives into the often counterintuitive architectural principles of simplicity, orthogonality, asynchrony, and feedback.
    Simplicity helps us turn seemingly intractable problems into discrete and solvable ones. We will discuss component responsibilities, single-threaded straight-line processing, and making changes in small steps.
    Orthogonality allows us to compose separate concerns and bound the complexity of each dimension of the problem. We will discuss processing abstractions like mixins and addons, as well as communication abstractions like channels and pipes.
    Asynchrony and eventual consistency further reduce complexity and lead us to drive the system design directly from what really matters - what is actually changing in our core business domain. We will explore events, caching, and dataflow.
    Finally, fast and consistent feedback help us continually maintain and improve a complex system. We will discuss quality feedback in the small, as well as systems feedback in the large.
    You will take away some interesting anecdotes, as well as actionable insights you can put into practice in scaling your own systems. [...]
    TIMECODES
    00:00 Intro
    01:38 eBay architecture
    03:55 Amazon architecture
    06:00 Large-scale architecture
    06:43 Simple components
    14:12 Simple interactions
    20:30 Simple changes
    30:04 Putting it all together
    44:54 Outro
    45:35 Q&A
    Read the full abstract here:
    yowcon.com/brisbane-2022/sess...
    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 #TDD #SoftwareDevelopment #EventDrivenArchitecture #NetflixArchitecture AmazonArchitecture #FeatureFlag #Sharding #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...
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @youkenez
    @youkenez ปีที่แล้ว +8

    Many of the learnings here are immediately applicable for designing large-scale, interactive desktop applications. Instead of services we have components inside a single process, communicating with each other, instead of huge, distributed database there's persistent/volatile/ui program state owned and shared by multiple components. But the principles presented in this talk work equally well.

  • @neptronix
    @neptronix ปีที่แล้ว +1

    Fantastic talk, thank you

  • @joeboyle7390
    @joeboyle7390 ปีที่แล้ว +2

    Great talk!

  • @pollypravir5378
    @pollypravir5378 3 หลายเดือนก่อน +1

    WOW!! Software artitecture for large scale simplified.

  • @maverickmusic101
    @maverickmusic101 ปีที่แล้ว +1

    Great talk ❤

  • @madskaddie
    @madskaddie ปีที่แล้ว +3

    even I do think the given direction in the talk is the way to go, I do not think it has anything simple, for any non trivial use case.
    For example, implementing idempotency is not simple and implementations can be quite fragile.
    another example is the transaction context: a simple concept as the set of local variables (normally managed by the compiler or runtime automatically) are now messages handled by the developer
    and if consistency is required by the problem... event driven solutions can become nightmares
    thanks for the talk

  • @parametr
    @parametr ปีที่แล้ว +1

    I really like the description of the tech progression for ebay and amazon.
    I do miss some context, though.
    Next time, can you add data like:
    - company revenue at the time of refactor
    - developer team size at the time of refactor
    - client volume at the time of refactor
    - world reach at the time of refactor

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

    Thanks for the presentation. However, things like Idempotency and Undo Saga are not exactly simple things, IMO. Would love to hear you, elaborating on these aspects in one of your future presentations/articles!

  • @charan775
    @charan775 ปีที่แล้ว

    22:00

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

    Unfortunately, I don't feel the content of this talk addresses 'simplicity' very well.
    Basically, it's a quick overview of a greater number of architectural ideas.
    However, if you do not know them, you will not understand them from this talk. If you do already know them, there is not much to learn for you either.

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

    Here you are talking about wrong design th-cam.com/video/oejXFgvAwTA/w-d-xo.html , because with decoupling also exist cohesion , distributed transaction between a different databases -owned by different teams or organizations . Difficulty of distributed transactions coming just wrong design of the system

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

    23:45 - 5% on writing you say, and 75% on reading* - no way! I don't believe you! It can't be true!
    Writing takes 99% of the time so let's improve it.
    Let's invent new languages, with even more compact, non-self-explanatory and non-intuitive syntaxes or skip writing a valuable comment...writing speed is what matters, nobody needs to understand the code fast...
    Sarcasm :)
    *reading - I prefer "understanding" word here

  • @xxgn
    @xxgn ปีที่แล้ว +6

    Interestingly, Amazon Prime Video migrated from microservice architecture to monolithic architecture. The issue was that passing video data between microservices generated too much I/O. The monolithic architecture would hold the video data in memory. They can still scale by running multiple instances of the monolithic application.

    • @andsnpl
      @andsnpl ปีที่แล้ว +16

      This is such a frustrating fable to see repeated. The team migrated from step functions to containers, but they still had exactly the same microservices architecture. They _said_ this was a monolith, only because they apparently had absolutely no idea what that word means.

    • @xxgn
      @xxgn ปีที่แล้ว +2

      @@andsnpl Sure, that's true from a coding and development perspective. However, from a server perspective, you're working with a monolithic application. Your deployments are whole-application, your scaling is not hyper-granular, and your ability to use serverless is weakened. At that point, half of the purported benefits of microservices are gone. Mind you, half of the downsides are gone, too.

    • @neptronix
      @neptronix ปีที่แล้ว +1

      That was a really bad microservice architecture if it was multiple processing huge streams of data.
      Can't blame the microservice architecture, part of it should have been a macroservice.

    • @Rope257
      @Rope257 ปีที่แล้ว +2

      @@andsnpl Press X to doubt. No way that an entire department doesn't know the proper terminology when referring to a monolith.

    • @cinoss5
      @cinoss5 ปีที่แล้ว

      @@andsnpl it 's a spectrum not binary I guess

  • @this-is-bioman
    @this-is-bioman 2 หลายเดือนก่อน

    Quite abstract and not applicable in real life. Just some more or less interesting anecdotes from speaker's jobs.

  • @greatestone4eva
    @greatestone4eva ปีที่แล้ว +6

    It's NOT unreasonable to expect simplicity to be effective...

    • @elixirfun
      @elixirfun ปีที่แล้ว +2

      It's rather unreasonable not to expect that.

    • @jakubsebek
      @jakubsebek ปีที่แล้ว +2

      Where have we as an industry gotten :DD

    • @ikulloa
      @ikulloa ปีที่แล้ว +1

      Indeed. Good old KISS engineering principle

    • @CamembertDave
      @CamembertDave ปีที่แล้ว +3

      ❌ The Unreasonable (Effectiveness of Simplicity)
      ✔ The (Unreasonable Effectiveness) of Simplicity

  • @elixirfun
    @elixirfun ปีที่แล้ว +6

    Pity that the last question obviously wasn't properly understood by the speaker.

    • @ivp008
      @ivp008 ปีที่แล้ว

      @coninuousdelivery has recently released great video addressing the 2nd question th-cam.com/video/Fh8CqZtghQw/w-d-xo.html

    • @cinoss5
      @cinoss5 ปีที่แล้ว +1

      What was missed? It kinda answer the question for me. Or I might miss understood the question as well...

    • @elixirfun
      @elixirfun ปีที่แล้ว

      @@cinoss5 She asked about cross-system testing (very good question), while his answer was repeating that it's easy to test those pieces in isolation.

    • @KManAbout
      @KManAbout ปีที่แล้ว +2

      ​@@elixirfunintegration testing is difficult

    • @elixirfun
      @elixirfun ปีที่แล้ว

      @@KManAbout Would it have beeen the answer then? :) Yeah, sure it is.