Distributed Systems Design

791 views

Published on

Distributed Systems Design presentation as presented at Blaak Selectie on February 27th.

Published in: Technology
2 Comments
4 Likes
Statistics
Notes
  • Thanks in advance.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Can you please email me this ppt to aashaikh55@gmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
791
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
2
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide
  • Hekelaan recruitersHelaasvindenzewél het werkvoor je, zoals PHP klussen in Limburg.BlaakSelectie : Actief in Zuid-Holland met vacaturesgefilterd op Rotterdam & Den Haag
  • Disclaimer : Jon Snow doesn’t know everything, me neither! ;-)I will explain concepts, I will answer questionsI will not go into discussion if it’s wrong or right or better or worse
  • Wie kent deze plaat?Wie bouwt applicaties volgens deze architectuurWie negeert deze architectuur bewust?
  • Haight-Ashbury in San Francisco
  • Network is reliableLatency isn’t a problemBandwith isn’t a problemNetwork is secure (only disconnected computer that is turned off!)Topology won’t change (servers moved across domains)Administrator will know what to doTransport cost isn’t a problem (bandwith, serialization)Network is homogeneous (all speak same protocol)
  • System is atomic/monolithicSystem is finishedBusiness logic can and should be centralizedMonolithic, één database, is wat ik altijd bouwdeFinished = greatest trick we ever pulled on businessCentralized = wat alle lagen zijn, wat een webservice is? Mag niet centralized?!?!?!
  • Seperation of concerns : Put the right stuff where it belongs, like business logic. But how many times haven’t you simply used the layers to pass data on to the next layer?Reusability : How many times have you reused business logic related code, like calculating how much something costs? How many times cross applications?Scalability : Have you succesfully scaled out layers over servers?wie schaalt zijn lagen over verschillende servers?wie heeft een database die performance bottleneck is?zien we connectie met de drie additionele fallacies?Database changes, column added. Goes up all the way to user interface to add a single column! What if entire tables change?
  • We creëren eigenlijk continu monolitische applicaties!Maar wat is een monolitische applicatie nu?A system which consists out of modules that all depend on each other.They cannot be used seperatly and cannot be reused by other software.
  • Instead of looking at it as computers, load balancer and physical systems...Look at it as an application, calling out to another application using messages. The messages are transferred to the correct handler by the framework.That way we don’t have a hard spatial coupling to our methods. And we can also choose to route our messages to wherever we want!
  • RPC benchmarks are performed as micro benchmark multiple times.Benchmarks don’t lie, but liers do benchmarks“Connection refused by the remote host”Threads allocate 1MB memory on stack. Data is stored in Generation 0, 1 & 2.GC comes by, tries to free up Gen2 memory & calls everything to complete stop!IIS recycles app pool. DB transactions have to time out though! How long? 5 to 10 minutes!!!
  • - Weinighandvaten HOE we ditbereiken- Run-time aspecten van services alsscalability, availability, en robustnesswordennietbehandeld.
  • Capability -> Generic value-add business capability (3rd party credit card processing or rating components)Activity -> Specific application-level business capabilityProcess -> Orchestration of business processUtility -> Generic infrastructural functionality
  • Websites need companiesContracts need to know which companies are still availableCustomer Services needs to know if bills are paid or not and if it's a higher ranking customerBilling needs to know the price of the products to calculate correct scoreNew requirementProducts need to know if a special discount or bulk discount was made
  • Hoe bouw je een systeem wat nooit down gaat, zelfs niet tijdens updates.
  • Wat schaalbaar en flexibel is, maar toch te bouwen is door junior ontwikkelaars.
  • Exceptionsmogenoptredenvanwege bugs, nooitvanwege business errorsTeken je process flow goed!!!
  • Distributed Systems Design

    1. 1. DISTRIBUTED SYSTEMS DESIGN brains might melt… mine did! @dvdstelt #blaak Dennis van der Stelt Software Architect http://dennis.bloggingabout.net/ dennis@bloggingabout.net NServiceBus Community Champ Dennis van der Stelt
    2. 2. slide heb ik er zelf tussen gezet voor kudos richting mark & sandra! ;-) Dennis van der Stelt
    3. 3. Dennis van der Stelt
    4. 4. AGENDA Dennis van der Stelt
    5. 5. “You know nothing, Jon Snow” Dennis van der Stelt
    6. 6. Dennis van der Stelt
    7. 7. 8 fallacies distribute d Deutsch computin Gosling g Dennis van der Stelt
    8. 8. 11 fallacies distribute Neward d computin g Dennis van der Stelt
    9. 9. why all the layers? Separation of concerns Flexibility & Reusability Scalability Dennis van der Stelt
    10. 10. monolithic A monolithic design is characterized by such tight coupling among modules that they really have no independent existence. Dennis van der Stelt
    11. 11. Which layer has the worst coupling? question
    12. 12. Dennis van der Stelt
    13. 13. reduce coupling
    14. 14. coupling aspects Platform Temporal Spatial Dennis van der Stelt
    15. 15. PLATFORM Also known as ‘interoperability’ http, json, xml, xsd, etc… Dennis van der Stelt
    16. 16. TEMPORAL Store Front End Shipping Service Dennis van der Stelt
    17. 17. TEMPORAL Store Front End Shipping Service Dennis van der Stelt
    18. 18. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    19. 19. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    20. 20. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    21. 21. SPATIAL Dennis van der Stelt
    22. 22. SPATIAL .net application .net application ShipOrder AssignTask Dennis van der Stelt
    23. 23. Messaging  Reduces spatial coupling  XML for platform coupling  Asynchronous for temporal coupling Dennis van der Stelt
    24. 24. Messaging demo
    25. 25. PERFORMANCE RPC versus Messaging Dennis van der Stelt
    26. 26. service oriented architecture Dennis van der Stelt
    27. 27. Dennis van der Stelt
    28. 28. Dennis van der Stelt
    29. 29. Dennis van der Stelt
    30. 30. Dennis van der Stelt
    31. 31. Tenets  services are autonomous of service orientation boundaries are explicit share schema & contract, not class & type compatibility is based on policy Dennis van der Stelt
    32. 32. Dennis van der Stelt
    33. 33. Dennis van der Stelt
    34. 34. SERVICE ORIENTATION AT RUNTIME Dennis van der Stelt
    35. 35. Don’t do request/reply Dennis van der Stelt
    36. 36. Dennis van der Stelt
    37. 37. Don’t do request/reply Dennis van der Stelt
    38. 38. publish events Dennis van der Stelt
    39. 39. PUBLISH EVENTS Save event status locally Save event status locally Customer Disabled Subscribe to customer status updates Unpaid Invoices Subscribe invoice updates Retrieve companies Dennis van der Stelt
    40. 40. what is the best pizza?
    41. 41. TEMPORAL COUPLING Synchronous communication Place new order DoesCompanyHaveCredit(companyId) Company Order accepted Dennis van der Stelt
    42. 42. TEMPORAL COUPLING Asynchronous communication Place new order DoesCompanyHaveCredit(companyId) GotData? GotData? :) GotData? Order accepted Dennis van der Stelt
    43. 43. TEMPORAL COUPLING Event Driven Communication Publish CompanyHasCredit status Store data Place new order Order accepted Dennis van der Stelt
    44. 44. A service is the technical authority of a specific business capability Dennis van der Stelt
    45. 45. SOA & EDA Dennis van der Stelt
    46. 46. the ui is more than meets the eye Dennis van der Stelt
    47. 47. WHO OWNS THIS SCREEN? Dennis van der Stelt
    48. 48. Dennis van der Stelt
    49. 49. Dennis van der Stelt
    50. 50. Dennis van der Stelt
    51. 51. Dennis van der Stelt
    52. 52. Now that is a tasty idea Dennis van der Stelt
    53. 53. WTF? Dennis van der Stelt
    54. 54. Service Business Component Business Component Dennis van der Stelt
    55. 55. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    56. 56. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    57. 57. strategic customer regular customer Sales Service Ordering Regular Customers ? Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    58. 58. strategic customer regular customer Sales Service Ordering subscribe Regular Customers Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    59. 59. strategic customer regular customer Sales Service Ordering publish Regular Customers Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    60. 60. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    61. 61. ARCHITECTURAL STYLES Sales Service Ordering 3 Tier Warehouse Service Shipping CQRS & Event Sourcing Product Service Products CRUD Dennis van der Stelt
    62. 62. Dennis van der Stelt
    63. 63. A service is the technical authority of a specific business capability If you share data over services you likely have your boundaries wrong Dennis van der Stelt
    64. 64. race conditions do not exist
    65. 65. system that never goes down Dennis van der Stelt
    66. 66. juniors building to scale Dennis van der Stelt
    67. 67. Dennis van der Stelt
    68. 68. SOA is business agility
    69. 69. find me. http://dennis.bloggingabout.net dvdstelt@outlook.com Dennis van der Stelt

    ×