Перейти к содержанию

Прочитал и разобрал на молекулы книгу Building Microservices, 2nd Edition - Sam Newman

Автор 12 лет работал в компании ThoughtWorks. Да-да, это та самая ThoughtWorks, в которой работает Martin Fowler 😄

Под катом:

  1. для кого и чем она полезна;
  2. полезные артефакты: Mind Map конспекта и ссылка на мой Solution Architect Framework, который я разработал после прочтения книги;
  3. список материалов для дальнейшего изучения.

Для кого и чем полезна

Так выглядит обложка книги. Это уже второе издание.

Книга в первую очередь про построение распределенных систем на базе микросервисной архитектуры. В ней не расскажут про монолит или распределенный монолит, хотя это вполне себе валидные подходы. Про них следует читать в других книжках.

Эта книга будет полезна в первую очередь Software Engineers в следующих сценариях:

  1. В вашем проекте нет Solution Architect и вы сами отвечаете за архитектуру. После вдумчивого прочтения вы сможете самостоятельно принимать некоторые архитектурные решения. Не все, одной этой книги недостаточно.
  2. В вашем проекте есть Solution Architect и вы хотите стать Solution Architect в будущем. Тут все понятно: читаете книгу и внимательно наблюдаете за своим SA, задаете ему вопросы, чётче понимаете, что и почему делается на практике.
  3. Вы знаете некоторые описанные в книге концепции — изучали их по частям и теперь хотите систематизировать знания.

Полезные артефакты

Книга на 589 страниц, материал непростой. Даже не пытайтесь осознать всё за одни выходные. Я сам читал очень вдумчиво и не торопился. Некоторые разделы перечитывал по нескольку раз. Изучал материалы, на которые ссылается автор.

В итоге, всё получилось в несколько заходов:

  1. В первый раз читал и сразу составлял текстовый конспект со своими мыслями и комментариями. Выкладывать не буду, уж сильно большой.
  2. Потом перечитал конспект и составил по нему Mind Map с ключевыми концепциями:
    Мой Mind Map по книге — результат долгого и вдумчивого чтения
  3. Далее, по Mind Map разработал собственный Solution Architect Framework, который буду использовать в работе и постепенно развивать.

