Обновить
80.08

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

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

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

Дополнительная обвязка K8s и самописные компоненты в Kubernetes: для чего и кому нужны

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

Познакомим вас с надстройками Kubernetes в платформе dBrain, большая часть которых - наши собственные разработки для отслеживания пограничных состояний кластеров K8s.

Читать далее

Уже поменяли шину? Наш опыт «переобувания» и разработки интеграционной платформы

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

Хабр, привет! На связи Дмитрий Бадулин, я занимаюсь разработкой ПО в компании К2Тех. Корпоративная сервисная шина, или как это по-другому называется, интеграционная платформа — это отдельная боль для множества компаний. И сегодня в условиях, когда некоторые middleware-решения класса ESB перестали нормально работать в России, возникает новая волна спроса на проектирование системы обмена данными между множеством ИС. В их числе, разумеется, есть как красивые и удобные, которые легко интегрировать, так и кошмар интегратора, которые никак не хотят нормально работать.

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

Читать далее

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

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

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

В этой статье на примерах разберу, что мешает строить разработчикам надежные интеграции, попутно заглядывая в детали реализации нашей утилиты sbm-cli, шаблона микросервиса и CI/CD.

Читать далее

Message broker per service

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

Задумывались ли вы, почему мы используем отдельную базу данных для каждого сервиса, но при этом один общий брокер для нескольких сервисов? Ведь вполне возможно использовать базу данных в роли брокера сообщений. Однако, если мы попробуем заменить RabbitMQ на Redis, то натолкнемся на проблему общего использования базы данных. Это станет проблемой, потому что общее использование базы данных является антипаттерном.

Читать далее

Компонентный подход к Ansible или как навести порядок в инфраструктурном коде

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

Привет, Хабр! Меня зовут Игорь Гербылев, я технический директор в компании Just AI. В этой статье я расскажу о методологии структурирования ansible-плейбуков, которую мы называем «Компонентный ансибл». Этот подход позволил нам упростить разработку и поддержку большого объёма ансибл-кода, который мы используем для настройки инфраструктуры и развёртывания наших SaaS продуктов.

Читать далее

Helidon 4 вышел, а никто и не заметил

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

Те, кто использует Helidon в проде, наверняка точно знают, зачем им это нужно. Что делать остальным? Основная задача хомячка — объяснить детям концепцию смерти. Кажется, точно так же основная задача Helidon для широких народных масс — посмотреть на самые новые фишки Java и понять, нужно вам это или нет. Посмотрим, что же произошло в версии 4.0.0...

Интересно. Читать далее

Как перейти на микросервисы и выполнить миссию: решения на старте, работа с ТЗ и подводные камни

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

Привет, Хабр! С вами Валентин, архитектор направления Backend компании SimbirSoft. В данной статье мы с коллегами поделимся опытом реализации большого и сложного проекта с микросервисной архитектурой, а также поговорим о роли архитектора в таких проектах. 

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

Читать далее ?

Мутации в микросервисах: применяем Temporal

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

Всем привет!
В прошлой статье была поставлена задача о надёжных мутациях и транзакциях в архитектуре Профи, в этой статье разберём один из вариантов решения — применить workflow-engine Temporal.

Читать далее

Бизнес-гибкость через микросервисы

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

Почему микросервисы помогут вам ускорить поставку бизнес-ценности.

История появления микросервисов

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

Читать далее

История облачного переезда: как мы отказались от гибридного деплоя и полюбили Terraform

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

Привет, меня зовут Максим Качинский, я ведущий DevOps-инженер в компании RocketData. Более 6 лет мы развиваем одноимённую платформу для управления репутацией — за это время она выросла с монолитного MVP на единственном сервере до 15+ микросервисов с пятью разными видами баз данных. И всё это в гибридной инфраструктуре. 

Чем больше рос проект, тем сложнее нам было его поддерживать. Чтобы облегчить жизнь DevOps-инженерам, мы начали постепенно переходить на managed-решения. Но этот путь не был идеально прямым, и нам пришлось пересмотреть многие привычные рабочие инструменты. 

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

Читать далее

Микросервис отправки писем через smtp Yandex .Net Web Api MailKit

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

Эта статья предназначена для новичков и рассматривает микросервис отправки писем через smtp Yandex с использованием .Net Web Api и MailKit. В ней будет рассмотрено, как настроить и использовать данный микросервис для отправки писем с помощью почтового сервиса через существующий почтовый ящик Яндекса.

Ссылки для понимания и работы

GitHub Документация Яндекс

Дерево проекта:

Читать далее

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров7.4K
Изображение сгенерировано с помощью 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-консультантов. Вокруг витают сложные математические формулы, а на фоне присутствует мистическое злобное богоподобное существо).

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

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

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

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

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

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

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

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

Оставь надежду, всяк сюда входящий

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Об этом и поговорим…

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

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

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

Читать далее

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

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

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

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

Читать далее