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

Микросервисы *

Микросервисная архитектура и все что с ней связано

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

Без денег, репликации и кеша: ограничиваем нагрузку на сервисы, используя подходы из TCP

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

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

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

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

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

Новости

Анализ Приказа ФСТЭК России №118 «Об утверждении требований по безопасности информации к средствам контейнеризации»

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

Рассмотрим требования к безопасности информации в средствах контейнеризации, указанные в Выписке из Приказа ФСТЭК России № 118 «Требования по безопасности информации к средствам контейнеризации», приведем разъяснения к каждому требованию. Также в статье проанализируем техническую реализацию требований Приказа ФСТЭК России № 118 на примере ОС Astra Linux Special Edition и программные механизмы реализации в среде ОС.

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

Сложная архитектура простых приложений

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

По мотивам Adidas Running (ex. Runtastic)

Как я бы проектировал это интересное, но малоизвестное у нас приложение в роли архитектора.

Предыстория

Рынка систем электронных соревнований (в 2012 г) нет, но есть огромный интерес к спортивному образу жизни и к соревнованиям. В США не менее 50 миллионов (!) человек (это примерно 15% всего населения) хотя бы раз в неделю выходят на пробежку.

Адидас имеет объем продаж 20–30 млрд долл. в год.

Основной рынок – США, остальные страны – второстепенные рынки.

Посмотреть архитектуру
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 3

Как хакеры ломают банки за 48 часов и что нужно для защиты

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

На последней кибербитве Standoff 12, которая проходила в ноябре 2023 года, впервые был представлен вымышленный финтех — Global Digital Bank, максимально автоматизированный, с облачными приложениями на основе микросервисов «под капотом». Задачей команд атаки (red team) было реализовать недопустимые события, в случае с финтехом — остановить работу банка, выкрасть базу данных клиентов, взломать новостной портал. Назначение PT Container Security — защитить контейнерные среды и помочь синим командам отследить действия атакующих. Что из этого получилось? Рассказываем!

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

Истории

Обратный прокси-сервер vs абузоустойчивый хостинг

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

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

Если вам нужен хостинг, игнорирующий жалобы, вы должны понять простую вещь: действительно абузоустойчивых хостингов крайне мало. Немного больше оффшорных хостингов (они находятся в Панаме, Малайзии и т.д. и поэтому спокойно игнорируют DMCA - в таких странах просто нет законодательства по таким вопросам). По другим сферам они также лояльны пока не начнут идти жалобы. И очень много обычных (да, хороших, быстрых, качественных, с отзывчивым саппортом...) хостинг-провайдеров, которые после пары жалоб выставят вас "на мороз". При этом они часто продвигаются и рекламируются как абузоустойчивые. Сеошники и сммщики просто охватывают все запросы, которые могут.

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

Пора переходить на микрофронтенд? Опыт «Инферит Клаудмастер»

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

Приветствую всех новичков и гуру фронтенда, а также всех, кто работает с интерфейсами. Я Никита Борцов, создаю красоту на фронте первой в России FinOps-платформы для управления облачными затратами “Инферит Клаудмастер”.

В этой статье вы узнаете о:

факторах, сформировавших тренд на уход фронтенд-разработки от монолита к микрофронтенду,
процессах со стороны команды разработки при переходе на микрофронтенд,
кейсе платформы “Инферит Кладумастер”: почему для нашей команды микрофронтенд с плагином Module Federation стал полезным решением,
признаках того, что пора переходить на микрофронтенд.

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

Лучшие практики для надёжной работы с RabbitMQ

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

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

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

Следуй за белым кроликом
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 11

Кратко про Nameko Python

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

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

Nameko, как фреймворк для Python, предлагает удобные абстракции и инструменты для создания микросервисов, ориентированных на сообщения и события.

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

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

Безопасная параллельная разработка. Istio

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

Как-то в конторе появилась мысль, что надо бы продумать как нам распараллелить работу над одни микриком, так чтобы команды не пересекались друг с другом. Есть некоторые API над которыми работают несколько команд. Каждая работает над своей фичей локально и пишет тесты, а вот при деплое на стэнд получается столпотворение потому, что нужно изменения слить в одну ветку аля develop и её закинуть на тест. При этом могут быть конфликты при мерже кода или измениться проперти, которые не совместимы между разными ветка.

Мобильный банк сейчас обслуживает 450+ микриков. Над которыми работают более 90 команд. Так как у нас в проекте нет code ownership, то каждая команда вносит изменения в нужные им микрики. Чтобы избежать различного рода сложностей, которые приводят к увеличению времени time to market, нужно было развести разработку отдельных команд так, чтобы они не влияли друг на друга и могли работать параллельно.

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

Формализуем процесс создания нового API в микросервисах на .NET

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

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

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

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

Пиррова победа Domain-Driven Design

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

TL;DR: DDD неизбежно ведёт к избыточному (на порядки больше минимально необходимого) количеству саг в проекте, которые, в свою очередь, неизбежно ведут к нарушению целостности данных в БД.

