Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecture 201x

Afd6dc452bc20f8f06612d4792bb8be3?s=47 Stefan Tilkov
February 06, 2014

Architecture 201x

Lessons learned from modern web-based systems for Enterprise IT

Afd6dc452bc20f8f06612d4792bb8be3?s=128

Stefan Tilkov

February 06, 2014
Tweet

Transcript

  1. #Architecture201x Stefan Tilkov | innoQ stefan.tilkov@innoq.com @stilkov Thursday 6 February

    14
  2. Disclaimer first Thursday 6 February 14

  3. Let’s start with the enterprise Thursday 6 February 14

  4. The J2EE(TM) 1.4 Tutorial, http://docs.oracle.com/cd/E17802_01/j2ee/j2ee/1.4/docs/tutorial-update2/doc/Overview7.html Thursday 6 February 14

  5. GỬI PHẢN HỒI, http://ejbvn.wordpress.com Thursday 6 February 14

  6. DB Application Browser Thursday 6 February 14

  7. DB Backend Frontend Browser Thursday 6 February 14

  8. Assumptions to be challenged One single system One single environment

    Predictable load Clear & distinct roles Planned releases Built because they have to be Thursday 6 February 14
  9. Somewhat Limited Agility Thursday 6 February 14

  10. Increased Desaster Potential Thursday 6 February 14

  11. Cut Things into Pieces 3 2 1 Thursday 6 February

    14
  12. Small, lightweight, focused apps Thursday 6 February 14

  13. My favorite programmer’s story Thursday 6 February 14

  14. Task: Read a file of text, determine the n most

    frequently used words, and print out a sorted list of those words along with their frequencies. Thursday 6 February 14
  15. Donald Knuth Doug McIlroy Dr. Drang, http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/ 10-page literal Pascal

    program, including innovative new data structure tr  -­‐cs  A-­‐Za-­‐z  '\n'  | tr  A-­‐Z  a-­‐z  | sort  | uniq  -­‐c  | sort  -­‐rn  | sed  ${1}q Thursday 6 February 14
  16. Small, lightweight, focused apps Thursday 6 February 14

  17. Simple process run model Thursday 6 February 14

  18. Back to building servers Thursday 6 February 14

  19. Closer to the metal Thursday 6 February 14

  20. http://12factor.net Thursday 6 February 14

  21. Isolation and independence Thursday 6 February 14

  22. Polyglotism Thursday 6 February 14

  23. Built for replacement, not for re-use Thursday 6 February 14

  24. FAQ Press Release Customer Experience User Manual Werner Vogels, http://www.allthingsdistributed.com/2006/11/working_backwards.html

    Thursday 6 February 14
  25. Dismantled monolith Backend & front-end services (Re-Implementation in Node.js) https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/

    Thursday 6 February 14
  26. DB Service Frontend Browser Service Service Thursday 6 February 14

  27. DB Service Frontend Browser Service Service DB DB Thursday 6

    February 14
  28. DB Service FE Browser Service Service DB DB FE FE

    Thursday 6 February 14
  29. Organization ⟷ Architecture Thursday 6 February 14

  30. Kraus, Steinacker, Wegner: Teile und Herrsche – Kleine Systeme für

    große Architekturen, http://bit.ly/152cXbx Independent “Verticals” REST-based macro architecture Individual micro architecture Thursday 6 February 14
  31. App DB Browser App App DB DB Thursday 6 February

    14
  32. Services as DNA “Dogfooding” Two-pizza rule Steve Yegge, https://plus.google.com/110981030061712822816/posts/AaygmbzVeRq Thursday

    6 February 14
  33. Tools Play Node.js Modern Java EE containers Akka Embedded Jetty

    vert.x DropWizard Netty Thursday 6 February 14
  34. Thursday 6 February 14

  35. Integrate pieces to form a whole 3 2 1 Thursday

    6 February 14
  36. Robust systems Unreliable networks Thursday 6 February 14

  37. S1 S2 S3 Thursday 6 February 14

  38. Tools Hystrix Akka Finagle Thursday 6 February 14

  39. Smart aggregation Thursday 6 February 14

  40. REST APIs Client-specific orchestration Streaming architecture Thursday 6 February 14

  41. Browser DB Service Frontend Service Service DB DB Mobile App

    Thursday 6 February 14
  42. Browser DB Service Frontend Service Service DB DB Mobile App

    Orch 1 Orch 2 Thursday 6 February 14
  43. S1 S2 S3 S4 S5 S6 Thursday 6 February 14

  44. Tools ql.io Storm Rx Play spray Thursday 6 February 14

  45. Web-native front-end integration Thursday 6 February 14

  46. Service Interface Service Interface Client Logic Thursday 6 February 14

  47. Service Interface Service Interface Client Logic Thursday 6 February 14

  48. Service Interface Service Interface Client Logic Thursday 6 February 14

  49. Service Interface Service Interface Presentation Logic Orchestration Logic Thursday 6

    February 14
  50. Business Logic Business Logic Presentation Logic Thursday 6 February 14

  51. Business Logic Business Logic Presentation Logic Presentation Logic Thursday 6

    February 14
  52. Simple semantic HTML Open Data Single domain – no portal

    “Google as the homepage” Polyglot environment https://gds.blog.gov.uk/govuk-launch-colophon/ Thursday 6 February 14
  53. Tools & Approaches RESTful HTTP ROCA MVC Web Frameworks Thursday

    6 February 14
  54. Change & run efficiently 3 2 1 Thursday 6 February

    14
  55. Horizontal scaling Thursday 6 February 14

  56. Virtualized operating system as container Thursday 6 February 14

  57. Fully automated, repeatable deployment Thursday 6 February 14

  58. Transparent monitoring Thursday 6 February 14

  59. Small changesets Everyone deploys Fast deploys Change flags Graphs/metrics Fix

    fast/roll forward Ross Snyder, http://www.slideshare.net/beamrider9/continuous-deployment-at-etsy-a-tale-of-two-approaches Thursday 6 February 14
  60. Fully cloud-based Self-made PaaS Simian Army Adrian Cockcroft, http://www.infoq.com/presentations/Netflix-Architecture Thursday

    6 February 14
  61. Tools Puppet Metrics docker Vagrant Chef logstash Zipkin Packer Thursday

    6 February 14
  62. Thursday 6 February 14

  63. Summary Thursday 6 February 14

  64. Build smaller Thursday 6 February 14

  65. Aggregate smartly Thursday 6 February 14

  66. Merge run & change Thursday 6 February 14

  67. Thank you! Questions? Comments? Stefan Tilkov, @stilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ Phone:

    +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein Germany Phone: +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116 www.innoq.com Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0 Robert-Bosch-Straße 7 64293 Darmstadt Germany Phone: +49 2173 3366-0 Radlkoferstraße 2 D-81373 München Germany Telefon +49 (0) 89 741185-270 Thursday 6 February 14