Как стать автором
Обновить
40.78

Распределённые системы *

Нюансы проектирования распределенных систем

Сначала показывать
Порог рейтинга
Уровень сложности

Как создать CDN в отдельно взятой стране

Время на прочтение 10 мин
Количество просмотров 4.3K

Тема задержки доступа и скорости извлечения сетевых ресурсов никогда не перестанет быть актуальной. Максимально близкое расположение источника влияет не только на скорость загрузки и пользовательский опыт, но и на эффективность работы глобальной сети в целом, поскольку позволяет локализовать трафик и сократить загрузку магистральных каналов, предпочитая использовать кэшированные или расположенные локально реплики сетевых ресурсов. Не случайно Google реализует модель сохранения локальных кэшей на оборудовании крупных региональных провайдеров (Google Global Cache) и интеллектуальные алгоритмы в маршрутизации на ближайшую реплики. В этой статье мы обсудим различные подходы к реализации распределенной сети доставки контента (Content Delivery Network, он же CDN), а также акцентируем возможные решения для создания CDN в масштабах отдельно взятой страны или города.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 1

Руководство по обеспечению высокой доступности в Kubernetes

Время на прочтение 11 мин
Количество просмотров 11K

Перед вами полноценный гайд по запуску приложений с высокой доступностью (HA) в Kubernetes. В его основу лёг мой многолетний опыт работы с этой системой, приправленный лучшими практиками из официальной документации OpenShift и Kubernetes.
Читать дальше →
Всего голосов 55: ↑53 и ↓2 +51
Комментарии 4

Низкоорбитальная навигационная система: подводные камни

Время на прочтение 5 мин
Количество просмотров 5K

За час до того, как я сел писать эти строки, первый спутник-демонстратор низкоорбитальной навигационной системы Pulsar отделился от разгонного блока.

Идею этой системы я изложил в прошлой статье. Компания Xona планирует вывести около 300 небольших спутников на низкую орбиту. Каждый спутник будет снабжен приемником сигналов глобальных навигационных систем (ГНСС), по их сигналам спутники будут определять свои траектории движения и синхронизироваться. Из-за удаленности от поверхности земли и ориентации антенны, спутники будут оставаться вне досягаемости наземных постановщиков помех.

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

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 9

О чём расскажут на Hydra: параллельность и распределённость от введения до хардкора

Время на прочтение 10 мин
Количество просмотров 2.3K

У конференции Hydra в этом году кое-что меняется: кроме двух онлайн-дней, будет ещё и офлайн-день в Петербурге, позволяющий по-настоящему собраться вместе и как следует пообщаться.

И если обычно программа Hydra делилась на два больших блока «concurrency» и «distributed», то в этом году получился ещё и третий: про «внутренности» баз данных.

Но главное остаётся прежним:

— Конференция посвящена разработке параллельных и распределенных систем

— На ней сходятся вместе IT-индустрия и академический мир (тут можно познакомиться и со свежими теоретическими результатами, и с «историями из продакшна»)

— Доклады на английском

О чём именно расскажут в этот раз? Хотя на сайте описания докладов на английском, для хабрачитателей перевели их на русский.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 1

Истории

Решение проблемы в управлении конкурентными вычислениями

Время на прочтение 4 мин
Количество просмотров 3.7K

От переводчиков. Эту коротенькую статью Дейкстры, которой уже 57 лет, Лесли Лампорт назвал «работой, которая начала всю область конкурентных и распределенных алгоритмов». Но на Хабре её до сих пор вроде бы не переводили. Поскольку мы скоро проведём конференцию Hydra, которая посвящена именно этой области, решили восполнить этот пробел. Кстати, как думаете, как лучше переводить на русский слово concurrent? Мы выбрали вариант «конкурентный», но консенсуса тут вроде бы нет.

Эдсгер В. Дейкстра
Технический университет Эйндховена, Нидерланды

Ряд преимущественно независимых последовательно-циклических процессов с ограниченными средствами связи друг с другом может быть реализован таким образом, что в любой момент времени один и только один из них находится в «критической секции» своего цикла.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 10

Как написать свой прокси с кроликом и рейт-лимитами и не изменить змее с сусликом

Время на прочтение 5 мин
Количество просмотров 4.8K

