Обновить
68.94

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

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

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

Как превратить скрипт на Python в «настоящую» программу при помощи Docker

Время на прочтение4 мин
Количество просмотров76K
Никого не интересует, умеете ли вы разворачивать связанный список — всем нужно, чтобы можно было легко запускать ваши программы на их машине. Это становится возможным благодаря Docker.


Для кого предназначена эта статья?


Вам когда-нибудь передавали код или программу, дерево зависимостей которой напоминает запутанную монтажную плату?


Как выглядит управление зависимостями

Без проблем, я уверен, что разработчик любезно предоставил вам скрипт установки, чтобы всё работало. Итак, вы запускаете его скрипт, и сразу же видите в оболочке кучу сообщений логов ошибок. «У меня на машине всё работало», — обычно так отвечает разработчик, когда вы обращаетесь к нему за помощью.

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

В частности, мы рассмотрим скрипты, которые должны работать как фоновый процесс.
Читать дальше →

Full-stack мониторинг на примере Java приложений

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

Всем привет! За последние пять лет мы достаточно часто сталкивались с запросами на мониторинг Java приложений. Собрав основные моменты по мониторингу Java, мы решили написать данный пост.

Сегодня мы с вами рассмотрим, что такое Full Stack мониторинг и чем он отличается от привычного “уху” понятию мониторинга, нюансы Full Stack мониторинга для Java и сложности мониторинга микросервисных приложений на Java. Расскажем, как мы реализуем Full Stack мониторинг с помощью OpenSource стандартов и платной платформы. 

Давайте определимся, что мы называем Full Stack мониторингом?

Full stack мониторинг – это подход в мониторинге производительности приложений, который подразумевает под собой мониторинг всего стека, что включает в себя:

Мониторинг приложений – сбор метрик приложения, сбор трейсов транзакций, обеспечение видимости на уровне кода и т.д.

Мониторинг инфраструктуры – метрики хостов, процессов, контейнеров и т.д.

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

Читать далее

Микросервисы: почему это не панацея?

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


В последние годы только ленивый не слышал о микросервисах. «Долой монолитную архитектуру, микросервисы — это будущее веб-разработки!» — об этом трубят буквально все компании, в технологическом стеке которых появились Kubernetes и начали внедряться практики DevOps.

Вот только стоит ли вам что-то менять в софте, если и так все работает? Давайте разбираться.
Читать дальше →

О мифологии миграции монолита в облака

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

Около десяти лет назад микросервисы получили первое признание. С тех пор масса фирм воспользовалась услугами облачных провайдеров и перенесла свои сервисы к ним. А некоторые из них даже успели разочароваться в облачных технологиях и вернулись к традиционной схеме монолита (или почти к ней). 

Эта статья - не попытка уговорить вас на перенос вашего монолита в облако или отговорить от этого. Это попытка описать мифы по поводу такого переноса. 

Читать далее

Первый митап Почтатеха «DevOps на набережной»

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

29 апреля в Санкт-Петербурге состоится первый открытый митап Почтовых технологий — цифровой «дочки» Почты России.

Почему «на набережной»? Дело в том, что мероприятие пройдёт в гибридном формате — первые 50 зарегистрировавшихся смогут бесплатно посетить его вживую в нашем питерском офисе на Аптекарской набережной. Для остальных будет доступна онлайн-трансляция.

29 апреля мы поговорим о DevOps. Как создавать отказоустойчивые приложения на базе Kubernetes? Своим опытом поделятся три эксперта из Почтатеха, Yandex.Cloud и IT-one.

Читать далее

Тонкости реализации Singleton на Golang

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

Привет, друзья.

Меня зовут Alex Versus и сегодня с вами посмотрим шаблон Singleton, реализацию на языке Golang.

Какая суть?

Одиночка - относится к порождающим шаблонам. Гарантирует:

Читать далее

Использование Spring Cloud Stream Binding с брокером сообщений Kafka

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

Всем привет! Меня зовут Виталий, я разработчик в компании Web3Tech. В этом посте я представлю основные концепции и конструкции платформы Spring Cloud Stream для поддержки и работы с брокерами сообщений Kafka, с полным циклом их контекстного unit-тестирования. Мы используем такую схему в своем проекте всероссийского электронного голосования на блокчейн-платформе Waves Enterprise.

Являясь частью группы проектов Spring Cloud, Spring Cloud Stream основан на Spring Boot и использует Spring Integration для обеспечения связи с брокерами сообщений. При этом он легко интегрируется с различными брокерами сообщений и требует минимальной конфигурацией для создания event-driven или message-driven микросервисов.

Читать далее

Угрожает ли микросервисная (контейнеризация) архитектура светлому будущему Published Apps (Citrix & Co.)

Время на прочтение2 мин
Количество просмотров1.2K
Идея данного опроса возникла в результате дискуссии с коллегами, навсегда «завязавшими» с темой Virtual App and Desktop и нашедшие себя в направлении Kubernetes/Cloud.

Несмотря на то, что последние годы моя профессиональная деятельность непосредственно связана с темой Citrix, я также как и мои коллеги не могу не заметить отсутствие особых перспектив развития технологии доступа к Apps посредством терминальных сессий (особенно on-Premise).
Читать дальше →

Путь IVI от монолита к микросервисам

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

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

Читать далее

Serverless-архитектура сегодня: как бессерверные решения меняют разработку

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

Привет, Хабр! В комментариях к статьям из нашего хаба часто спорят: полезна ли Serverless. Хочу поднять флаг миротворца — и сказать, что бессерверная технология меняет весь рабочий процесс и взгляд на разработку. Для этого есть несколько причин.

Serverless смещает оплату в сторону подхода pay-as-you-go: вы платите столько, сколько израсходовано процессорного времени (плюс-минус 100 мс). Вы не ждёте запуска сервера, не распределяете нагрузку и не заморачиваетесь с техобслуживанием. Задача написана — задача исполнена. С другой стороны, возникают проблемы холодного старта, а многим проектам не подходит отсутствие чёткого контроля контейнера. В этой статье я расскажу, в каких именно случаях может пригодиться Serverless и когда к ней надо присмотреться.

Читать далее

Учим ASP.NET Core новым трюкам на примере Json Rpc 2.0

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

Хотите добиться нестандартного поведения от aspnet core? Мне вот понадобилось добавить прозрачную поддержку Json Rpc. Расскажу о том, как я искал решения для всех хотелок, чтобы вышло красиво и удобно. Может быть, вам пригодятся знания о разных точках расширения фреймворка. Или о тонкостях поддержки Json Rpc, даже на другом стеке/языке.


В результате получилась библиотека, которая позволяет работать с Json Rpc, вообще не задумываясь, что он спрятан под капотом. При этом пользователю не нужно уметь ничего нового, только привычный aspnet mvc.

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

Собственный провайдер пользователей для Keycloak

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

Интегрируя Keycloak в уже существующую систему, высока вероятность столкнуться с необходимостью во время аутентификации загружать пользователей из древней базы данных, где информация о них может храниться в довольно причудливом виде. Такая задача решается созданием собственного провайдера пользователей (User Federation Provider в терминологии Keycloak). Ниже будет представлено краткое руководство по написанию такого провайдера.

Читать далее

8 апреля — Backend stories meetup (онлайн)

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

Привет!

У нас через неделю очередной онлайн-митап, на этот раз для бекендеров. Будет 2 доклада от нас (Дмитрий @kruftik Гадеев и Роман Бледнов), а также доклад от Максима Степачева, разработчика GridGain.

Всё как всегда — онлайн, бесплатно, в 19.00 МСК, будет трансляция и запись, главное зарегистрируйтесь по ссылке заранее, чтобы мы смогли прислать вам все ссылки.

Программа под катом.

Читать далее

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

Честные глаза плагиатора, или еще один взгляд на будущее систем обнаружения заимствований

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

Развивать систему, созданную 16 лет назад, «конечно, не подвиг, но вообще что-то героическое в этом есть» (с). От пользователей регулярно прилетают вопросы: что будете делать дальше? Каким будет Антиплагиат через несколько лет? Все правильно, все верно – нельзя позволять рутине себя засасывать настолько, чтобы не оставалось времени подумать о далеком…, о жестоком…, ну вы поняли… о будущем.


Действительно, начало весны (отчетность закончилась, а сессия еще не началась) – самое удобное время для стратегических планов. Ну а заодно и для удовлетворения любопытства наших пользователей.


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



Кадр из а/ф «Шрек 2» (англ. « Shrek 2»), DreamWorks Pictures, 2004 год


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

История Учи.ру: от мини-монолитов до микросервисной архитектуры

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

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

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

Читать далее

Несколько трансформаций одновременно: не по книжкам, а ровно наоборот

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

Общепринятые мировые практики против проведения нескольких трансформаций в компании одновременно. И все же они возможны, при соответствующей подготовке, привлечении необходимых ресурсов и правильном мониторинге результатов. Плюсами и минусами одновременных трансформаций на конференции DevOps Live 2020 поделился лидер трайба IT4IT в ОТП Банке Максим Ефимов. 

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

Читать далее

Разложение монолита: Декомпозиция БД (часть 2)

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

Эта статья является заключительным конспектом книги «От монолита к микросервисам». Материал статьи посвящен декомпозиции БД во время процесса разложения монолита на микросервисы.

Извлечение микрослужбы не «делается» до тех пор, пока код приложения не будет работать в его собственной службе, а данные, которыми он управляет, не будут извлечены в его собственную логически изолиро­ванную БД. Однако в какой последовательности извлечения должны выполняться?

Читать далее

Развертывание ML модели в Docker с использованием Flask (REST API) + масштабирование нагрузки через Nginx балансер

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

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


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

Бессерверные функции для микросервисов — хорошее решение, но не забывайте про гибкость

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

При проектировании и планировании новой архитектуры на основе (микро) сервисов бывают моменты, когда архитекторам приходится думать о стратегии развертывания и, следовательно, задаваться вопросом: «Должны ли мы развернуть этот (микро) сервис как бессерверную функцию или лучше поместить его в контейнер? Или, быть может, лучше использовать выделенную виртуальную машину (VM)?»

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

Кроме того, их модель оплаты по мере использования (“pay per use”) очень привлекательна, когда мы не уверены, какая нагрузка придется на наше приложение. Позже, когда сервис станет зрелым и нагрузка станет предсказуемой, может оказаться целесообразным перейти к более традиционной топологии развертывания, основанной на контейнерах или выделенных серверах.

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

Читать далее

Разложение монолита: Декомпозиция БД (часть 1)

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

Эта статья является конспектом книги «От монолита к микросервисам». Материал статьи посвящен декомпозиции БД во время процесса разложения монолита на микросервисы.

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

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

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

Читать далее