Your SlideShare is downloading. ×
Distributed Systems Design
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Distributed Systems Design

266
views

Published on

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

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
266
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
2
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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!!!
  • Transcript

    • 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. slide heb ik er zelf tussen gezet voor kudos richting mark & sandra! ;-) Dennis van der Stelt
    • 3. Dennis van der Stelt
    • 4. AGENDA Dennis van der Stelt
    • 5. “You know nothing, Jon Snow” Dennis van der Stelt
    • 6. Dennis van der Stelt
    • 7. 8 fallacies distribute d Deutsch computin Gosling g Dennis van der Stelt
    • 8. 11 fallacies distribute Neward d computin g Dennis van der Stelt
    • 9. why all the layers? Separation of concerns Flexibility & Reusability Scalability Dennis van der Stelt
    • 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. Which layer has the worst coupling? question
    • 12. Dennis van der Stelt
    • 13. reduce coupling
    • 14. coupling aspects Platform Temporal Spatial Dennis van der Stelt
    • 15. PLATFORM Also known as ‘interoperability’ http, json, xml, xsd, etc… Dennis van der Stelt
    • 16. TEMPORAL Store Front End Shipping Service Dennis van der Stelt
    • 17. TEMPORAL Store Front End Shipping Service Dennis van der Stelt
    • 18. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    • 19. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    • 20. TEMPORAL Store Front End Order Queue Shipping Service Dennis van der Stelt
    • 21. SPATIAL Dennis van der Stelt
    • 22. SPATIAL .net application .net application ShipOrder AssignTask Dennis van der Stelt
    • 23. Messaging  Reduces spatial coupling  XML for platform coupling  Asynchronous for temporal coupling Dennis van der Stelt
    • 24. Messaging demo
    • 25. PERFORMANCE RPC versus Messaging Dennis van der Stelt
    • 26. service oriented architecture Dennis van der Stelt
    • 27. Dennis van der Stelt
    • 28. Dennis van der Stelt
    • 29. Dennis van der Stelt
    • 30. Dennis van der Stelt
    • 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. Dennis van der Stelt
    • 33. Dennis van der Stelt
    • 34. SERVICE ORIENTATION AT RUNTIME Dennis van der Stelt
    • 35. Don’t do request/reply Dennis van der Stelt
    • 36. Dennis van der Stelt
    • 37. Don’t do request/reply Dennis van der Stelt
    • 38. publish events Dennis van der Stelt
    • 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. what is the best pizza?
    • 41. TEMPORAL COUPLING Synchronous communication Place new order DoesCompanyHaveCredit(companyId) Company Order accepted Dennis van der Stelt
    • 42. TEMPORAL COUPLING Asynchronous communication Place new order DoesCompanyHaveCredit(companyId) GotData? GotData? :) GotData? Order accepted Dennis van der Stelt
    • 43. TEMPORAL COUPLING Event Driven Communication Publish CompanyHasCredit status Store data Place new order Order accepted Dennis van der Stelt
    • 44. A service is the technical authority of a specific business capability Dennis van der Stelt
    • 45. SOA & EDA Dennis van der Stelt
    • 46. the ui is more than meets the eye Dennis van der Stelt
    • 47. WHO OWNS THIS SCREEN? Dennis van der Stelt
    • 48. Dennis van der Stelt
    • 49. Dennis van der Stelt
    • 50. Dennis van der Stelt
    • 51. Dennis van der Stelt
    • 52. Now that is a tasty idea Dennis van der Stelt
    • 53. WTF? Dennis van der Stelt
    • 54. Service Business Component Business Component Dennis van der Stelt
    • 55. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 56. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 57. strategic customer regular customer Sales Service Ordering Regular Customers ? Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 58. strategic customer regular customer Sales Service Ordering subscribe Regular Customers Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 59. strategic customer regular customer Sales Service Ordering publish Regular Customers Strategic Customers Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 60. strategic customer regular customer Sales Service Ordering Warehouse Service Shipping Product Service Products Dennis van der Stelt
    • 61. ARCHITECTURAL STYLES Sales Service Ordering 3 Tier Warehouse Service Shipping CQRS & Event Sourcing Product Service Products CRUD Dennis van der Stelt
    • 62. Dennis van der Stelt
    • 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. race conditions do not exist
    • 65. system that never goes down Dennis van der Stelt
    • 66. juniors building to scale Dennis van der Stelt
    • 67. Dennis van der Stelt
    • 68. SOA is business agility
    • 69. find me. http://dennis.bloggingabout.net dvdstelt@outlook.com Dennis van der Stelt