
Микросервисы *
Микросервисная архитектура и все что с ней связано
Как настроить real-time data processing на летящем корабле
Недавно мы внесли большие изменения в нашу e-commerce платформу: перешли к событийной (events driven) архитектуре и добавили обработку данных в реальном времени. На этом примере я хочу поделиться опытом того, как мы реализуем эволюционный подход к изменению архитектуры.

2.07 онлайн-митап про микросервисы и Unit-тесты
Участие бесплатно, нужна регистрация.
«Упрощаем себе жизнь с помощью Unit-тестирования»

- расскажу, почему нетестируемые проекты увеличивают сроки релизов;
- приведу аргументы в пользу написания юнит-тестов. Рассмотрим, почему хороший дизайн тестируемый, а обратное — неверно;
- плохие юнит-тесты хуже, чем ничего. Поговорим про требования к юнит-тестам. Например, почему важна изолированность или скорость выполнения тестов;
- расскажу про лучшие практики юнит-тестирования с примерами на NUnit.
Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 3
Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 2
Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 1
Около 15 лет назад моя мачеха, назовем ее Фрэнсис, стала чувствовать боль и слабость во всем теле, ей стало трудно стоять, и когда врачи в больнице немного привели ее в себя, у нее обнаружился паралич рук и ног. Это было ужасное испытание для нее и для нас, как оказалось, диагнозом стал синдром Гийона-Барре. Мне просто любопытно, кто-нибудь из вас слышал о такой болезни? О, довольно много людей! Надеюсь, вы получили эту информацию не из первых рук. Это аутоиммунное заболевание, острый полирадикулоневрит, при котором иммунная система человека поражает собственные периферические нервы.

Обычно эту болезнь провоцирует какой-то внешний фактор, но интересно в ней то, что антитела атакуют непосредственно миелиновую оболочку аксона так, что повреждают ее по всей длине нерва, и его сигналы становятся очень рассеянными. Поэтому можно логично объяснить все симптомы боли, слабости и паралич, понимая, что происходит с нервной системой. Хорошие новости состоят в том, что это заболевание можно вылечить либо через плазмаферез, когда кровь фильтруется вне вашего тела, либо с помощью антительной терапии.
.NET Core: Взаимодействие микросервисов через Web api
Введение
Практически все, кто имел дело с микросервисами в .NET Core, наверняка знают книгу Кристиана Хорсдала “Микросервисы на платформе .NET”. Здесь прекрасно описаны подходы к построению приложения на основе микросервисов, подробно рассмотрены вопросы мониторинга, журналирования, управления доступом. Единственное, чего не хватает — это инструмента автоматизации взаимодействия между микросервисами.
При обычном подходе при разработке микросервиса параллельно разрабатывается web-клиент для него. И каждый раз, когда меняется web-интерфейс микросервиса, приходится затрачивать дополнительные усилия для соответствующих изменений web-клиента. Идея генерировать пару web-api/web-клиент с использованием OpenApi тоже достаточно трудоемка, хотелось бы чего-то более прозрачного для разработчика.
Итак, при альтернативном подходе в разработке нашего приложения хотелось бы:
Структуру микросервиса описывать интерфейсом с использованием атрибутов, описывающих тип метода, маршрут и способ передачи параметров, как это делается в MVC.
Функциональность микросервиса разрабатывается исключительно в классе,
реализующим этот интерфейс. Публикация конечных точек микросервиса должна быть автоматической, не требующей сложных настроек.
Web-клиент для микросервиса должен генерироваться автоматически на основе интерфейса и предоставляться через Dependency Injection.
Должен быть механизм организации редиректов на конечные точки микросервисов из главного приложения, взаимодействующего с пользовательским интерфейсом.
Что такое Service Mesh?

Service Mesh – это конфигурируемый инфраструктурный уровень с низкой задержкой, который нужен для обработки большого объема сетевых межпроцессных коммуникаций между программными интерфейсами приложения (API). Service Mesh обеспечивает быструю, надёжную и безопасную коммуникацию между контейнеризированными и часто эфемерными сервисами инфраструктуры приложений. Service Mesh предоставляет такие возможности, как обнаружение сервисов, балансировку нагрузки, шифрование, прозрачность, трассируемость, аутентификацию и авторизацию, а также поддержку шаблона автоматического выключения (circuit breaker).
Backend United #6: Табаско — разработчики о безопасности
Привет! 25 июня в 18:00 по Москве пройдёт шестой митап в серии Backend United под кодовым названием «Табаско». Вещаем в онлайн-формате. Тема митапа — безопасность. Будем говорить об обнаружении и предотвращении ошибок при написании и эксплуатации кода, которые могут привести к проблемам с секьюрностью.
Традиционно для Backend United речь пойдёт о технологиях и подходах, не завязанных на конкретный язык программирования. Под катом — тезисы выступлений и ссылка на трансляцию.
Мониторинг микросервисных приложений: взгляд SRE

