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

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

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

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

Сага распределенных транзакций

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

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

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

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

У некоторых в команде уже был опыт работы с xa-транзакциями.
Довольно удобный способ, когда у вас есть несколько ACID СУБД. Процесс состоит из двух фаз.

Читать далее

Переход с Calico на Cilium. Причины и итоги

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

Сегодня расскажем о выборе CNI: что мы использовали в Calico, в каких конфигурациях и как применяем Cilium.

Cilium vs Calico

Особенности разработки мобильного центра принятия решений — стандарты продукта

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

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

Читать далее

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

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

Во время технических презентаций нашей технологии – платформы быстрой разработки Jmix – мы, как правило, доходим до вопроса архитектуры создаваемых приложений и часто встречаем грусть в глазах разработчиков, когда сообщаем, что создаваемое приложение имеет монолитную архитектуру. Удивительно, но случается, что команды разработки приложений на Delphi или Oraсle EBS непременно заинтересованы в реализации микросервисной архитектуры, отождествляя ее с чем-то очень современным и самым продвинутым. К счастью, хайп вокруг микросервисов постепенно начал замещаться новой информационной повесткой о необходимости рационального использования ресурсов и выбора типа архитектуры приложений на основе компетенций команд разработчиков и масштабов создаваемого решения. В Jmix есть все необходимое, чтобы создавать современные корпоративные информационные системы в рекордные сроки и с минимальными затратами. Мы понимаем, что монолитная архитектура приложений Jmix не может закрыть все кейсы, но мы верим, что для каждой задачи есть подходящий инструмент. Прочитайте перевод статьи из блога Camunda, возможно, она поможет понять какой тип архитектуры подходит для вашего проекта, чтобы сэкономить время, деньги и нервы.

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

Читать далее

Архитектурные антипаттерны в микросервисах и способы их избежания

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

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

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

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

Читать далее

Тестирование микросервисов: просто и эффективно даже для начинающих

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

Тестирование микросервисов: просто и эффективно даже для начинающих

Привет, друзья! В современном мире разработки программного обеспечения микросервисы стали настоящим хитом, словно умные кубики Лего, которые собираются вместе в интеллектуальное приложение. Но стоит ли бояться тестирования этих микросервисов? Давайте вместе разберемся, как освоить их проверку.

Читать далее

Microservice for testing — are you kidding me?

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

Всем привет! На связи Николай Мезинов из команды Тинькофф. Предлагаю разобрать интересную задачу — тестирование приложений с помощью микросервиса. Прочитав предыдущее предложение, можно подумать: «Microservice for testing? Are you kidding me?» И я с ухмылкой отвечу: «No, I am not»

Читать далее

Feature Toggles и их применение. История одного проекта

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

Привет, Хабр! Представьте: вы – член большой команды среди десятка таких же команд на крупном и зрелом проекте. Казалось бы, все процессы уже выстроены, все масштабные разработки завершены и теперь остается только с наслаждением разрабатывать и дополнять проект новыми интересными фичами.

Гармония и красота.

Но откуда ни возьмись, появляется она – недоработанная масштабная функциональность, словно щупальцами оплетающая все базовые процессы сразу. Как монстр, затаившийся в пещере, она не давала покоя бизнесу вот уже 3 года, и успела  «сожрать» несколько команд разработки. И вот бизнес снова объявил охоту на монстра… а вы оказались в этом отряде самоубийц героев, призванных положить конец бесчинствам чудовища. 

Цели озвучены, задачи поставлены, команда в ужасе собрана. Но вот незадача, поле для сражений одно: либо ваша команда будет монстра рубить, либо остальные команды – семена сажать. И что же делать?

✍️ Итак, рассказываем

Все что вам нужно знать о таймаутах

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

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

Под катом вы узнаете как установить оптимальные значение connection и request timeout, стоит ли повторять запрос при ошибке или лучше избегать этого.

В конце статьи есть небольшая шпаргалка и куча полезных ссылок. Приятного чтения.

Читать далее

Change Data Capture (CDC) в Yandex Data Transfer: гид по технологии с примерами

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров17K
В современных микросервисных архитектурах регулярно встречаются потребности в кешах, индексах полнотекстового поиска, репликах, а также в реактивном взаимодействии компонентов. Решать все эти задачи по отдельности — тот ещё вызов, но оказывается все эти задачи могут быть решены одним механизмом, и имя ему: Change Data Capture.

