Code of Architecture
4.02K subscribers
66 photos
10 files
156 links
Канал книжного клуба Code of Architecture команды Тинькофф. Здесь мы анонсируем новые выпуски, обсуждаем прочитанное, делимся инсайтами и предлагаем новые книги для прочтения.

Наш ютуб: https://www.youtube.com/@CodeofArchitecture
Download Telegram
🗂 Делимся артефактами с недавнего эфира

На вчерашнем стриме обсуждали организацию коммуникации разных частей в распределенных системах. Разбирали:

— сетевые протоколы;
— remote procedure calls (rpc);
— ориентированные на сообщения коммуникации;
— варианты мультикаста.

Запись эфира уже можно посмотреть на ютуб, а главные тезисы прочитать в статье Александра Поломодова или на доске в Miro.
Please open Telegram to view this post
VIEW IN TELEGRAM
📖В понедельник разберем пятую главу, которая посвящена координации взаимодействия разных частей распределенной системы между собой.

Обсудим:

— как синхронизировать часы в разных частях распределенной системы;
— концепцию логических часов (logical clocks);
— как делать взаимные блокировки (mutual exclusion), чтобы совместно использовать ресурсы;
— как можно выбирать лидера (election algorithms);
— как работает координация при помощи сплетен (gossip-based coordination);
— работу publish-subscribe и то, как распределенно делать event matching.

Также найдем способ для оценки близости двух частей распределенной системы между собой (location systems и GPS в качестве примера).

Гостями стрима станут наши коллеги: Сергей Гоппиков, руководитель команд платформы открытия продуктов Tinkoff Business, и Даниил Кулешов, архитектор новой системы авторизации для клиентов Тинькофф.

🗓️ Увидимся в понедельник 13 февраля в 18:00 по Москве на нашем ютуб-канале.

До встречи в эфире!
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂 В понедельник провели пятый эфир по книге Distributed Systems. На стриме поговорили об организации координации разных частей распределенной системы между собой. Обсудили:

— физические и логические часы;
— взаимные блокировки;
— выбор лидера;
— подход publish-subscribe в распределенных системах;
— близость узлов между собой и то, как ее можно оценивать.

Запись стрима можно посмотреть на нашем ютуб-канале, а главные тезисы главы прочитать в статье Александра Поломодова и на доске в Miro.
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 В понедельник разберем шестую главу, которая посвящена именованию в распределенных системах. На предыдущих стримах мы говорили про архитектуру, процессы, коммуникацию и координацию. А сейчас дошли до обсуждения следующих важных вопросов:

— зачем нужны имена, идентификаторы и адреса;
— что такое плоское именование — flat naming (в качестве примеров рассмотрим Distributed Hash Tables);
— что такое структурированное именование — structured naming (разберем работу DNS и Unix FileSystems);
— что такое именование, основанное на атрибутах — attribute-based naming (вспомним про LDAP);
— что такое named-data networking.

Гостем стрима станет наш коллега Алексей Квак, который руководит группой разработки в Тинькофф, а еще специализируется на бэкенде и базах данных.

🔔 Встречаем завтра 20 февраля в 18:00 по Москве на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ждем сегодня на стриме🔔

Прочитаем шестую главу Distributed Systems, которая посвящена именованию в распределенных системах. Гостем эфира станет наш коллега Алексей Квак.

Встречаемся в 18:00 (по Москве) на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂 Делимся артефактами с недавнего эфира

В понедельник обсудили шестую главу Distributed Systems вместе с Алексеем Кваком. Разобрали:

— адреса, идентификаторы и имена;
— плоское именование, включая распределенные хэш-таблицы и consistent hashing;
— структурное именование, включая unix filesystem и DNS;
— attribute-based naming, включая триплеты RDF из семантического веба и LDAP, как комбинацию структурного и attribute-based подхода;
— name-data networking — экспериментальный подход, который хочет занять место протокола IP в современном интернете.

Запись эфира можно посмотреть на ютуб-канале, тезисы — в статье Александра Поломодова и на доске в Miro.
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 Обсудим репликацию и консистентность на завтрашнем стриме

В эфире разберем:

— для чего нужна репликация и какие проблемы она решает (производительность и надежность), а какие приносит с собой (сложность поддержки консистентности);
— модели консистентности (дата-центричные и клиенто-центричные);
— дата-центричные модели консистентности (sequential, causal, eventual, continuous);
— клиенто-центричные модели консистентности (monotonic reads, monotonic writes, read your writes, writes follow reads), а также рассмотрим пример с ZooKeeper;
— управление репликами (replica management);
— протоколы косистентности.

