Обзор white paper "Deployment Archetypes for Cloud Applications"
Данная статья 2021 года от Anna Berenberg и Brad Calder из Google на 50 страниц посвящена созданию надежных приложений за счет умного использования fault domains для обеспечения нужного для приложения availability, которое может быть разным для разных типов приложений (business-critical applications, line-of-business applications, internal applications). По названию кажется, что эта статья относится исключительно к приложениям, что разворачиваются в облаках. Но на самом деле это не так — вы сможете почерпнуть много интересного из нее, даже если вы разворачиваете приложение в своих собственных датацентрах:)
По ссылке представлен мой краткий обзор этого white paper, который в оригинале состоит почти из 50 страниц. Поэтому если вас что-то заинтересует в обзоре, то я рекомендую прочитать эту часть в оригинале — там очень много контента на тему хороших подходов к проектированию систем.
#DistributedSystems #ExternalReview #SoftwareDevelopment #SoftwareArchitecture #Architecture #SystemDesign #SystemEngineering #Cloud
Данная статья 2021 года от Anna Berenberg и Brad Calder из Google на 50 страниц посвящена созданию надежных приложений за счет умного использования fault domains для обеспечения нужного для приложения availability, которое может быть разным для разных типов приложений (business-critical applications, line-of-business applications, internal applications). По названию кажется, что эта статья относится исключительно к приложениям, что разворачиваются в облаках. Но на самом деле это не так — вы сможете почерпнуть много интересного из нее, даже если вы разворачиваете приложение в своих собственных датацентрах:)
По ссылке представлен мой краткий обзор этого white paper, который в оригинале состоит почти из 50 страниц. Поэтому если вас что-то заинтересует в обзоре, то я рекомендую прочитать эту часть в оригинале — там очень много контента на тему хороших подходов к проектированию систем.
#DistributedSystems #ExternalReview #SoftwareDevelopment #SoftwareArchitecture #Architecture #SystemDesign #SystemEngineering #Cloud
👍4❤2🔥2
Architecture Anti-patterns: Automatically Detectable Violations of Design Principles (Рубрика #Architecture)
Эта статья посвящена интересной для меня теме architecture governance. В ней авторы рассказывают о своих подходах для автоматического нахождения архитектурных анти-паттернов в больших системах. Суть в том, что файлы, которые подвержены изменениям и ошибкам редко в таких системах живут поодиночке - обычно они архитектурно связаны и эти связи отображают архитектурные проблемы, которые приводят к распространению подверженности ошибкам. В этой статье авторы определяют набор антипаттернов, взяв за основу фундаментальные принципы дизайна и Baldwin and Clark’s design rule theory. Дальше они валидируют на опыте набор архитектурных анти-паттернов, которые можно автоматически находить анализируя структурные взаимоотношения в проекте, а также историю изменений. Для этого авторы проанализировали 19 крупномасштабрных системы и показали
1. Files involved in these architecture anti-patterns are more error-prone and change-prone;
2. The more anti-patterns a file is involved in, the more error-prone and change-prone it is; and
3. While all of our defined architecture anti-patterns contribute to file’s error-proneness and change-proneness, Unstable Interface and Crossing contribute the most by far.
В итоге, у авторов получилось 6 антипаттернов:
1. Unstable Interface - интерфейсы, от которых многие зависят, должны оставаться стабильными
2. Modularity Violation Groups - независимые модули должны и эволюционировать независимо
3. Unhealthy Inheritance Hierarchy - этот антипаттерн про нарушение Liskov Substitution principle
4. Crossing - a file that has both high fan-in and high fan-out, and changes often together with its dependents and the files it depends on, is often at the center of maintenance activities.
5. Clique - набор файлов, которые формируют сильно-связный граф, что приводит к tight coupling между файлами (расширение истории с циклическими зависимостями)
6. Package Cycle - циклы в графах зависимостей, который нарушают базовые принципы дизайна для формирования иерархических структур. Такие нарушения приводят к тому, что изменения в файле одного package часто вызывают неожиданные изменения файлов в других пакетах из-за циклических зависимостей между ними.
Интересно, что я заинтересовался этим white-paper из-за статьи "A Model-based, Quality Attribute-guided Architecture Re-Design Process at Google", про которую я рассказывал пару дней назад. Суть в том, что там авторы анализировали кодовую базу Monarch, описанным в этой статье способом, и нашли много анти-паттернов в кодовой базе компонентав Leaves, на которых было слишком много ответственности и которые было сложно поддерживать. Дальше в прошлой статье они заредизайнили этот компонент для повышения availability и maintainability.
#Software #Engineering #Architecture #SoftwareArchitecture #SystemDesign #DistributedSystems
Эта статья посвящена интересной для меня теме architecture governance. В ней авторы рассказывают о своих подходах для автоматического нахождения архитектурных анти-паттернов в больших системах. Суть в том, что файлы, которые подвержены изменениям и ошибкам редко в таких системах живут поодиночке - обычно они архитектурно связаны и эти связи отображают архитектурные проблемы, которые приводят к распространению подверженности ошибкам. В этой статье авторы определяют набор антипаттернов, взяв за основу фундаментальные принципы дизайна и Baldwin and Clark’s design rule theory. Дальше они валидируют на опыте набор архитектурных анти-паттернов, которые можно автоматически находить анализируя структурные взаимоотношения в проекте, а также историю изменений. Для этого авторы проанализировали 19 крупномасштабрных системы и показали
1. Files involved in these architecture anti-patterns are more error-prone and change-prone;
2. The more anti-patterns a file is involved in, the more error-prone and change-prone it is; and
3. While all of our defined architecture anti-patterns contribute to file’s error-proneness and change-proneness, Unstable Interface and Crossing contribute the most by far.
В итоге, у авторов получилось 6 антипаттернов:
1. Unstable Interface - интерфейсы, от которых многие зависят, должны оставаться стабильными
2. Modularity Violation Groups - независимые модули должны и эволюционировать независимо
3. Unhealthy Inheritance Hierarchy - этот антипаттерн про нарушение Liskov Substitution principle
4. Crossing - a file that has both high fan-in and high fan-out, and changes often together with its dependents and the files it depends on, is often at the center of maintenance activities.
5. Clique - набор файлов, которые формируют сильно-связный граф, что приводит к tight coupling между файлами (расширение истории с циклическими зависимостями)
6. Package Cycle - циклы в графах зависимостей, который нарушают базовые принципы дизайна для формирования иерархических структур. Такие нарушения приводят к тому, что изменения в файле одного package часто вызывают неожиданные изменения файлов в других пакетах из-за циклических зависимостей между ними.
Интересно, что я заинтересовался этим white-paper из-за статьи "A Model-based, Quality Attribute-guided Architecture Re-Design Process at Google", про которую я рассказывал пару дней назад. Суть в том, что там авторы анализировали кодовую базу Monarch, описанным в этой статье способом, и нашли много анти-паттернов в кодовой базе компонентав Leaves, на которых было слишком много ответственности и которые было сложно поддерживать. Дальше в прошлой статье они заредизайнили этот компонент для повышения availability и maintainability.
#Software #Engineering #Architecture #SoftwareArchitecture #SystemDesign #DistributedSystems
ResearchGate
Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles | Request PDF
Request PDF | Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles | In large-scale software systems, error-prone or change-prone files rarely stand alone. They are typically architecturally connected and their... | Find, read…
👍7❤2🔥1
Материалы к докладу "Проектируем надежные системы - стоит ли игра свеч"
Сегодня я выступаю на конференции "Стачка" с одноименным докладом и поэтому по традиции делюсь списком материалов
- "Site Reliability Engineering" - книга от ребят из Google, с которой началась серия SRE книг и они рассказывают про процесс в общем
- "Building Secure and Reliable Systems" - книга от ребят из Google, где они рассказывают про принципы проектирования надежных систем (продолжает серию SRE книг)
- "AWS Fault Isolation Boundaries" - интересный white paper от AWS на тему границ изоляции сбоев в AWS (здесь интересно написано про инфраструктурные абстракции: зоны, регионы, globl, а также про разделение control plane и data plane при проектировании сервисов и концепцию static stability)
- "A Model-based, Quality Attribute-guided Architecture Re-Design Process at Google" - интересный white paper от ребят из Google, где показано как редизайнится система для повышения ее надежности, причем сам редизайн выполняется достаточно формально, чтобы по модели оценить позитивное влияние на надежность
- "Deployment Archetypes for Cloud Applications" - интересный white paper от ребят из Google, в котором они рассказывают про разные модели deployment приложений, которые позволяют достигать разных уровней availability (зональный, региональный, мультирегиональный, глобальный, гибридный, мультиоблачный)
- Глава про resilience из книги "Continuous Architecture in Practice" - глава крутой книги, в которой буквально на пальцах авторы объясняют чем старый high-availability подход отличается от нового подхода resilience к обеспечению надежности систем
- "Philosophy of Software Design" - отличная книга про то, как бороться со сложностью систем
- "503 Подкаст - System Design в разрезе надежности" - подкаст с Андреем Дмитриевым из JUG Ru Group, где я был гостем и мы обсуждали проектирование надежных систем
- "Architecting for Scale: High Availability for Your Growing Applications" - интересная книга Lee Atchison, где он обсуждает проектирование для масштабирования и затрагивает вопросы обеспечения availability. Книга пережила второе издание и это пошло ей на пользу.
- "Собеседование SRE: Troubleshooting и System Design" - моя статья про найм SRE инженеров в Tinkoff, где мы проверяем на практике работу инженеров в рамках инцидента
#Software #Engineering #Architecture #SoftwareArchitecture #SystemDesign #DistributedSystems #SRE
Сегодня я выступаю на конференции "Стачка" с одноименным докладом и поэтому по традиции делюсь списком материалов
- "Site Reliability Engineering" - книга от ребят из Google, с которой началась серия SRE книг и они рассказывают про процесс в общем
- "Building Secure and Reliable Systems" - книга от ребят из Google, где они рассказывают про принципы проектирования надежных систем (продолжает серию SRE книг)
- "AWS Fault Isolation Boundaries" - интересный white paper от AWS на тему границ изоляции сбоев в AWS (здесь интересно написано про инфраструктурные абстракции: зоны, регионы, globl, а также про разделение control plane и data plane при проектировании сервисов и концепцию static stability)
- "A Model-based, Quality Attribute-guided Architecture Re-Design Process at Google" - интересный white paper от ребят из Google, где показано как редизайнится система для повышения ее надежности, причем сам редизайн выполняется достаточно формально, чтобы по модели оценить позитивное влияние на надежность
- "Deployment Archetypes for Cloud Applications" - интересный white paper от ребят из Google, в котором они рассказывают про разные модели deployment приложений, которые позволяют достигать разных уровней availability (зональный, региональный, мультирегиональный, глобальный, гибридный, мультиоблачный)
- Глава про resilience из книги "Continuous Architecture in Practice" - глава крутой книги, в которой буквально на пальцах авторы объясняют чем старый high-availability подход отличается от нового подхода resilience к обеспечению надежности систем
- "Philosophy of Software Design" - отличная книга про то, как бороться со сложностью систем
- "503 Подкаст - System Design в разрезе надежности" - подкаст с Андреем Дмитриевым из JUG Ru Group, где я был гостем и мы обсуждали проектирование надежных систем
- "Architecting for Scale: High Availability for Your Growing Applications" - интересная книга Lee Atchison, где он обсуждает проектирование для масштабирования и затрагивает вопросы обеспечения availability. Книга пережила второе издание и это пошло ей на пользу.
- "Собеседование SRE: Troubleshooting и System Design" - моя статья про найм SRE инженеров в Tinkoff, где мы проверяем на практике работу инженеров в рамках инцидента
#Software #Engineering #Architecture #SoftwareArchitecture #SystemDesign #DistributedSystems #SRE
👍9🔥7❤6
Совершенствование потока разработки программного обеспечения (Improving software flow)
Появилась запись моего выступления в Казани с этим докладом, где я рассказываю о том, как разрабатывать программное обеспечение эффективно. И разбираю вопрос с точки зрения пяти идеалов из книги The Unicorn Project. А также рассказываю о том, как мы это используем у себя внутри Тинькофф.
Расшифровка доклада есть в моем блоге, а рекомендуемые материалы приведены ниже.
--------------------
4 основные книги, из которых родилась идея доклада
- The Phoenix Project (2013 год) - книга написана в жанре производственного романа и похожа на книгу "Цель" ("Goal") или "Критическая цепь" ("Critical Chain") Голдратта.
- The DevOps Handbook (2016 год) - книга с популяризацией devops подхода
- Accelerate (2018 год) - книга, где приводятся крутые выводы о связи процессов и практик внутри организации и ее эффективности, а это именно те вопросы, которые интересуют менеджмент.
- The Unicorn Project (2019 год) - эта книга написана Gene Kim как продолжение предыдущей книги Проект Феникс
Связанные книги
- Team Topologies - книга про Team-First подход при проектировании архитектуры программных систем, так и организации.
- Learning Domain Driven Design - эта книга содержит много рекомендаций о том, как бороться со сложностью при проектировании софта.
- A philosophy of sotfware design - книга посвященная борьбе со сложностью и тому, как практиковать стратегический подход к разработке.
- Making Work Visible - простая книга про улучшение процессов разработки с использованием kanban подходов
- SRE Book - крутая книга целиком посвященная тому, как делать надежные системы и строить процессы вокруг них
- "Lean Software Development" - книга про lean практики в разработке
Исследования
- Google's Project Aristotle - исследование, которое ответило на вопрос "What makes a team effective at Google?"
- A typology of organisational cultures - интересное исследование про типологию организационных культур (pathological, bureaucratic, generative)
Мои выступления на связанные темы
- Культура постмортемов
- От монолита к микросервисам и обратно
- Эволюция подходов к развитию мобильного банка Тинькофф
- Эволюция web Tinkoff на ArchDays
#Processes #Management #Architecture #Conference #ExternalReview #ProductManagement #Leadership #SoftwareDevelopment #Software #SoftwareArchitecture
Появилась запись моего выступления в Казани с этим докладом, где я рассказываю о том, как разрабатывать программное обеспечение эффективно. И разбираю вопрос с точки зрения пяти идеалов из книги The Unicorn Project. А также рассказываю о том, как мы это используем у себя внутри Тинькофф.
Расшифровка доклада есть в моем блоге, а рекомендуемые материалы приведены ниже.
--------------------
4 основные книги, из которых родилась идея доклада
- The Phoenix Project (2013 год) - книга написана в жанре производственного романа и похожа на книгу "Цель" ("Goal") или "Критическая цепь" ("Critical Chain") Голдратта.
- The DevOps Handbook (2016 год) - книга с популяризацией devops подхода
- Accelerate (2018 год) - книга, где приводятся крутые выводы о связи процессов и практик внутри организации и ее эффективности, а это именно те вопросы, которые интересуют менеджмент.
- The Unicorn Project (2019 год) - эта книга написана Gene Kim как продолжение предыдущей книги Проект Феникс
Связанные книги
- Team Topologies - книга про Team-First подход при проектировании архитектуры программных систем, так и организации.
- Learning Domain Driven Design - эта книга содержит много рекомендаций о том, как бороться со сложностью при проектировании софта.
- A philosophy of sotfware design - книга посвященная борьбе со сложностью и тому, как практиковать стратегический подход к разработке.
- Making Work Visible - простая книга про улучшение процессов разработки с использованием kanban подходов
- SRE Book - крутая книга целиком посвященная тому, как делать надежные системы и строить процессы вокруг них
- "Lean Software Development" - книга про lean практики в разработке
Исследования
- Google's Project Aristotle - исследование, которое ответило на вопрос "What makes a team effective at Google?"
- A typology of organisational cultures - интересное исследование про типологию организационных культур (pathological, bureaucratic, generative)
Мои выступления на связанные темы
- Культура постмортемов
- От монолита к микросервисам и обратно
- Эволюция подходов к развитию мобильного банка Тинькофф
- Эволюция web Tinkoff на ArchDays
#Processes #Management #Architecture #Conference #ExternalReview #ProductManagement #Leadership #SoftwareDevelopment #Software #SoftwareArchitecture
YouTube
Совершенствование потока разработки программного обеспечения. — Александр Поломодов, Тинькофф
Поговорили о том, как разрабатывать программное обеспечение эффективно. Вопрос разбрали с точки зрения пяти идеалов из книги The Unicorn Project. А после расскажем, как мы применяем эти подходы на практике внутри команды.
#тинькофф #ит_фест #architecture
#тинькофф #ит_фест #architecture
👍18❤5🔥5
Посещение Ульяновска и конференции Стачка
Я люблю ездить на разные региональные конференции, так как это позволяет посмотреть на разные города России. Например, конференция Стачка, на которой я вчера выступал, проводится в Ульяновске, куда я приехал в первый раз:) Интересно, что конференция проходит в здании УлГПУ (Ульяновском государственном педагогическом университете), а мое выступление вообще было в библиотеке, что очень хорошо укладывается в тему этого канала:) Также рядом с университетом есть набережная, откуда открывается отличный вид на Куйбышевскоеморе водохранилище. Вчера мне провели тут крутую экскурсию и я готов поделиться фотографиями с этой прогулки.
#Conference
Я люблю ездить на разные региональные конференции, так как это позволяет посмотреть на разные города России. Например, конференция Стачка, на которой я вчера выступал, проводится в Ульяновске, куда я приехал в первый раз:) Интересно, что конференция проходит в здании УлГПУ (Ульяновском государственном педагогическом университете), а мое выступление вообще было в библиотеке, что очень хорошо укладывается в тему этого канала:) Также рядом с университетом есть набережная, откуда открывается отличный вид на Куйбышевское
#Conference
👍19❤7🔥6
Как это работает? (энциклопедия на пружине)
Крутая книга для ответов на вопросы маленьких почемучек, что содержит 200 интересных вопросов по 4 темам: природа, тело человека, жизнь вокруг нас и то, что было раньше. Я читал эту книгу для сыновей трех и восьми лет и обоим было интересно (но трехлетка выдерживает всего несколько вопросов, а потом предалагает начать листать книгу). Например, в книге есть вопросы:
- Кто живет в сумке кенгуру, как дышит кит, для чего слону хобот или как дышат рыбы
- Как функционирует глаз, как работает нос, как мы слышим и как мы говорим, как работает сердце и легкие
- Как работает телевизор, холодильник, компьютер, gps, фотоаппарат, мобильный телефон, wifi и интернет
- Какими были первые автомобили, поезда, самолеты, телефоны, искусственные спутники, а также школы, книги
Книга написана в простой и ироничной манере, проиллюстрирована прикольными картинками и позволяет увлечь ребенка и расширить его кругозор:)
#ForKids #PopularScience
Крутая книга для ответов на вопросы маленьких почемучек, что содержит 200 интересных вопросов по 4 темам: природа, тело человека, жизнь вокруг нас и то, что было раньше. Я читал эту книгу для сыновей трех и восьми лет и обоим было интересно (но трехлетка выдерживает всего несколько вопросов, а потом предалагает начать листать книгу). Например, в книге есть вопросы:
- Кто живет в сумке кенгуру, как дышит кит, для чего слону хобот или как дышат рыбы
- Как функционирует глаз, как работает нос, как мы слышим и как мы говорим, как работает сердце и легкие
- Как работает телевизор, холодильник, компьютер, gps, фотоаппарат, мобильный телефон, wifi и интернет
- Какими были первые автомобили, поезда, самолеты, телефоны, искусственные спутники, а также школы, книги
Книга написана в простой и ироничной манере, проиллюстрирована прикольными картинками и позволяет увлечь ребенка и расширить его кругозор:)
#ForKids #PopularScience
👍13❤5🔥1👏1
Ярость (Fury)
Эта книга Генри Каттнера была одной из любимых в моем детстве, так как она была в списке немногих фантастических книг, что были в домашней библиотеке моих рродителей. Но помимо этого у книги есть и другие преимущества, например
- Главный её персонаж не является плохим или хорошим человеком. Скорее он скроен из противоречий и ему предначертано совершить подвиг:) Наблюдать за его историей познавательно.
- Довольно интересно описана концепция окукливания человеческой расы в рамках доступного мира и отказ от экспансии вовне. Правда фантазия автора переселяет людей в башни, расположенные на дне подводных океанов Венеры, т.к. атомная война сожгла поверхность Земли как жадный огонь камина пожирает брошенную в него бересту.
- Концовка с эпилогом всего в два слова ... но ты уже готов начинать читать вторую книгу, которой нет, т.к. финал открыт для работы твоего воображения.
В общем, книгу может быть интересно почитать и сейчас:)
#SciFi
Эта книга Генри Каттнера была одной из любимых в моем детстве, так как она была в списке немногих фантастических книг, что были в домашней библиотеке моих рродителей. Но помимо этого у книги есть и другие преимущества, например
- Главный её персонаж не является плохим или хорошим человеком. Скорее он скроен из противоречий и ему предначертано совершить подвиг:) Наблюдать за его историей познавательно.
- Довольно интересно описана концепция окукливания человеческой расы в рамках доступного мира и отказ от экспансии вовне. Правда фантазия автора переселяет людей в башни, расположенные на дне подводных океанов Венеры, т.к. атомная война сожгла поверхность Земли как жадный огонь камина пожирает брошенную в него бересту.
- Концовка с эпилогом всего в два слова ... но ты уже готов начинать читать вторую книгу, которой нет, т.к. финал открыт для работы твоего воображения.
В общем, книгу может быть интересно почитать и сейчас:)
#SciFi
👍9❤5🔥3👀1