DDD вполне успешно решает поставленную задачу: дать разработчикам инструменты, которые позволят им справиться (корректно реализовать и поддерживать) со сложной предметной областью. Но эта победа оказалась пирровой: инструменты, обеспечивающие корректность данных в памяти, оказались неспособны гарантировать корректность данных в БД. А что толку от изначально корректных данных в памяти, если со временем (после их сохранения в БД и последующего чтения) они перестают быть корректными? По сути, у DDD есть фатальный недостаток: DDD неизбежно приводит к нарушению целостности данных (инварианта бизнес-логики) в БД.

Читать далее
Всего голосов 36: ↑33 и ↓3 +30
Комментарии 98

Покрытие архитектуры as Code тестами

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

💬 На самом деле, моя идея написания тестов на архитектуру настолько проста, легко реализуема и при этом полезна, что я до сих пор толком не понимаю, почему я не встречал материалов на эту тему, и сама тема всё ещё не используется повсеместно 🙂
Статья написана по следам моих докладов на трёх крупных ИТ-конференциях, на каждой из которых ко мне подходили архитекторы и разработчики российских бигтехов, говорили, что я очень точно попал в их боли и предложил суперпрактику, которую они теперь будут внедрять. На всех трёх конференциях я получил высшие оценки от аудитории, а на двух из них доклад был признан лучшим в своей секции. В конце статьи приведена ссылка на видео доклада с одной из конференций.
В статье я поделюсь своей идеей и OpenSource-реализацией решения для написания тестов, разберу примеры тестов на небольшой учебной микросервисной архитектуре, а также расскажу про личный опыт и профит от применения этой практики.
Для разработчиков монолита тоже есть небольшой бонус: в OpenSource-репозитории появилась реализация и примеры тестов на архитектуру модульного монолита.

Читать далее
Всего голосов 25: ↑23 и ↓2 +21
Комментарии 8

Как ускорить кластер Kubernetes на 100 тысяч подов в 10 раз

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

Первым шагом dBrain.cloud на пути к построению кластеров большого объема стало разделение etcd. Далее мы взялись за controller-manager.

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн

Правильный подход к модульной архитектуре

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

Эта статья строится на двух простых идеях:

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

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

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

Что такое архитектура приложений MACH и есть ли там технологический прорыв — кроме пиара и маркетинга

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

Вы наверняка слышали термин «MACH-архитектура», которая включает в себя Микросервисы, API-First дизайн, Cloud-Native инфраструктуру и Headless фронтенд. На Хабре тема MACH архитектуры практически не поднимается ввиду как сложности полной реализации и того факта, что MACH обычно ассоциируют только с E-Commerce уровня enterprise. Настораживает, что вокруг МАСН много пиара, но очень мало кейсов внедрений. Собственно, данный обзор — об этом.

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

Межсервисная авторизация в Авито PaaS

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

Антон Губарев, инженер в Avito PaaS, рассказал, как реализовать межсервисную авторизацию на 2500 сервисов и ничего не сломать.

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

Книга «Эволюционная архитектура. Автоматизированное управление программным обеспечением. 2-е межд. изд.»

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

Новые инструменты, фреймворки методики и парадигмы вновь и вновь меняют экосистему
разработки программного обеспечения. Непрерывный прогресс основных практик разработки
на протяжении последних пяти лет заставил искать новые пути и подходы к архитектуре, чтобы
соответствовать постоянно меняющимся требованиям пользователей. В обновленном издании
авторы Нил Форд, Ребекка Парсонс, Патрик Куа и Прамод Садаладж приводят реальные примеры, соответствующие потребностям современной разработки ПО.

«Эта книга знаменует собой важную веху, обозначающую нынешний уровень понимания проблемы. По мере того как люди начинают осознавать роль ПО в XXI веке, информация о том, как реагировать на изменения, сохраняя достигнутое, становится важнейшим навыком в области создания программного обеспечения». — Мартин Фаулер.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 9

Памятка РП. Микросервисная архитектура

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

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

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

Обзор библиотеки Go Kit

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

Салют, Хабр!

Go Kit предоставляет стандартизированный способ создания сервисов, с ее помощью можно легко реализовать совместимость сервисов. С его помощью можно легко интегрировать различные транспортные протоколы, такие как HTTP, RPC, gRPC, и многое другое, а также реализовывать общие паттерны: логирование, метрики, трассировка. В общем, Go Kit хорошо подходит для разработки микросервисов на go.

Мотивацию создания этой либы разработчики описали так:

Go стал языком сервера, но он по-прежнему недостаточно представлен в так называемых «современных корпоративных» компаниях, таких как Facebook, Twitter, Netflix и SoundCloud. Многие из этих организаций обратились к стекам на основе JVM для создания своей бизнес-логики, во многом благодаря библиотекам и экосистемам, которые напрямую поддерживают их микросервисные архитектуры.

Чтобы достичь следующего уровня успеха, Go нужно нечто большее, чем простые примитивы и идиомы. Ему нужен всеобъемлющий набор инструментов для последовательного распределенного программирования в целом. Go Kit — это набор пакетов и лучших практик, которые обеспечивают комплексный, надежный и надежный способ создания микросервисов для организаций любого размера.

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

Как нефункциональные требования влияют на архитектуру

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

Привет, Хабр, меня зовут Светлана Уварова, я — ведущий системный архитектор в МТС.

В этой статье я расскажу о том, как может меняться архитектура системы в зависимости от нефункциональных требований к ней, и как важно знать все нефункциональные требования на начальном этапе проектирования системы.

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

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