А еще поговорим о том, как работает кеширование и репликация в современном Web.

Гостями стрима станут наши коллеги — Дмитрий Гаевский и Виталий Кондратов. Дмитрий занимается разработкой dev to dev-решений на больших масштабах, создает сложные RnD-решения и проектирует event-driven-системы. Виталий — архитектор в отделе базовых технологий. Он разрабатывает и улучшает базы данных и инфраструктуру для их эксплуатации.

🗓️ Увидимся в понедельник 27 февраля в 18:00 по Москве на нашем ютуб-канале.
🔔 Ждем сегодня на стриме

Разберем седьмую главу Distributed Systems вместе с Дмитрием Гаевским и Виталием Кондратовым. В эфире обсудим репликацию и консистентность.

Встречаемся в 18:00 (по Москве) на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 Обсудим отказоустйчивость на восьмом стриме по Distributed System

Сегодня в эфире разберем:

— базовые концепции и модели отказов;
— устойчивость на уровне процессов на примере алгоритмов Raft и Paxos;
— надежную связь между клиентом и сервером (ошибки на уровне p2p взаимодействия и RPC);
— надежную доставку сообщений группе процессов: multicasting и atomic multicast протоколы;
— распределенный коммит (вспомним о 2-х и 3-х фазном коммите и сценариях, которые они закрывают);
— техники восстановление из сбоев: checkpointing и логирование сообщений.

Гостями стрима станут Денис Костоусов, ведущий Scala-разработчик нашей команды Common, и Салих Фахрутдинов, Senior SRE Tinkoff Origination Platform, он отвечает за надежность заявочного процесса банка.

🔔 Увидимся сегодня на стриме в 18:00 по Москве.
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂 Делимся артефактами с седьмого стрима по Distributed Systems

Этот эфир мы провели вместе Виталием Кондратовым в начале прошлой недели. На стриме обсуждали:

— для чего нужна репликация и какие проблемы она решает (производительность и надежность), а какие приносит с собой (сложность поддержки консистентности);
— модели консистентности (дата-центричные и клиенто-центричные);
— дата-центричные модели консистентности (sequential, causal, eventual, continuous);
— клиенто-центричные модели консистентности (monotonic reads, monotonic writes, read your writes, writes follow reads), а также рассмотрим пример с ZooKeeper;
— управление репликами (replica management);
— протоколы косистентности.

А еще поговорили о том, как работает кеширование и репликация в современном Web.

Немного задержались с материалами после стрима. Исправляемся! Запись стрима можно посмотреть на нашем ютуб-канале, а краткий обзор и тезисы прочитать в статье Александра Поломодова и на доске в Miro.
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 Разберем последнюю главу Distributed Systems

Девятая глава посвящена безопастности. Поэтому на стриме сегодня обсудим:

— для чего нам нужна безопасность в распределенной системе;
— какие подходы к безопасности бывают: через confidentiality и integrity, а также через модель угроз (security threats);
— как разделять политики безопасности и механизмы для их реализации;
— какие существуют принципы для проектирования надежных систем;
— какие базовые моменты по криптографии надо знать для понимания работы современных протоколов;
— как работает аутентификация и авторизация;
— как размышлять о доверии (trust) в распределенной системе;
— как обеспечивать отслеживание проникнования в систему (intrusion) за счет мониторинга и логов.

Гостем эфира станет наш коллега Игорь Маслов, руководитель управления базовых технологий Тинькофф.

🔔 Ждем вас сегодня на стриме в 18:00 по Москве.
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂 Делимся артефактами с последнего стрима по Distributed Systems

В понедельник на заключительном стриме по книге ван Стина и Таненбаума обсуждали вопросы безопасности вместе с Игорем Масловым. Поговорили про модели угроз, политику безопасности и механики для их обеспечения, аутентификацию и авторизацию, а также доверие в распределенных системах. Закончили эфир темой мониторинга и аудита.

Запись стрима — на ютуб-канале, а основные тезисы — на доске в Miro. В статье Александра Поломодова можно также прочитать краткий обзор заключительной главы.

