Обновить
71.49

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

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

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

.NET Core: Взаимодействие микросервисов через Web api

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

Введение


Практически все, кто имел дело с микросервисами в .NET Core, наверняка знают книгу Кристиана Хорсдала “Микросервисы на платформе .NET”. Здесь прекрасно описаны подходы к построению приложения на основе микросервисов, подробно рассмотрены вопросы мониторинга, журналирования, управления доступом. Единственное, чего не хватает — это инструмента автоматизации взаимодействия между микросервисами.

При обычном подходе при разработке микросервиса параллельно разрабатывается web-клиент для него. И каждый раз, когда меняется web-интерфейс микросервиса, приходится затрачивать дополнительные усилия для соответствующих изменений web-клиента. Идея генерировать пару web-api/web-клиент с использованием OpenApi тоже достаточно трудоемка, хотелось бы чего-то более прозрачного для разработчика.

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

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

Web-клиент для микросервиса должен генерироваться автоматически на основе интерфейса и предоставляться через Dependency Injection.

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

Что такое Service Mesh?

Время на прочтение5 мин
Количество просмотров85K
И снова здравствуйте!.. В преддверии старта курса «Архитектор ПО» мы подготовили еще один полезный перевод.




Service Mesh – это конфигурируемый инфраструктурный уровень с низкой задержкой, который нужен для обработки большого объема сетевых межпроцессных коммуникаций между программными интерфейсами приложения (API). Service Mesh обеспечивает быструю, надёжную и безопасную коммуникацию между контейнеризированными и часто эфемерными сервисами инфраструктуры приложений. Service Mesh предоставляет такие возможности, как обнаружение сервисов, балансировку нагрузки, шифрование, прозрачность, трассируемость, аутентификацию и авторизацию, а также поддержку шаблона автоматического выключения (circuit breaker).
Читать дальше →

Backend United #6: Табаско — разработчики о безопасности

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

Привет! 25 июня в 18:00 по Москве пройдёт шестой митап в серии Backend United под кодовым названием «Табаско». Вещаем в онлайн-формате. Тема митапа — безопасность. Будем говорить об обнаружении и предотвращении ошибок при написании и эксплуатации кода, которые могут привести к проблемам с секьюрностью.


Традиционно для Backend United речь пойдёт о технологиях и подходах, не завязанных на конкретный язык программирования. Под катом — тезисы выступлений и ссылка на трансляцию.


Читать дальше →

Мониторинг микросервисных приложений: взгляд SRE

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


Современная инфраструктура — множество небольших приложений, запущенных в контексте одного менеджера приложений, который упра'вляет их количеством, обновлением и запросами на ресурсы. Она является таковой не потому, что админы решили, будто так удобно ею управлять. Такая инфраструктура отражает текущее мышление в области разработки программного обеспечения. Для того чтобы понять, почему мы сейчас говорим о микросервисной архитектуре как об идеологии, необходимо вернуться на 30 лет назад.
Читать дальше →

Как готовить коллтрекинг: опыт Циан

Время на прочтение9 мин
Количество просмотров4.9K
Привет!

Меня зовут Слава, я тимлид одной из продуктовых команд в Циан, которая развивает коллтрекинг. Сегодня хочу рассказать, как читателю Хабра завести коллтрекинг в своем проекте, с какими возможными трудностями предстоит столкнуться и о чем точно стоит подумать заранее.
Читать дальше →

Мьютекс в мире асинхронного кода

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

failed guard