Полезные ссылки и материалы для дальнейшего изучения

  1. Nicole Forsgren, Dustin Smith, Jez Humble, and Jessie Frazelle, Accelerate: State of DevOps 2019.
  2. Nicole Forsgren, Jez Humble, and Gene Kim, Accelerate: The Science of Building and Scaling High Performing Technology Organizations (Portland, OR: IT Revolution, 2018).
  3. Matthew Skelton and Manuel Pais, Team Topologies (Portland, OR: IT Revolution, 2019).
  1. Pete Hodgson, “Feature Toggles (aka Feature Flags),” martinfowler.com, October 9, 2017.
  2. Richardson Maturity Model.
  3. Consumer-Driven Contracts: A Service Evolution Pattern.
  4. CodeOwnership, Martin Fowler.
  5. “Feature Toggles (aka Feature Flags)”.
  6. Pramod J. Sadalage and Martin Fowler, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence (Upper Saddle River, NJ: Addison-Wesley 2012).
  7. Martin Fowler, TestDouble.
  8. Martin Fowler, “Eradicating Non-Determinism in Tests,” martinfowler.com, April 14, 2011.
  9. Ham Vocke, “The Practical Test Pyramid,” martinfowler.com, February 26, 2018
  10. Cam Jackson, “Micro Frontends,” martinfowler.com, June 19, 2019.
  11. Martin Fowler, article “Who Needs an Architect?”.
  1. Alistair Cockburn, “Hexagonal Architecture,” January 4, 2005
  2. For an in-depth introduction to domain-driven design, see Domain-Driven Design by Eric Evans (Addison-Wesley)—or for a more condensed overview, see Domain-Driven Design Distilled by Vaughn Vernon (Addison-Wesley).
  3. Deconstructing the Monolith (Shopify Unite Track 2019)
  4. Don’t Touch My Code! Examining the Effects of Ownership on Software Quality (another link)
  5. Distributed Systems Observability by Cindy Sridharan (O’Reilly)
  6. Maarten van Steen and Andrew S. Tanenbaum, Distributed Systems, 3rd ed
  7. Gregor Hohpe and Bobby Woolf, Enterprise Integration Patterns (Boston: Addison-Wesley, 2003).
  8. Protolock
  9. REST in Practice: Hypermedia and Systems Architecture (O’Reilly) by Jim Webber, Savas Parastatidis, and Ian Robinson
  10. Designing Event-Driven Systems (O’Reilly) by Ben Stopford
  11. Kafka: The Definitive Guide (O’Reilly) by Neha Narkhede, Gwen Shapira, and Todd Palino.
  12. Alanna Brown, Nicole Forsgren, Jez Humble, Nigel Kersten, and Gene Kim, 2016 State of DevOps Report, https://www.puppet.com/resources/history-of-devops-reports.
  13. Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (Upper Saddle River, NJ: Addison-Wesley, 2010).
  14. Why Google Stores Billions of Lines of Code in a Single Repository
  15. Kief Morris, Infrastructure as Code, 2nd edition (Sebastopol: O’Reilly, 2020).
  16. Sam Newman, Monolith to Microservices (Sebastopol: O’Reilly, 2019).
  17. Google Uncloaks Once-Secret Server
  18. Kripa Krishnan, “Weathering the Unexpected,” acmqueue 10, no. 9 (2012)
  19. Russ Miles, Learning Chaos Engineering (Sebastopol: O’Reilly, 2019)
  20. The Chaos Engineering toolkit for Developers
  21. Martin L. Abbott and Michael T. Fisher, The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, 2nd ed. (New York: Addison-Wesley, 2015).
  22. Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams, © 2009, PDF
  23. Mike Cohn, Succeeding with Agile (Upper Saddle River, NJ: Addison-Wesley, 2009).
  24. Steven Shorrock, “Alarm Design: From Nuclear Power to WebOps” Humanistic Systems (blog), October 16, 2015
  25. Ben Sigelman, “Three Pillars with Zero Answers—Towards a New Scorecard for Observability” Lightstep (blog post), December 5, 2018
  26. Charity Majors, Liz Fong-Jones, and George Miranda, Observability Engineering (Sebastopol: O’Reilly, 2022).
  27. Betsy Beyer et al., eds., Site Reliability Engineering: How Google Runs Production Systems (Sebastopol: O’Reilly, 2016).
  28. Betsy Beyer et al., eds., The Site Reliability Workbook (Sebastopol: O’Reilly, 2018).
  29. Adam Shostack, Threat Modeling: Designing for Security (Indianapolis: Wiley, 2014).
  30. Agile Application Security by Laura Bell, Michael Brunton-Spall, Rich Smith, Jim Bird Released September 2017
  31. “Modeling Long-Running Activities as Nested Sagas” Data Engineering 14, no. 1 (March 1991: 14–18)
  32. Bernd Ruecker, Practical Process Automation (Sebastopol: O’Reilly, 2021).
  33. Nachiappan Nagappan, Brendan Murphy, and Victor Basili, “The Influence of Organizational Structure on Software Quality: An Empirical Case Study” ICSE ’08: Proceedings of the 30th International Conference on Software Engineering (New York: ACM, 2008).
  34. Daniel Rodriguez et al., “Empirical Findings on Team Size and Productivity in Software Development,” Journal of Systems and Software 85, no. 3 (2012), doi.org/10.1016/j.jss.2011.09.009.
  35. Frederick P. Brooks Jr, The Mythical Man-Month: Essays on Software Engineering, Anniversary ed. (Boston: Addison-Wesley, 1995).
  36. John Rossman, Think Like Amazon: 50 1/2 Ideas to Become a Digital Leader (New York: McGraw-Hill, 2019).
  37. Emily Webber, Building Successful Communities of Practice (San Francisco: Blurb, 2016).
  38. James Lewis, “Scale, Microservices and Flow,” YOW! Conferences, February 10, 2020, YouTube video, 51:03,
  39. Neal Ford, Rebecca Parsons, and Patrick Kua, Building Evolutionary Architectures (Sebastopol: O’Reilly, 2017)
  40. Gregor Hohpe, The Software Architect Elevator (Sebastopol: O’Reilly, 2020).

Что дальше?

  1. Нашли эту статью полезной? Поделитесь ею и помогите распространить знания!
  2. Нашли ошибку или есть идеи 💡 о том, что и как я могу улучшить? Напишите мне в Telegram.
  3. Хотите узнать обо мне больше? Читайте здесь.