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

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

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

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

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

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

Предметно-ориентированный подход (DDD, Domain-Driven Design) в проектировании программного обеспечения является наиболее эффективным способом моделирования бизнес-процессов. Сегодня мы поговорим о стратегическом и тактическом проектировании, после чего рассмотрим инструмент ускорения проектирования под названием «событийный штурм» (event storming).

Читать далее

Обзор митапа в Екатеринбурге: «С финансовыми технологиями в России будет всё хорошо»

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

Твёрдо и чётко. Это цитата из доклада Алексея Курзякова на Alfa LevelUp Day  в Екатеринбурга, где мы открыли новый IT-хаб. А это значит — самое время провести в новом офисе новый митап в новом формате с докладами и воркшопом. На двух параллельных треках провели оффлайн-воркшоп и поговорили о новых фичах, инновациях и росте: как создать фреймворк, как из мидла вырасти в тимлида, как в кратчайшие сроки создать новую фичу и не словить аварию, как в кризисных условиях создавать сервисы и как упаковывать тяжелые монолиты в удобный интерфейс.

Под катом краткая выжимка докладов, ссылки на видеозаписи и фотоотчёт.

Читать далее

Разбираемся с FSD — самой надёжной архитектурой для фронтенда

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

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

Вот почему в этой статье мы хотим рассказать вам об архитектуре FSD (Feature-Sliced Design, дословно «послойное проектирование фич»), одной из самых современных, надёжных и спроектированной специально для фронтенд-проектов. Она подходит почти для любых бизнес-условий, позволяет решать повседневные проблемы и интуитивно понятна разработчикам-новичкам.

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

Saga и Event Sourcing с Axon. Первое знакомство

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

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

Один из признанных ИТ-сообществом ответов - это, так называемый Saga паттерн. О том, что это такое, написано достаточно много, а мы займёмся его реализацией. 

Читать далее

Stop the world в Kafka или спасти рядового consumer :)

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

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

Читать далее

Путешествие в царство легаси. Как маленькая задача привела к большому рефакторингу

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

Привет! Меня зовут Артем Коньков, я frontend-разработчик в СберМаркете. А еще, я тот человек, который в фильмах ужасов спускается в темный подвал вопреки инстинкту самосохранения. Во-первых, потому что это интересно, а во-вторых — кто-то же должен это делать!

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

Читать далее

Что такое конструктор региональных госпрограмм, как работает и для чего нужен

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

Привет! Сегодня поговорим про один из множества проектов, реализуемых на базе Единой информационной системы жилищного строительства ДОМ.РФ (ЕИСЖС) - конструктор государственных региональных программ поддержки. Я, главный специалист Артём Емельянов, расскажу, что это такое, какая связь между государственными региональными ипотечными программами поддержки и зачем нужен конструктор.  

Государственные региональные ипотечные программы поддержки помогают улучшить жилищные условие за счет разных льгот при покупке жилья. Они могут быть направлены на поддержку определенных категорий населения, таких как молодые семьи, ветераны, многодетные семьи, или на общую поддержку жилищного строительства и рынка недвижимости. Более детально со списком государственных региональных ипотечных программ поддержки можно ознакомиться в нашем консультационном центре ДОМ.РФ.  

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

ДОМ.РФ здесь - оператор программ, направленных на поддержку жилищного строительства и доступности ипотечных кредитов для населения. Мы разрабатываем ипотечные продукты и услуги, которые могут быть использованы в рамках этих программ, снижаем риски кредитования, предоставляем гарантии и страхование, а также работаем с банками и застройщиками для повышения доступности жилья.  

Читать далее

Архитектурный компромисс в enterprise. Опыт Alfa People. Наш путь сквозь джунгли

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

Здравствуйте, меня зовут Дмитрий Марков. Я архитектор направления в Альфа-Банке. В этой статье мы поговорим об архитектуре, как ни странно. Без космических «прорывов» и «аналоговнет». Всё жизненно. 

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

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

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

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

Читать далее

Design API First как паттерн проектирования контрактов межсервисного взаимодействия

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

За окном 2023 год, а среди разработчиков только и разговоров, что про микросервисы да API First. Несмотря на то, что эти темы не новы, похоже, что их актуальность даже набирает обороты.

Про микросервисы уже много написано и теоретического и практического. Есть у этого подхода и свои евангелисты (Microservice Architecture) :) В целом это тема достаточно холиварная, особенно при крайних точках зрения. Сегодня мы ее отложим, но обязательно вернемся в контексте темы этой статьи. Конечно, это будет не менее обсуждаемая история, посвященная методологии API First и программным интерфейсам (прежде всего, web, но не только) при проектировании и разработке современных информационных систем :)

Меня зовут Антон, я руководитель Архитектурного комитета в компании SimbirSoft. Мы используем подход API First для проектов самой разной направленности, где есть несколько команд разработки (как минимум Backend и Frontend), а также при высокой неопределенности на этапе реализации (быстроменяющиеся требования и цели, параллельные процессы проектирования и реализации, высокие запросы к TTM и так далее).

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

Этот материал открывает цикл статей, посвященных практическому внедрению методологии API First в разработку наших команд. Если быть точным, то мы отдаем предпочтение «младшему брату» API First, практикующему  проектирование (design), — известному как Design API First. Чтобы избежать путаницы, далее термин «API First» будет обозначать подход к разработке ПО, а термины «Design API First» и «Design First» – проектирование ПО в рамках подхода API First.

2 часть: Как мы внедряли Design API First. Показываем на примере сервиса аутентификации

3 часть: Интеграция паттерна Design API First в конвейер разработки ПО: наш опыт

4 часть: Как генерировать модели интерфейсов на основе спецификации на стороне frontend-приложений

5 часть: Design API First. Кодогенерация Roslyn

Читать далее

Логировали, логировали, да вылогировали. Почему мы сменили 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 мин
Количество просмотров78K

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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


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

Микросервисная архитектура – одна из самых популярных подходов к разработке современных приложений. Благодаря ее гибкости и масштабируемости, разработчики могут легко создавать сложные системы, состоящие из множества небольших сервисов. Однако, с увеличением количества сервисов, взаимодействующих между собой, возникает проблема управления потоком данных. И здесь на помощь приходят 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

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

Читать далее