Как стать автором
Поиск
Написать публикацию
Обновить
111.61

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

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

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

Логировали, логировали, да вылогировали. Почему мы сменили EBK на Loki

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

Привет, с вами команда разработки dBrain.cloud! Хотим поделиться историей миграции с Elasticsearch Beats Kibana (EBK) на Grafana Loki. Предпосылок перехода было немало: замена EBK лицензии Apache 2.0 на ограниченную SSPL 1.0, растущее потребление ресурсов, объемы требуемого места в хранилище и др. Сегодня покажем, как из грамотно подобранных и поселенных под одной крышей продуктов получилось собрать единый стек логирования и мониторинга.

EBK vs Loki

Apache Kafka. Пишем простой producer и consumer и тестируем их

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

В данной статье будет описано, как создать простой kafka producer и kafka consumer, а затем протестировать их.

Читать далее

Реализация Transactional outbox pattern и немного DDD

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

Уверен, что многие, кто интересовался подходами к разработке микросервисной архитектуры, знакомы с трудами Криса Ричардсона на эту тему и уже встречали transactional outbox pattern. А для тех, кто не знаком, кратко расскажу основную идею:

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

Читать далее

Как мы подключали распределенную трассировку через (внезапно) Sentry

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

Всем привет, меня зовут Полина, я техлид команды, занимающейся проектом электронного документооборота в среднего размера продуктовой компании. В этой статье я расскажу как мы обнаружили в привычном инструменте мониторинга ошибок - Sentry - распределенную трассировку и опробовали ее для своих задач. Примеры в статье приведены для конкретного стека, это python3 и FastAPI, храним мы данные в MongoDB, используем RabbitMQ.

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

Читать далее

Трейсим .NET микросервисы через OpenTelemetry

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

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

У Uber - тысячи микросервисов. А у Netflix - несколько тысяч

В каком сервисе возникла ошибка? Сервис упал или просто ошибка сети? Что за ошибка возникла?

Стоп!
Рим не за один день был построен

Поэтому начнем с малого и подключим трейсинг к обычной микросервисной системе на ASP.NET Core.

Поможет нам в этом OpenTelemetry

Читать далее

Теория: nx — инструмент по работе с микрофронтендами

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

Как не утонуть новичку в документации nx?

Разберем основные понятия и концепции по работе с монорепозиторием под управлением nx.

А также укажу некоторые особенности о которых нужно знать, чтобы "не выстрелить себе в ногу".

Читать далее

Моделирование микросервисов. Часть 1

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

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

Читать далее

Использование Reactive Streams для упрощения разработки микросервисных систем

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


Автор статьи: Артем Михайлов

Микросервисная архитектура – одна из самых популярных подходов к разработке современных приложений. Благодаря ее гибкости и масштабируемости, разработчики могут легко создавать сложные системы, состоящие из множества небольших сервисов. Однако, с увеличением количества сервисов, взаимодействующих между собой, возникает проблема управления потоком данных. И здесь на помощь приходят Reactive Streams.

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

В микросервисных системах, Reactive Streams находят применение в различных областях – от обработки потоков событий до взаимодействия между сервисами. Они позволяют управлять потоками данных, обрабатывать ошибки и уменьшить задержки в системе, что может значительно повысить производительность и надежность приложения
Читать дальше →

Как НЕ надо распиливать монолит

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

Всем привет, на связи Юджин, (теперь уже) беспризорный backend-разработчик на Go. Сегодня я расскажу вам забавную и больную историю о том, как мы монолит распиливали. Кто-то, может, посмеётся, а может, найдёт в этом себя.

Читать далее

Load Balancer и Reverse Proxy в микросервисной архитектуре

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


Автор статьи: Артем Михайлов

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

Однако при работе с микросервисами возникают некоторые сложности в управлении нагрузкой на приложение. Именно здесь на помощь приходят два важных компонента — Load Balancer и Reverse Proxy.
Читать дальше →

JWT, FSD и сервисный подход. Итоги года глазами команды разработки Учи.ру

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

