Все потоки
Поиск
Написать публикацию
Обновить
34.94

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

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

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

Вся правда о переходе с монолита на микросервисы, когда у тебя сеть из десятков тысяч магазинов: опыт Х5 Tech

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

Привет, Хабр! Меня зовут Алексей Топчий, я уже более 20 лет работаю в IT. Прошёл все уровни: бэкенд, фронтенд, фулстек со множеством языков и технологий. В СберТехе занимался Единой фронтальной системой, в Яндексе участвовал в стартапе, связанном с FMCG. Сейчас занимаюсь сервисом ценообразования в сети магазинов «Пятёрочка» (X5 Group). 

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

Читать далее

Настройка SSO на KeyCloak или как я KeyCloak побеждал

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

Привет! Хочу поделиться, как я с KeyCloak-ом сражался.

Испытание воли на прочность, падение до глубин отчаяния и победа, как кульминация всех потраченных недель на поиски решения.

Читать далее

API-Шлюз или опять тестировать

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

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

Если вас интересует эта тема, то добро пожаловать под кат.

В лунапарк

Полезные фичи С++ на примере организации пайплайна

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

В рамках микросервисной архитектуры достаточно легко делать «реактивные» сервисы: к вам приходит событие или вызов HTTP-метода, и в ответ на это происходит какое-то действие. Однако бывают более сложные сценарии, когда надо собрать некоторое количество информации или событий прежде, чем что-то делать. В таком случае нужен пайплайн — механизм организации сложных правил обработки событий. 

Недавно нам пришлось организовать пайплайн с использованием интересных С++-трюков. О них я и расскажу в статье. 

— Как хранить в одном контейнере разные типы и использовать тип в качестве ключа контейнера 

— Как средствами метапрограммирования удобно сериализовать и десериализовать разнотипные объекты 

— Как сделать универсальный запускатель функций, который будет запускать любую функцию и сам искать, откуда «добыть» эти аргументы 

— И главное, как сделать интерфейс для написания пайплайна обработки события — удобный и полностью изолированный от инфраструктуры

Читать далее

Как научить голосовой помощник Алиса рассказывать отзывы выпускников Яндекс Практикума

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

Меня зовут Екатерина Александрова, я интернет‑маркетолог, выпускница курса «Интернет‑маркетолог» и «SMM‑продвижение в Телеграмм», и Станислав Козырев — ведущий инженер‑программист, дата‑аналитик и саентист ЦУНБ им. Некрасова, выпускник курса «Специалист по Data Science».

Наша команда «Проактивные практики», состоящая из пяти увлеченных и энергичных участников, проходит обучение в амбассадорской программе Яндекса. Заключительным этапом программы стала выпускная работа.

Читать далее

Kafka. Лучшие практики применения. Настройки Producer & Consumer

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

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

Меня зовут Михаил, я являюсь ФинТех системным аналитиком, исполняющим роль архитектора на проектах. И сегодня я хочу поделиться материалами по Kafka, которые подготовил для обучения сотрудников из своей команды. В материале постарался отразить самые важные технические моменты по Kafka, которые будут подкреплены наглядными кейсами и примерами использования. Материал будет полезным как для начинающих, так и для продвинутых пользователей. Желаю приятного прочтения.

Kafka. Лучшие практики применения.

Микросервисы: Почему именно gRPC?

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

Архитектура микросервисов широко распространена в современном программировании. Благодаря этой архитектуре разработчики смогут самостоятельно разрабатывать сервисы и управлять ими. Однако очень важно выбрать правильный протокол для эффективного взаимодействия между микросервисами. Здесь протокол gRPC (Google Remote Treatment Call) выделяется своей высокой эффективностью и скоростью. В этой статье мы предоставим подробную информацию о RPC и gRPC, рассмотрим преимущества gRPC в архитектурах микросервисов и продемонстрируем их различия на примерах кода на языке программирования Go.

Читать далее

Циклические импорты на фронтенде

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

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

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

Рассмотрим способы разрешения циклических зависимостей и их обнаружение.

Читать далее

Построение надежных систем: решение сложностей распределенных микросервисов

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

Привет, Хабр! Мы в команде Nova Container Platform продолжаем серию переводов полезных материалов о микросервисной архитектуре.

Читать далее

Декомпозиция монолитной системы с использованием Strangler-паттерна

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

Привет! Меня зовут Дима, я архитектор в Купере. Сегодня расскажу о шаблоне проектирования Strangler, который мы использовали для поэтапного выноса бизнес-логики из монолитной системы в отдельный сервис. 