Пару лет назад мы в Just Work делали несколько похожих проектов, которые должны были обрабатывать данные, получаемые из одного внешнего HTTP API. Это API, несмотря на согласованные повышенные лимиты, изредка банило наши ключи доступа за малейшее превышение. Из-за этого ответственность за соблюдение лимитов лежала на клиентах. В дальнейшем, проектов, использующих это API, должно было становиться все больше, и заказчика не устраивала перспектива разбираться с каждой реализацией по отдельности.

В итоге было решено сделать собственный прокси-сервер, который реализовывал бы контроль скорости и предоставлял бы асинхронный доступ к API.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 4

Низкоорбитальная навигационная система Xona Pulsar

Время на прочтение 4 мин
Количество просмотров 3.5K

Успех Starlink проложил дорогу молодым компаниям, претендующим на заполнение низкой околоземной орбиты своими малыми и не очень спутниками. Производить аппараты на конвейере, запускать сотнями и тысячами, разрабатывать и разворачивать группировку за десятки месяцев - всё это "New Space". Теперь HawkEye360 следит за пожарами лесными и людскими, Spire собирает данные о погоде, OneWeb догоняет Маска, SatelliteVU запускает в космос тепловизоры...а Xona Space Systems готовит для нас новую навигационную систему Pulsar!

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 15

Дорожная карта развития системы распределенного реестра в России от 2019 года

Время на прочтение 14 мин
Количество просмотров 2.4K

Нашёл очень интересный документ, который был подготовлен госкорпорацией «Ростех» в рамках соглашения с правительством и утвержден президиумом Правительственной комиссии по цифровому развитию, использованию ИТ для улучшения качества жизни и условий ведения предпринимательской деятельности в 2019 году. Однако с тех пор про реализацию дорожной карты ничего не слышно.

Что интересного в документе?

На мой взгляд, из данного документа можно попробовать придумать идею для блокчейн-проекта. Для этого предлагаю изучить подготовленные на базе дорожной карты мероприятия по развитию ТРР.

Читать далее
Всего голосов 11: ↑1 и ↓10 -9
Комментарии 4

Пример микросервисной архитектуры с Saga на MassTransit

Время на прочтение 9 мин
Количество просмотров 15K

Привет, Хабр! В общем работаю я значит Архитектором Программных Решений. Мы тут монолиты на микросервисы переводим поэтому я решил для наших разработчиков написать пример проекта с сагой и за одно может оно и вам понадобиться поэтому выложил сюда. Статья будет дополняться по мере поступления вопросов от вас и от наших разработчиков

Читать далее
Всего голосов 15: ↑8 и ↓7 +1
Комментарии 25

Как мы выбирали консенсус для энтерпрайз-блокчейна

Время на прочтение 5 мин
Количество просмотров 1.9K

Любому блокчейн-проекту, который рассчитывает на успех, стоит думать, что он будет с этим успехом делать. Больше пользователей, больше транзакций, больше нагрузка на сеть — рано или поздно встанет вопрос о масштабировании. В этом посте мы расскажем, куда нас привели вопросы масштабирования, согласованности и почему мы не взяли на вооружение какой-нибудь готовый консенсус.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 6

Разработка архитектуры для чайников. Часть 2

Время на прочтение 5 мин
Количество просмотров 18K

Monolite or MicroService ?

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

Давайте для начала разберём что такое монолит и его преимущества и недостатки.

Читать далее
Всего голосов 17: ↑8 и ↓9 -1
Комментарии 8

Встречайте UUID нового поколения для ключей высоконагруженных систем

Время на прочтение 3 мин
Количество просмотров 27K

31 марта 2022 года на сайте IETF был официально размещен текст рабочего документа (копия 1, копия 2) New UUID Formats (далее – стандарт), который должен формально обновить, а фактически заменить давно устаревший и изначально ущербный RFC 4122.

В долгих и жарких спорах удалось выработать стандарт высокого качества. Можно надеяться, что этот стандарт заменит многочисленные «самоделки» энтузиастов и отдельных компаний: ULID, KSUID, CUID и т.д., а в СУБД будут встроены генераторы UUID новых форматов, предназначенных для ключей высоконагруженных систем.

Читать далее
Всего голосов 42: ↑42 и ↓0 +42
Комментарии 104

Блокчейн в корпоративной архитектуре: дань моде или необходимость?

Время на прочтение 9 мин
Количество просмотров 3.7K

