Обновить
0
Евгений@chehonteread⁠-⁠only

SA

Отправить сообщение

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

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

Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

Читать далее

System Design: проектируем Rate Limiter, ограничитель запросов

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

В задаче проектирования Rate Limiter важны сразу несколько вещей: выбор алгоритма лимитирования, централизованное хранение состояния, работа через API Gateway и масштабирование до 1 млн запросов в секунду. В статье разберём, почему для такого сценария часто выбирают Token Bucket, как использовать Redis для хранения счётчиков и что делать, когда одного инстанса уже недостаточно.

Читать далее

AsyncAPI — Swagger для брокеров сообщений и не только, или Если хочется иметь структурированную доку по асинхрону

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

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

Но если для REST API уже всемирную славу приобрел Open API со своей Swagger-документацией, которая внедряется практически повсеместно и является по праву, так сказать, золотым стандартом, то для брокеров сообщений и, в целом для асинхронного взаимодействия, в большинстве случаев дела обстоят далеко не так однозначно.

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

На некоторых порталах, в том числе и здесь, уже косвенно поднималась тема AsyncAPI и вызывала у авторов, как правило, смешанные чувства. Описывали преимущества и недостатки, приводили некоторые примеры. Справедливо отметить, что AsyncAPI, конечно же, не идеален.

Но если посмотреть на это с другой стороны: удобно ли будет разработчику читать ТЗ и другую документацию касаемо разработки интеграции по асинхрону, слепленную из кусков текста, таблиц, рисунков, непонятных ссылок и т.д.? Одно дело, если разработчик находится на проекте с самого начала и знает все тонкости и может сам что-то додумать. Но если человек придет на проект уже через один, два или более лет после начала проекта и увидит тонны макулатуры, которую как-то нужно читать и анализировать, то вот тут начинаются трудные времена.

Читать далее

System Design для начинающих: всё, что вам нужно. Часть 1

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

Вам не нужно изучать какую‑либо теорию, кроме этой статьи, чтобы начать собеседоваться. После прочтения смело приступайте к решению типовых System Design задач.

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

Читать далее

AsyncAPI — Swagger для асинхронного API

Время на прочтение13 мин
Охват и читатели23K

Привет, Хабр! Меня зовут Александр Митин. Я Java разработчик в компании ИТ-холдинг Т1 с 15 летним опытом, из которых последние 5 лет работаю в финтехе. Мой любимый стек — Java Spring. Я хочу рассказать такое AsyncAPI, как работать со спецификациями, какие есть инструменты и поделюсь нашим опытом перехода на подход API First в наших системах.

Читать далее

Консенсус в распределенных системах. Paxos

Время на прочтение7 мин
Охват и читатели44K
В последнее время в научных публикациях всё чаще упоминается алгоритм достижения консенсуса в распределенных системах под названием Paxos. Среди таких публикаций ряд работ сотрудников Google (Chubby, Megastore, Spanner) ранее уже частично освещенных на хабре, архитектуры систем WANdisco, Ceph и пр. В то же время, сам алгоритм Paxos считается сложным для понимания, хоть и основывается он на элементарных принципах.

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

Кэш. Теория кэширования. Устройство и разновидности кэша

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели39K

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

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

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

Стать гуру кэша

Идемпотентность: больше, чем кажется

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели149K

image


Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле означает гораздо больше...

Читать дальше →

Как описать большую систему в нотации С4

Время на прочтение5 мин
Охват и читатели198K

Хабр, привет!
Нас зовут Дмитрий Фролов и Владимир Мясников.Мы стандартизировали подход по документированию внутренних систем в команде интеграционного тестирования Мир Plat.Form с помощью «Модели С4».

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

Давайте разберемся, что такое «Модель С4» и какие задачи она помогает решать. С чего начать, если вам поступила задача задокументировать «большую» систему – читайте под катом.

Читать далее

12 неочевидных правил проектирования REST API

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

Раскрываем 12 кейсов проектирования спецификации REST API из практики red_mad_robot, которые помогут сэкономить время для разработки. А также объясняем, почему стоит следовать подходу contract first — писать спецификацию прежде кода.

Читать далее

Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели150K

Проектирование REST API - это процесс создания дизайна методов обмена данными. Дизайн - это субъективное. У одних "так", у других "сяк". А кто прав? Иногда все, а иногда нет.

Можно ли сделать в проекте все методы POST? Как правильно именовать эндпоинты - ед. число или мн. число (/user или /users)? Можно ли использовать метод POST для получения данных? ...

Холиварные вопросы! Вкусовщина! Давайте разбираться!

Читать далее

Как проектировать спецификации OpenAPI для SPA: теория и практика

Время на прочтение18 мин
Охват и читатели40K

OpenAPI стал одним из стандартов для описания API с большим числом сопутствующих инструментов и сервисов. По сути, OpenAPI — это спецификация на составление спецификаций, поэтому она описывает множество вариантов взаимодействия. Но как лучше всего проектировать API, используя OpenAPI? У команды Sape есть многолетний опыт в этой сфере, о котором я сейчас расскажу.

Читать далее

Что такое Мастер-Данные и зачем они нужны