Сначала обратимся к первоисточнику, а затем перейдем к практическим моментам, с которыми столкнулись в процессе работы. Поехали!

Читать далее

Обзор библиотеки RxPY

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

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

Сегодня поговорим о хорошей библиотеке для управления потоками данных в Python – RxPY — реализации Reactive Extensions для нашего любимого языка. В версии 4.0.4 эта библиотека получила ряд улучшений, и сегодня мы разберем её основной функционал.

Читать далее

Тестируем интеграцию с очередями сообщений правильно

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

Наверняка в вашем проекте используется очередь сообщений (не важно kafka, pulsar или какой-нибудь зайчик). Основной проблемой является подробное тестирование работы вашей системы. Рассмотрим варианты решения и посмотрим, что там у автора в рукаве.

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

Микросервисная архитектура vs монолит (на простом примере)

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

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

Читать далее

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

Как подружить микросервисы и Kafka

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

С увеличением вычислительных мощностей и пропускной способности каналов связи увеличились также и объемы обрабатываемых данных, а также требования к скорости обработки. Сейчас все больше систем требуют, чтобы работа с данными велась в режиме реального времени. Apache Kafka является распределённым программным брокером сообщений с открытым исходным кодом. Цель Kafka является создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой задержкой.

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

Читать далее

Почему микросервисы лучше компонент или как деградируют идеи в IT

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

Попробуем начать с цитаты:

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

...

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

Если интересно откуда эта цитата и что с ней не так прошу под кат.

Читать далее

Persistent Storage для Kubernetes на базе Linstor

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

Многие начинающие DevOps'ы, осваивающие kubernetes сталкиваются с вопросом: "Как организовать Persistent Storage в своём kubernetes-кластере?" Для этой цели есть много вариантов: ceph, nfs, mayastor, iscsi, linstor, longhorn. Сегодня мы рассмотрим один из них - linstor (он же piraeus). Мы настроим свой Persistent Storage и подключим его к нашему kubernetes-кластеру.

Читать далее

Мой опыт использования Plumber: UI-инструмент для тестирования Kafka

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

Привет, Хабр! Меня зовут Марина, я QA-инженер в Купере. Как специалисту по тестированию, мне часто приходится сталкиваться с задачами, связанными с тестированием микросервисов, использующих асинхронное общение через Apache Kafka. Уверена, многие QA-инженеры, да и разработчики знакомы с подобными вызовами.

На одном из проектов, где я работаю, у меня возникла проблема: используемые инструменты для тестирования Kafka были недостаточно удобными:

Консольная утилита Protokaf не имеет интерфейса и полученные данные для лучшей читаемости нужно отформатировать в json структуру (а это еще одно доп приложение).

UI-приложение Kowl удобно только для мониторинга состояния топиков, и только недавно в нём стала доступна возможность чтения сообщений без сложного флоу для расшифровки, но всё так же нет возможность отправки сообщений в топик. 

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

В этой статье я не буду объяснять, что такое Kafka и как работают брокеры — на эти темы уже есть множество отличных материалов, например, вот. Хочу поделиться своим опытом использования этого инструмента. Я не ставлю цель сравнивать его с другими существующими решениями, а просто расскажу, как Plumber помог мне упростить процесс ручного тестирования Kafka на стейджах. 

Читать далее

Поднимаем одно-нодовый kubernetes-кластер на RedOS

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

Нынешний век — век импортозамещения. Многие компании сейчас сталкиваются с возникшей необходимостью переходить на отечественное ПО. Приходится осваивать вновь появившиеся нюансы, связанные с новым программным обеспечением. В данной статье мы в подробности рассмотрим настройку и шаг‑за шагом настроим single‑node kubernetes‑кластер в одной из популярных отечественных ОС — RedOS.

Читать далее

OpenTelemetry с нуля до 100: пример внедрения Норвежским управлением труда и соцобеспечения

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

Сейчас OpenTelemetry — это самый быстрорастущий проект CNCF. Опытом внедрения этого набора инструментов для отладки и анализа производительности распределённых систем поделился тимлид платформенной команды Норвежского управления труда и социального обеспечения. В переводе под катом вас ждёт тернистый путь от первых коммитов до реального применения OpenTelemetry в production, а также планы команды на будущее.

Читать далее

Как мы подружили Jira и Telegram

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

Привет, Хабр! Я — Артем, ведущий специалист в дирекции эксплуатации и развития автоматизированных рабочих мест в Страховом Доме ВСК. Сегодня я вам расскажу о том, как мы подружили Jira и Telegram в нашем проекте «Telegram Bot «Поддержка ВСК».

План повествования:

Читать далее