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

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

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

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

О сложности и монолитах

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров7.1K
Изображение сгенерировано с помощью DALL·E. Запрос: a complex monolith in a server room, with the faces of IT consultants with suits engraved in it with twisted faces, mathematical formulations about complexity floating around, and with a mysterious malevolent godlike presence in the background (комплексный монолит в серверной с искажёнными лицами IT-консультантов. Вокруг витают сложные математические формулы, а на фоне присутствует мистическое злобное богоподобное существо).

Статья посвящена анализу и сравнению двух моделей построения систем — монолитной и с разделением на микросервисы. В ней мы с разных сторон оценим оба этих подхода и связанную с ними сложность, убедившись в превосходстве последнего. Представим микросервисы и прочие архитектуры в реалистичном свете, не воскрешая то, что должно оставаться мёртвым.
Читать дальше →
Всего голосов 34: ↑27 и ↓7+33
Комментарии75

Введение в Чистую архитектуру через 6 кругов рефакторинга

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

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Всего голосов 16: ↑12 и ↓4+11
Комментарии4

Как тяжелый монолит обернуть в удобный интерфейс

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

Собрались как-то вместе: продакты, HR, лиды и архитекторы ИТ, и начали думать, как же им перестроить HR-процессы в Банке так, чтобы улучшить клиентский опыт сотрудников и им стало удобно работать с HR-услугами..

У нас была идея продуктового подхода, десяток backend систем, 23 приложения, 109 процессов и продуктов, 683 различных заявок. Но раз уж мы начали собирать все это под единый интерфейс, то надо идти в этом до конца.

Меня зовут Михаил Михеев. Я руководитель направления интеграций в одной из команд клиентского пути в Альфа Банке. В этой статье я поделюсь нашим опытом создания единого канала контакта с сотрудником, в условиях, когда «под «капотом» множество монолитных систем.

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

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

Playground. Как сэкономить время на настройке локальной среды

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

Привет, Хабр! Меня зовут Никита, и я Go-разработчик. В свободное от работы время я интересуюсь платформенной разработкой, а в рабочее — практикую в команде PaaS в СберМаркете. Моя специализация — локальное окружение разработчика и тулинг.

Главная метрика, на которую работает моя команда, — Тime-Тo-Мarket, совокупное время, затраченное на разработку фичи от самого начала разработки и до релиза на пользователей.

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

Уже сейчас PaaS может предложить многое для сокращения времени разработки фичи. Сегодня хочу рассказать о том, как именно наша команда помогает выпускать релизы быстрее с помощью инструмента Playground. С помощью него можно легко и быстро запустить ряд сервисов прямо на вашем Mac или Linux.

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

Истории

Использование Istio для управления трафиком и мониторинга в микросервисах

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

Привет, уважаемые читатели Хабра!

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

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

И вот здесь на помощь приходит Istio, предоставляя мощные инструменты для управления трафиком и мониторинга в микросервисной архитектуре.

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

Записки архитектора. Как давать имена приложениям и сервисам

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

Если порыться на внутренней кухне софтверных компаний, то можно обнаружить, что разрабатываемые приложения и сервисы часто имеют весёлые имена. Это могут быть имена мультперсонажей, мифических героев, космических объектов, географических объектов, героев книг, героев комиксов и фильмов… Пожалуй, это наиболее популярные категории имён, но есть и другие. Разработчики софта – люди креативные, чего только не придумают. Мне попадались даже названия ягод и элементарных частиц.

Справедливости ради подчеркну, что не во всех компаниях, где разрабатывают софт, ему дают весёлые имена. Но во многих.

Насколько хороши весёлые имена? Какие есть альтернативы? Как лучше всего называть софт? Какие имена используют в зрелых софтверных компаниях?

Об этом и поговорим…
Всего голосов 5: ↑5 и ↓0+5
Комментарии11

Мутации в микросервисах: ставим задачу

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

Всем привет! Меня зовут Эмин Чернов, я руководитель платформенных команд и архитектор в компании Профи. Сегодня расскажу про то, как мы столкнулись с проблемой консистентных изменений данных в микросервисах и каким образом планируем её порешать.

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

Что такое API-шлюзы и Gateway API и почему за ними будущее нативных облачных приложений

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

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

Статья составлена на основе сразу двух англоязычных материалов. В первом (его мы поместили в самое начало) авторы на примере профессий объясняют роль различных компонентов облачных приложений, а во втором — проводят глубокий анализ все возрастающей значимости API-шлюзов для экосистемы облачных приложений, их места в рамках концепции «Kubernetes — облачная операционная система» и того, как повлияет на дальнейшее развитие API-шлюзов появление Kubernetes API Gateway. 

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

Управление зависимостями в микросервисной архитектуре

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

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

