Обновить
78.88

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

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

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

Межкластерная репликация Apache Kafka между тремя дата-центрами

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

Я Роман Ананьев, NoSQL/Kafka-инженер в Авито. В этом материале расскажу, как мы попробовали использовать брокер сообщений Apache Kafka в трёх дата-центрах и что из этого получилось.

Сначала пробегусь по архитектуре Kafka, потому что она играет роль в репликации между кластерами. Затем коснусь самих способов репликации и расскажу о двух инструментах для неё: MirrorMaker и uReplicator. Основная часть статьи — про нашу реализацию Kafka cluster federation и то, как Kafka размазана на несколько дата-центров.

Читать далее

Интеграционное тестирование микросервисов Spring Boot в монорепозитории

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

Привет, Хабр! С ростом количества микросервисов и их взаимосвязей может возникнуть потребность комплексной проверки работоспособности системы. Со временем API сервисов и их поведение может дорабатываться и изменяться, при этом хочется иметь уверенность, что система микросервисов в совокупности ведёт себя согласно ожиданиям. Мы разберём простой пример написания интеграционных тестов, которые в дальнейшем можно встроить в CI/CD-процесс для решения подобной проблемы.

Читать далее

Security микросервисов с помощью Spring, OAuth2, JWT и Service Account

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

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

Читать далее

Паттерны асинхронных обменов на платформе Авито

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

Привет! Меня зовут Павел Агалецкий, я старший инженер в команде архитектуры. Одна из областей ответственности нашей команды — синхронное (RPC) и асинхронное взаимодействие между сервисами. 

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

Читать далее

Гайд по поиску и устранению утечек памяти в Go сервисах

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

Привет меня зовут Игорь и я профессионально занимаюсь веб разработкой с 2005 года, раньше это называлось "веб-мастер", а сейчас full-stack developer.

На данный момент я tech lead в одной классной команде и иногда мне приходиться писать много текста в confluense, что бы не объяснять всё дважды и заодно приумножить knowledge base компании. Этот гайд мои "заметки на полях" в ходе исследования одного инцидента.

Читать далее

Module Federation: простая загрузка динамических модулей

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

Всем привет! Меня зовут Евгений, я работаю frontend-разработчиком в платформенной команде. Моя задача — помогать другим frontend-разработчикам выполнять их задачи эффективнее. Мы в Delivery Club больше года назад внедрили подход с микрофронтендами, о чём писали здесь. Вы можете найти и много других статей с описанием этого подхода.

После выхода стабильной версии Webpack 5 мы решили использовать плагин Module Federation в качестве основного способа загрузки микрофронтендов. В этой статье расскажу, с какой проблемой столкнулся при загрузке динамических модулей и как её решил. Описывать будут на примере плагина Module Federation во всех деталях. Если вы слышите про этот инструмент впервые, то советую предварительно ознакомиться.

Читать далее

Микросервисный фреймворк Flogo — собираем систему из кирпичиков

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

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

Читать далее

Эволюция архитектуры Авито, или Как мы монолит в Kubernetes затолкали

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

Всем привет, я Александр Данковцев, lead engineer команды Antimonolith. Как можно догадаться, в Авито я занимаюсь распилом монолита. 

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

Читать далее

Как микро-фронтенд меняет будущее Angular?

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

Выясняем почему Angular — лучшая платформа для микро-фронтенда.

Читать далее

Архитектура на «микросервисах» в монолите: проект из практики

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

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

На старте было просто: связаться с нами можно было только через почту. Входящим ящиком был IMAP, исходящим — SaaS сервис по отправке почты, забрать письма с которого было то еще приключение. Мы смотрели на заголовки и соединяли письма в цепочки, как в любом почтовике: Gmail, Outlook. В таком виде передавали операторам. 

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

Так появился проект линковка.

Читать далее

Как создать микросервисное приложение за 15 минут. Часть 1

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

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

Меня зовут Виктор Бирюков, я главный руководитель IT-направления в СберТехе — компании, которая создаёт основные технологические решения для Сбера. В статье я расскажу, как с помощью PaaS-инструментов упростить и ускорить разработку микросервисов так, чтобы в конечном счёте на создание полноценного продукта у вас уходило не больше 15 минут.

У этой статьи будет продолжение. В этой части мы познакомимся с сервисом Platform V DataSpace и напишем frontend-приложение, используя DataSpace как сервис (Backend-as-a-Service3). Во второй статье разберём Platform V Functions, напишем backend-приложение как облачную функцию и разместим наше frontend-приложение также как функцию (Function-as-a-Services4).

Читать далее

Что ждёт Kubernetes в России в 2022: мнения инженеров

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

Мы задали экспертам несколько вопросов о том, как они видят дальнейшую работу с Kubernetes в России, нужен ли нам какой-то другой оркестратор и стоит ли изучать k8s, если ещё не начал с ним работать. В посте рассказываем, что думают обо всём этом коллеги из Southbridge, Слёрма, ITSumma и Х5 Group.

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

Как работает RBAC в Kubernetes

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

RBAC (Role-based access control) — это система распределения прав доступа к различным объектам в кластере Kubernetes.

Объекты в кластере Kubernetes — это YAML-манифесты, а права доступа определяют, какому пользователю можно только просматривать манифесты, а кто может их создавать, изменять или даже удалять.

Рассказываем, как устроен RBAC.

Читать про RBAC

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

Интернет-сервисы в 2022 — строим бизнес и не плачем

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

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

Трудно не заметить, что все больше пользователей выбирают большие площадки по типу маркетплейсов и агрегаторов вместо простых сайтов. И конкурируют между собой уже не мелкие сайтики – а вот такие жирные гиганты. Ozon или Wildberries? AliExpress или Яндекс.Маркет? И вряд ли кто-то даже вспомнит про условный потрясныешмотки.ру, даже если увидят их баннер.

Как выглядят сегодня пользовательские привычки? Как улучшить клиентский опыт? И самое главное – как обычному сайту стать сервисом? Об этом сегодня и пишу.

Читать далее

gRPC на практике: особенности, преимущества и недостатки

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

Привет, Хабр!  Разрабатывая экосистему для «Метр квадратный», мы со старта проекта планировали большую линейку продуктов. Поэтому подбирали стек, который поможет реализовать максимум идей. В итоге мы пришли к протоколу gRPC.

 В этом материале я расскажу:

— о преимуществах gRPC;

— об особенностях работы с протоколом, и о том, как с ними жить;

— о тех проблемах, с которыми мы столкнулись; 

— и о том, как их решить.

gRPC или не gRPC?

Архитектура Kubernetes – руководство для «чайников», 5 новых функций Podman, которые стоит попробовать…

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

... а также видео-тур по Ansible Automation Platform 2.0.

Новая порция инсайтов, гайдов, книжек и советов. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Архитектура Kubernetes...

Atlas: Путешествие Dropbox от монолита на Python до managed-платформы

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

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

Чтобы всегда радовать пользователей, сервис Dropbox должен быть надежным и отзывчивым. С самого начала нам, как компании, приходилось масштабироваться. Сегодня нашими услугами пользуются более 700 миллионов зарегистрированных пользователей со всех уголков планеты. В общей сложности они ежесекундно генерируют минимум 300 тыс. запросов. Увы, системы, отлично подходившие для стартапа, перестали справляться с возросшей нагрузкой. Возникла насущная потребность разработать новую модель для внутренних систем и, конечно, придумать способ перехода на нее без риска угробить основной продукт в процессе.

В этой статье мы расскажем, как и почему разработали и развернули Atlas — платформу, реализующую основные преимущества сервис-ориентированной архитектуры (SOA) и при этом минимизирующую типичные издержки, связанные с владением сервисом.

Читать далее

Go-контексты и микросервисы. Как решить проблему с соединениями к базе при помощи контекстов

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

Всем привет! В статье расскажу:

— Как и почему у нас возникла необычная проблема, вызвавшая поток 400-ых ошибок. 

— Как реализовали полноценную поддержку отмены операций в микросервисе.

— Как реализовали свой пул подключений к базе для переиспользования подключений к базе в рамках запроса к сервису.

— Как применили контексты в микросервисе и что от этого получили.

Читать далее про контексты и микросервисы

Зарубежный опыт: как избавиться от 80% кода, увеличить скорость разработки и уменьшить количество ошибок

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

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

Под катом тех– и тимлид Йонас Тулструп, один из разработчиков датского сервиса MobilePay, демонстрирует, что отказ от излишних абстракций позволяет писать более чистый код. А именно: существенно уменьшать его сложность, повышать читабельность и удобство поддержки. Обсуждаемые подходы основаны на широко известных принципах KISS («Делай проще») и YAGNI («Вам это не понадобится»), и применимы к большинству видов разработки ПО.

Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.

Читать далее

Мой опыт с Webpack 5 Module Federation

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

Всем привет. Меня зовут Михаил, я - фронтенд-разработчик в Лиге Цифровой Экономики.

В последнее время я пробую себя в должности руководителя направления фронтенд-разработки, однако я хочу с вами поделиться опытом разработки приложения с применением Webpack Module Federation, о том, какие задачи приходилось решать и проблемы, которые возникли на этом пути. Не буду вдаваться в теорию о микрофронтах и module federation, об этом уже много написано и предполагается, что вы знакомы с базовой настройкой. Мы же поговорим о самом «вкусном», некоторые моменты будут опущены в целях сосредоточения на деталях.

Читать далее