never done
play

never done jalewis@thoughtworks.com @boicy 1 never done 2 never - PowerPoint PPT Presentation

building systems that are never done jalewis@thoughtworks.com @boicy 1 never done 2 never done Incomplete adjective not having all the necessary or appropriate parts 3 never done Incomplete adjective not having all the necessary or


  1. building systems that are never done jalewis@thoughtworks.com @boicy 1

  2. never done 2

  3. never done Incomplete adjective not having all the necessary or appropriate parts 3

  4. never done Incomplete adjective not having all the necessary or appropriate parts 3

  5. never done 4

  6. never done “This, milord, is my family's axe . We have owned it for almost nine hundred years, see. Of course, sometimes it needed a new blade . And sometimes it has required a new handle , new designs on the metalwork, a little refreshing of the ornamentation . . . but is this not the nine hundred-year-old axe of my family? And because it has changed gently over time, it is still a pretty good axe, y'know. Pretty good.” 4

  7. microservices should be: cheap to replace quick to scale able to withstand failure and should allow us to go as “fast as possible”? 5

  8. “the fi rst post-devops architectural style” Neal Ford 6

  9. replaceable component architectures Dan North 7

  10. the future is scary 8

  11. " ever accelerating progress of technology and changes in the mode of human life, which gives the appearance of approaching some essential singularity in the history of the race beyond which human a ff airs, as we know them, could not continue ” John von Neumann, as recorded by Ulam, 1958 9

  12. 10

  13. Singularity 11

  14. JavaScript Singularity 11

  15. JavaScript Singularity Container 11

  16. Log aggregation JavaScript Singularity Container 11

  17. even closer to home 12

  18. HOW WE DESIGN SOFTWARE IS CHANGING 13

  19. 14

  20. Hardest things to do: 15

  21. End-to-end testing Hardest things to do: 15

  22. End-to-end testing Hardest things to do: Independent deployment 15

  23. End-to-end testing Hardest things to do: Independent deployment Service versioning / evolution 15

  24. TESTING MICROSERVICES IS HARD Service A Service Large Medium Small 16

  25. TESTING MICROSERVICES IS HARD Service A Service Large Medium Small 16

  26. TESTING MICROSERVICES IS HARD Service A Service Stub Large Medium Small 16

  27. INTEGRATING MICROSERVICES IS HARD 17

  28. INTEGRATING MICROSERVICES IS HARD Integration Test 17

  29. INTEGRATING MICROSERVICES IS HARD … Integration Test Prod 17

  30. INTEGRATING MICROSERVICES IS HARD … Integration Test Prod 17

  31. INTEGRATING MICROSERVICES IS HARD … Integration Test Prod 17

  32. INTEGRATING MICROSERVICES IS HARD … Integration Test Prod 17

  33. <thinks> 18

  34. GRASP YAGNI World of Warcraft SOLID agile DRY BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 19

  35. 20

  36. Gemini Project, Rogallo wing Source: wikipedia.org 20

  37. <thinks> 21

  38. it’s turtles all the way down Gemini Project, Rogallo wing Source: wikipedia.org 22

  39. GRASP YAGNI World of Warcraft SOLID agile DRY BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 23

  40. GRASP World of Warcraft SOLID YAGNI agile DRY BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 24

  41. http://martinfowler.com/bliki/Yagni.html 25

  42. 26 26

  43. 27 27

  44. 28 28

  45. Build out services as you need them 29 29

  46. YAGNI World of Warcraft SOLID GRASP agile DRY BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 30

  47. 31

  48. Ful fi lment Retail 32

  49. Retail Ful fi lment 33

  50. Retail Ful fi lment 34

  51. Retail Ful fi lment 35

  52. High cohesion Retail Ful fi lment Low coupling 36

  53. (incidentally, if you were playing the Conway’s law lottery, that’s when you number came up) 37

  54. GRASP YAGNI World of Warcraft SOLID DRY agile BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 38

  55. “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” Dave Thomas, interviewed by Bill Venners (2003-10-10). "Orthogonality and the DRY Principle". Retrieved 2006-12-01. 39

  56. shared binary dependencies ∆ dep ⇒ ∆ S 1 + ∆ S 2 + … + ∆ S n 40 40

  57. git clone https://github.com/boicy/service-template (note this doesn’t exist) 41

  58. 42

  59. DRY within services duplication between services 43

  60. GRASP YAGNI World of Warcraft SOLID TDD agile DRY BDD emergent design GoF Continuous Delivery XP KISS Refactoring 44

  61. 45

  62. Large Medium Small 45

  63. “The London school of Test Driven Development” Mike Feathers 46

  64. should we write unit tests? 47

  65. should bother with test driving our code if we are going to throw it away? 48

  66. Nat Pryce Steve Freeman Dan North Sydney ‘Hoppalong’ Redelinghuys Jim Webber Ian Robinson Ivan Moore Liz Keogh Simon Stewart Jez Humble Dave Farley Jay Fields Dan Worthington-Bodart Joe Walnes 49

  67. http://moleseyhill.com/blog/2009/08/27/dreyfus-model/ 50

  68. should we write unit tests? personally I think it’s more important than *ever* 51

  69. GRASP YAGNI World of Warcraft SRP agile DRY BDD emergent design GoF Continuous Delivery TDD XP KISS Refactoring 52

  70. a class should be no bigger than my head 53

  71. a:Class 54 54

  72. a:Class a:Class a:Class a:Class 55 55

  73. 56 56

  74. 57 57

  75. SRP a service should be no bigger than my head 58

  76. GRASP YAGNI World of Warcraft SOLID KISS agile DRY BDD emergent design GoF Continuous Delivery TDD XP Refactoring 59

  77. 60

  78. WWJD? 61

  79. WWJD? (what would Joe do?) 61

  80. 62

  81. cron, python, boto, pydot, graphviz 63

  82. cron, python, boto, pydot, graphviz 63

  83. cron, python, boto, pydot, graphviz Do the simplest thing possible 64

  84. integration and deployment 65

  85. 66

  86. 66

  87. SEMANTIC MONITORING 66

  88. service a service b 67

  89. service a service b Large Medium Small 67

  90. service a service b Large Medium Small 67

  91. service a service b Large Consumer Driven Contracts Medium Small 67

  92. Customer Web Shop Service 68

  93. Customer Web Shop Service Expectations 68

  94. Customer Web Shop Service Expectations 68

  95. Customer Web Shop Service Expectations Prod 68

  96. Customer Web Shop Service Expectations Prod 68

  97. 69

  98. https://github.com/realestate-com-au/pact 69

  99. Good Monitoring Fast Remediation Prod Prod QA Prod Prod TESTING IN PRODUCTION 70

  100. the death of the integration environment 71

Recommend


More recommend