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

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

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

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

Книга «Микросервисы и API»

Время на прочтение16 мин
Количество просмотров1.3K
image Привет, Хаброжители!

Простые и понятные API — необходимое условие успеха микросервисных приложений. Хорошо продуманные API гарантируют надежную интеграцию сервисов и помогают упростить сопровождение, масштабирование и дальнейшее совершенствование. Познакомьтесь с паттернами, протоколами и стратегиями, которые помогут вам проектировать, реализовывать и развертывать эффективные микросервисы с REST и GraphQL API.

Книга наполнена проверенными советами и примерами кода на языке Python. Авторы фокусируются на реализации, а не на философии. Изучите проверенные методы проектирования простых в использовании API для микросервисных приложений. Создавайте надежные API микросервисов, тестируйте, защищайте и развертывайте их в облаке, следуя принципам и шаблонам, применимым в любом языке программирования.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Новости

Простой пример использования Symfony Messenger

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

Пришёл и мой черёд асинхронно и многопоточно средствами PHP кое-что пообрабатывать… И я, естественно, вспомнил про компонент Messenger фреймворка Symfony.

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

Всё, что находилось, было либо слишком сложным, либо это были какие-то отдельные куски кода, понятные только тем, кто уже работал с Symfony Messenger. К тому же всё, что находилось, в основном было "заточено" либо под Redis, либо под RabbitMQ. установка которых как-то немного перебор для учебного примера…

В-общем, я создал и выложил на GitHub такой простой, законченный и самодостаточный пример работы Symfony Messenger совместно с Symfony Console.

Посмотреть пример работы Symfony Messenger
Всего голосов 8: ↑8 и ↓0+12
Комментарии0

Как мы реализовали Low-code на микросервисах

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

Привет Хабр!

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

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

Добро пожаловать под кат!

Читать далее
Всего голосов 18: ↑17 и ↓1+22
Комментарии7

Разделяемость данных между микросервисами

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


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

Но здесь есть важная тонкость, которую я осознал далеко не сразу. Чтобы как следует применять это правило, необходимо различать совместное использование источника данных и совместное использование данных как таковых.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+15
Комментарии2

Истории

Распределённый BPMS. Опыт Московской Биржи

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

Всем привет!

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

Бизнес Биржи, с одной стороны, похож на обычный банковский финтех, но имеет ряд важных особенностей. Чтобы лучше представить специфику нашей работы, я приведу метафору. Представьте, что каждое утро с вашего корпоративного космодрома в космос отправляется ракета. В течение дня космический корабль автономно выполняет работу на орбите, а вечером возвращается на базу. В полёте связь с кораблем очень ограничена и успех его полёта на 99% определяется качественной подготовкой. Всё должно отработать точно и в срок. Досрочный спуск корабля с орбиты технически возможен, но влечет за собой огромные репутационные потери с отчетом регулятору и новостями в федеральных СМИ.

Интересно. Дайте больше подробностей
Всего голосов 7: ↑6 и ↓1+7
Комментарии3

Разработчикам: рецензия на книгу «Создание микрофронтендов» (Building Micro-Frontends) Луки Меццалиры

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

Продолжаем рецензии на книги по ИТ‑тематике с промокодом от нашего блога. Сегодня это перевод известной книги «Building Micro‑Frontends» O'REILLY по микросервисам, вышедший в издательстве БХВ‑Петербург весной 2024г. Книга рассчитана на широкий круг веб‑разработчиков, архитекторов и руководителей команд, работающих с веб‑приложениями. А в целом, полезна всем, кто столкнулся с проблемами масштабируемости, параллельной разработки и организации кодовой базы при создании сложных фронтенд‑приложений.

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

userver 2.0 — большой релиз фреймворка для IO-bound программ

Время на прочтение6 мин
Количество просмотров5.8K
С момента прошлого релиза фреймворка 🐙 userver для С++ прошло чуть больше полугода. За это время мы многое сделали:


  • сильно оптимизировали работу фреймворка и обогнали основных конкурентов в бенчмарках высокопроизводительных фреймворков;
  • значительно упростили конфигурирование;
  • обзавелись install, докер-образами, Yandex Cloud-образом и DEB-пакетами;
  • обросли новой функциональностью, включая серверные мидлвари для HTTP, и YDB-драйвером;
  • перешли на новую ежемесячную схему релизов и упростили версионирование.

Добро пожаловать под кат за подробностями
Всего голосов 40: ↑40 и ↓0+54
Комментарии17

Как мы делаем канареечный деплой в PaaS

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

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

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

Но сначала немного цифр. Ниже на рисунке — наша статистика использования канареечного деплоя. На момент написания статьи у нас в проде 200+ сервисов, 5300 подов PaaS, ежемесячно мы делаем 2 тысячи деплоев в продакшн и 11 тысяч деплоев в стейдж, которые проходят через канарейку.

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

История создания API для курса валют

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

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

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

Разработчикам: рецензия на книгу «Node.js: разработка приложений в микросервисной архитектуре с нуля»

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

