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

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

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

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

Детализированные стратегии кэширования динамических запросов

Время на прочтение7 мин
Количество просмотров4K
Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Как работать со словарями данных и оптимизировать запросы в ClickHouse

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

Приветствуем! На связи вновь Глеб Кононенко и Алексей Диков — разработчики из Лиги Цифровой Экономики. Ранее мы уже немного рассказывали про наш опыт работы с распределенными таблицами в ClickHouse в этой статье.

Сегодня хотим поделиться опытом оптимизации запросов и работы со словарями данных. Используемая версия ClickHouse: 23.8.7.24

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

Ручная пила для PHP-монолита

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

Привет! Это третья и заключительная часть истории поиска надёжного способа работы с транзакциями в распределённых системах.

В первой части мы поставили задачу, определили критерии оценки и набросали варианты. Во второй части я подробно разобрал решение на Temporal. В этой статье расскажу чем в итоге всё закончилось, а точнее с чего начнётся. 

Статья может быть полезна разработчикам и архитекторам, которые задумываются о вынесении части бизнес-логики из монолита, написанного на PHP.

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

Блокчейн в спортивных приложениях: возможности и проблемы

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

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

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

Истории

Как использовать Spring в качестве фреймворка для Flink-приложений

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

Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink, и я решил поделиться на Хабре своим опытом внедрения этой технологии в наши продукты в цикле статей. В предыдущей части я рассказывал про основные концепции потоковой обработки данных. А ещё затронул архитектуру и главные механизмы Apache Flink.

В этой статье начнем разработку Flink-приложения с использованием фреймворка Spring. Изучим структуру приложения, основные плагины и полезные настройки. Развернем Flink-кластер в Docker и попробуем запустить первое Flink-задание. Структура приложения будет постепенно развиваться в последующих статьях.

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

Присматриваемся к Kafka tiered storage

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

Добрый день, уважаемые ИТ-ники. На связи Михаил Голованов.

В этом сезоне нашего Kafka шоу В статье я расскажу о реализации tiered storage в Apache Kafka.

Теория будет перемежаться практикой и найденными граблями.

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

Введение в Apache Flink: осваиваем фреймворк на реальных примерах

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

Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink. Эту технологию выбрали, так как она (в отличие от Apache Spark) относится к true-стримингу и позволяет строить обработку данных с минимальной задержкой. В качестве DI-фреймворка выбрали привычный нам Spring Framework.

Наша команда использует разные виды тестирования: Unit, интеграционное, E2E, ручное, автоматизационное, нагрузочное. Этой теме будет уделено особое внимание. Я расскажу, какие подходы и паттерны помогут быть уверенными в качестве того, что вы разработали.

Эти знания будут полезны любому Java-разработчику, знакомому со Spring. А начинающие Flink-специалисты найдут здесь примеры стандартных ошибок и пути их решения. Обратите внимание, что эти материалы писались, когда актуальной версией Flink была 1.17. В конце октября вышла версия 1.18, и она может отличаться некоторыми нюансами.

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

Мутации в микросервисах: применяем Temporal

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

Всем привет!
В прошлой статье была поставлена задача о надёжных мутациях и транзакциях в архитектуре Профи, в этой статье разберём один из вариантов решения — применить workflow-engine Temporal.

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

О сложности и монолитах

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров6.7K
Изображение сгенерировано с помощью DALL·E. Запрос: a complex monolith in a server room, with the faces of IT consultants with suits engraved in it with twisted faces, mathematical formulations about complexity floating around, and with a mysterious malevolent godlike presence in the background (комплексный монолит в серверной с искажёнными лицами IT-консультантов. Вокруг витают сложные математические формулы, а на фоне присутствует мистическое злобное богоподобное существо).

Статья посвящена анализу и сравнению двух моделей построения систем — монолитной и с разделением на микросервисы. В ней мы с разных сторон оценим оба этих подхода и связанную с ними сложность, убедившись в превосходстве последнего. Представим микросервисы и прочие архитектуры в реалистичном свете, не воскрешая то, что должно оставаться мёртвым.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии75

Архитектура MMO: источник истины, потоки данных, узкие места I/O и их устранение

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

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

Несмотря на то что это приложение идеально вписывается в концепцию «распределённых архитектур», конкретные детали (как большие, так и малые) превращают, казалось бы, простой для любого грамотного инженера процесс проектирования в невероятную головную боль.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии3

