Как стать автором
Обновить
68.91

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

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

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

Разработка собственного плагина для nx (executor и generator)

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

В продолжении к предыдущей статьи, погружение в nx.

Практический урок по написанию собственного плагина, на примере react приложения.

Читать далее
Рейтинг0
Комментарии2

Наблюдаемость сетевой инфраструктуры Kubernetes. Часть вторая

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

Вторая часть статьи "Наблюдаемость сетевой инфраструктуры Kubernetes" про рассмотрение Observability инструментов.

В этой части мы сравним разворачиваемые решения в выбранном сетевом сценарии на основе собранных метрик приложения и кластера Kubernetes. Сделаем выводы о дальнейшем использовании инструментов в DevOps/K8S окружении.

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

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии6

Асинхронные микросервисы на Python

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров15K

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

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

Читать далее
Всего голосов 13: ↑9 и ↓4+8
Комментарии12

Большое обновление Propan Framework. Куда дальше?

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

Пару месяцев назад я рассказал вам о своем фреймворке для работы с различными брокерами сообщений - Propan.

Тезисно повторю: это идейный наследник FastAPI, но для написания асинхронных микросервисов (привет, Kombu). Он настолько облегчает взаимодействие с брокерами сообщений, что данный архитектурный паттерн переходит из разряда

слишком сложно, это для хайлоад, некогда разбираться

в разряд

а давай отдадим нашему стажеру сервис, он по документации разберется

(Причем это реальный кейс)

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

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

Ну что там у тебя
Всего голосов 11: ↑9 и ↓2+8
Комментарии0

Истории

Паттерн Saga в микросервисной архитектуре

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


Автор статьи: Артем Михайлов

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

Но, разумеется, с такой архитектурой возникают и свои сложности, особенно касающиеся управления транзакциями. Когда у нас был монолит, одна транзакция могла обернуть в себя несколько операций и либо выполняться успешно, либо полностью откатываться при ошибке. В микросервисах такой простоты уже нет.
Читать дальше →
Всего голосов 20: ↑10 и ↓10+1
Комментарии17

Элегантные «квантовые» микросервисы

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

Статья описывает кейс разработки микросервисной системы. При работе над системой была использована теория, описанная в статье "Математические аспекты хорошего кода".

В рамках этого кейса описаны:

Снижение когнитивной нагрузки на программиста

"Квантовая" архитектура

Автоматическая обработка данных

Аспектно-ориентированное программирование

Генерация кода (T4)

Метапрограммирование

Межсервисное взаимодействие

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

Q: Почему "квантовые"?
A: Потому что являются одновременно микросервисами и монолитом.

Читать далее
Всего голосов 8: ↑6 и ↓2+5
Комментарии33

Заметки об основах программной архитектуры

Время на прочтение9 мин
Количество просмотров20K
Это вводное руководство для архитекторов программного обеспечения. В настоящее время звание «архитектор» очень популярно во всем мире, но не существует настоящего руководства, как стать архитектором программного обеспечения.

1. Общая концепция архитектуры программного обеспечения
2. Архитектурные стили
3. Технология
4. Софт скиллз (принятие архитектурных решений, методы анализа рисков, навыки подачи материала, отношения с командой менеджеров, ведение переговоров, планирование карьеры архитектора)
5. Принципы проектирования
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Как управлять качеством продукта в условиях микросервисной архитектуры

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

Всем привет! Я Антон Телицын, продакт-менеджер в Тинькофф. Расскажу про наш опыт управления качеством продукта. Для меня качество продукта отражается через его соответствие ожиданиям пользователя, но глобально качество продукта во многом зависит от надежности, скорости и доступности сервисов, которые его составляют.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Плюсы и минусы FastAPI в 2023

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров16K

Всем привет, меня зовут Абай. Я являюсь Back-End разработчиком в 13LAB.

После прочтения интересной статьи со сравнением NodeJS и FastAPI, у меня появилось желание высказать свое личное мнение об удобстве разработки бэкенда на Python и фреймворке FastAPI.

FastAPI - является легковесным асинхронным фреймворком для Python, который используют преимущественно для разработки API-сервисов. Фреймворк довольно молодой и существует всего лишь 5 лет. До 2021 года не имел большой популярности по сравнению с Flask и Django, но на данный момент уже стал намного востребованнее, что его стали использовать в МAANG компаниях, к примеру...

Читать далее
Всего голосов 14: ↑13 и ↓1+17
Комментарии23

