Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems

71 views

Published on

CICD, Microservices, Containers, and Automation are buzzwords spreading throughout software and app development spaces; but where do these architectures make sense to apply and what are the real benefits? In this presentation, Jeremiah explores key differences between complicated vs complex systems and how this applies to modern software development. Learn how modern, massively-scaled software companies are using processes that mimic natural systems to grow, evolve, and adapt to changing demands. We hope you will come away with a new perspective of your own technology systems and take home a few tools to better design those systems to scale and adapt.

This presentation is NOT intenteded to be a stand-alone slide deck. Please feel free to reach out to me to learn more about this presentation or to schedule a live presentation for your organization.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems

  1. 1. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in COMPLEX SOFTWARE SYSTEMS How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
  2. 2. Photography by David Swindler, Action Photo Tours
  3. 3. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  4. 4. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in is the most extraordinary example of &
  5. 5. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  6. 6. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Common Software Success Metrics • Uptime • Velocity • Burn-down/up • Cycle time • Code churn • Net Promoter Score • Etc. • Total active users • System throughput • Response time • Users per server • Total running containers • Total revenue • Etc.
  7. 7. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in is the most extraordinary example of a
  8. 8. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in SYSTEMS ENGINEERING …for dinner parties
  9. 9. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in vs.
  10. 10. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  11. 11. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  12. 12. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Operating System Hard drive CPU Memory I/O Apps
  13. 13. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  14. 14. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  15. 15. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  16. 16. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in is a software architecture that mimics complex patterns found in
  17. 17. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Primary Features: Monolithic UI Controllers Models DB UI Services / API UI UI DB SOA MSA API DB UI API DB API DB API DB UI UI From Complicated Monolith to Complex Microservices
  18. 18. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Key Services within MSA
  19. 19. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  20. 20. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Key Differences Complicated Deterministic Mechanical Linear Randomness is avoided Tightly coupled Designed Fragile Scale vertically Complex microstate does not predict macrostate Organic Non-linear / fractal Randomness sparks growth Loosely coupled, independent actors Evolved Antifragile Scale horizontally (and vertically)
  21. 21. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  22. 22. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  23. 23. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  24. 24. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  25. 25. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Complicated Complex Longevity Repair or replace (Fragility) Evolve & adapt (Antifragility) Scalability Bigger/stronger materials (Vertical Scaling) Replication & orchestration (Horizontal Scaling)
  26. 26. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  27. 27. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in • Statistician / Ex Trader / Risk Expert "Some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. Yet, in spite of the ubiquity of the phenomenon, there is no word for the exact opposite of fragile. Let us call it antifragile. Antifragility is beyond resilience or robustness. The resilient resists shocks and stays the same; the antifragile gets better."
  28. 28. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  29. 29. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Breaks under stress
  30. 30. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  31. 31. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Breaks under stress
  32. 32. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  33. 33. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Breaks under stress Improves from stress
  34. 34. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in PLEASE MISHANDLE ANTIFRAGILE THANK YOU
  35. 35. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  36. 36. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Wears down when force is applied Remains the same under extreme force IMPROVES when force is applied (to a point)
  37. 37. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in FRAGILE Software • Spaghetti code • Lots of dependencies • Susceptible to bad input (e.g. SQL injection) • Etc.
  38. 38. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in ROBUST Software • Use of try/catch • Use of timeouts • Retry / back-off on failure • “Graceful” degradation / failure • Rendering based on consumer capabilities • Etc.
  39. 39. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in ANTIFRAGILE Software • Auto scaling infrastructure: heal and adapt • Microservice Architecture: breakdown complicated parts • Chaos engineering: strategically apply stress/randomness • CI/CD: automate • DevOps: ownership and coordination • Etc.
  40. 40. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  41. 41. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Two Key Paradigm Shifts
  42. 42. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Hormesis
  43. 43. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Hormesis
  44. 44. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in NETFLIX • 37% of all Internet traffic • 50 Gbps across ELB per region • >800,000 CPU cores • >100,000 EC2 instances • “Last week, we launched over 1M containers”
  45. 45. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  46. 46. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  47. 47. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Principal Agent Problem
  48. 48. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Principal Agent Problem
  49. 49. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in AWS • Active enterprise customers: 1,000,000 across 190 countries • 70+ paid products supported by 50,000,000 deployments per year • Larger than MS Azure, Google Cloud, IBM Cloud, combined • Exclusive provider for enterprises like: Netflix, Juniper, Intuit, AOL
  50. 50. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Why do Microservices, CI/CD, & DevOps go hand-in-hand?
  51. 51. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  52. 52. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  53. 53. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  54. 54. Routable IP Web Server Code Database Storage Routable IP Web Server Code Database Storage VERTICALScaling
  55. 55. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  56. 56. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  57. 57. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  58. 58. Routable IP Web Server Code Database Storage Routable IP Web Server Code Database Storage HORIZONTAL Scaling Routable IP Web Server Code Database Storage Routable IP Web Server Code Database Storage Routable IP Web Server Code Database Storage
  59. 59. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  60. 60. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  61. 61. PEAK Average Wasted Capacity
  62. 62. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in Scaling Dilemma • Peak would require ~30 t2.large EC2 instances • “Idle” only requires ~6 • Building for peak is $$$ and wastes more than 50% utilization • Anything less than peak risks unhappy customers • Vertical Solution: – Suck it up and spend the $$$ OR – Capacity below peak: expect poor performance & outages • Horizontal Solution: – Automatically sale up/down based on real-time performance/usage
  63. 63. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in DNS Web Server Code Database Storage
  64. 64. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  65. 65. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  66. 66. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
  67. 67. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in RECAP for Party Notes • Nature is awesomely complex • Complex Systems: – Relationships matter – Stress brings improvements – Evolve and adapt over time • Some cloud software follows complex-systems patterns – Netflix and Amazon are big companies that do this well
  68. 68. https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in RECAP for Technical Notes • How nature survives (longevity) and grows (scalability) • MSA follows complex-systems principles • Longevity solved through antifragility • Hormesis: what doesn’t kill you only makes you stronger • Principal Agent problem: skin in the game • DevOps: a critical mindset for success in MSA • Scalability solved by horizontal scaling – More efficient, greater growth – Increases complexity • Leads to automation (e.g. CI/CID)

×