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

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

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

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

Через реки, через лес прямо к PowerDNS

Уровень сложностиСложный
Время на прочтение43 мин
Количество просмотров21K

Всем привет! Меня зовут Максим, я руководитель одной из групп эксплуатации инфраструктурных сервисов в Ozon. Наша команда занимается поддержкой и развитием нескольких базовых сервисов компании, одним из которых, по историческим причинам, является сервис разрешения доменных имен (DNS).

В Ozon много различных сервисов и систем. Они общаются друг с другом и внешним миром по доменным именам. DNS — центральное звено, без которого не обходится почти ни одна инфраструктура. Понятно, что когда DNS отдаёт некорректные данные, то это неприятно, когда таймаутит — плохо, когда прилёг — очень плохо, когда прилёг надолго — в принципе, можно расходиться. Значит, одна из основных задач команды инфраструктуры — обеспечить сервисам надёжное и, желательно, быстрое разрешение доменных имён. Об этом мы и поговорим. Также затронем вопросы управления ресурсными записями, жизнь в Multi DC-среде, обслуживание DNS, кеширование, журналирование запросов и возможные проблемы.

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

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

Создаём иной смарт-контракт по старому адресу

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.7K

«Можно ли изменить код смарт‑контракта и разместить по его по старому адресу?» — такой вопрос мне задали на собеседовании Solidity разработчика.

Точный ответ требует разбора вопроса и определения требований к задаче. Требование — «изменить контракт без изменения адреса». Для этого есть подходы с обновляемым смарт‑контрактом… Но оказалось, что нет. Это вопрос на знание опкодов EVM.

Сейчас расскажу как создатьуничтожитьразместить_иной_контракт по старому адресу смарт‑контракта (далее — СмК) без использования паттерна Transparent Proxy и UUPS.

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

Какой сервис сетевой связности использовать: глобальный роутер Selectel, Direct или Global Connect?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.3K

Существует много способов, как организовать инфраструктуру. Например, можно объединить on-premise с сервером или облаком провайдера. Или собрать географически распределенную инфраструктуру в нескольких регионах.

Но как объединить разные серверы и проекты в одну сеть? Какую услугу использовать: глобальный роутер Selectel, Direct или Global Connect — и в чем разница? С такими же вопросами к нам приходят клиенты. Поэтому мы постарались дать гайд по выбору услуги. О том, что из этого получилось, рассказываем под катом.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии0

Как работают объектные хранилища: OpenStack Swift

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров4.6K

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

Раз меньше времени работе, то больше — знаниям. Меня зовут Рома, и я работаю в объектном хранилище — самой высоконагруженной услуге Selectel. Здесь мы непрерывно трудимся над улучшением и развитием архитектуры, удовлетворяя спрос на пропускную способность, функциональность и надежность.

В первой части я поделился сложностями, которые возникают при попытке построить распределенное и отказоустойчивое хранилище для объектов. Та система, которую мы позволили себе нафантазировать, очень похожа на OpenStack Swift. С него начиналась история нашего продукта, так что мы можем не только разобрать принцип его работы «на пальцах», но и погрузиться в скрытые особенности OpenSource, которые проявляются лишь в больших масштабах.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии6

Истории

Надежные пароли будут надежно забыты. Часть 2. Распределенные системы наносят ответный удар

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

Это был конец декабря 2021-го года, мы едем через Техас, только что благополучно переночевали в El Paso — низкий тебе поклон Голливуд за прекрасные фильмы, такие как Sicario, после которых у нас тряслись коленки когда мы въезжали в этот прекрасный город. Продолжаем движение по направлению к Boca Chica, посмотреть на StarBase (оно того стоит поверьте). На улице жара +30 и солнечно, приятная летняя погода. В фоне отгоняю от себя мысли о том, что тут творится летом с температурой и людьми.

О чем можно думать в этот момент кроме как о космосе, о будущем и о распределенных системах? Конечно много о чем, а не этой гиковской фигне:) ...

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

Надежные пароли будут надежно забыты

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

Приветствую тебя дорогой читатель.

Я хочу начать цикл статей о паролях и о том какие проблемы они решают и вызывают в нашей жизни. Зачем? Спросите вы. Чтобы облегчить и улучшить нашу жизнь отвечу я. Поэтому мы занимаемся разработкой Meta Secret, но об этом позже, а сейчас поговорим о сложности и надежности паролей и механизмов лежащих в основе проблемы которая звучит так: люди очень плохо придумывают надежные пароли а запоминают эти пароли ещё хуже.

И тут меня посетила простая и очевидная мысль — чем сложнее пароль тем выше вероятность, что владелец забудет пароль. P = password_length^2; Это простая зависимость, каждая добавленная буква к паролю увеличивает сложность его запоминания человеком в 2 раза.

Не забудьте прочитать остальное
Всего голосов 12: ↑9 и ↓3+6
Комментарии75

Chaos Engineering, применение на практике

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.8K

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

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

Что такое эксплореры блокчейна. Как читать историю транзакций в обозревателе блоков

Время на прочтение5 мин
Количество просмотров6.5K
Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии8

Что такое BitTorrent v2, и что с ним произошло?

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

Наверное вы слышали о новом протоколе BitTorrent v2, работа над которым велась с 2008-го года, и наделала шума с выходом второй версии популярной торрент-библиотеки Libtorrent, которой пользуются знакомые вам торрент-клиенты, такие как qBittorrent, Deluge и многие другие. Что такого изящного в новом протоколе и чего нам ждать?

Скачать раздачу по зрительной ссылке
Всего голосов 100: ↑97 и ↓3+94
Комментарии248

Взлетаем с управляемым кластером Kafka в #CloudMTS. Несколько советов для старта

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.8K
image

Привет, Хабр!

Меня зовут Дмитрий Быстриков, я Technical Product Owner в команде Managed Service for Apache Kafka в #CloudMTS. Сегодня я расскажу, что умеет наша Kafka и чему научится в ближайшее время. Для тех, кто дочитает до конца, я приготовил несколько советов от наших инженеров по настройке кластера. Если интересно, прошу под кат.

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

Распределенный SQL: альтернатива шардированию баз данных

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров14K

Шардирование баз данных – это процесс разделения данных на меньшие части, называемые «шарды». Эта техника обычно используется, когда возникает потребность в масштабировании записей. В течение жизненного цикла успешного приложения способность сервера его базы обрабатывать операции записи рано или поздно достигает своего предела. Деление данных на несколько шардов – с размещением каждого на собственном сервере БД – уменьшает нагрузку на отдельные узлы, по сути, повышая записывающую способность базы данных в целом. Этот процесс и является шардингом.

Распределённый SQL представляет новый способ масштабирования реляционных баз данных с помощью полностью автоматизированной и прозрачной для приложений стратегии, подобной шардингу. Распределённые БД SQL изначально спроектированы под практически линейное масштабирование. В текущей статье вы познакомитесь с основами распределённого SQL и узнаете, как начать работу с этими базами данных.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии21

Retry or No?

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

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

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

Federated Pruning для Federated Learning

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

Эта публикация является компиляцией изученных материалов по теме и писалась с целью в материале разобраться и упорядочить собственные знания – такой аналог реферата/курсовой. Т.к. исходный материал в основном на английском, возможно, данная статья кому-то также будет полезна.

Вместо пролога

Federated Learning – подход к решению задач машинного обучения, который позволяет анализировать данные непосредственно в их источниках, не объединяя их на каком-то центральном ресурсе, а объединяя уже результаты таким способом, чтобы итог обучения был не хуже, чем в традиционных подходах.

Есть две «легенды» появления FL. Первая рассказывает о данных столь больших, что обучение на них занимает недели и даже месяцы. Данные стали разбивать на части. Затем части отдавать отдельным вычислительным узлам. Затем данные перестали собирать и стали обрабатывать прямо в источниках.
Вторая «легенда» – о конфиденциальности тренировочных данных. Трудности обезличивания данных (как ни хэшируй, а информацию с конкретным объектом можно сопоставить, особенно если количество наблюдений в источнике невелико) привели к мысли передавать не сами данные, а результаты обучения на них.

(«Легенды» – потому что у всякой версии есть примеры обратного: медицинские данные не велики, а наоборот, малы и трудно собрать их в одном месте – какое уж тут разбиение, тут проблема в том, что для глубокого обучения такие малые выборки не дадут хорошей эффективности, нужно не данные обрабатывать, а развивать методы машинного обучения на малых данных.)

