Обновить
72.6

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

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

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

Vault+Pydantic: продолжение саги, локальная разработка

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


Предыстория


Предыдущая статья


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


В Sitri данная проблема решается достаточно просто — с помощью локального режима для ваших классов настроек, то есть вам не придётся даже переписывать ничего или дублировать код, да и структура json файла для локального режима будет почти полностью повторять структуру секретов.


Итак, ну а теперь, давайте добавим в наш проектик буквально пару строк кода + я покажу, как со всем этим можно работать, если ваш проект локально запускается в docker-compose.

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

Построение инфраструктуры распределенной трассировки Netflix

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

«@Netflixhelps Почему "Король тигров" не идет на моем телефоне?» — подписчик Netflix спрашивает через Twitter

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

Читать далее

Микросервисы на монолите

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

Всем привет! 

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

Читать далее

Внести массовые изменения в микросервисы, автоматизировать код-ревью и сберечь нервы команде

Время на прочтение2 мин
Количество просмотров4.8K
Представьте ситуацию — ваше задание на работе изменить формат логирования. Сначала всё кажется просто. Ровно до того момента, пока все эти изменения не нужно вносить в 80+ микросервисах… И так легкая на первый взгляд задача превращается в длинную и рутинную. Что можно с этим делать?

Или вот еще задачка — какими фичами можно обеспечить скорость, качество и удобство code review?

Обо всём этом рассказывают Java-разработчики ЮMoney в своих докладах. Добавляйте в закладки или смотрите прямо сейчас. Видео с таймкодами уже ждут под катом.


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

Выявление аномалий в микросервисной архитектуре — обзор инструментов для DevOps и SRE

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

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


Тема детектирования аномалий сейчас очень актуальна, так как с переходом на микросервисы для SRE и DevOps приоритет задач, связанных с преобразованием алертов в осмысленный сигнал, снижением MTTD и упрощением настройки алертов в мониторинге распределенных сред значительно повысился.


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

Vault+Pydantic: конфигурация с четкой структурой и валидацией

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

image


Предисловие


Продолжение саги. Сразу, на всякий случай


В данной статье я расскажу о конфигурации для вашей сервисов с помощью связки Vault (KV и пока только первой версии, т.е. без версионирования секретов) и Pydantic (Settings) под патронажем Sitri.

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

Как создать микросервис на PaaS

Время на прочтение15 мин
Количество просмотров4K
Если вам интересно, как можно автоматизировать повседневные задачи разработчиков и построить удобную систему оркестрирования зависимостей ваших сервисов, загляните под кат. Об этом в своем докладе на конференции Golang Live 2020 рассказал разработчик продуктовой команды «Авито» – Auto B2B Иван Королев. Он затронул тему платформенных решений для создания микросервисов и на живом примере продемонстрировал, как происходит создание и развитие микросервиса в «Авито».



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

Создаем высокопроизводительные микросервисы с помощью gRPC, Ballerina и Go

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

В рамках современной микросервисной архитектуры мы можем разделить микросервисы на две основные группы в зависимости от их взаимосвязи и взаимодействия. Первая группа представляет из себя внешние микросервисы, которые напрямую доступны пользователям. В основном это API на основе HTTP, которые используют обычные текстовые сообщения (JSON, XML и т. д.), оптимизированные для использования сторонними разработчиками, использующие передачу репрезентативного состояния (REST) ​​в качестве коммуникационной технологии. 

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

Читать далее

Скрытые расходы при переходе на микросервисы

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

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

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

Читать далее

End User Monitoring — контролируем производительность фронтенда с помощью Instana

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

На прошлой неделе мы выложили пост про то, как мы мониторим backend и микросервисную инфраструктуру с помощью Instana, и пообещали написать продолжение про мониторинг frontend.


В итоге мы решили не ограничиваться обзором Instana в качестве инструмента контроля frontend, а копнуть немного глубже и рассказать, для чего вообще нужен End User Monitoring, с какими проблемами производительности фронта мы сталкиваемся чаще всего, какие мы используем сценарии работы с собранными данными, и как Instana помогает нам контролировать пользовательский опыт в целом.


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

Макропроблема микросервисов

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

Всего за 20 лет разработка ПО перешла от архитектурных монолитов с единой базой данных и централизованным состоянием к микросервисам, где всё распределено по многочисленным контейнерам, серверам, ЦОДам и даже континентам. Распределённость упрощает масштабирование, но привносит и совершенно новые проблемы, многие из которых раньше решались с помощью монолитов.

Давайте с помощью краткого экскурса по истории сетевых приложений разберёмся, как мы пришли к сегодняшней ситуации. А затем поговорим о модели исполнения с сохранением состояния (stateful execution model), используемую в Temporal, и о том, как она решает проблемы сервис-ориентированных архитектур (service-oriented architectures, SOA). Я могу быть предвзятым, потому что руковожу продуктовым отделом в Temporal, но считаю, что за этим подходом будущее.