Моделирование микросервисов. Часть 3

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.8K

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

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии0

Микросервисы Rust в серверном WebAssembly

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров5.7K
image

Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+23
Комментарии11

RabbitMQ Direct Reply-to. RPC поверх кролика без дополнительных очередей (пример на Python)

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

Реализацией RPC запросов поверх брокеров сообщений никого не удивишь: очередь для запроса, очередь для ответа — ничего сложного.


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


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


На самом деле, в RabbitMQ есть механизм и для такого сценария. Но он спрятан в недрах документации и о нем почти нет информации в интернете (особенно рабочих примеров кода).


Вот это недоразумение мы сейчас и исправим.

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

Как из метрик Prometheus построить график Latency

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров19K

Обычно мы подключаем сбор метрик в prometheus к нашим web‑приложениям с помощью каких‑то клиентских библиотек, которые отдают метрики на /metrics. В этой статье я хочу рассказать как визуализировать Latency с помощью Histogram метрики.

Будет полезно тем, кто еще не строил метрики из Prometheus, а так же тем, кто хочет понять как их интерпретировать.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии9

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

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

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

Хорошо быть умелым разработчиком и самому закрывать все задачи по запуску микросервисных приложений. Но как быть, если команда разработчиков тратит все время на управление микросервисными приложениями, настройку систем безопасности, аутентификации, мониторинга, логирования? Можно писать код и самостоятельно запускать каждый компонент, а можно нажать несколько кнопок и развернуть микросервис. Именно для этого мы создали консоль в платформе контейнеризации dBrain.cloud. В этой статье хотим подробнее рассказать, зачем и кому она будет полезна.

Что такое консоль dBrain
Всего голосов 2: ↑0 и ↓2-2
Комментарии4

Изнанка архитектуры, или Менять нельзя оставить

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

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

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

Читать далее →
Всего голосов 7: ↑6 и ↓1+8
Комментарии7

Как мы упростили жизнь высоконагруженным сервисам с Platform V SessionsData. Часть 3

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

Привет, Хабр! С вами Андрей Чернов — Java-архитектор микросервисов в СберТехе.

Это третья часть материала про то, как мы развиваем Platform V SessionsData — высокопроизводительное распределённое in-memory хранилище для общего контекста сессионных запросов key-value. В первой части я рассказал, почему мы решили создать собственный микросервис, а во второй — как нам удаётся достигать высокой доступности сервиса. Сегодня поговорим о том, какие наработки помогут нам и дальше развивать Platform V SessionsData.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Книга «Микросервисы. От архитектуры до релиза»

Время на прочтение22 мин
Количество просмотров21K
image Привет, Хаброжители!

Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Наблюдаемость сетевой инфраструктуры Kubernetes. Часть первая

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

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

Эта статья для DevOps, Kubernetes administrators и SRE инженеров, которым важно и интересно разобраться в том, как устроена сетевая инфраструктура Kubernetes, какое взаимодействие происходит на уровне ядра Linux и различных приложений (Go, Java, Python и т.п.); изучить две обширные технологии eBPF и OpenTelemetry, активно продвигаемые CNCF сообществом. А главное при помощи каких инструментов можно упростить принятие решений инженерам при использовании Kubernetes в своих проектах и продуктах.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Интеграция паттерна Design API First в конвейер разработки ПО: наш опыт

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

Всем привет! Продолжаем наш цикл статей о внедрении подхода Design API First на проектах нашей компании. Ранее мы рассмотрели использование этого подхода, описали плюсы и минусы, узнали, как на практике выглядит проектирование API на примере сервиса аутентификации. Сегодня расскажем о том, как мы встраиваем Design API First в наш конвейер разработки, подробно остановимся на инструментах, помогающих с технической точки зрения организовать этот процесс. Объясним, как реагировать на изменения требований и обеспечивать версионность, а также что использовать для мокирования данных. Рассмотрим различные варианты применения: для нового проекта, для существующего проекта (где изначально был Code First).

4 часть: Как генерировать модели интерфейсов на основе спецификации на стороне frontend-приложений

5 часть: Design API First. Кодогенерация Roslyn

Читать далее
Рейтинг0
Комментарии0

Как эффективно управлять парком серверов? Оптимизируем работу с помощью API

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

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

В статье рассказываем, как мониторить выделенные серверы и управлять ими с помощью API. А также показываем, как автоматически переустановить операционную систему всего за несколько запросов. Хотите автоматизировать работу с инфраструктурой? Добро пожаловать под кат!
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии2