[1/2] Head First Software Architecture (Head First. Архитектура ПО) (Рубрика #Architecture)
В отпуске я прочел книгу из серии Head First по архитектуре, которая вышла в марте прошлого года на английском, а в апреле этого уже появилась на русском в издательстве Питер. Вообще, я люблю серию "Head First" за доступное объяснение сложных тем, а архитектура софта - это определенно сложная тема:) Авторами книги были Раджу Ганди, Марк Ричардс и Нил Форд, причем двух последних я знаю хорошо - я читал их книги по архитектуре и мне показалось, что они уже исписались и я зарекся их читать. А вот Raju Gandhi был для меня новичком, но оказалось, что он уже написал несколько книг в серии "Head First" и его опыт благотворно повлиял на книгу - она мне показалась интереснее и полезнее "Fundamentals of Software Architecture" и "Software Architecture: The Hard Parts", которые писали Форд и Ричардс без Ганди:) Кстати, про обе книги я уже рассказывал: "Fundamentals ..." и "... Hard Parts".
Если же возвращаться к книге "Head First Software Architecture", то это доступное введение в основы software architecture, оформленное в визуально насыщенном стиле (аля комикс), основанном на исследованиях в области когнитивных наук, что делает ее отличной отправной точкой для разработчиков, желающих освоить архитектурное мышление.
Основная мысль книги базируется на четырех измерениях архитектуры, которые выделяют авторы
1) Architectural Characteristics
Это то, какие свойства (нефункциональные требования, атрибуты качества, архитектурные характеристики ) система должна поддерживать - такие как scalability, testability, availability и др. Интересно, что я недавно разбирал whitepaper "Quality Metrics in Software Architecture" (1 и 2), где очень подробно разбирались - QualityElements - элементы качества, которые по мнению авторов этой статьи юывают трех видов
- Metric — конкретная метрика для измерения качества архитектуры
- QualityCharacteristic — глобальная характеристика качества (например, reliability, maintainability)
- QualityAttribute — атрибут качества, связанный с одной из характеристик
Авторы книги настолько не упарываются по этим -ilities, но отмечают, что архитектурные характеристики — это основа архитектуры, без которой невозможно принимать архитектурные решения или анализировать компромиссы.
2) Architectural Decisions
Это решения, оказывающие долгосрочное или значимое влияние на систему, например, выбор базы данных, количество сервисов, способы их взаимодействия. Architectural decisions задают структуру для команд разработки, определяя, например, количество сервисов и типы баз данных. Забавно, что лет 5 назад я сам рассказывал про наши архитектурные процессы в Т (Архитектура в масштабе на ArchDays 2020) и там было про RFC (request for comments) и ADR (architecture decision records)
3) Logical Components
Это функциональные строительные блоки системы и их взаимодействие. Например, в e-commerce системе это могут быть inventory management и payment processing. Logical components - это как комнаты в доме: базовые структурные элементы с определённой функцией.
4) Architectural Styles
Это общее физическое устройство и структура системы, аналогично тому, как план здания определяет структуру дома. Architectural styles можно классифицировать по
- Стилю разбиения (technical или domain partitioned)
- Модели деплоя (monolithic или distributed)
В следующем посте я рассказываю про алгоритм применения этих четырех измерений при проектировании, а также про общую структуру книги.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect
В отпуске я прочел книгу из серии Head First по архитектуре, которая вышла в марте прошлого года на английском, а в апреле этого уже появилась на русском в издательстве Питер. Вообще, я люблю серию "Head First" за доступное объяснение сложных тем, а архитектура софта - это определенно сложная тема:) Авторами книги были Раджу Ганди, Марк Ричардс и Нил Форд, причем двух последних я знаю хорошо - я читал их книги по архитектуре и мне показалось, что они уже исписались и я зарекся их читать. А вот Raju Gandhi был для меня новичком, но оказалось, что он уже написал несколько книг в серии "Head First" и его опыт благотворно повлиял на книгу - она мне показалась интереснее и полезнее "Fundamentals of Software Architecture" и "Software Architecture: The Hard Parts", которые писали Форд и Ричардс без Ганди:) Кстати, про обе книги я уже рассказывал: "Fundamentals ..." и "... Hard Parts".
Если же возвращаться к книге "Head First Software Architecture", то это доступное введение в основы software architecture, оформленное в визуально насыщенном стиле (аля комикс), основанном на исследованиях в области когнитивных наук, что делает ее отличной отправной точкой для разработчиков, желающих освоить архитектурное мышление.
Основная мысль книги базируется на четырех измерениях архитектуры, которые выделяют авторы
1) Architectural Characteristics
Это то, какие свойства (
- Metric — конкретная метрика для измерения качества архитектуры
- QualityCharacteristic — глобальная характеристика качества (например, reliability, maintainability)
- QualityAttribute — атрибут качества, связанный с одной из характеристик
Авторы книги настолько не упарываются по этим -ilities, но отмечают, что архитектурные характеристики — это основа архитектуры, без которой невозможно принимать архитектурные решения или анализировать компромиссы.
2) Architectural Decisions
Это решения, оказывающие долгосрочное или значимое влияние на систему, например, выбор базы данных, количество сервисов, способы их взаимодействия. Architectural decisions задают структуру для команд разработки, определяя, например, количество сервисов и типы баз данных. Забавно, что лет 5 назад я сам рассказывал про наши архитектурные процессы в Т (Архитектура в масштабе на ArchDays 2020) и там было про RFC (request for comments) и ADR (architecture decision records)
3) Logical Components
Это функциональные строительные блоки системы и их взаимодействие. Например, в e-commerce системе это могут быть inventory management и payment processing. Logical components - это как комнаты в доме: базовые структурные элементы с определённой функцией.
4) Architectural Styles
Это общее физическое устройство и структура системы, аналогично тому, как план здания определяет структуру дома. Architectural styles можно классифицировать по
- Стилю разбиения (technical или domain partitioned)
- Модели деплоя (monolithic или distributed)
В следующем посте я рассказываю про алгоритм применения этих четырех измерений при проектировании, а также про общую структуру книги.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect
[2/2] Head First Software Architecture (Head First. Архитектура ПО) (Рубрика #Architecture)
Продолжая рассказ об этой книге о проектировании софта, стоит начать с алгоритма создания архитектуры на основе четырех измерений, который по мнению авторов выглядит примерно так
1) Определить architectural characteristics на основе требований. Важно выяснить, какие quality attributes критичны для вашей системы (performance, scalability и др.)
2) Принять architectural decisions - на основе выявленных характеристик принять решения о технологиях, паттернах и подходах
3) Определить logical components - разбить систему на функциональные блоки с учетом как раз функциональных требований, которые должны быть реализованы системой, а также архитектурных характеристик
4) Выбрать architectural style - подобрать стиль (например, microservices, layered), который поддерживает ваши характеристики, решения и компоненты
Все четыре измерения взаимосвязаны - каждое должно соответствовать остальным. Architectural style должен соответствовать выбранным характеристикам и решениям, а logical components - поддерживать характеристики и вписываться в стиль.
Структура книги выглядит следующим образом: в первых пяти главах дается введение в архитектуру и разбираются четыре измерения, описанные выше
1. Software Architecture Demystified: Let’s Get Started!
2. Architectural Characteristics: Know Your Capabilities
3. The Two Laws of Software Architecture: Everything’s a Trade-Off
4. Logical Components: The Building Blocks
5. Architectural Styles: Categorization and Philosophies
В следуюзих частях разбираются архитектурные стили, причем авторы используют схему со звездочками для каждого стиля по избранным архитектурным характеристикам, куда входят maintainability, testability, deployability, simplicity, evolvability, performance, scalability, elasticity, fault tolerance, overall cost. Эти стили примерно соответствуют тому, что было в книге "Fundamentals of Software Architecture", где я в первый раз увидел эти таблички с этими рейтингами
6. Layered Architecture: Separating Concerns
7. Modular Monoliths: Driven by the Domain
8. Microkernel Architecture: Crafting Customizations
9. Do It Yourself: The TripEZ Travel App
10. Microservices Architecture: Bit by Bit
11. Event-Driven Architecture: Asynchronous Adventures
В последней главе авторы предлагают спроектировать систему на основе выданных требований, используя алгоритм, предложенный в предыдущих главах
12. Do It Yourself: Testing Your Knowledge
Заканчивается все приложением "A. Leftovers: The Top Six Topics We Didn’t Cover", в котором авторы обсуждают интересные темы, что не влезли в основную часть книги
- Должен ли архитектор писать код
- В чем состоят обязанности архитектора
- Какие навыки, кроме технических, полезны архитектору
- Немного про построение архитектурных схем
- О глубине и широте знаний архитекторов
- О пользе архитектурных кат
В итоге, если суммировать, то эта книга хороша в качестве старта для погружения в software architecture, а дальше уже можно читать и более продвинутые книги по архитектуре.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect
Продолжая рассказ об этой книге о проектировании софта, стоит начать с алгоритма создания архитектуры на основе четырех измерений, который по мнению авторов выглядит примерно так
1) Определить architectural characteristics на основе требований. Важно выяснить, какие quality attributes критичны для вашей системы (performance, scalability и др.)
2) Принять architectural decisions - на основе выявленных характеристик принять решения о технологиях, паттернах и подходах
3) Определить logical components - разбить систему на функциональные блоки с учетом как раз функциональных требований, которые должны быть реализованы системой, а также архитектурных характеристик
4) Выбрать architectural style - подобрать стиль (например, microservices, layered), который поддерживает ваши характеристики, решения и компоненты
Все четыре измерения взаимосвязаны - каждое должно соответствовать остальным. Architectural style должен соответствовать выбранным характеристикам и решениям, а logical components - поддерживать характеристики и вписываться в стиль.
Структура книги выглядит следующим образом: в первых пяти главах дается введение в архитектуру и разбираются четыре измерения, описанные выше
1. Software Architecture Demystified: Let’s Get Started!
2. Architectural Characteristics: Know Your Capabilities
3. The Two Laws of Software Architecture: Everything’s a Trade-Off
4. Logical Components: The Building Blocks
5. Architectural Styles: Categorization and Philosophies
В следуюзих частях разбираются архитектурные стили, причем авторы используют схему со звездочками для каждого стиля по избранным архитектурным характеристикам, куда входят maintainability, testability, deployability, simplicity, evolvability, performance, scalability, elasticity, fault tolerance, overall cost. Эти стили примерно соответствуют тому, что было в книге "Fundamentals of Software Architecture", где я в первый раз увидел эти таблички с этими рейтингами
6. Layered Architecture: Separating Concerns
7. Modular Monoliths: Driven by the Domain
8. Microkernel Architecture: Crafting Customizations
9. Do It Yourself: The TripEZ Travel App
10. Microservices Architecture: Bit by Bit
11. Event-Driven Architecture: Asynchronous Adventures
В последней главе авторы предлагают спроектировать систему на основе выданных требований, используя алгоритм, предложенный в предыдущих главах
12. Do It Yourself: Testing Your Knowledge
Заканчивается все приложением "A. Leftovers: The Top Six Topics We Didn’t Cover", в котором авторы обсуждают интересные темы, что не влезли в основную часть книги
- Должен ли архитектор писать код
- В чем состоят обязанности архитектора
- Какие навыки, кроме технических, полезны архитектору
- Немного про построение архитектурных схем
- О глубине и широте знаний архитекторов
- О пользе архитектурных кат
В итоге, если суммировать, то эта книга хороша в качестве старта для погружения в software architecture, а дальше уже можно читать и более продвинутые книги по архитектуре.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect
Telegram
Книжный куб
[1/2] Head First Software Architecture (Head First. Архитектура ПО) (Рубрика #Architecture)
В отпуске я прочел книгу из серии Head First по архитектуре, которая вышла в марте прошлого года на английском, а в апреле этого уже появилась на русском в издательстве…
В отпуске я прочел книгу из серии Head First по архитектуре, которая вышла в марте прошлого года на английском, а в апреле этого уже появилась на русском в издательстве…
AI as Software Architect assistant by Avraham Poupko (Рубрика #Architecture)
Интересное выступление Авраама Пупко про то, как AI может помогать архитектору. Авраам Пупко — ведущий архитектор программных систем, руководитель стратегического планирования и продуктовой архитектуры в Toga Networks, преподаватель системного мышления и проектирования. Более 25 лет он занимается анализом, моделированием и проектированием ПО, работал как с небольшими стартапами, так и с крупными корпорациями.
В этом докладе он поднимает следующие ключевые темы и формулирует следующие тезисы
1) Роль AI как помощника, а не заменителя архитектора. AI не заменяет архитектора, а становится инструментом для повышения продуктивности и эффективности. Ключевой вызов — научиться использовать ИИ правильно, сохраняя ответственность за решения.
2) Границы возможностей AI. AI работает с языковыми моделями, а человек — с моделью мира. Архитектор должен понимать, что AI не обладает настоящим пониманием, а лишь манипулирует словами и связями между ними. Правда, сейчас есть разные гипотезы о том, а есть ли у LLM (и LMM) есть понимание модели мира или нет:)
3) Ответственность и этика. Архитектор всегда несёт ответственность за принятые решения, даже если использовал ИИ как советчика. Этические вопросы и осознанность остаются прерогативой человека.
4) Работа с неоднозначностью требований. AI помогает выявлять и анализировать неоднозначные требования, но не может полностью заменить архитектурное мышление и опыт в разрешении таких ситуаций. Тут можно почитать примеры идей в whitepaper типа "From Requirements to Architecture: An AI-Based Journey to Semi-Automatically Generate Software Architectures", про которую я писал раньше
5) Компромиссы и принятие решений. Архитектору важно уметь взвешивать плюсы и минусы разных подходов, а ИИ может помочь структурировать аргументы и рассмотреть альтернативы, но не принимает решения за человека. А пример такого подхода можно глянуть в whitepaper "A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-makingture Decision-making", про который я писал раньше
6) Коллаборация и командная работа. Архитектор работает на стыке технологий, людей и организаций. ИИ может способствовать обсуждению и анализу, но не способен заменить человеческое взаимодействие и эмпатию.
7) Метафоры и модели. AI генерирует метафоры и помогает объяснять архитектурные решения, но глубина понимания и адаптация к контексту остаётся за архитектором. Я вот тоже люблю метафоры еще со времен начала карьеры, когда я прочитал книгу Стива Макконелла "Совершенный код", про которую я уже писал раньше
8 ) Жизненный цикл принятия решений. Архитектор проходит полный цикл: сбор информации, рассмотрение вариантов, принятие решения, действие, обратная связь. AI может быть полезен на отдельных этапах, но не охватывает весь цикл. Тут мне тоже видится перспективы в том, чтобы собирать мултиагентную систему, что сможет закрыть весь цикл принятия решения и дальше архитектору надо будет только отревьювить то, что эта система наделела:)
9) Ошибки, обучение и рост. Человеческий опыт, способность учиться на ошибках и развивать интуицию — уникальные качества архитектора, недоступные AI. Спорное утверждение, особенно, если немного изучить область reinforcement learning.
10) Будущее профессии и развитие навыков. Архитектору важно быть инициативным, критически относиться к советам ИИ, развивать экспертизу и не бояться экспериментировать. Только те, кто умеет эффективно использовать ИИ, останутся востребованными.
Если подводить итоги выступления Авраама, то его мысль в том, что AI — это мощный инструмент для архитектора, но не его замена. Поэтому осваивайте ИИ, используйте его для повышения эффективности, но сохраняйте критическое мышление, ответственность и профессиональную инициативу.
#Architecture #Software #Engineering #AI #SystemDesign #SelfDevelopment #Architect
Интересное выступление Авраама Пупко про то, как AI может помогать архитектору. Авраам Пупко — ведущий архитектор программных систем, руководитель стратегического планирования и продуктовой архитектуры в Toga Networks, преподаватель системного мышления и проектирования. Более 25 лет он занимается анализом, моделированием и проектированием ПО, работал как с небольшими стартапами, так и с крупными корпорациями.
В этом докладе он поднимает следующие ключевые темы и формулирует следующие тезисы
1) Роль AI как помощника, а не заменителя архитектора. AI не заменяет архитектора, а становится инструментом для повышения продуктивности и эффективности. Ключевой вызов — научиться использовать ИИ правильно, сохраняя ответственность за решения.
2) Границы возможностей AI. AI работает с языковыми моделями, а человек — с моделью мира. Архитектор должен понимать, что AI не обладает настоящим пониманием, а лишь манипулирует словами и связями между ними. Правда, сейчас есть разные гипотезы о том, а есть ли у LLM (и LMM) есть понимание модели мира или нет:)
3) Ответственность и этика. Архитектор всегда несёт ответственность за принятые решения, даже если использовал ИИ как советчика. Этические вопросы и осознанность остаются прерогативой человека.
4) Работа с неоднозначностью требований. AI помогает выявлять и анализировать неоднозначные требования, но не может полностью заменить архитектурное мышление и опыт в разрешении таких ситуаций. Тут можно почитать примеры идей в whitepaper типа "From Requirements to Architecture: An AI-Based Journey to Semi-Automatically Generate Software Architectures", про которую я писал раньше
5) Компромиссы и принятие решений. Архитектору важно уметь взвешивать плюсы и минусы разных подходов, а ИИ может помочь структурировать аргументы и рассмотреть альтернативы, но не принимает решения за человека. А пример такого подхода можно глянуть в whitepaper "A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-makingture Decision-making", про который я писал раньше
6) Коллаборация и командная работа. Архитектор работает на стыке технологий, людей и организаций. ИИ может способствовать обсуждению и анализу, но не способен заменить человеческое взаимодействие и эмпатию.
7) Метафоры и модели. AI генерирует метафоры и помогает объяснять архитектурные решения, но глубина понимания и адаптация к контексту остаётся за архитектором. Я вот тоже люблю метафоры еще со времен начала карьеры, когда я прочитал книгу Стива Макконелла "Совершенный код", про которую я уже писал раньше
8 ) Жизненный цикл принятия решений. Архитектор проходит полный цикл: сбор информации, рассмотрение вариантов, принятие решения, действие, обратная связь. AI может быть полезен на отдельных этапах, но не охватывает весь цикл. Тут мне тоже видится перспективы в том, чтобы собирать мултиагентную систему, что сможет закрыть весь цикл принятия решения и дальше архитектору надо будет только отревьювить то, что эта система наделела:)
9) Ошибки, обучение и рост. Человеческий опыт, способность учиться на ошибках и развивать интуицию — уникальные качества архитектора, недоступные AI. Спорное утверждение, особенно, если немного изучить область reinforcement learning.
10) Будущее профессии и развитие навыков. Архитектору важно быть инициативным, критически относиться к советам ИИ, развивать экспертизу и не бояться экспериментировать. Только те, кто умеет эффективно использовать ИИ, останутся востребованными.
Если подводить итоги выступления Авраама, то его мысль в том, что AI — это мощный инструмент для архитектора, но не его замена. Поэтому осваивайте ИИ, используйте его для повышения эффективности, но сохраняйте критическое мышление, ответственность и профессиональную инициативу.
#Architecture #Software #Engineering #AI #SystemDesign #SelfDevelopment #Architect
YouTube
AI as Software Architect assistant by Avraham Poupko (#GSAS24)
Software architects will not be replaced by Generative AI or LLMs. They will be replaced by software architects that know how to leverage Generative AI and LLMs. For the last two years, Avraham has been on a journey using generative AI to augment the way…
От стартапа до международного бизнеса: история VictoriaMetrics и её уроки (Рубрика #Engineering)
Недавно в подкасте Кирилл Мокевнин побеседовал с Александром Валялкиным, сооснователем и core-разработчиком VictoriaMetrics - одного из самых популярных инструментов для мониторинга, который успешно конкурирует с Prometheus. Я посмотрел это интервью с большим интересом и мне понравилось как Александр рассказывал о своем пути от крутого инженера к создателю своего бизнеса. Вот основные идеи этого интервью
1. Путь от разработчика к предпринимателю. Александр поделился своим опытом трансформации из программиста в основателя успешного IT-бизнеса, рассказал о первых ошибках и извлеченных уроках
2. Проблемы Prometheus и рождение VictoriaMetrics. В 2016-2017 годах команда Александра столкнулась с ограничениями Prometheus при масштабировании, что в итоге привело к идее создания собственного решения
3. Технические преимущества Go для баз данных. Go позволяет легче писать и оптимизировать базы данных, снижая порог входа и упрощая работу. Профилировщики в Go помогают точечно оптимизировать только необходимые 2% кода
4. Инженерное мышление vs бизнес-подход. Инженерное мышление часто бывает наивным, но оно - двигатель бизнеса. Автор объяснил, почему техническому специалисту важно развивать бизнес-мышление
5. Маркетинг технического продукта. Долгосрочное взаимодействие с пользователями требует не только маркетинга, но и качественного продукта. Александр рассказал, как их контент-маркетинг на Medium и Hacker News оказался эффективнее платной рекламы
6. Open Source как стратегия развития. После перевода VictoriaMetrics в Open Source проект начал активно развиваться, привлекая новых пользователей и улучшая продукт благодаря сообществу
7. Enterprise-контракты vs SaaS. Несмотря на популярность SaaS-модели среди инвесторов, Enterprise-контракты оказались более прибыльными для бизнеса VictoriaMetrics
8. Упрощение сложных технологий. Важность создания простых в использовании продуктов, которые "просто работают" из коробки. Victoria Metrics автоматически масштабируется под доступные ресурсы без сложной настройки
9. Развитие и расширение продуктовой линейки. История создания Victoria Logs - дополнительного продукта для обработки логов, который возник на основе запросов пользователей и показал лучшие результаты в бенчмарках
10. Органический рост и команда. Компания выросла до 40 сотрудников без внешних инвестиций, нанимая инженеров, уже имеющих опыт работы с их продуктом, что позволяет избегать сложных процессов найма
Интервью может быть интересно тем, кто интересуется технологиями мониторинга, бизнесом на open source или созданием собственного технологического продукта.
P.S.
Кстати, я уже раньше рассказывал о документальном фильме про Prometheus, который тут упоминается как продукт, с которого люди мигрируют на VictoriaMetrics
#Kubernetes #Film #Documentary #Software #Architecture #DistributedSystems #SRE
Недавно в подкасте Кирилл Мокевнин побеседовал с Александром Валялкиным, сооснователем и core-разработчиком VictoriaMetrics - одного из самых популярных инструментов для мониторинга, который успешно конкурирует с Prometheus. Я посмотрел это интервью с большим интересом и мне понравилось как Александр рассказывал о своем пути от крутого инженера к создателю своего бизнеса. Вот основные идеи этого интервью
1. Путь от разработчика к предпринимателю. Александр поделился своим опытом трансформации из программиста в основателя успешного IT-бизнеса, рассказал о первых ошибках и извлеченных уроках
2. Проблемы Prometheus и рождение VictoriaMetrics. В 2016-2017 годах команда Александра столкнулась с ограничениями Prometheus при масштабировании, что в итоге привело к идее создания собственного решения
3. Технические преимущества Go для баз данных. Go позволяет легче писать и оптимизировать базы данных, снижая порог входа и упрощая работу. Профилировщики в Go помогают точечно оптимизировать только необходимые 2% кода
4. Инженерное мышление vs бизнес-подход. Инженерное мышление часто бывает наивным, но оно - двигатель бизнеса. Автор объяснил, почему техническому специалисту важно развивать бизнес-мышление
5. Маркетинг технического продукта. Долгосрочное взаимодействие с пользователями требует не только маркетинга, но и качественного продукта. Александр рассказал, как их контент-маркетинг на Medium и Hacker News оказался эффективнее платной рекламы
6. Open Source как стратегия развития. После перевода VictoriaMetrics в Open Source проект начал активно развиваться, привлекая новых пользователей и улучшая продукт благодаря сообществу
7. Enterprise-контракты vs SaaS. Несмотря на популярность SaaS-модели среди инвесторов, Enterprise-контракты оказались более прибыльными для бизнеса VictoriaMetrics
8. Упрощение сложных технологий. Важность создания простых в использовании продуктов, которые "просто работают" из коробки. Victoria Metrics автоматически масштабируется под доступные ресурсы без сложной настройки
9. Развитие и расширение продуктовой линейки. История создания Victoria Logs - дополнительного продукта для обработки логов, который возник на основе запросов пользователей и показал лучшие результаты в бенчмарках
10. Органический рост и команда. Компания выросла до 40 сотрудников без внешних инвестиций, нанимая инженеров, уже имеющих опыт работы с их продуктом, что позволяет избегать сложных процессов найма
Интервью может быть интересно тем, кто интересуется технологиями мониторинга, бизнесом на open source или созданием собственного технологического продукта.
P.S.
Кстати, я уже раньше рассказывал о документальном фильме про Prometheus, который тут упоминается как продукт, с которого люди мигрируют на VictoriaMetrics
#Kubernetes #Film #Documentary #Software #Architecture #DistributedSystems #SRE
YouTube
От стартапа до международного бизнеса: история VictoriaMetrics и её уроки | Александр Валялкин | #36
В этом выпуске мы поговорили с Александром Валялкиным, сооснователем и core-разработчиком VictoriaMetrics — одного из самых популярных инструментов для мониторинга, который конкурирует с Prometheus.
Разобрали, как программисту стать предпринимателем? Александр…
Разобрали, как программисту стать предпринимателем? Александр…
Hourly Cost of Downtime - ITIC 2024 Hourly Cost of Downtime Survey Results (#SRE)
В рамках подготовки к своему выступлению на конференции Positive Hack Days в Лужниках, наткнулся на короткий отчет 2024 про стоимость часа даунтайма от ITIC. Так как я первый раз услышал про эту компанию, то решил чекнуть насколько можно доверять компании, автору отчета и самому отчету
- Сама компания оказалась независимой и исследовательской консалтинговой фирмой, основанной в 2002 году, которая специализируется на проведении первичных исследований по широкому спектру технологических тем для вендоров и корпоративных клиентов.
- Автором исследования является Лаура ДиДио (Laura DiDio), имеющая более 25 лет опыта в сфере высоких технологий
- Самому исследованию можно доверять, так как это 11 ежегодный отчет, проведенный как независимое веб-исследование, в котором приняли участие более 1000 компаний по всему миру в период с ноября 2023 по март 2024 года. Причем в исследовании принимали участие компании разных размеров: 27% составляли малые/средние предприятия (до 200 пользователей), 28% – средние предприятия (201-1000 пользователей), и 45% – крупные предприятия (более 1000 пользователей).
Основные результаты исследования следующие
1) Увеличение стоимости простоев
Исследование показывает, что стоимость простоев продолжает расти. Средняя стоимость одного часа простоя теперь
- превышает $300k для более чем 90% средних и крупных предприятий
- превышает $1mln для 41% компаний
Но это средние оценки стоимости сбоев, а в худших случаях (аля при катастрофических сбоях) потери могут кратно расти. Эти цифры не включают стоимость судебных разбирательств, штрафов или гражданских или уголовных санкций, связанных с нарушениями нормативных требований.
2) Причины простоев
Security и человеческие ошибки являются главными виновниками простоев. Согласно опросу, 84% респондентов назвали проблемы безопасности главной причиной простоев, за ними следуют человеческие ошибки (69%) и программные недостатки (65%).
3)Требования к доступности
Данные опроса показывают, что 90% организаций теперь требуют минимальной доступности 99,99% (так называемые "четыре девятки"). Это достаточно жесткие требования, которые разраешает меньше часа недоступности в год.
Выводы из результатов исследования следующие:
1) Экономические последствия в нашу эпоху взаимосвязанных систем, что работают 24 на 7 приводят к тому, что организации всех размеров не толерантны к сбоям. Простои даже на несколько минут приводят к остановке бизнеса и производительности, негативно влияют на надежность и безопасность, а также подвергают компании более высокому риску в отношении соблюдения нормативных требований, а также гражданских и даже уголовных штрафов.
2) Для регулируемых отраслей, таких как банковское дело и финансы, энергетика, правительство, здравоохранение, гостиничный бизнес, производство, СМИ и коммуникации, розничная торговля, транспорт и коммунальные услуги, необходимо учитывать потенциальные потери, связанные с судебными разбирательствами. Для отдельных организаций, чей бизнес основан на интенсивной работе с данными, таких как фондовые биржи, убытки могут исчисляться миллионами долларов в минуту.
3) Для малого и среднего бизнеса затраты на простои не настолько велики, но у них обычно нет больших бюджетов и резервных фондов своих корпоративных коллег для покрытия финансовых потерь или потенциальных судебных разбирательств, связанных с простоями.
В итоге, если обобщать, то оценки из этого отчета можно использовать как начальные ориентиры для стоимости простоев. Особенно это может быть полезно, если вам надо аргументировать важность работы над надежностью ваших систем пока у вас нет точной статистической модели, которая точнее оценит стоимость простоев именно для ваших процессов и ваших систем.
P.S.
Если у вас есть похожие отчеты, заслуживающие изучения, то накидайте их в комментах - я их тоже внимательно изучу.
#SRE #DevOps #Architecture #Software #Processes #Metrics #Engineering
В рамках подготовки к своему выступлению на конференции Positive Hack Days в Лужниках, наткнулся на короткий отчет 2024 про стоимость часа даунтайма от ITIC. Так как я первый раз услышал про эту компанию, то решил чекнуть насколько можно доверять компании, автору отчета и самому отчету
- Сама компания оказалась независимой и исследовательской консалтинговой фирмой, основанной в 2002 году, которая специализируется на проведении первичных исследований по широкому спектру технологических тем для вендоров и корпоративных клиентов.
- Автором исследования является Лаура ДиДио (Laura DiDio), имеющая более 25 лет опыта в сфере высоких технологий
- Самому исследованию можно доверять, так как это 11 ежегодный отчет, проведенный как независимое веб-исследование, в котором приняли участие более 1000 компаний по всему миру в период с ноября 2023 по март 2024 года. Причем в исследовании принимали участие компании разных размеров: 27% составляли малые/средние предприятия (до 200 пользователей), 28% – средние предприятия (201-1000 пользователей), и 45% – крупные предприятия (более 1000 пользователей).
Основные результаты исследования следующие
1) Увеличение стоимости простоев
Исследование показывает, что стоимость простоев продолжает расти. Средняя стоимость одного часа простоя теперь
- превышает $300k для более чем 90% средних и крупных предприятий
- превышает $1mln для 41% компаний
Но это средние оценки стоимости сбоев, а в худших случаях (аля при катастрофических сбоях) потери могут кратно расти. Эти цифры не включают стоимость судебных разбирательств, штрафов или гражданских или уголовных санкций, связанных с нарушениями нормативных требований.
2) Причины простоев
Security и человеческие ошибки являются главными виновниками простоев. Согласно опросу, 84% респондентов назвали проблемы безопасности главной причиной простоев, за ними следуют человеческие ошибки (69%) и программные недостатки (65%).
3)Требования к доступности
Данные опроса показывают, что 90% организаций теперь требуют минимальной доступности 99,99% (так называемые "четыре девятки"). Это достаточно жесткие требования, которые разраешает меньше часа недоступности в год.
Выводы из результатов исследования следующие:
1) Экономические последствия в нашу эпоху взаимосвязанных систем, что работают 24 на 7 приводят к тому, что организации всех размеров не толерантны к сбоям. Простои даже на несколько минут приводят к остановке бизнеса и производительности, негативно влияют на надежность и безопасность, а также подвергают компании более высокому риску в отношении соблюдения нормативных требований, а также гражданских и даже уголовных штрафов.
2) Для регулируемых отраслей, таких как банковское дело и финансы, энергетика, правительство, здравоохранение, гостиничный бизнес, производство, СМИ и коммуникации, розничная торговля, транспорт и коммунальные услуги, необходимо учитывать потенциальные потери, связанные с судебными разбирательствами. Для отдельных организаций, чей бизнес основан на интенсивной работе с данными, таких как фондовые биржи, убытки могут исчисляться миллионами долларов в минуту.
3) Для малого и среднего бизнеса затраты на простои не настолько велики, но у них обычно нет больших бюджетов и резервных фондов своих корпоративных коллег для покрытия финансовых потерь или потенциальных судебных разбирательств, связанных с простоями.
В итоге, если обобщать, то оценки из этого отчета можно использовать как начальные ориентиры для стоимости простоев. Особенно это может быть полезно, если вам надо аргументировать важность работы над надежностью ваших систем пока у вас нет точной статистической модели, которая точнее оценит стоимость простоев именно для ваших процессов и ваших систем.
P.S.
Если у вас есть похожие отчеты, заслуживающие изучения, то накидайте их в комментах - я их тоже внимательно изучу.
#SRE #DevOps #Architecture #Software #Processes #Metrics #Engineering
[1/2] Cost of a Data Breach Report 2024 (Рубрика #Security)
Изучил интересный отчет 2024 года по утечкам данных, который был подготовлен компанией IBM в сотрудничестве с Ponemon Institute. IBM знают все, а вот пр Ponemon Institute стоит рассказать - это независимая исследовательская организация, специализирующаяся на вопросах приватности, защиты данных и информационной безопасности. Для создания отчета исследователи изучили 604 организации, пострадавшие от утечек данных в период с марта 2023 по февраль 2024 года. В исследование вошли компании из 17 отраслей в 16 странах и регионах. Масштабы рассмотренных инцидентов варьировались от 2 100 до 113 000 скомпрометированных записей. Для получения информации из первых рук аналитики Ponemon Institute провели интервью с 3 556 специалистами по безопасности и руководителями C-уровня, имевшими непосредственное отношение к инцидентам.
Данному отчету можно доверять по нескольким причинам:
- Это 19-й ежегодный отчет такого рода, что указывает на устоявшуюся методологию и возможность отслеживать долгосрочные тенденции.
- Изучено 604 организации разных размеров и отраслей, что обеспечивает репрезентативность выборки.
- IBM и Ponemon Institute используют четкую методологию для расчета стоимости утечки данных, учитывающую различные факторы, включая затраты на обнаружение утечки, уведомление пострадавших, меры реагирования и упущенную прибыль.
- Хотя отчет спонсируется IBM, само исследование проводится независимо Ponemon Institute, что снижает вероятность предвзятости результатов.
- Отчет включает подробное рассмотрение различных аспектов утечек данных, включая первоначальные векторы атак, время обнаружения, влияние технологий и многое другое.
Основные результаты исследования
1) Рост стоимости утечек данных
Средняя стоимость утечки данных в 2024 году достигла рекордной отметки в 4,88 миллиона долларов США, что на 10% больше по сравнению с прошлогодним показателем в 4,45 миллиона долларов. Это самый значительный рост с периода пандемии. Увеличение стоимости обусловлено несколькими факторами:
- Рост затрат на устранение операционных простоев
- Увеличение финансовых потерь из-за оттока клиентов
- Повышение расходов на обеспечение работы служб поддержки клиентов
- Рост сумм регуляторных штрафов
2) Влияние ИИ и автоматизации
Две трети исследованных организаций сообщили о внедрении технологий искусственного интеллекта и автоматизации в своих центрах операционной безопасности, что на 10% больше по сравнению с предыдущим годом. Организации, широко использующие ИИ в процессах предотвращения угроз в среднем экономят 2,2 миллиона долларов на расходах, связанных с утечками, по сравнению с организациями, не использующими ИИ в этих процессах.
3) Жизненный цикл инцидентов
Утечки, связанные с украденными учетными данными, требуют наибольшего времени для обнаружения и устранения - в среднем 292 дня. Фишинговые атаки занимают в среднем 261 день, а атаки с использованием социальной инженерии - 257 дней.
4) Типы скомпрометированных данных
- Почти половина всех утечек (46%) затрагивала персональные данные клиентов, включая налоговые идентификаторы, электронные адреса, телефонные номера и адреса проживания.
- На втором месте оказались записи интеллектуальной собственности (43% утечек). При этом стоимость одной скомпрометированной записи интеллектуальной собственности выросла до 173 долларов с прошлогодних 156 долларов.
5) Проблема "теневых данных"
Более трети (35%) утечек затрагивали "теневые данные" - информацию, хранящуюся в неуправляемых источниках данных. Кража "теневых данных" коррелирует с увеличением стоимости утечки на 16%.
6) Бизнес-последствия
Более 70% организаций сообщили о значительных или очень значительных сбоях после утечек данных. Более половины организаций перекладывают возросшие расходы на утечки на своих клиентов через повышение цен на товары и услуги.
Выводы из отчета будут в следующем посте.
#Security #Software #AI #SRE #Architecture #Management
Изучил интересный отчет 2024 года по утечкам данных, который был подготовлен компанией IBM в сотрудничестве с Ponemon Institute. IBM знают все, а вот пр Ponemon Institute стоит рассказать - это независимая исследовательская организация, специализирующаяся на вопросах приватности, защиты данных и информационной безопасности. Для создания отчета исследователи изучили 604 организации, пострадавшие от утечек данных в период с марта 2023 по февраль 2024 года. В исследование вошли компании из 17 отраслей в 16 странах и регионах. Масштабы рассмотренных инцидентов варьировались от 2 100 до 113 000 скомпрометированных записей. Для получения информации из первых рук аналитики Ponemon Institute провели интервью с 3 556 специалистами по безопасности и руководителями C-уровня, имевшими непосредственное отношение к инцидентам.
Данному отчету можно доверять по нескольким причинам:
- Это 19-й ежегодный отчет такого рода, что указывает на устоявшуюся методологию и возможность отслеживать долгосрочные тенденции.
- Изучено 604 организации разных размеров и отраслей, что обеспечивает репрезентативность выборки.
- IBM и Ponemon Institute используют четкую методологию для расчета стоимости утечки данных, учитывающую различные факторы, включая затраты на обнаружение утечки, уведомление пострадавших, меры реагирования и упущенную прибыль.
- Хотя отчет спонсируется IBM, само исследование проводится независимо Ponemon Institute, что снижает вероятность предвзятости результатов.
- Отчет включает подробное рассмотрение различных аспектов утечек данных, включая первоначальные векторы атак, время обнаружения, влияние технологий и многое другое.
Основные результаты исследования
1) Рост стоимости утечек данных
Средняя стоимость утечки данных в 2024 году достигла рекордной отметки в 4,88 миллиона долларов США, что на 10% больше по сравнению с прошлогодним показателем в 4,45 миллиона долларов. Это самый значительный рост с периода пандемии. Увеличение стоимости обусловлено несколькими факторами:
- Рост затрат на устранение операционных простоев
- Увеличение финансовых потерь из-за оттока клиентов
- Повышение расходов на обеспечение работы служб поддержки клиентов
- Рост сумм регуляторных штрафов
2) Влияние ИИ и автоматизации
Две трети исследованных организаций сообщили о внедрении технологий искусственного интеллекта и автоматизации в своих центрах операционной безопасности, что на 10% больше по сравнению с предыдущим годом. Организации, широко использующие ИИ в процессах предотвращения угроз в среднем экономят 2,2 миллиона долларов на расходах, связанных с утечками, по сравнению с организациями, не использующими ИИ в этих процессах.
3) Жизненный цикл инцидентов
Утечки, связанные с украденными учетными данными, требуют наибольшего времени для обнаружения и устранения - в среднем 292 дня. Фишинговые атаки занимают в среднем 261 день, а атаки с использованием социальной инженерии - 257 дней.
4) Типы скомпрометированных данных
- Почти половина всех утечек (46%) затрагивала персональные данные клиентов, включая налоговые идентификаторы, электронные адреса, телефонные номера и адреса проживания.
- На втором месте оказались записи интеллектуальной собственности (43% утечек). При этом стоимость одной скомпрометированной записи интеллектуальной собственности выросла до 173 долларов с прошлогодних 156 долларов.
5) Проблема "теневых данных"
Более трети (35%) утечек затрагивали "теневые данные" - информацию, хранящуюся в неуправляемых источниках данных. Кража "теневых данных" коррелирует с увеличением стоимости утечки на 16%.
6) Бизнес-последствия
Более 70% организаций сообщили о значительных или очень значительных сбоях после утечек данных. Более половины организаций перекладывают возросшие расходы на утечки на своих клиентов через повышение цен на товары и услуги.
Выводы из отчета будут в следующем посте.
#Security #Software #AI #SRE #Architecture #Management
Разработка Высоконагруженных Систем (Рубрика #Architecture)
Нашел на своей полке старенькую книгу издательства Олега Бунина, с которой началось мое знакомство с высоконагруженными системами. Эта книга является сборником материалов по итогам конференций HighLoad++ 2010-2011 годов, изданный в 2012 году. Официально она приписывается коллективу авторов, а Олег Бунин выступил в качестве издателя и составителя.
Книга насчитывает 400 страниц и представляет собой попытку не просто описать технические характеристики крупных систем, а изложить принципы построения архитектур самых передовых и посещаемых интернет-проектов того времени. Книга фокусируется на принципах проектирования архитектуры высоконагруженных систем и практических аспектах их реализации, опираясь на опыт реальных проектов, представленных на конференциях HighLoad++. Книга начиналась с базового учебника, который включал следующие уроки
1) Первый урок, что содержал рассказ про монолитные приложения и сервис-ориентированную архитектуру, про ремесленный и промышленный подход к разработке нагруженных приложений, про вертикальное и горизонтальное масштабирование приложений, про трехзвенную архитектуру
2) Второй урок про масштабирование фронендов, что содержал обсуждение раздачи статики, кеширования, логику на фронте/беке, масштабирование бекендов и работу со всплесками трафика, про балансировку запросов на фронтенд при помощи DNS
3) Третий урок про маштабирование бекенда, где авторы говорили про функциональное разделение бекенд сервисов для масштабирования, про горизонтальное масштабирование и важность низкой связности кода (видимо, low coupling), shared nothing подходов, layered architecture. Также тут опять шла речь про кеширование, инвалидацию и прогрева кеша
4) Четвертый урок с масштабированием во времени, где речь шла про асинхронность и отложенные вычисления, использование очередей, немного про консистентность данных. Здесь был пример проектирования ленты соцсети, где эти подходы можно было использовать
5) Пятый урок про базы данных, где авторы рассказывают про разные типы баз данных, тюнинг запросов, шардинг, репликацию, кластеризацию и денормализацию, а также про хранимые процедуры.
В общем, в то время книга для меня была полезной, но сейчас она скорее исторический документ. А если хочется почитать чего-то актуального, то стоит взять книгу Мартина Клеппмана "Высоконагруженные приложения", особенно с учетом того, что Мартин пишет второе издание книги.
#DistributedSystems #Architecture #SystemDesign #Software #SoftwareArchitecture
Нашел на своей полке старенькую книгу издательства Олега Бунина, с которой началось мое знакомство с высоконагруженными системами. Эта книга является сборником материалов по итогам конференций HighLoad++ 2010-2011 годов, изданный в 2012 году. Официально она приписывается коллективу авторов, а Олег Бунин выступил в качестве издателя и составителя.
Книга насчитывает 400 страниц и представляет собой попытку не просто описать технические характеристики крупных систем, а изложить принципы построения архитектур самых передовых и посещаемых интернет-проектов того времени. Книга фокусируется на принципах проектирования архитектуры высоконагруженных систем и практических аспектах их реализации, опираясь на опыт реальных проектов, представленных на конференциях HighLoad++. Книга начиналась с базового учебника, который включал следующие уроки
1) Первый урок, что содержал рассказ про монолитные приложения и сервис-ориентированную архитектуру, про ремесленный и промышленный подход к разработке нагруженных приложений, про вертикальное и горизонтальное масштабирование приложений, про трехзвенную архитектуру
2) Второй урок про масштабирование фронендов, что содержал обсуждение раздачи статики, кеширования, логику на фронте/беке, масштабирование бекендов и работу со всплесками трафика, про балансировку запросов на фронтенд при помощи DNS
3) Третий урок про маштабирование бекенда, где авторы говорили про функциональное разделение бекенд сервисов для масштабирования, про горизонтальное масштабирование и важность низкой связности кода (видимо, low coupling), shared nothing подходов, layered architecture. Также тут опять шла речь про кеширование, инвалидацию и прогрева кеша
4) Четвертый урок с масштабированием во времени, где речь шла про асинхронность и отложенные вычисления, использование очередей, немного про консистентность данных. Здесь был пример проектирования ленты соцсети, где эти подходы можно было использовать
5) Пятый урок про базы данных, где авторы рассказывают про разные типы баз данных, тюнинг запросов, шардинг, репликацию, кластеризацию и денормализацию, а также про хранимые процедуры.
В общем, в то время книга для меня была полезной, но сейчас она скорее исторический документ. А если хочется почитать чего-то актуального, то стоит взять книгу Мартина Клеппмана "Высоконагруженные приложения", особенно с учетом того, что Мартин пишет второе издание книги.
#DistributedSystems #Architecture #SystemDesign #Software #SoftwareArchitecture
Code of Leadership #38 - Interview with Dmitry Kotelnikov about origination platform and reliability (Рубрика #Management)
В очередном выпуске подкаста ко мне пришел интересный гость, Дмитрий Котельников, с которым мы обсудили origination процессы и вопросы обеспечения их надежности. Дима работает в Т-Банке уже 8 лет и все это время занимается онбордингом новых клиентов, а сейчас руководит платформой Origination, а также развивает RnD направление AI миграций и участвовал в запуске стрима Staff инженеров, о которых мы как-то говорили в выпуске с моим коллегой Лешей Тарасовым
За час мы успели обсудить следующие темы
- Знакомство с гостем
- Выбор университета и развитие навыков
- Начало карьеры и первые рабочие задачи
- Архитектурные изменения и рост компании
- Развитие инфраструктурных инструментов
- BPM и сложности бизнес-процессов
- Надежность, интеграции и инструменты мониторинга
- Структура платформы origination
- Технические аспекты и общие компоненты платформы
- Управление потребностями продуктов и вызовы платформы
- Переход от инженера к менеджеру и рекомендации для развития
Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.
#Software #Engineering #SRE #Management #Architecture #Processes #Devops #DevEx
В очередном выпуске подкаста ко мне пришел интересный гость, Дмитрий Котельников, с которым мы обсудили origination процессы и вопросы обеспечения их надежности. Дима работает в Т-Банке уже 8 лет и все это время занимается онбордингом новых клиентов, а сейчас руководит платформой Origination, а также развивает RnD направление AI миграций и участвовал в запуске стрима Staff инженеров, о которых мы как-то говорили в выпуске с моим коллегой Лешей Тарасовым
За час мы успели обсудить следующие темы
- Знакомство с гостем
- Выбор университета и развитие навыков
- Начало карьеры и первые рабочие задачи
- Архитектурные изменения и рост компании
- Развитие инфраструктурных инструментов
- BPM и сложности бизнес-процессов
- Надежность, интеграции и инструменты мониторинга
- Структура платформы origination
- Технические аспекты и общие компоненты платформы
- Управление потребностями продуктов и вызовы платформы
- Переход от инженера к менеджеру и рекомендации для развития
Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.
#Software #Engineering #SRE #Management #Architecture #Processes #Devops #DevEx
YouTube
Code of Leadership #38 - Interview with Dmitry Kotelnikov about origination platform and reliability
В очередном выпуске подкаста ко мне пришел интересный гость, Дмитрий Котельников, с которым мы обсудили origination процессы и вопросы обеспечения их надежности. Дима работает в Т-Банке уже 8 лет и все это время занимается онбордингом новых клиентов, а сейчас…
[1/3] Надежность и безопасность — это дополнительные опции или фундамент для современных ИТ-систем? (Рубрика #Architecture)
Сегодня я выступаю на конференции Positive Hack Days в Лужниках с заявленной выше темой. А тут я напишу тезисы и дам отсылки к дополнительным источникам
1) Почему стоит обсуждать эти темы сейчас
- Средняя стоимость сбоев растет и сейчас стоит порядка $300k/hour - подробнее в отчете "Hourly Cost of Downtime - ITIC 2024" (вот мой рассказ)
- Средняя стоимость утечек данных растет и стоит примерно $5M/breach - подробнее в отчете "IBM Cost of a Data Breach Report 2024" (вот мой рассказ в 2 частях: 1 и 2)
- Средняя сложность систем растет (облака, микросервисы, быстрые изменения) - все это приводит к тому, что надежность и безопасность обеспечивать становится сложнее
2) Почему это надо обсуждать на уровне системы и процессов (эмерджентность)
- Про это очень хорошо написано в whitepaper “Developer productivity for Humans: Software Quality” от ребят из Google (я уже рассказывал о нем). Суть в том, что для получения качественного продукта надо правильно выстроить процесс (условно, хочешь хорошую колбасу на мясокомбинате, то будь добр выстроить процессы с учетом ISO 9000). Это верно и для разработки и тут мы гонимся за эмерджентными свойствами (хорошая архитектура, надежность, безопасность), то есть за теми свойствами системы в целом, которые не присутствуют ни в одном из ее отдельных компонентов, но возникают в результате взаимодействий и отношений между этими компонентами. Подробнее про эмерджентность рекомендую почитать в Wiki, а также в кинге физика Девида Дойча "The Fabric of Reality: The Science of Parallel Universes" ("Структура реальности"), о которой я писал раньше
3) Подходы к надежности и безопасности
- Надежность популяризировал Google через культуру SRE - есть три ключевые книги: "SRE Book", "SRE Workbook", "Building Secure & Reliable Systems", о которых я уже тоже рассказывал
- Безопасность двигалась в сторону DevSecOps и Security by Design, где первое хорошо раскрывалось в давней книге "Agile Application Security" (я уже рассказывал про нее), то второе хорошо раскрыто в whitepaper "Security by Design at Google", который я тоже разбирал. Суть всей истории, чтобы безопасность сдвигалась влево и была интегрирована в процессы разработки
4) Подходы к архитектуре и проектированию решений
- ATAM (architecture tradeoff analysis method) - хороший подход к проектированию решений от Software Engineering Institute (SEI), который в том или ином виде часто используется при проектировании для снижения рисков. В этом подходе у нас есть целевые функциональные сценарии, сопутствующие им архитектурные характеристики, которые часто влияют друг на друга и нам требуется принимать решения о компромиссах между ними. Вообще, про этот подход есть хороший рассказ в книге "Software Architecture for Busy Developers", про которую я рассказывал. Кроме того для учета рисков часто используют подход с построением матрицы рисков
- А для учета рисков безопасности в дизайне хорошо бы использвать threat modeling. В итоге, у нас из ATAM есть не только функциональные сценарии, что нам надо реализовать в системе, но еще есть из Threat modeling сценарии угроз, которые надо предотврать
5) Case studies от лидеров индустрии
- Google - про него я много рассказывал и в контексте SRE и Secure by Design, но тут разве что добавлю их motto: "Hope is not a strategy", а также вспомню, что для проверки того, что все учтено на этапе проектирования у них есть design review процесс, про который они рассказывали в whitepaper "Improving Design Reviews at Google" (вот мой обзор)
- Netflix сделал ставку на хаос (Chaos Monkey и далее), чтобы обеспечивать resilience своим системам. Подробнее можно почитать книгу "Chaos Engineering", про которую я писал
- Amazon выбрала себе слоган "At Amazon, security is job zero", вот, например, раздел про культуру безопасности на сайте AWS
Продолжение в следующем посте, так как в один все не влезло:)
#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering
Сегодня я выступаю на конференции Positive Hack Days в Лужниках с заявленной выше темой. А тут я напишу тезисы и дам отсылки к дополнительным источникам
1) Почему стоит обсуждать эти темы сейчас
- Средняя стоимость сбоев растет и сейчас стоит порядка $300k/hour - подробнее в отчете "Hourly Cost of Downtime - ITIC 2024" (вот мой рассказ)
- Средняя стоимость утечек данных растет и стоит примерно $5M/breach - подробнее в отчете "IBM Cost of a Data Breach Report 2024" (вот мой рассказ в 2 частях: 1 и 2)
- Средняя сложность систем растет (облака, микросервисы, быстрые изменения) - все это приводит к тому, что надежность и безопасность обеспечивать становится сложнее
2) Почему это надо обсуждать на уровне системы и процессов (эмерджентность)
- Про это очень хорошо написано в whitepaper “Developer productivity for Humans: Software Quality” от ребят из Google (я уже рассказывал о нем). Суть в том, что для получения качественного продукта надо правильно выстроить процесс (условно, хочешь хорошую колбасу на мясокомбинате, то будь добр выстроить процессы с учетом ISO 9000). Это верно и для разработки и тут мы гонимся за эмерджентными свойствами (хорошая архитектура, надежность, безопасность), то есть за теми свойствами системы в целом, которые не присутствуют ни в одном из ее отдельных компонентов, но возникают в результате взаимодействий и отношений между этими компонентами. Подробнее про эмерджентность рекомендую почитать в Wiki, а также в кинге физика Девида Дойча "The Fabric of Reality: The Science of Parallel Universes" ("Структура реальности"), о которой я писал раньше
3) Подходы к надежности и безопасности
- Надежность популяризировал Google через культуру SRE - есть три ключевые книги: "SRE Book", "SRE Workbook", "Building Secure & Reliable Systems", о которых я уже тоже рассказывал
- Безопасность двигалась в сторону DevSecOps и Security by Design, где первое хорошо раскрывалось в давней книге "Agile Application Security" (я уже рассказывал про нее), то второе хорошо раскрыто в whitepaper "Security by Design at Google", который я тоже разбирал. Суть всей истории, чтобы безопасность сдвигалась влево и была интегрирована в процессы разработки
4) Подходы к архитектуре и проектированию решений
- ATAM (architecture tradeoff analysis method) - хороший подход к проектированию решений от Software Engineering Institute (SEI), который в том или ином виде часто используется при проектировании для снижения рисков. В этом подходе у нас есть целевые функциональные сценарии, сопутствующие им архитектурные характеристики, которые часто влияют друг на друга и нам требуется принимать решения о компромиссах между ними. Вообще, про этот подход есть хороший рассказ в книге "Software Architecture for Busy Developers", про которую я рассказывал. Кроме того для учета рисков часто используют подход с построением матрицы рисков
- А для учета рисков безопасности в дизайне хорошо бы использвать threat modeling. В итоге, у нас из ATAM есть не только функциональные сценарии, что нам надо реализовать в системе, но еще есть из Threat modeling сценарии угроз, которые надо предотврать
5) Case studies от лидеров индустрии
- Google - про него я много рассказывал и в контексте SRE и Secure by Design, но тут разве что добавлю их motto: "Hope is not a strategy", а также вспомню, что для проверки того, что все учтено на этапе проектирования у них есть design review процесс, про который они рассказывали в whitepaper "Improving Design Reviews at Google" (вот мой обзор)
- Netflix сделал ставку на хаос (Chaos Monkey и далее), чтобы обеспечивать resilience своим системам. Подробнее можно почитать книгу "Chaos Engineering", про которую я писал
- Amazon выбрала себе слоган "At Amazon, security is job zero", вот, например, раздел про культуру безопасности на сайте AWS
Продолжение в следующем посте, так как в один все не влезло:)
#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering
phdays.com
Программа PHDays Fest
Positive Hack Days Fest - международный киберфестиваль для всех, кто хочет погрузиться в мир кибербезопасности и технологий. Любой желающий может узнать, как устроен цифровой мир, повысить уровень своей защищенности и круто провести время
[3/3] Надежность и безопасность — это дополнительные опции или фундамент для современных ИТ-систем? (Рубрика #Architecture)
Интересно, что уже появилась запись вчерашнего выступления на PHDays, о котором я рассказывал в прошлых постах: 1 и 2. В общем, теперь можно не только прочитать про выступление, но и посмотреть его. Если есть комментарии или вопросы, пишите в комменты под постом, я вечером постараюсь ответитьь.
#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering
Интересно, что уже появилась запись вчерашнего выступления на PHDays, о котором я рассказывал в прошлых постах: 1 и 2. В общем, теперь можно не только прочитать про выступление, но и посмотреть его. Если есть комментарии или вопросы, пишите в комменты под постом, я вечером постараюсь ответитьь.
#SRE #SystemDesign #Software #Architecture #Metrics #SoftwareArchitecture #Engineering