Меня зовут Тимофей Брунько, я разработчик Yandex Cloud. В этой статье я расскажу о том, как в теории и на практике работает CDC — Change Data Capture, или буквально «захват изменения данных», — и как наш сервис Yandex Data Transfer с поддержкой формата Debezium помогает пользователям решать задачи поставки данных, связанные с CDC. В конце статьи покажу реальные кейсы. Поехали.
Читать дальше →

«Успейте за 5 месяцев создать систему онлайн обучения», — говорили они, «Успеем к 1 сентября», — сказали мы

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

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

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

Читать далее

«Обновляй меня нежно» — как мы докатились до Feature Toggle

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

Вопрос подготовки релизов и внесения новых изменений стоит перед любыми командами. Но чем масштабнее сфера применения каждого конкретного решения, тем важнее не допустить downtime, связанного с ошибками в новом функционале. В этом посте я расскажу о том, почему нам в Леруа Мерлен потребовалось развивать новый механизм работы с обновлениями, из-за чего не подошел ни один из популярных инструментов и что мы стали делать в итоге. Также мы обсудим различные подходы к организации функций Feature Toggle. Если вы тоже интересуетесь этой темой, приглашаю под кат!

Читать далее

Преобразование закрытого ключа КриптоПро CSP по ГОСТ 2012 в контейнер p12, который понимает java

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


Закрытый ключ КриптоПро CSP представляет из себя флеш-накопитель, на котором в директории ххххх.000 лежат файлы primary.key, primary2.key, masks.key, masks2.key, name.key и header.key.

Читать далее

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

Разработка сервисов без боли: как подступиться к созданию PaaS

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

Всем привет! Меня зовут Александр Ермолаев, я один из лидов в IT-платформе СберМаркета. Моя команда занимается разработкой шаблонов, библиотек и некоторых инструментов для создания микросервисов.

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

Читать далее

Blue-Green и Canary деплойменты в микросервисах

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

В этой статье рассмотрим основные принципы, преимущества и недостатки стратегий Blue-Green и Canary деплоймента, а также раскроем лучшие практики для их успешной реализации в современной среде разработки микросервисов.

Читать далее

Монолог про отказоустойчивость микросервисных приложений, или Что может пойти не так?

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

Давным-давно я работал в одной компании, где всё хостилось на одном-единственном сервере. Как это обычно бывает, в субботу вечером сгорел блок питания, и я, отдыхая в это время на природе, сидя в лодке, через телефон, при помощи консоли, пытался перенести сервер на другой хост. 

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

Читать далее

Разработка событийно-ориентированных микросервисов с помощью Python

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

Привет, Хабр! Сегодня поговорим о нюансах разработки событийно-ориентированных микросервисов на Python. Я расскажу, почему считаю Python подходящим для разработки микросервисов, и покажу нюансы работы с ним. Меня зовут Алексей Некрасов, я лидер направления Python в МТС и программный директор курсов по Python в Skillbox. А материал — под катом.

Читать далее

MTC Live: от идеи до облачного приложения

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

Привет, Хабр! MTC Live — сервис по продаже билетов на развлекательные мероприятия с обязательным начислением кешбэка на все покупки. Сервис существует в двух ипостасях: в виде сайта и в качестве приложения, где можно купить билеты в театры, музеи, на концерты, стендапы, шоу и выставки. Сначала сервис был очень простым, а архитектура — базовой. В итоге её пришлось переделывать, поскольку нагрузки на систему возросли, а архитектура осталась прежней, ещё со времён пандемии, когда спрос на билеты был невысоким.

В статье речь пойдёт об этапах развития IT-продукта — от бизнес-идеи до промышленного Cloud-Native-решения, о проблемах и возможных способах их решения. Статья написана на основе интервью с участниками команды проекта MTC Live, а именно Александром Богдановым, руководителем проекта, CTO, и Сергеем Праводеловым, руководителем группы разработки, архитектором решения.

Читать далее

Микрофронтенд: достоинства и недостатки, подходы к организации

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

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

Читать далее

CSI и S3 в Kubernetes. Каждому свое: Ceph, Minio, TopоLVM

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

Без хранилища данных не заработает ни одно stateful-приложение, это известно всем. А вот как и какое хранилище развернуть - это вопрос к специалистам. Сегодня расскажем, как мы “готовим” Ceph и в каких случаях используем TopоLVM и Minio.

Ceph, Minio, TopоLVM