Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Building the Stonehenge using Gall's law - ruby summit brasil 2020-12-05

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 58 Publicité

Plus De Contenu Connexe

Similaire à Building the Stonehenge using Gall's law - ruby summit brasil 2020-12-05 (20)

Plus par Fabricio Nogueira Buzeto (20)

Publicité

Plus récents (20)

Building the Stonehenge using Gall's law - ruby summit brasil 2020-12-05

  1. 1. Building the Stonehenge Using Gall’s law by Fabricio Buzeto
  2. 2. In love with code since 2002 Entrepreneur since 2005 Researcher since 2008 Startuping since 2011 CTO @ bxblue Fabricio Buzeto a.k.a Fabs
  3. 3. 📜 Gall’s Law
  4. 4. “ A complex system that works is invariably found to have evolved from a simple system that worked. “ Gall’s Law John Gall - 1975 “Systemantics: How Systems Really Work and How They Fail.”
  5. 5. How complex systems evolve?
  6. 6. How complex systems evolve?
  7. 7. “ A complex system that works is invariably found to have evolved from a simple system that worked. “ Gall’s Law John Gall - 1975 “Systemantics: How Systems Really Work and How They Fail.”
  8. 8. 1. Any living cell with 2 or 3 neighbors survives 2. Any dead cell with 3 living neighbors comes to life 3.Any remaining living cell dies Game of Life John Conway - 1970
  9. 9. Simple rules can lead to complex behaviors
  10. 10. “ A simple system may or may not work. “ Gall’s Law Continuing John Gall - 1975 “Systemantics: How Systems Really Work and How They Fail.”
  11. 11. What “works” means?
  12. 12. What “working” means A software that works, is a software that fulfil its purpose What a working software does?
  13. 13. What’s Purpose For what? For what purpose? - Business ← - Politics - Learning
  14. 14. Who needs it? - The User ← - The Sponsor - The Company - The Team What’s a Client? Who we need this?
  15. 15. “ A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. “ Gall’s Law Continuing John Gall - 1975 “Systemantics: How Systems Really Work and How They Fail.”
  16. 16. 🌱 Starting simple
  17. 17. The monolith Why? The Utah monolith - November 2020
  18. 18. bxblue the first years Unbounce Google Docs
  19. 19. bxblue the first years Unbounce Google Docs Rails
  20. 20. bxblue the first years Unbounce PipedriveRails Google Spreadsheets
  21. 21. bxblue the first years MongoDB PipedriveRails
  22. 22. bxblue the first years Unbounce Google Docs Unbounce Google Docs Rails Unbounce PipedriveRails Google Spreadsheet s MongoDB PipedriveRails Will users want migrate their loans? How do loans are sold? How can I do it faster? How can I do it properly?
  23. 23. Qualcanal the first years MySQLDjangoTwitter
  24. 24. Qualcanal the first years MySQLDjangoDataSift
  25. 25. Qualcanal the first years MySQLDjangoDataSift Django Django Django
  26. 26. Qualcanal the first years MySQLDjangoDataSift Django Django MySQL MySQL
  27. 27. Simple to Develop Simple to Test Simple to Deploy Simple to Reuse Simple to Scale* The monolith Simple like that Chris Richardson https://microservices.io/patterns/monolithic.html
  28. 28. Hard to Scale: - Tests - Team - Deploy - Stack - Changes The monolith Drawbacks Chris Richardson https://microservices.io/patterns/monolithic.html
  29. 29. bxblue as scale +15 MongoDB PipedriveRails
  30. 30. bxblue as scale +15 MongoDB PipedriveRails Sidekiq
  31. 31. bxblue as scale Rails User Journey Content marketing Landing Pages ETL Event handling Data Analysis ...
  32. 32. Tooling Tests Code Quality CI/CD rspec factorybot VCR simplecov rubocop reek LayerCI Deploy Github Heroku Sentry New Relic Logentries Knapsack breakman
  33. 33. 🤓 Let’s complicate things
  34. 34. The Stonehenge
  35. 35. They run on multiple servers. They manage data. Distributed Systems What does it mean for a system to be distributed? Unmesh Joshi - 2020 https://martinfowler.com/articles/patterns-of-distributed-systems/
  36. 36. Simple, self-contained, loosely coupled, single focused, services Microservices Miniservices as well Chris Richardson https://microservices.io/patterns/monolithic.html
  37. 37. Large, self-contained, Monolith Supported by, small single focused, problem specific, services The Citadel I love my monolith DHH - 2020 https://m.signalvnoise.com/the-majestic-monolith-can-become-the-citadel/
  38. 38. Simple, self-contained, context-focused, multi-purpose services Macroservices More than Hungry Microservices Nitesh Gupta - 2020 https://dzone.com/articles/micro-service-mini-service-and-macro-service
  39. 39. Qualcanal the later years MySQLDjangoDataSift Django Django MySQL MySQL
  40. 40. Qualcanal the later years MySQLDjangoDataSift Django Apache Storm MySQL Cassandra
  41. 41. Qualcanal the later years Django DataSift Apache Storm Cassandra
  42. 42. bxblue the later years +15 MongoDB PipedriveRails Sidekiq
  43. 43. Rails bxblue the later years +15 MongoDB Pipedrive Sidekiq
  44. 44. Rails bxblue the later years +15 MongoDB Pipedrive Sidekiq backoffice MongoDBSidekiq 5
  45. 45. Rails bxblue the later years +15 MongoDB Pipedrive Sidekiq backoffice MongoDBSidekiq 5 anti-fraud MongoDBSidekiq 7
  46. 46. Rails bxblue the later years +10 MongoDB Pipedrive Sidekiq
  47. 47. Simple, self-sufficient, context-focused, service-enabled, applications Stonehenge One step further onto Macro Services
  48. 48. Self-sufficient applications Means they work by themselves. Stonehenge One step further onto Macro Services
  49. 49. Context-focused applications Means they handle a single context very well Stonehenge One step further onto Macro Services
  50. 50. Service-enabled applications Means they are available to integrate and scale with others Stonehenge One step further onto Macro Services
  51. 51. Every application has an inherent amount of complexity that cannot be removed or hidden Complexity has to go somewhere Law of conservation of complexity Larry Tesler ~ 1980 http://www.designingforinteraction.com/tesler.html
  52. 52. 30% of files 25% of classes 5%~10% of methods Don’t let the zombies bite you Dead Code Simone Romano and Giuseppe Scanniello - 2018 http://www.cs.wm.edu/~denys/pubs/TSE'18-DeadCode.pdf
  53. 53. 70% of Companies will fail until 20 months after last fundraising* * for seed round or crowdfunded companies death rate is 97% Dead Products CBInsights - 2020 https://www.cbinsights.com/research/startup-failure-post-mortem/
  54. 54. 📝 Summing up
  55. 55. “The simplest solution is usually the best” It’s all Distributed Systems Decision making is hard Things will change Why Stonegenge? friar William of Ockham 1287–1347 Occam’s razor
  56. 56. A simple system may or may not work. A complex system designed from scratch never works and cannot be patched up to make it work. Gall’s Law A complex system that works is invariably found to have evolved from a simple system that worked. John Gall - 1975 “Systemantics: How Systems Really Work and How They Fail.”
  57. 57. by Fabricio Buzeto about.buzeto.com @nukdfBuilding the Stonehenge Using Gall’s law 🙆‍♂ Thanks
  58. 58. bxblue.com.br/vagas We’re hiring

×