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

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

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

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

Безграничные технологии XR в эпоху распределённых вычислений

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


Как трансформация Wireless Edge поможет в разработке фотореалистичных мобильных систем расширенной реальности.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Строительные блоки распределенных приложений. Второе приближение

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

Анонс


Коллеги, в середине лета я планирую выпустить еще один цикл статей по проектированию систем массового обслуживания: “Эксперимент VTrade” — попытка написать фреймворк для торговых систем. В цикле будет разобрана теория и практика построения биржи, аукциона и магазина. В конце статьи предлагаю проголосовать за наиболее интересные вам темы.



Это завершающая статья цикла по распределенным реактивным приложениям на Erlang/Elixir. В первой статье можно найти теоретические основы реактивной архитектуры. Вторая статья иллюстрирует основные шаблоны и механизмы построения подобных систем.


Сегодня мы поднимем вопросы развития кодовой базы и проектов в целом.

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

Строительные блоки распределенных приложений. Первое приближение

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


В прошлой статье мы разобрали теоретические основы реактивной архитектуры. Пришло время поговорить о потоках данных, путях реализации реактивных Erlang/Elixir систем и шаблонах обмена сообщениями в них:


  • Request-response
  • Request-Chunked Response
  • Response with Request
  • Publish-subscribe
  • Inverted Publish-subscribe
  • Task distribution
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Строительные блоки распределенных приложений. Нулевое приближение

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


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

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

Основоположники теории распределенных систем в объятьях гидры

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

Это Лесли Лэмпорт — автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Это он впервые, ещё в 1979 году, ввёл понятие последовательной согласованности, а его статья «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» получила премию Дейкстры (точней, в 2000 году премия называлась по-старому: «PODC Influential Paper Award»). Про него есть статья в Википедии, где можно добыть ещё несколько интересных ссылок. Если вы в восторге от решения задач на happens-before или проблемы византийских генералов (BFT), то должны понимать, что за всем этим стоит Лэмпорт.


А ещё он скоро приедет на нашу новую конференцию о распределённых вычислениях — Hydra, которая состоится 11-12 июля в Санкт-Петербурге. Давайте посмотрим, что это за зверь такой.

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

Uptime day: 12 апреля, полёт нормальный

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


«Да чего же ждать от конференций? Сплошь танцовщицы, вино, гулянки» — шутил герой фильма «Послезавтра».

Наверное, на каких-то конференциях и не такое бывает (делитесь историями в комментах), но на it-сборищах обычно вместо вина пиво (по завершении), а вместо танцовщиц — «танцы» с кодами и информационными системами. 2 года назад мы тоже вписались в эту хореографию, организовав конференцию Uptime day. В этом апреле, на День космонавтики, мы проводим её уже в четвёртый раз — традиционно бесплатно и традиционно под аккомпанемент вопросов «зачем вам это надо?»
На весеннем Uptime day будем говорить об организации резервирования веб-проектов со сложной распределённой архитектурой — способам переключения с боевого окружения на резервное, а также разбору различных сценариев отката и переключения на резервную площадку в случае неудачного деплоя.

А зачем нам это надо?.. Об этом под катом. И о том, чем вам будет полезна конференция Uptime day.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Flightradar24 — как это работает? Часть 2, ADS-B протокол

Время на прочтение9 мин
Количество просмотров30K
Привет Хабр. Наверное каждый, кто хоть раз встречал или провожал родственников или друзей на самолет, пользовался бесплатным сервисом Flightradar24. Это весьма удобный способ отслеживания положения самолета в реальном времени.

image

В первой части был описан принцип работы такого онлайн-сервиса. Сейчас мы пойдем дальше, и выясним, какие данные передаются и принимаются от воздушного судна к приемной станции, и декодируем их самостоятельно с помощью Python.
Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии15

Где весной поговорить про Apache Ignite, распределенные базы данных и распределенное машинное обучение

Время на прочтение2 мин
Количество просмотров1.2K
Начинается первая волна конференций, да и дружественные митапы активизировались. Присоединяйтесь.

15 марта, Санкт-Петербург — ODS SPB Meetup #5


Распределенный TensorFlow с Apache Ignite
На митапе, приуроченному ко дню рождения Open Data Science, Юрий Бабак, Руководитель группы разработки в GridGain, расскажет про распределенный TensorFlow с Apache Ignite:

— Apache Ignite как распределенный источник данных для TensorFlow;
— Hаспределенная тренировка модели на кластере TensorFlow поверх Apache Ignite;
— Инференс TensorFlow модели на кластере Apache Ignite

Программа и регистрация

28 марта, Москва — Scalability Meetup #7


Репликация распределенных баз данных
Репликация кластеров позволяет не беспокоиться за работоспособность распределенных систем. Но что делать, если в дата-центре отключат свет, все кластеры сразу начнут сбоить (и каждый по-своему), а потом кто-то очень серьезно ошибется?

Иван Раков, Senior Software Engineer в GridGain, расскажет про то, какие варианты репликации возможны, как реализована транзакционная целостность в GridGain, и как это защищает кластер от катастроф.

Программа и регистрация

А также на JPoint и Saint Highload
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии2