Привет, Хабр! Команда Учи.ру традиционно подводит итоги учебного года. Для нас — это сезон не только крупных продуктовых релизов, но и изменений под ИТ-капотом Учи.ру. Сегодня команда поделится, что нового произошло в архитектуре и разработке платформы и что сподвигло их на эти изменения.

Читать далее

А у вас есть кубернетес? Подборка текстов по k8s для тех, кто не DevOps

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

В каноничном видео человек грустит, пытаясь ответить на вопрос, зачем ему Kubernetes. В этом тексте на него мы не ответим, зато поможем разобраться с базовыми концепциями, связанными с оркестратором. Будет полезно тем, кто не работает с кубиком напрямую, но кодит приложение под Docker/Kubernetes. И тем, кому нужно будет поддержать умную беседу на кофе-пойнте. Под катом разбираем понятия Cloud Native, микросервисов и готовых кластеров Kubernetes.
Читать дальше →

Как мы сделали grpc-wiremock: сервис, создающий мок-сервер для ваших контрактов в одну команду

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

Всем привет, меня зовут Никита, уже пару лет я зарабатываю на жизнь развитием платформы-как-сервис в СберМаркет. В основном отвечаю за инструменты локальной разработки. Являюсь одним из создателей cli, которая позволяет развернуть сервис со всеми его зависимостями в одну команду sbm-cli service up.

Хочу рассказать, как мы делаем тестирование на моках в PaaS. И поделиться нашим опенсорс-решением на базе Wiremock.

Читать далее

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

Просто о сложном: трассировки в микросервисах

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

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

Меня зовут Максим, я Java-разработчик в SimbirSoft. Сейчас работаю на финтех-проекте, занимаюсь созданием бизнес-логики, иногда подключаюсь к различным техническим задачам. В этой статье я кратко и понятно опишу, что такое трассировки, как устроен Jaeger, а также расскажу про недавно появившийся новый стандарт распределенного трейсинга и мониторинга — OpenTelemetry.

Материал будет полезен начинающим разработчикам. Из него вы узнаете, как с небольшими усилиями подключить трассировки к своему проекту. Речь пойдет об инструменте из большого блока «‎Наблюдаемость» (Monitoring), а конкретно — о трассировках.

Читать далее

Муки выбора, или Как найти идеальную систему мониторинга. Опыт dBrain

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

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

Читать далее

Kafka за 20 минут. Ментальная модель и как с ней работать

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

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее

Как мы упростили жизнь высоконагруженным сервисам с Platform V SessionsData. Часть 2

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

Привет, Хабр! На связи Андрей Чернов, Java-архитектор микросервисов в СберТехе. Эта статья — продолжение материала о том, как мы развиваем Platform V SessionsData — высокопроизводительное распределённое in-memory хранилище для общего контекста сессионных запросов key-value, которое СберБанк Онлайн использует в качестве микросервиса на своём server side.

В первой части мы говорили о том, почему решили создать собственный микросервис и как он помогает справляться с нагрузкой СберБанк Онлайн. В этой разберём, как мы достигаем высокой доступности сервиса. Будет и третья часть: расскажем, какие доработки помогут нам и дальше развивать Platform V SessionsData.

Читать далее

Решаем вечную проблему deployment bottleneck и репликации окружений

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

Подробно и на примере рассматриваем проблему deployment bottleneck и как она появляется. Рассказываю как можно легко и быстро настроить реплицируемые stage-окружения для ее решения, дав разработчикам делать свою магию параллельно и независимо друг от друга.

Подробнее

Проблемы при реализации микросервисной архитектуры

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

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

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

Читать далее

Строим свой SSO сервер используя Spring Authorization Server

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

На днях я решил сделать под все свои pet-проекты собственный SSO сервис, дабы не заморачиваться каждый раз с авторизацией и аутентификацией. Возиться с этим особо долго мне не хотелось. Все таки это для pet-проектов. Поэтому выбор пал на Spring Security. Мне давно уже было интересно посмотреть в действии как на Spring Boot 3, так и новый Spring Authorization Server версии 1.x.x. В данной статье речь пойдёт о проблемах и их решениях при построении собственного SSO. А также я поставил себе ряд интересных требований, с которыми я постараюсь справиться и рассказать о своём опыте.

Читать далее