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

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

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

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

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

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

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

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

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

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

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истории

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

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

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

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

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

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

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

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

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

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

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

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 5.8K
Изображение сгенерировано с помощью 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
Комментарии 72

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пробиваем дыры в NAT

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

NAT - механизм, создающий множество проблем для P2P коммуникации, в силу того, что нередко адрес пира может не иметь доступного из любой точки мира, "белого" адреса. Существует ряд способов обхода NAT, но их документация, равно как и данные об их надежности, достоинствах и недостатках оставляет желать лучшего, а потому мы рассмотрим наиболее простой, и в то же время надежный метод - "hole punching".

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

PKI, прикладная криптография и электронная подпись: о чем здесь речь и как это работает в нашей блокчейн-платформе

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

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

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

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

Работа