Прошло 10 лет, а никто не придумал, как использовать блокчейн. И вот опять?

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

Действительно ли это так? Это соответствует действительности почти на 100 процентов. Но есть пара нюансов. Первое, это всем известная криптовалюта. Ее свойства все таки имеют некоторую привлекательность на фоне фиата. Тема это острая, прямо скажем, политически очень "заряженная", потому объективности в ней ждать не приходится.

Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии61

Распределенные системы. Паттерны проектирования. Обзор книги

Время на прочтение7 мин
Количество просмотров26K
Здравствуйте, коллеги. Сегодня мы публикуем перевод очередного обзора с сайта Бена Нейдела — этот сайт наверняка заинтересует вас и в оригинале. На сей раз мы поговорим о книге "Распределенные системы. Паттерны проектирования", которая дополняет вышедшую у нас в начале этого года книгу "Осваиваем Kubernetes" и, в сущности, является аналогом GoF для проектирования распределенных систем.



Приятного чтения.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии7

Кластерное хранилище Pacemaker + DRBD (Dual primary) + samba

Время на прочтение5 мин
Количество просмотров11K
В продолжение статьи «Кластерное хранилище Pacemaker + DRBD (Dual primary) + ctdb» представляю полностью готовый и рабочий вариант HA кластера файловой шары на 2-4 ноды для centos 6 и centos 7. Если вы хотите реализовать такое, вы либо извращенец, либо вам не дали никакого выбора, и реализовать надо хоть как-то.

Я просто опишу слоёный пирог, который мы будем собирать:

На блочном устройстве создаём таблицу gpt => один раздел на всё пространство под лвм => группу томов лвм на всё доступное пространство => лвм том на всё доступное пространство => drbd устройство => dlm => размечаем как физический том лвм на всё доступное пространство => на него кластерную группу томов лвм => лвм том на всё доступное пространство => размечаем фс gfs2 => подключаем в точку монтирования.
И рулить всем этим будет pacemaker c virtual ip адресом.


Если вы ещё хотите продолжать, читайте дальше под катом.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии26

WG Contract API: zoo of services

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


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

Если хотите познакомиться поближе с тем как команда Wargaming Platform справляется со сложностью системы из более чем сотни взаимодействующих друг с другом web-сервисов, то добро пожаловать под кат.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии7

TensorFlow на Apache Ignite

Время на прочтение8 мин
Количество просмотров4.4K
С чего начинается родина мы все знаем, а глубокое обучение начинается с данных. Без них невозможно обучить модель, оценить ее, да и вообще использовать. Занимаясь исследованиями, увеличивая индекс Хирша статьями о новых архитектурах нейронных сетей и экспериментируя, мы опираемся на простейшие локальные источники данных; обычно — файлы в различных форматах. Это работает, но неплохо было бы помнить про боевую систему, содержащую терабайты постоянно меняющихся данных. А это значит, что нужно упростить и ускорить передачу данных в продакшене, а также иметь возможность работы с большими данными. Вот тут и наступает время Apache Ignite.

Apache Ignite – это распределенная memory-centric база данных, а также платформа для кэширования и обработки операций, связанных с транзакциями, аналитикой и потоковыми нагрузками. Система способна перемалывать петабайты данных со скоростью оперативной памяти. В статье речь пойдет об интеграции между Apache Ignite и TensorFlow, которая позволяет применять Apache Ignite в качестве источника данных для обучения нейронной сети и инференса, а также в качестве хранилища обучаемых моделей и системы управления кластером при распределенном обучении.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии4

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

Почему Google нуждалась в графе знаний

Время на прочтение15 мин
Количество просмотров11K
Когда я представляюсь и говорю, чем занимается наш стартап, у собеседника сразу возникает вопрос: вы раньше работали в Facebook, или ваша разработка создана под влиянием Facebook? Многие знают об усилиях Facebook по обслуживанию своего социального графа, потому что компания опубликовала несколько статей об инфраструктуре этого графа, который она тщательно выстроила.

Google рассказывала о своём графе знаний, но ничего о внутренней инфраструктуре. Однако в компании тоже есть для него специализированные подсистемы. На самом деле сейчас графу знаний уделяется большое внимание. Лично я поставил на эту лошадку минимум два своих повышения по службе — и начал работу над новым графом ещё в 2010 году.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии1

День, когда Dodo IS остановилась. Синхронный сценарий

Время на прочтение8 мин
Количество просмотров17K
Dodo IS — глобальная система, которая помогает эффективно управлять бизнесом в Додо Пицце. Она закрывает вопросы по заказу пиццы, помогает франчайзи следить за бизнесом, улучшает эффективность сотрудников и иногда падает. Последнее — самое страшное для нас. Каждая минута таких падений приводит к потерям прибыли, недовольству пользователей и бессонным ночам разработчиков.

Но теперь мы спим лучше. Мы научились распознавать сценарии системного апокалипсиса и обрабатывать их. Ниже расскажу, как мы обеспечиваем стабильность системы.

Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии19

Системы на основе очередей задач

Время на прочтение12 мин
Количество просмотров11K
Привет, Хаброжители!