Читать далее
Рейтинг0
Комментарии0

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Движение по магистрали без аварий. Или как передавать 1,5 терабайта в сутки и ни одного не потерять?

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

Привет, Хабр.

Меня зовут Владимир Евсеев, я Senior Java developer, Teamlead в SSP SOFT.

Наша команда приступила к масштабному проекту: системе, обеспечивающей транспортный уровень документооборота банка. Сегодня я расскажу, как мы справились с первым этапом: выстроили магистраль, способную передавать около 150 000 файлов в сутки, или 1,5 терабайта информации. Поделюсь, что получилось и что еще предстоит  довести до совершенства.

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

Мульти-прокси смарт контракт стандарта EIP-2535 «Diamond»

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

Ссылка на видео-туториал и подробное объяснение

GitHub

В этом материале речь пойдет про стандарт EIP-2535, также широко известен как Diamond или Multi-Facet Proxy. Стандарт дает возможность создавать модульные, обновляемые смарт контракты, которые обладают рядом преимуществ перед такими стандартами обновляемых контрактов как Transparent и UUPS.

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

VPN Gate, или — неубиваемая Великим Китайским Файрволом распределённая сеть VPN

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

Сегодня речь пойдёт о технологии распределённой сети VPN Gate, своего рода недруга Поднебесной в области интернет цензуры. На Хабре много статей на тему SoftEther VPN (нижележащий слой VPN Gate), но нет ни одной технически всесторонней статьи про саму распределённую сеть и такое чувство, что в рунете про неё вообще забыли.

VPN Gate — академический эксперимент Дайу Нобори. Проект представляет собой интернет-сервис научных исследований в Высшей Школе Университета Цукуба, Япония. Цель данного исследования заключается в расширении знаний «Глобальных распределенных открытых ретрансляторов VPN».

Отличительной особенностью данной сети является её функционирование в виде роя. То есть каждый желающий пользователь может поделиться своей пропускной способностью с другими. Я знаю, что вы подумали, очередной неудачный dVPN пиар на основе блокчейна.

Однако это не так, данный проект уже насчитывает 8634 узлов и 534 петабайта трафика за всё время существования. К примеру даже у TOR-а узлов — 7 тысяч.

Читать далее
Всего голосов 81: ↑80 и ↓1+79
Комментарии101

Что такое блокчейн-мост и какие риски он в себе таит?

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

В 2022 г. в результате хакерских атак блокчейны потеряли токенов более чем на 1 млрд. долларов США. Самые крупные ограбления произошли в результате атак на блокчейн-мосты. Что такое блокчейн-мост? Какие уязвимости он в себе таит? Есть ли у этой технологии будущее?

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

Введение в архитектуру Greenplum

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

В этой статье поговорим о Greenplum — СУБД, основанной на PostgreSQL. Разберём её общую архитектуру, способы хранения данных, а также перечислим проблемы, с которыми можно столкнуться в ходе эксплуатации.

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

Как выбрать NewSQL-СУБД для вашей компании

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

Привет! Меня зовут Пётр, я менеджер по отказоустойчивости в QIWI. В этом посте мы поговорим про выбор новых классов продуктов. Как-то раз мы с одним разработчиком из другой компании стали обсуждать, почему бы не выбрать для работы какую-то распределенную СУБД, поддерживающую SQL? Из этой дискуссии родился мой доклад для нашей QIWI Server Party. Представляю вам его текстовую версию.

Читать далее
Всего голосов 35: ↑33 и ↓2+31
Комментарии10

Как и зачем шардировать смарт контракты в блокчейне TON — разбираемся, как устроены жетоны (Jettons)

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

В статье - о механизме шардинга (распределения данных) смарт-контрактов в блокчейне TON.
Это именно то дизайн-решение, которое потенциально позволит TON обслуживать миллиарды пользователей без деградации в скорости и цене транзакций.
Жетоны (Jettons) - TON'овский аналог ERC20 токенов из Ethereum.

Узнать больше
Всего голосов 5: ↑3 и ↓2+1
Комментарии4
Изменить настройки темы

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

Работа