Читать далее
Всего голосов 9: ↑2 и ↓7-5
Комментарии6

Распределённые транзакции

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

На собеседованиях на позицию middle/senior разработчика часто задают вопросы по распределенным транзакциям в микросервисной архитектуре.

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

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

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

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

Занимательная задача с микросервисами в .NET

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

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

Для простоты интеграции необходимо использовать REST API для приёма транзакций

Необходимо исключить ситуации, когда:

Тысячи клиентов по несколько транзакции ожидают двух, у которых по 10000 транзакций

Несколько клиентов по 10000 ждут тысячи клиентов по несколько транзакций.

Читать далее
Всего голосов 8: ↑2 и ↓6-2
Комментарии31

Проектирование архитектуры для микросервисов с использованием gRPC

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

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

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

gRPC – высокопроизводительный и мощный инструмент для построения микросервисных систем.

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

Асинхронный API First

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

API-First — один из популярных подходов к проектированию серверных приложений. Для обеспечения этого подхода создано множество программных продуктов. Однако сложно найти продукт, который поможет реализовать этот подход для серверных приложений, использующих брокеры сообщений в качестве средства интеграции —  такие, как Apache Kafka, RabbitMQ, Apache ActiveMQ. Мы решили это исправить и представляем вам свое решение AxenAPI.

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

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

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Погружение в контейнеризацию

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

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

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

Сквозное наблюдение (observability) в микросервисах

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

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

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

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

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

Разберемся подробнее с первым из ключевых компонентов сквозного наблюдения - трассировкой.

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

Как PaaS решил проблемы стандартизации разработки сервиса одной утилитой

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

Привет ? На связи команда PaaS СберМаркета. Меня зовут Роман, и уже больше 2-х лет моя группа занимается разработкой инструментов для разработчиков, в том числе утилитой sbm-cli, о которой хочу рассказать сегодня.

Вероятно вы каждый день пользуетесь консольными утилитами, такими как git, homebrew, ssh, grep, find, etc. Мы сделали command line interface приложение, запуск которого на локальной машине разработчика может превышать количество запусков команды git (спойлер: статистика в конце статьи).

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

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

Как мы Kafka с NestJS microservices подружить пытались

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

Привет, меня зовут Валентин, я NodeJS-разработчик в Сравни. Моя команда делает Profile Service — внутренний продукт, который отвечает за быстрое получение и запись личных данных пользователей для экосистемы Сравни. Мы взаимодействуем с 20+ продуктовыми командами, которые дают нагрузку на сервис порядка 200-300 RPS; порядок обрабатываемых записей в БД – десятки миллионов.

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

В этой статье я расскажу, с какими неочевидными проблемами мы столкнулись при переходе на Kafka у нас в продукте, как мы чинили баги в NestJS Microservices и какие выводы сделали (спойлер: Kafka – не всегда хорошее решение). 

Приступим!

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

Микросервисы победили. Или не совсем

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

«Мы хотим сделать систему по учету персонала. Только у наших архитекторов есть требование, что все у нас должно быть на микросервисах». Это, пожалуй, самый бесячий заход, который нам приходится слышать, как разработчику Jmix – платформы быстрой разработки корпоративных веб-приложений. Почему только микросервисы? Какие проблемы, кроме независимого развертывания они решают? Это действительно необходимо для всех типов приложений? Мы, для полного понимания, ни в коем случае не являемся противниками микросервисной архитектуры, однако неистово сопротивляемся слепому следованию «карго культа». Часто случается, что ничего, кроме удорожания разработки, поддержки и эксплуатации такие решения не приносят. Собственно, об этом и пишет Nikolas Frankel, автор статьи, перевод которой представлен ниже.

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

Записки технического руководителя проектов

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

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

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

Платформа инвестиционного бизнеса. Как устроена IPS в РСХБ

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

Привет, Хабр! Меня зовут Денис Антонов, я работаю SRE‑инженером и менеджером системы на платформе IPS (Investment Platform Solutions) в Блоке ИТ‑развития Инвестиционного бизнеса РСХБ‑Интех (дочерняя технологическая компания Россельхозбанка). Совместно с коллегами мы выстраиваем качественные процессы сопровождения и обновляем системы сервисов, чтобы они работали стабильно, исправно, и чтобы в случае поломки на исправление проблемы уходило минимальное количество времени и трудозатрат. Сегодня расскажу о технологическом стеке нашей IPS платформы: составных модулях и ключевых технологиях, а также об архитектуре и назначении одного из базовых модулей (аудит), о схеме работы и ключевых метриках технического и бизнес‑мониторинга, процессе подключения и траблшутинга и не только.

Читать далее
Всего голосов 20: ↑19 и ↓1+27
Комментарии10