Мутации в микросервисах: ставим задачу

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

Всем привет! Меня зовут Эмин Чернов, я руководитель платформенных команд и архитектор в компании Профи. Сегодня расскажу про то, как мы столкнулись с проблемой консистентных изменений данных в микросервисах и каким образом планируем её порешать.

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

Отказоустойчивая архитектура: почему Tarantool не падает?

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


Основная проблема в высоконагруженных приложениях — отказоустойчивость. Нагрузка с упавших узлов в кластере должна переключаться на живые. Это кажется несложной задачей, но на практике появляется много подводных камней. Мы с yngvar_antonsson потратили много времени на поддержку различных кластеров, построенных на Tarantool и наших кластерных фреймворках Cartridge и TDG, и сегодня расскажем вам, как обеспечивается отказоустойчивость в наших приложениях. Будет интересно всем, кто хочет подробнее узнать, как устроен фейловер в Cartridge, и тем, кто хочет узнать о нашем опыте создания автоматических фейловеров.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии0

Распределённые транзакции

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

На собеседованиях на позицию middle/senior разработчика часто задают вопросы по распределенным транзакциям в микросервисной архитектуре.

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

Я проработал статью и подготовил конспект простыми словами, местами дополнил информацией из других источников и полезными ссылками.

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

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

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

Разработка децентрализованных приложений на Spring Boot: инструменты Web3 Tech

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

Привет! Меня зовут Даниил, я разработчик в Web3 Tech. Недавно в JVM-инструментарии для нашей основной платформы «Конфидент» состоялся новый релиз, в который вошли библиотеки клиента для взаимодействия с нодой и Spring Boot стартеры. Далее в посте я расскажу об этих библиотеках, которые помогут вам комфортно и эффективно создавать на JVM-языках программирования полноценные приложения, взаимодействующие со смарт-контрактами нашей платформы.

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

Маркетплейс или облачный интегратор: дилемма “одного окна” в корпоративных ИТ

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

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

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

Неограниченный доступ к знаниям: библиотека Стандартных Шаблонных Конструкций

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

Есть много причин почему доступ научным статьям и книгам должен быть свободным:

Во-первых, это прекрасно

Во-вторых...
Всего голосов 54: ↑54 и ↓0+54
Комментарии9

История смарт-контрактов, или как у блокчейна выросли ручки и ножки

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

Прошло почти 15 лет с запуска сети Bitcoin, предложившей миру новый способ передачи ценности, альтернативный традиционным валютам. Всё это время технологии не стояли на месте: к 2023 на основе блокчейна вовсю развиваются проекты в различных сферах экономики — особенно финансовой — а государства всерьез занимаются запуском собственной «крипты», ЦВЦБ. Такой прорыв стал возможен во многом благодаря смарт-контрактам. В этом посте мы расскажем, что такое смарт-контракты, как они эволюционировали и, наконец, как работают на нашей платформе «Конфидент».

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

YDB знакомится с TPC-C: раскрываем производительность наших распределенных транзакций

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

В нашем предыдущем посте о производительности YDB, посвященном Yahoo! Cloud Serving Benchmark (YCSB), мы упоминали, что готовим к публикации результаты других бенчмарков. Мы придерживаемся плана и сегодня рады представить вашему вниманию наши первые результаты бенчмарка TPC-C*, который является индустриальным стандартом оценки производительности онлайн транзакций (OLTP). Согласно этим результатам есть сценарии, в которых YDB немного превосходит CockroachDB, другую хорошо известную распределенную SQL СУБД.

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

Хороший ретрай, плохой ретрай, или История одного падения

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

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

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

Design API First. Кодогенерация Roslyn

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

Привет, Habr! С вами Антон, руководитель Архитектурного комитета компании SimbirSoft. Мы продолжаем цикл статей, посвященных практическому внедрению подхода Design API First в разработку наших проектов. Настало время поделиться практическим опытом использования спецификаций OpenAPI для кодогенерации контрактов backend.

Дисклеймер: Материал публикации в первую очередь передает практический опыт работы системных аналитиков и практикующих архитекторов при интеграции Design API First с непосредственным процессом разработки. Некоторые технические детали реализации будут описаны не полностью.

Читать далее
Рейтинг0
Комментарии4
Изменить настройки темы

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

Работа