Время на прочтение8 мин
Охват и читатели221K

Введение



(клик по картинке ведёт внутрь публикации)

Развиваясь, организации внедряют всё больше и больше информационных систем совершенно различных направлений: бухгалтерский учет, управление персоналом, управление складом etc. Системы живут и развиваются независимо друг от друга до того самого момента, как компании не потребуется взглянуть на свои данные целиком. Объемы данных уже достигают критической точки и выясняется, что сопоставить и сравнить данные вручную становится просто невозможно. Решения основанные на противоречивых и невыверенных данных ведут к управленческим ошибкам, а дубли и неактуальность данных к неверным бизнес решениям.

Конечно же проблема описанная выше не нова и сегодня мы обсудим классический способ решения — систему управления мастер-данными.

Оглавление
  1. Введение
  2. Что такое MDM
  3. Типы корпоративных данных: что такое справочные и транзакционные данные
  4. Зачем оно нужно?
  5. Методы решения
  6. Типы MDM-систем
  7. Индикаторы необходимости внедрения СУ НСИ
  8. Выводы
Читать дальше →

AMQP по-русски

Время на прочтение4 мин
Охват и читатели125K
Сегодня довольно мало информации о протоколе AMQP (Advanced Message Queueing Protocol) и его применении, особенно на русском языке. А вообще это — замечательный, уже достаточно широко поддерживаемый открытый протокол для передачи сообщений между компонентами системы с низкой задержкой и на высокой скорости. При этом семантика обмена сообщениями настраивается под нужды конкретного проекта. Такие решения существовали и ранее, но это первый стандарт, для которого существует большое количество свободных реализаций.

Основная идея состоит в том, что отдельные подсистемы (или независимые приложения) могут обмениваться произвольным образом сообщениями через AMQP-брокер, который осуществляет маршрутизацию, возможно гарантирует доставку, распределение потоков данных, подписку на нужные типы сообщений. В качестве классических примеров обычно приводятся финансовые приложения, связанные, например, с доставкой потребителям информации о курсах ценных бумаг в режиме реального времени, также возможно RPC-взаимодействие двух подсистем, которые не имеют связи друг с другом (взаимодействие через общий протокол AMQP) и так далее и тому подобное.

Сегодня тема доставки информации в реальном времени является крайне актуальной (достаточно вспомнить хотя бы Twitter, Google Wave). И здесь системы передачи сообщений могут служить внутренним механизмом обмена данными, который обеспечивает доставку данных (изменений данных) клиентам.

Я не ставлю своей целью сегодня рассказать о том, как писать приложения для AMQP. Хочу лишь немного рассказать о том, что это совсем не страшно, не очень сложно, и действительно работает, хотя стандарт находится еще в развитии, выходят новые версии протокола, брокеров и т.п. Но это уже вполне production-quality. Расскажу лишь базовые советы, чтобы помочь “въехать” в протокол.
Читать дальше →

Протокол MQTT: концептуальное погружение

Время на прочтение12 мин
Охват и читатели359K
Протокол Message Queuing Telemetry Transport (MQTT) используется в течение многих лет, но сейчас он особенно актуален благодаря взрывному росту IoT: и потребительские, и промышленные устройства внедряют распределённые сети и граничные вычисления (edge computing), а устройства с постоянной трансляцией данных становятся частью повседневной жизни.

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

VDI Скала-Р ВРМ. Что это такое и откуда оно взялось

Время на прочтение16 мин
Охват и читатели23K

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


Немного покидаемся помидорами в «конкурентов», совсем чуть-чуть. Куда без этого :D


Спойлер: про вирус в статье ничего нет, кроме этого предложения.



Читать дальше →

Асинхронная интеграция. Что это такое и как её дружить

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

Продолжением предыдущей статьи об архитектуре и интеграциях Архитектура приложений и интеграции: гайд по основным понятиям простыми словами / Хабр (habr.com), в данной статье будет освещен вопрос асинхронной интеграции. 

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

Читать далее

Архитектура приложений и интеграции: гайд по основным понятиям простыми словами

Время на прочтение16 мин
Охват и читатели209K

Здесь мы доступно знакомим с видами архитектур, их общим назначением, наиболее очевидных преимуществах и недостатках.

Мини-туториал по теме от лида-аналитика "ITQ Group" Виталия Якубина.

Читать далее

Что такое MLOps? (Часть 1)

Время на прочтение5 мин
Охват и читатели41K

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

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

Читать далее

Что не пишут в википедии о глобальных навигационных спутниковых системах

Время на прочтение8 мин
Охват и читатели53K
Вдохновлённый серией постов «Теория радиоволн», я решился на аналогичный пост о системах спутникового позиционирования. Я работаю в структуре, которая занимается обеспечением функционирования системы ГЛОНАСС, поэтому постараюсь рассказать о ней и её конкурентах с несколько другой точки зрения. Пост будет именно об их устройстве, попутно хотелось бы развеять несколько мифов.
Читать дальше →
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Системный аналитик, Бизнес-аналитик
Средний
SQL
Базы данных
Системный анализ
Анализ требований
UML
BPMN
Проектирование информационных систем