Protobuf vs Avro. Как сделать выбор?

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

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

Читать далее

Мой маленький Kubernetes: настраиваем тестовый кластер в VirtualBox

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

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

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

Обычно изучение Kubernetes стоит начинать с minikube - консольной утилиты, которая умеет быстро создавать кластер из одного узла с использованием VirtualBox. Это самый лучший вариант для быстрого старта.

Но есть и другой вариант. Можно взять VirtualBox, создать несколько виртуальных машин, например, с Ubuntu Server и настроить небольшой кластер Kubernetes прямо на своём домашнем компьютере.

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

Здесь я решил собрать всё вместе и описать процесс настройки небольшого кластера Kubernetes с использованием VirtualBox настолько подробно, насколько мне самому хотелось бы его видеть. Надеюсь, что эта информация сможет помочь другим разработчикам в их экспериментах.

Осторожно, трафик! В статье очень много скриншотов.

Читать далее

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

Импорт ЕГРЮЛ ФНС средствами Apache NiFi. Шаг 2 — преобразование XML в JSON

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

В одном из проектов возникла необходимость перевести процессы импорта данных сторонних систем на микросервисную архитектуру. В качестве инструмента выбран Apache NiFi. В качестве первого подопытного выбран импорт ЕГРЮЛ ФНС.


В предыдущей статье было описано, как получить файлы XML с данными ЕГРЮЛ, которые требуется импортировать.


В данной статье описан способ преобразования XML в JSON.


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

Observability система для микросервисов на примере Instana, часть 1

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

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

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

Мы прошли этот путь больше года назад, когда изучали инструменты, которые стоит использовать вне стандартной связки Prometheus + Grafana. Обзор получился объемным, поэтому разбили на две части.

Поехали

Анонс вебинара по зонтичной системе мониторинга Broadcom DX Operations Intelligence

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

Запись вебинара

Приглашаем вас в эту пятницу (27 ноября) принять участие в вебинаре, на котором представители Broadcom в России презентуют новую зонтичную систему мониторинга Digital Operational Intelligence (DX OI). Во время сессии мы поговорим об основных функциях системы и рассмотрим основные разделы пользовательского интерфейса. Мы покажем как, опираясь на функциональные возможности DX OI, вы сможете обеспечить значительную операционную эффективность IT-подразделений, что позволит им принимать более быстрые и правильные решения для повышения качества ИТ-услуг и бизнес-сервисов за счет междоменного контекстного анализа.
Читать дальше →

Управляем технологиями в компании без тех. радара

Время на прочтение6 мин
Количество просмотров3.6K
В цикле развития любой быстрорастущей компании наступает момент, когда CIO, CTO, главный технический архитектор (нужное подчеркнуть) задумывается о том, что компания доросла до уровня осознанного управлении технологиями, и нужно начинать двигаться в эту сторону. Первое, что приходит в голову, — визуализировать технологии, с которыми каждый день работают сотрудники. Кажется, этого достаточно. Но решает ли это проблему управления технологиями? Давайте разбираться — и добро пожаловать под кат.


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

Анонс: Ломаем приложение в Docker и строим безопасный пайплайн в Gitlab

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

20 ноября пройдет ежегодная конференция Archdays, где мы c Пашей Канн в рамках демонстрации покажем пример того, как может быть взломано приложение в Docker и как с нуля собрать пайлпайн с проверками безопасности на базе GitLab CI.

Взлом будет проходить в соответствии с инструкцией репозитория Pentest-In-Docker, который мы подготовили специально для Archdays. Есть также версия на русском языке, попробовать получить root на linux-хосте можно уже сейчас.

Читать далее

Укрощение Data-ориентированной сервисной сетки

Время на прочтение6 мин
Количество просмотров1.5K
Микросервисы — модная и распространённая сегодня архитектура. Но когда количество микросервисов разрастается до тысяч и десятков тысяч микросервисов, что делать со «спагетти» огромного графа зависимостей, как удобно изменять сервисы? Специально к старту нового потока курса «профессия Data Scientist» мы подготовили перевод материала, в котором рассказывается о Viaduct — ориентированной на данные сервисной сетке от Airbnb, по сути, повторяющей путь парадигм программирования — от процедурного до ориентированного на данные подхода. Подробности под катом.


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

Как мы распилили монолит. Часть 3, Frame Manager без фреймов

Время на прочтение6 мин
Количество просмотров4.8K
Привет. В прошлой статье я рассказал про Frame manager — оркестратор фронтовых приложений. Описанная реализация решает многие проблемы, но в ней есть недостатки.

Из-за того, что приложения грузятся в iframe, появляются проблемы с версткой, некорректно работают плагины, клиенты по-прежнему скачивают два бандла с Ангуляром, даже если версии Ангуляра в приложении и Frame Manager’е одинаковые. Да и использовать iframe в 2020 году кажется моветоном. А что, если отказаться от фреймов и загружать все приложения в один window?

Оказалось, это возможно, и сейчас я расскажу, как это реализовать.


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