Привет! Меня зовут Денис Васин, я технический директор Waves Enterprise, и мы занимаемся блокчейн-проектами для бизнеса. Благодаря метавселенным, технология недавно снова оказалась на волне популярности. Множество крупных компаний, начиная с Meta, объявили, что планируют создавать подобные проекты с поддержкой распределенных реестров и NFT-токенов. Можно утверждать, что блокчейн в целом постепенно выходит на плато продуктивности — самое время трезво оценить его и понять, когда он вообще нужен. Постараюсь сделать это далее в посте.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 12

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Паттерны асинхронных обменов на платформе Авито

Время на прочтение 11 мин
Количество просмотров 9.2K

Привет! Меня зовут Павел Агалецкий, я старший инженер в команде архитектуры. Одна из областей ответственности нашей команды — синхронное (RPC) и асинхронное взаимодействие между сервисами. 

В этой статье я расскажу о том, как можно связать сервисы друг с другом и как это делаем мы в платформе Авито. 

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 9

Сеть данных: как уравновесить централизацию и децентрализацию

Время на прочтение 7 мин
Количество просмотров 1.7K

Архитектура сети данных (data mesh) распределяет владение данными среди команд из разных предметных областей, с федеративным управлением и децентрализованными продуктами по обработке данных. Сеть данных отличается от других аналогичных архитектур именно своей высокой децентрализацией: она распределена, а не централизована.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

Децентрализованная социальная сеть для себя и друзей. На своём хостинге — без интернета

Время на прочтение 7 мин
Количество просмотров 21K


Большинство социальных сетей ориентированы на интернет. Если нет онлайна, то нет и доступа к социальной сети, и даже собственные сообщения недоступны.

Однако в современных условиях доступ в интернет может быть утерян. Поэтому нужен запасной вариант.

Совершенно противоположный подход — собственный офлайновый хостинг для децентрализованного приложения. В таком варианте узел живёт на вашем телефоне — и синхронизируется с другими по мере необходимости, в том числе по Bluetooth и Wi-Fi Direct. Никаких лишних людей, полная безопасность и отличная страховка на случай полного шатдауна.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 27

Проходим L6 интервью на System Design в FAANG

Время на прочтение 6 мин
Количество просмотров 13K

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

Читать далее
Всего голосов 19: ↑15 и ↓4 +11
Комментарии 6

Социальная сеть без интернета

Время на прочтение 5 мин
Количество просмотров 23K

SSB - это децентрализованная offline-first социальная сеть. Децентрализованная - это значит, что в ней нет сервера, который можно заблокировать, или на котором админ может закрыть вам доступ. Offline-first означает, что всё происходит в первую очередь на вашем устройстве.

Интернет-шатдаун ломает SSB не так сильно, как, например, Facebook. Вы можете продолжать читать и писать без доступа в интернет. Для синхронизации достаточно нескольких минут.

Как попасть в SSB?
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 25

Цифровой вытрезвитель

Время на прочтение 17 мин
Количество просмотров 20K

Обычно я продумываю свои статьи годами. Сегодня я собираюсь поделиться идеями, крайне далёкими от завершённости. Многие из них требуют доработки напильником размером с самолёт, а некоторые не взлетят вообще. Но я полагаю, что если не поделиться ими сейчас, то другой возможности может не наступить никогда.

Я верю в "частичные идеи". Бывает, человек крутит в голове половину чего-то важного. А у кого-то есть вторая половина. Чтобы мысли встретились и "клацнули", кто-то должен свою половину опубликовать. Сегодня это делаю я. Считайте это скорее приглашением к обсуждению, нежели готовым рецептом.

Читать далее
Всего голосов 45: ↑41 и ↓4 +37
Комментарии 49

RabbitMQ Streams для сбора и обработки телеметрии умного дома

Время на прочтение 10 мин
Количество просмотров 9K

Традиционно для сценариев поточной обработки с использованием Map-Reduce рассматриваются такие решения как Hadoop/Spark, либо используются конвейерные системы (например Kafka), для которых есть возможность реализовать концепцию потоков (streams) с помощью дополнительных инструментов (в случае с Kafka это Kafka Connect (для подключения к источникам и получателям потока) и Kafka Streams для реализации Map-Reduce на потоке сообщений.

Начиная с версии 3.9 RabbitMQ анонсировал поддержку нового типа очереди, оптимизированного для поточной обработки. В этой статье мы посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования (с примерами кода на Go).

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 1

Вклад авторов

Работа