Еще оставляем ссылку на запись 8-й главы, которая посвящена отказоустойчивости. Её мы разбирали в прошлый понедельник вместе с нашими коллегами Денисом Костоусовым и Салихом Фахрутдиновым.
Please open Telegram to view this post
VIEW IN TELEGRAM
На последнем стриме по Distributed Systems мы говорили про вопросы безопасности и кратко обсудили тему авторизации. Нам показалось, что авторы книги пропустили достаточно важную модель — ReBAC (Relationship-Based Access Control).

Она стала популярна после того, как Google в 2019 году опубликовал white paper «Zanzibar: Google’s Consistent, Global Authorization System». В документе авторы рассказали:

— как конфигурировать авторизационную модель;
— как выражать взаимосвязи в виде триплетов;
— как проверять наличие или отсутствие прав.

Отдельно стоит отметить, что с моментам публикации Zanzibar несколько компаний сделали коммерческие и Open Source-реализации этой модели, например, SpiceDB. Это позволяет использовать подход в своих проектах.

В понедельник на стриме мы более детально обсудим проблематику авторизации, разберем модель ReBAC, погрузившись в white paper от Google и немного в Open Source-реализацию на примере SpiceDB.

Гостями эфира станут наши коллегаи — Даниил Кулешов, архитектор новой системы авторизации для клиентов, и Сергей Клименко, который отвечает за аутентификацию и авторизацию, а также сервис Тинькофф ID.

🔔 Встречаемся в следующий понедельник 20 марта в 18:00 по Москве на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔔 Ждем сегодня на стриме

Разберем «Zanzibar: Google’s Consistent, Global Authorization System» вместе с Даниилом Кулешовым и Сергеем Клименко.

Встречаемся в 18:00 (по Москве) на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
Выбираем новую книгу 📗

Выбираем вместе с вами следующий нон-фикшн. Отмечайте понравившийся вариант в опросе ниже👇
Google Zanzibar White Paper.pptx.pdf
2.1 MB
🗂 Делимся артефактами с эфира по Zanzibar

В понедельник разобрали вместе с Даниилом Кулешовым и Сергеем Клименко. Делимся артефактами и полезными ссылками с эфира:

- запись стрима;
- сам white paper;
- статья What is Google Zanzibar;
- white paper с хайлайтами;
- Zanzibar Academy.

Презентацию оставили во вложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
В апреле начнем читать нон-фикшен Джона Оустерхаута 📚

Книга посвящена проектированию ПО, точнее его философским аспектам. В ней рассматриваются вопросы управления сложностью, подходы к процессу проектирования и возможные проблемам с ним. Словом, идеи и принципы, которые есть в нон-фикшене Оустерхаута, помогут облегчить и архитектуру больших программных систем и снизить затраты на их разработку.

Краткое саммари всей книги можно прочитать в статьях Александра Поломодова:

первая часть;
вторая часть.

Разбирать A Philosophy of Software Design начнем на следующей неделе. Следите за анонсами в нашем канале 🔔
Please open Telegram to view this post
VIEW IN TELEGRAM
После недельного перерыва возвращаемся с книгой, которую множество раз упоминали во время предыдущих стримов — A Philosophy of Software Design by John Ousterhout 📘

2-е издание состоит из 22-х глав. Поэтому планируем разобрать этот нон-фикшен за 4 выпуска.

Сегодня разберем первые шесть глав. Подробно обсудим следующие темы:

— Природа сложности. Симптомы и причины;
— Тактическое программирование против стратегического;
— Глубокие модули против мелких;
— Скрытие информации и ее утечка в соседние модули;
— Универсальные модули против специализированных.

Гостем стрима станет наш коллега Гордей Васильев. Он вместе с командой разрабатывает и поддерживает единое API для взаимодействия с backend-системами Тинькофф Страхование.

🔔 Увидимся сегодня в 18:00 по Москве на нашем ютуб-канале.
💡Продолжаем разбираться, как правильно разрабатывать глубокие модули

И в этом нам помогут 7-11 главы A Philosophy of Software Design. В понедельник обсудим методики, которые предлагает Джон Оустерхаута. А пока обозначим их и темы, на которые поговорим:

— на разных уровнях используйте разные абстракции;
— перемещение сложности вниз;
— лучше вместе или по отдельности;
— сокращение числа мест обработки исключений;
— проектируй дважды и не используй первую идею пришедшую в голову.

Гостем стрима станет наш коллега Олег Корнев, архитектор группы платежных сервисов.

🔔 Встречаемся завтра в 18:00 на нашем ютуб-канале.
Please open Telegram to view this post
VIEW IN TELEGRAM