Мы решили поделиться переводом главы «Системы на основе очередей задач» Из готовящейся к выходу новинки «Распределенные системы. Паттерны проектирования» (уже в типографии).

image

Простейшая форма пакетной обработки — очередь задач. В системе с очередью задач есть набор задач, которые должны быть выполнены. Каждая задача полностью независима от остальных и может быть обработана без всяких взаимодействий с ними. В общем случае цель системы с очередью задач — обеспечить выполнение каждого этапа работы в течение заданного промежутка времени. Количество рабочих потоков увеличивается либо уменьшается сообразно изменению нагрузки. Схема обобщенной очереди задач представлена на рис. 10.1.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Шардинг в Блокчейне

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

Всем привет, я один из разработчиков Near Protocol, который, среди прочего, реализует шардинг, и в этой статье хочу подробно рассказать что вообще такое шардинг в блокчейне, как он работает, и коснуться ряда проблем, которые возникают при попытке его построить.


Хорошо известно, что Ethereum, самая популярная dApps платформа, обрабатывает меньше чем 20 транзакций в секунду. Из-за этого ограничения цена транзакций и время на их подтверждение очень высоки: несмотря на то, что блок в Ethereum публикуется раз в 10-12 секунд, согласно ETH Gas Station время между отправкой транзакции и тем как она действительно попадает в блок в среднем 1.2 минуты. Низкая пропускная способность, высокие цены и долгое подтверждение транзакций не позволяет запускать на Ethereum какие-либо высокопроизводительные сервисы.


Основная причина того, что Ethereum не может обрабатывать больше 20 транзакций в секунду заключается в том, что каждая нода в Ethereum должна проверить каждую транзакцию. За пять лет с выхода Ethereum было предложено много идей как решить эту проблему. Эти решения можно грубо разбить на две группы: те, которые предлагают делегировать выполнение транзакций небольшой группе нод с очень хорошим железом, и те, которые предлагают каждой ноде обрабатывать только подмножество всех транзакций. Пример первого подхода — это Thunder, в котором блоки создаются только одной нодой, что позволяет, по утверждениям разработчиков, получать 1200 транзакций в секунду, что в 100 раз больше чем у Ethereum. Другие примеры из первой категории — это Algorand, SpaceMesh, Solana. Все эти протоколы улучшают разные аспекты протокола и позволяют выполнять больше транзакций чем в Ethereum, но все ограничены скоростью одной (пусть и очень мощной) машины.

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии5

Отказоустойчивая балансировка VoIP-трафика. Переключение нагрузки между дата-центрами в пик-тайм

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

Несколько слов о том, чем мы занимаемся. DINS участвует в разработке и поддержке UCaaS сервиса на международном рынке для корпоративных клиентов. Сервис используют как малые компании и стартапы, так и большой бизнес. Клиенты подключаются через интернет по SIP протоколу поверх TCP, TLS или WSS. Это создает довольно большую нагрузку: почти 1,5 миллиона соединений от оконечных устройств — телефонных аппаратов Polycom/Cisco/Yealink и софт-клиентов для PC/Mac/IOS/Android.


В статье я рассказываю о том, как устроены VoIP точки входа в систему.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии5

Николай Дуров на 90% закончил разработку платформы Telegram Open Network

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

На фотографии: к.ф.-м.н. Николай Дуров, автор протокола шифрования MTProto, ряда ключевых подсистем «ВКонтакте» и блокчейн-платформы TON

Telegram в течение месяца покажет инвесторам блокчейн-платформу TON (Telegram Open Network) для криптовалюты Gram. Несколько источников издания The Bell и газеты «Ведомости» подтвердили, что встреча состоится в Дубае, хотя точная дата ещё не назначена. Запуск основной сети запланирован на март.

О плане разработать блокчейн-платформу с собственной криптовалютой Павел Дуров объявил в январе 2018 года. TON должен решить ключевую проблему современных криптовалют — низкую производительность, что мешает полноценно заменить глобальные платёжные системы. Если Visa и Mastercard обрабатывают около 50-60 тыс. операций в секунду, то Bitcoin и Etherium — всего 7 и 15 операций в секунду, соответственно.

Сотни миллионов пользователей Telegram помогут системе быстро развернуться на большую аудиторию. В качестве некоей модели можно рассматривать китайский мессенджер WeChat, который стал уже стандартом для проведения финансовых платежей в Китае.
Читать дальше →
Всего голосов 64: ↑54 и ↓10+44
Комментарии47

О чем думать на NALSD собеседовании

Время на прочтение6 мин
Количество просмотров12K
Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE и SRE именно в этих буковках “NA”.

В чем же отличие, и как подготовиться к нему? Давайте разберём на примере. В качестве примера возьмём что-то весьма материальное, что-то такое, что точно никто никогда не спросит на реальном собеседовании (в гугл) :)

Например — давайте спроектируем библиотеку. Для бумажных книг, обычную такую. Весь текст ниже был написан в один присест за примерно час, чтобы примерно показать что можно успеть, и что важно успеть. Так что уж простите за сумбурность, но я так мыслю (а значит, так существую).
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии8