Статья от Uber про их автоматизацию api процессов на базе thrift idl спеки https://eng.uber.com/architecture-api-gateway/ примечательна статья огромным объёмом работ, который в этот проект Uber вложил. Но ещё больше впечатляет их следующая статья о том, как они этот швейцарский нож улучшали, чтобы он не тормозил всю разработку https://eng.uber.com/scaling-api-gateway/
Чеклист CI/CD практик, вдохновленный книгой "DevOps: A Software Architect's Perspective"(https://www.amazon.com/DevOps-Software-Architects-Perspective-Engineering/dp/0134049845)
- Могут ли члены команды работать над разными версиями системы одновременно?
- Легко ли протестировать код других членов команды?
- Легко ли интегрировать код разных членов команды?
- Легко ли интегрировать код разных команд и собрать его в единую систему?
- Можно ли задеплоить систему в различных вариантах окружения?
- Может ли протестировать версию системы без влияния на продакшн?
- Есть ли возможность более пристально мониторить свеже задеплоенную систему?
- Доступны ли более старые версии кода после деплоя в продакшн?
- Можно ли откатиться в случае проблемы?
- Есть ли возможность поэтапного включения фичи в продакшне?
- Могут ли разные версии системы работать бок о бок, возможен ли поэтапный апгрейд?
- Могут ли члены команды работать над разными версиями системы одновременно?
- Легко ли протестировать код других членов команды?
- Легко ли интегрировать код разных членов команды?
- Легко ли интегрировать код разных команд и собрать его в единую систему?
- Можно ли задеплоить систему в различных вариантах окружения?
- Может ли протестировать версию системы без влияния на продакшн?
- Есть ли возможность более пристально мониторить свеже задеплоенную систему?
- Доступны ли более старые версии кода после деплоя в продакшн?
- Можно ли откатиться в случае проблемы?
- Есть ли возможность поэтапного включения фичи в продакшне?
- Могут ли разные версии системы работать бок о бок, возможен ли поэтапный апгрейд?
А тем временем, инженеры Facebook сражаются с ошибками PCIe на своих немаленьких кластерах. Аккуратная гуманная статья с поправкой на то, что гиганты не могут жить на простых средствах (в том числе мониторинга) и часть стека переписывают сами. Статья понравилась детальностью, не хватало только их эвристик по фатальности алертов https://engineering.fb.com/2021/06/02/data-center-engineering/how-facebook-deals-with-pcie-faults-to-keep-our-data-centers-running-reliably/
Engineering at Meta
How Facebook deals with PCIe faults to keep our data centers running reliably
Peripheral component interconnect express (PCIe) hardware continues to push the boundaries of computing thanks to advances in transfer speeds, the number of available lanes for simultaneous data de…
В книге George Fairbanks "Just enough software architecture" вводится понятие предполагаемая/дефолтная архитектура ("presumptive architecture") - архитектурное решение для данного домена, которое сразу приходит в голову "по умолчанию". Дефолтная архитектура отличается от reference architecture, которую разрабатывают производители платформ: последняя может станет дефолтной архитектурой в домене, но без гарантий. Зацепила фраза Fairbanks'а: "The term presumptive architecture is introduced in this book because it would be a mistake to ignore these 800-pound gorillas and instead believe that all developers with start with first principles in their software architecture." Очень здравый подход. Куча книг по архитектуре утверждают: семь раз задизайнь, один раз напиши. А Fairbanks честно говорит "Ну, не всегда так и часто не так". И все же сразу хочется предостеречь с одним возможным ложным выводом о ненужности архитектурных знаний при наличии знания домена: начать не значит закончить. Да, начав строить очередной микросервис, у каждого, кто уже их строил, есть в голове некоторый стек, на базе которого он собирается это провернуть. Но как часто по мере развития системы требуется "креативность" и в архитектуре тоже. И без знаний принципов как это менять, развитие будет идти дорого, методом проб и ошибок.
https://www.amazon.com/Just-Enough-Software-Architecture-Risk-Driven/dp/0984618104
https://www.amazon.com/Just-Enough-Software-Architecture-Risk-Driven/dp/0984618104
На Хабре вышла статья моего бывшего коллеги Кости Кардаманова об архитектурной секции интервью в Яндексе https://habr.com/ru/company/yandex/blog/564132/
Сразу вспомнилась коллекция материалов для прохождения интервью на архитектурные позиции в гугле/fb https://github.com/donnemartin/system-design-primer . Оба ресурса использовать как способ подсветить свои слабые места. И, конечно, это не enterprise архитектура, в МТС на архитекторы спрашивают другие фреймворки.
Сразу вспомнилась коллекция материалов для прохождения интервью на архитектурные позиции в гугле/fb https://github.com/donnemartin/system-design-primer . Оба ресурса использовать как способ подсветить свои слабые места. И, конечно, это не enterprise архитектура, в МТС на архитекторы спрашивают другие фреймворки.
Хабр
Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и...
Из серии "как оно на самом деле" - переход на канареечные релизы может быть не таким простым. Статья от инженеров Etsy про тру архитектуру https://codeascraft.com/2021/06/15/improving-the-deployment-experience-of-a-ten-year-old-application/
Etsy Engineering
Etsy Engineering | Improving the Deployment Experience of a Ten-Year Old Application
In 2018, Etsy migrated its service infrastructure from self-managed data centers to cloud provisioning. (We blogged about it at...
Чек-лист проектирования от Максима Цепкова ([https://t.me/mtsepkov](https://t.me/mtsepkov)). Чек-лист достаточно краткий, но может стать оправной точкой для reference архитектуры при проектировании системы интернет-магазина со складами\доставкой и всякими прелестями отмены\задержки заказов.
- Как масштабируется каждый из сервисов под нагрузкой?
- Используется общая БД или отдельные?
- Где в БД возникают блокировки обработки запросов пользователей?
- Как взаимодействуют сервисы, где и какие очереди?
- Что происходит с записями в очереди, когда экземпляры сервисов и ноды падают?
- Как обеспечивается устойчивость при падении экземпляров сервисов?
- Как обеспечивается устойчивость при падении нод и дата-центров?
- Как обеспечивается работа, когда пользователь в "Сапсане" или в другом месте с плохой связью, соединение рвется, и он переоткрывает страницу?
- Какой мусор остается, если пользователь ушел, и как его чистят?
- Как масштабируется каждый из сервисов под нагрузкой?
- Используется общая БД или отдельные?
- Где в БД возникают блокировки обработки запросов пользователей?
- Как взаимодействуют сервисы, где и какие очереди?
- Что происходит с записями в очереди, когда экземпляры сервисов и ноды падают?
- Как обеспечивается устойчивость при падении экземпляров сервисов?
- Как обеспечивается устойчивость при падении нод и дата-центров?
- Как обеспечивается работа, когда пользователь в "Сапсане" или в другом месте с плохой связью, соединение рвется, и он переоткрывает страницу?
- Какой мусор остается, если пользователь ушел, и как его чистят?
Telegram
mtsepkov
Maxim Tsepkov http://mtsepkov.org Менеджмент самоуправления, soft skill модели, конференции. Личный user @MaximTsepkov
По заметкам APIEvangelist открыла для себя новую интересную тулзовину https://www.akitasoftware.com - она прослушивает траффик и строит модель АПИ. Настоящую модель, которую используют, а не ту, что описана в swagger(aka OpenAPI). Пока не поддерживают gRPC и GraphQL, но собираются (не факт, что нужно - все же там больше принята кодогенерация). Тулзовина ценна тем, что (1) позволяет легко отлавливать изменения поведения АПИ, (2) позволяет восстановить АПИ при отсутствии спек. Тулзовина не нужна там, где (1) практикуют строгий API-first, (2) большая разница между публичным и приватным АПИ. Жаль, что сейчас нет проекта, над которым можно поиграться. Но вдруг у вас есть и расскажите свои впечатления?
Postman API Platform
Enhance API Collaboration with Postman | Build & Scale APIs Together
Empower your teams with Postman, the API collaboration platform built for seamless teamwork. Discover how 500,000+ companies use Postman to design, test, and collaborate on APIs in one place. Speed up your team’s API development, ship higher quality APIs…
У hexlet есть чеклист инженерных практик (или скорее CI/CD практик). Тоже неполный, но поможет вашему проекту оценить свою степень зрелости. А вам понять, если вдруг у вас где-то не хватает воображения, чтобы пожелать еще более прекрасных процессов. Что бы вы еще в этот список добавили?
Hexlet
Essential Software Engineering Practices Checklist for Your Company
Software development is a challenging process that tends to become much more complex as the number of participants increases. More people in the team create more communication and require more synchronization (sharing knowledge of system parts and processes…