Современная инфраструктура — множество небольших приложений, запущенных в контексте одного менеджера приложений, который упра'вляет их количеством, обновлением и запросами на ресурсы. Она является таковой не потому, что админы решили, будто так удобно ею управлять. Такая инфраструктура отражает текущее мышление в области разработки программного обеспечения. Для того чтобы понять, почему мы сейчас говорим о микросервисной архитектуре как об идеологии, необходимо вернуться на 30 лет назад.
Как готовить коллтрекинг: опыт Циан
Меня зовут Слава, я тимлид одной из продуктовых команд в Циан, которая развивает коллтрекинг. Сегодня хочу рассказать, как читателю Хабра завести коллтрекинг в своем проекте, с какими возможными трудностями предстоит столкнуться и о чем точно стоит подумать заранее.
Мьютекс в мире асинхронного кода
Фото: James P. Blair/National Geographic Creative
Вы когда-нибудь сталкивались со следующей проблемой в rust, когда использовали std::sync::Mutex
в асинхронном коде?
7 | tokio::spawn(/* some future here */);
| ^^^^^^^^^^^^ future returned by `fut` is not `Send`
|
127 | T: Future + Send + 'static,
| ---- required by this bound in `tokio::task::spawn::spawn`
|
Эволюция монолитного приложения в микросервисы
Как правило, когда нужно что-то сделать быстро и дёшево, мы не задумываемся над отказоустойчивостью и масштабируемостью нашего приложения, что через некоторое время обязательно приводит к боли. Современные решения позволяют быстро и просто решить эту проблему.
На примере перехода от монолитного приложения к микросервисам, я попробую показать все плюсы и минусы каждого подхода. Статья разделена на три части:
- В первой части будет рассмотрено монолитное приложение на веб-фреймворке Dash, т.е. генерация данных и их отображение будут находиться в одном месте.
- Вторая часть посвящена разложению монолитного приложения на микросервисы, т.е. генерацией данных будет заниматься один сервис, отображением другой, а связь между ними будет налажена через брокер сообщений Kafka.
- В третьей части микросервисы будут "упакованы" в Docker контейнеры.
Конечное приложение будет выглядеть, как показано на диаграмме снизу.
Ближайшие события
Дихотомия данных: переосмысление отношения к данным и сервисам

Если вы столкнулись со всей этой историей с микросервисами без какого-либо контекста, то вам простительно считать ее немного странной. Разбиение приложения на фрагменты, связанные между собой сетью, непременно означает добавление сложных режимов отказоустойчивости в получившуюся распределенную систему.
Несмотря на то, что такой подход включает в себя разбиение на множество независимых сервисов, конечная цель куда больше, чем просто работа этих сервисов на разных машинах. Речь здесь идет о взаимодействии с окружающим миром, который по своей сути тоже распределенный. Не в техническом смысле, а скорее в смысле экосистемы, которая состоит из множества людей, команд, программ, и каждая из этих частей так или иначе должна выполнять свою работу.
Практикумы от IBM: Quarkus (сверхбыстрая Java для микросервисов), Jakarta EE и OpenShift

Всем привет! Мы уже тоже подустали от вебинаров, их количество за последние пару месяцев перевалило все возможные границы. Поэтому для хабра стараемся подбирать для вас самые интересные и полезные).
На начало июня (надеемся, лето все-таки наступит) мы запланировали несколько практических сессий, которые, уверены, будут интересны разработчикам. Во-первых — расскажем про serverless и новейший сверхбыстрый quarkus (как вам, например, 14мс холодного старта?), во-вторых — Альберт Халиулов расскажет про особенности облачной разработки на Jakarta EE, Microprofile и Docker (каждому участнику выдадим готовую виртуалку для практикума). Ну и наконец 9 июня Валерий Корниенко расскажет как можно развернуть свой OpenShift в IBM Cloud за пару минут. Интересно? Если да — детали под катом.
Кривая хайпа: какие IT-технологии сейчас на пике и на что останется стабильный спрос
Правильные графики Covid-19
Во времена повсеместной одержимости библиотеками и веб-фреймворками мы стали забывать радость от решения задач минимальными средствами. В этой статье, мы запилим веб-сервис на актуальную тему, используя ванильные Python и JavaScript, а также, задеплоим его в GitLab Pages. Быстро, минималистично, без лишних зависимостей, и максимально элегантно.
Вдохновившись видосом How To Tell If We're Beating COVID-19 от minutephysics, я набросал в свободное (от удаленной работы и домашних дел) время сервис, который на основе данных с Карты распространения коронавируса в России и мире от Яндекса строит графики, аналогичные тем, что на странице Covid Trends. Вот, что из этого вышло:
Kubernetes: open source против вендорского
Для начала, что такое Kubernetes. Это система для управления контейнерами на большом количестве хостов. С греческого, кстати, переводится как «пилот» или «рулевой». Изначально разработана Google, после чего в качестве технологического вклада передана Cloud Native Computing Foundation, международной некоммерческой организации, которая объединяет ведущих мировых разработчиков, конечных пользователей и поставщиков контейнерных технологий.

Опыт внедрения Service Mesh на Nomad и Consul
В этой статье мы расскажем, как развернули Service Mesh, решили часть проблем микросервисной архитектуры и уменьшили нагрузку на разработчиков и инженеров инфраструктуры.
Проектирование Kubernetes-кластеров: сколько их должно быть?

TL;DR: один и тот же набор рабочих нагрузок можно запустить на нескольких крупных кластерах (на каждый кластер будет приходиться большое число workload'ов) или на множестве мелких (с малым числом нагрузок в каждом кластере).
Ниже приведена таблица, в которой оцениваются плюсы и минусы каждого подхода:
Вклад авторов
offiziellen 316.0Captain_Jack 260.0badcasedaily1 171.0ph_piter 167.6jirfag 152.0KIVagant 150.0MaxRokatansky 123.0sokolov_maksim 108.0dbraincloud 106.4Wimbo 90.0