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.
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
COMPLEX SOFTWARE SYSTEMS
How Modern Software Architecture B...
Photography by David Swindler, Action Photo Tours
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
is the most extraordinary
example of
&
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Common Software Success Metrics
• Uptime
• Velocity
• Burn-...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
is the most extraordinary
example of a
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
SYSTEMS ENGINEERING
…for dinner parties
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
vs.
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Operating
System
Hard
drive
CPU
Memory
I/O
Apps
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
is a software architecture
that mimics
complex patterns fou...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Primary Features:
Monolithic
UI
Controllers
Models
DB
UI
Se...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Key
Services
within
MSA
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Key Differences
Complicated
Deterministic
Mechanical
Linear...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Complicated Complex
Longevity
Repair or replace
(Fragility)...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
• Statistician / Ex Trader / Risk Expert
"Some things benef...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Breaks under stress
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Breaks under stress
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Breaks under stress
Improves from stress
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
PLEASE MISHANDLE
ANTIFRAGILE
THANK YOU
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Wears down when
force is applied
Remains the same
under ext...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
FRAGILE Software
• Spaghetti code
• Lots of dependencies
• ...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
ROBUST Software
• Use of try/catch
• Use of timeouts
• Retr...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
ANTIFRAGILE Software
• Auto scaling infrastructure: heal an...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Two Key Paradigm Shifts
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Hormesis
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Hormesis
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
NETFLIX
• 37% of all Internet traffic
• 50 Gbps across ELB ...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Principal Agent Problem
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Principal Agent Problem
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
AWS
• Active enterprise customers: 1,000,000 across 190 cou...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Why do Microservices, CI/CD, &
DevOps go hand-in-hand?
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Routable IP
Web Server
Code
Database Storage
Routable IP
Web Server
Code
Database Storage
VERTICALScaling
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Routable IP
Web Server
Code
Database Storage
Routable IP
Web Server
Code
Database Storage
HORIZONTAL Scaling
Routable IP
W...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
PEAK
Average
Wasted
Capacity
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
Scaling Dilemma
• Peak would require ~30 t2.large EC2 insta...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
DNS
Web Server
Code
Database Storage
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
RECAP for Party Notes
• Nature is awesomely complex
• Compl...
https://www.linkedin.com/in/jeremiahjones jeremiah@techuity.in
RECAP for Technical Notes
• How nature survives (longevity)...
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
How Modern Software Architecture Benefits from Patterns Found in Natural Complex Systems
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

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

Download to read offline

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.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • 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)

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.

Views

Total views

306

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×