Компактная книга "Node.js: разработка приложений в микросервисной архитектуре с нуля" Юлии Поповой — выпущена в апреле 2024 г. как практическое руководство для разработчиков уровня джун и выше. Описан процесс создания микросервисов на Node.js с использованием фреймворка NestJS и других популярных технологий. Хотя в заголовке есть фраза «с нуля», книга рассчитана на читателей, уже имеющих опыт работы с JavaScript, TypeScript и NestJS. Автор не углубляется в теоретические основы, а дает практические аспекты построения масштабируемых приложений на базе микросервисной архитектуры. Заглянем внутрь :-)

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

ClickHouse в несколько кликов

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

Привет, Хабр! Сегодня расскажем о кейсе по внедрению NoSQL базы данных Clickhouse в платформу контейнеризации.

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

История успеха. Внедрение платформы «Вебмониторэкс» для защиты приложений «СберАвто»

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

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

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

Для обслуживания каждого инстанса web-приложения компания «СберАвто» использует кластерную пару веб-серверов Nginx, которые выполняют функции балансировки нагрузки, маршрутизации запросов и обработки HTTP-запросов от клиентов. Поэтому, при выборе межсетевого экрана уровня приложения (WAF) было важно обеспечить непрерывную интеграцию с существующей инфраструктурой на базе Nginx.

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

Гибкость в выборе вариантов установки ноды WAF как на балансировщики нагрузки, так и в контейнер рядом с конкретным приложением, обеспечила возможность защитить  в том числе и сервисы, расположенные внутри инфраструктуры. Развертывание доступно с использованием playbook Ansible или Terraform, что существенно упрощает процесс установки и обслуживания.

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

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

VES — микросервис Cosmos для кодирования видео на Netflix

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

Cosmos представляет собой новейшее поколение медиа-обработчика на Netflix, интегрирующее архитектуру на основе микросервисов, асинхронные рабочие процессы и функционал без привязки к серверам. Эта платформа нацелена на оптимизацию медиа-процессов внутри Netflix, повышая их гибкость и производительность, а также способствуя более продуктивной работе разработчиков. За последние годы команда Encoding Technologies (ET) усердно трудилась над модернизацией видео-конвейера с использованием платформы Cosmos.

Обновлённый конвейер состоит из множества микросервисов, каждый из которых выполняет строго определённые функции. Один из таких сервисов – Video Encoding Service (VES), который играет ключевую роль в процессе кодирования видео, преобразуя исходные медиа-файлы в форматы, подходящие для стриминга на Netflix или других студийных задач. VES сталкивается с рядом требований, связанных с обработкой контента:

Необходимость поддержки множества форматов, разрешений и качества изображения для разнообразных устройств пользователей, от мобильных телефонов до смарт-телевизоров;

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

Важность непрерывного выпуска обновлений для ускорения инноваций в стриминговых и студийных направлениях;

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

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

Приятного прочтения!

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

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

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Кратко про микросервисы на Scala и Erlang

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

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

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

В статье рассмотрим два языка программирования, которые выделяются своим функциональным подходом и широким применением в микросервисной архитектуре: Scala и Erlang.

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

DDD простыми словами

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

Часто в больших компания всё поделено на большие системы. А если система «Legacy», т.е. устаревшая, то часто внутри неё собрано очень много разнородного функционала. По сути такие системы представляют из себя монолитных монстров.

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

Границы систем размыты, нет чёткого понимания, что должно входить в систему, а что нет.

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

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

Можно ли исправить ситуацию коренным образом?

Читать далее
Всего голосов 18: ↑8 и ↓100
Комментарии41

Как мы реализовали аутентификацию трафика для MSA на базе монолита

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

Привет, Хабр! Меня зовут Салахутдинов Дмитрий, я принципал инженер в СберМаркете. Занимаюсь развитием Ruby-платформы и масштабированием системы через декомпозицию монолита на сервисы.

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

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

Автоматизируем контроль качества микрофронтов

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

Привет, Хабр! Меня зовут Миша Трифонов, я head of frontend в компании Cloud.ru и основатель сообщества TeamSnack. Поделюсь опытом, кейсами, решениями за 3,5 года работы в направлении микрофронтов.

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

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

ИНЬ-ЯН в UI/UX дизайне

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

Привет, Хабр! Меня зовут Иван Вербов, я UI/UX дизайнер команды разработки платформы контейнеризации dBrain.cloud. Эта статья адресована моим коллегам-юиксерам, а также всем, кого затрагивают задачи анализа, обсуждения и согласования предложений и результатов работы над дизайном.

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

Как мы ускорили Golang-тесты на CI

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

Привет, Хабр 👋! Меня зовут Александр, я занимаюсь разработкой ПО. В этом посте я расскажу про свой опыт, как желание улучшить свой рабочий процесс CI, помогло ускорить все golang пайплайны в PaaS в СберМаркета.

Читать далее
Всего голосов 57: ↑56 и ↓1+60
Комментарии1

Создание реактивных сервисов Micronaut и Kotlin

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

В данной статье обсудим создание REST-сервиса в “реактивном” исполнении. Приведу примеры кода на Kotlin в двух вариантах: Reactor и coroutines

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