Фото: 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`
    |
Читать дальше →

Эволюция монолитного приложения в микросервисы

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

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


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


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

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


Читать дальше →

Дихотомия данных: переосмысление отношения к данным и сервисам

Время на прочтение9 мин
Количество просмотров2.2K
Всем привет! У нас отличные новости, в июне OTUS снова запускает курс «Архитектор ПО», в связи с чем мы традиционно делимся с вами полезным материалом.




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

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

Практикумы от IBM: Quarkus (сверхбыстрая Java для микросервисов), Jakarta EE и OpenShift

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

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

На начало июня (надеемся, лето все-таки наступит) мы запланировали несколько практических сессий, которые, уверены, будут интересны разработчикам. Во-первых — расскажем про serverless и новейший сверхбыстрый quarkus (как вам, например, 14мс холодного старта?), во-вторых — Альберт Халиулов расскажет про особенности облачной разработки на Jakarta EE, Microprofile и Docker (каждому участнику выдадим готовую виртуалку для практикума). Ну и наконец 9 июня Валерий Корниенко расскажет как можно развернуть свой OpenShift в IBM Cloud за пару минут. Интересно? Если да — детали под катом.
Читать дальше →

Кривая хайпа: какие IT-технологии сейчас на пике и на что останется стабильный спрос

Время на прочтение4 мин
Количество просмотров10K
В 2017 году спрос на блокчейн-разработчиков рос вместе с курсом биткоина. Количество вакансий снизилось, когда рынок разочаровался в новой технологии. Вместе с представителями Mail.ru Cloud Solutions, Red Hat, Acronis, «Рексофт», SEMrush и Bilderlings разобрались, какие технологии популярны сейчас и на изучение чего стоит тратить время.
Читать дальше →

Правильные графики Covid-19

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

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


Вдохновившись видосом How To Tell If We're Beating COVID-19 от minutephysics, я набросал в свободное (от удаленной работы и домашних дел) время сервис, который на основе данных с Карты распространения коронавируса в России и мире от Яндекса строит графики, аналогичные тем, что на странице Covid Trends. Вот, что из этого вышло:



Интересно? Погнали!

Читать дальше →

Kubernetes: open source против вендорского

Время на прочтение7 мин
Количество просмотров14K
Привет, меня зовут Дмитрий Краснов. Уже более пяти лет я занимаюсь администрированием кластеров Kubernetes и построением сложных микросервисных архитектур. В начале этого года мы запустили сервис по управлению кластерами Kubernetes на базе Containerum. Пользуясь поводом расскажу, что представляет собой этот самый Kubernetes и чем интеграция с вендором отличается от open source.

Для начала, что такое Kubernetes. Это система для управления контейнерами на большом количестве хостов. С греческого, кстати, переводится как «пилот» или «рулевой». Изначально разработана Google, после чего в качестве технологического вклада передана Cloud Native Computing Foundation, международной некоммерческой организации, которая объединяет ведущих мировых разработчиков, конечных пользователей и поставщиков контейнерных технологий.


Читать дальше →

Опыт внедрения Service Mesh на Nomad и Consul

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

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

Читать дальше →

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

Проектирование Kubernetes-кластеров: сколько их должно быть?

Время на прочтение10 мин
Количество просмотров12K
Прим. перев.: этот материал от образовательного проекта learnk8s — ответ на популярный вопрос при проектировании инфраструктуры на базе Kubernetes. Надеемся, что достаточно развёрнутые описания плюсов и минусов каждого из вариантов помогут сделать оптимальный выбор и для вашего проекта.



TL;DR: один и тот же набор рабочих нагрузок можно запустить на нескольких крупных кластерах (на каждый кластер будет приходиться большое число workload'ов) или на множестве мелких (с малым числом нагрузок в каждом кластере).

Ниже приведена таблица, в которой оцениваются плюсы и минусы каждого подхода:
Читать дальше →

Сервис справочников мобильного приложения

Время на прочтение7 мин
Количество просмотров3K
Руслан Ароматов, главный разработчик, МКБ



Добрый день, хабровчане! Я работаю бэкенд-разработчиком в Московском кредитном банке, и в этот раз я бы хотел рассказать о том, как мы организовали доставку рантаймового контента в наше мобильное приложение «МКБ Онлайн». Статья может пригодиться тем, кто занимается проектированием и разработкой фронт-серверов для мобильных приложений, в которые необходимо постоянно доставлять разнообразные обновления, будь то банковские документы, точки геолокации, обновлённые иконки и т. п. без обновления самого приложения в магазинах. Тем, кто разрабатывает мобильные приложения, она тоже не повредит. Статья не содержит примеров кода, только некоторые рассуждения на тему.
Читать дальше →

Эффективные надежные микросервисы

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


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


Какие преимущества появляются при совмещении бизнес-логики и БД? Какие нюансы надо учесть, прибегая к такому подходу? Что с надёжностью и доступностью сервисов? Расскажем подробно об этом всём.

Читать дальше →

Конспект книги «Создание микросервисов»

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

Я ничего не понимаю в микросервисной архитектуре, поэтому решил прочитать и законспектировать книгу Сэма Ньюмена «Создание микросервисов». На мой взгляд, получился неплохой вводный материал для людей, которые начинают погружаться в эту тему.

Читать дальше →

Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению

Время на прочтение7 мин
Количество просмотров29K
Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания актуальными».

Возможно, вы менеджер, который последние 10 лет работал на одном и том же стеке; возможно, вы разработчик, который поддерживает старое решение или пишет на привычном языке в привычной среде. Возможно, вы просто перешли из технического в организационный менеджмент и вдруг выяснили, что все, что вы знали, больше не актуально, и хочется понять — есть ли какой-то относительно простой сценарий, как это можно догнать. Я постараюсь дать советы, основываясь на собственном опыте, — от человека, который осознал, что, находясь на организационном управлении, скоро будет выражаться словами «Kubernetes — это эффективная технология, мы должны стремиться к ее применению», не вполне понимая, что лежит за этими словами и за всей технической культурой, развившейся в последнее время.

Почему я считаю важным уметь менять парадигму технологического мышления?
Читать дальше →

Референтная модель BIAN. Что нового и полезного для корпоративной архитектуры банка она предлагает?

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


BIAN… как мало в этом звуке для сердца русского… Да, я не случайно перефразировала всем известного классика. В России популярность референтной модели BIAN все еще низкая, особенно в сравнении с моделью Enhanced Telecom Operations Map (eTOM), распространенной в опережающей по своему развитию телекоммуникационной отрасли. А между тем, модель BIAN развивается, совершенствуется и набирает популярность за пределами России и в международном сообществе банковской индустрии.

Не стану более отвлекать читателя на лирические отступления, скажу только, что обзор модели BIAN и сопроводительных документов стандарта есть в первой моей статье о BIAN, здесь же постараюсь рассказать, чем BIAN может быть полезен бизнес-менеджерам, бизнес-архитекторам, корпоративным архитекторам, архитекторам решений, ИТ-специалистам и всем другим лицам, интересующимся управлением всей архитектуры финансового предприятия. А также о его ключевых полезных трансформациях, на мой взгляд.
Читать дальше →

IntelliJ IDEA 2020.1: Java 14, анализ потока данных в отладчике, новый режим LightEdit и многое другое

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

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


На прошлой неделе состоялся релиз IntelliJ IDEA 2020.1, и в этом посте мы коротко расскажем о самом интересном в новой версии. Из крупного: мы добавили поддержку Java 14, анализ потока данных в отладчике, режим редактирования файлов без открытия проекта (LightEdit) и новые фичи для разных фреймворков. Все подробности можно узнать на странице What’s new.


Читать дальше →