Как стать автором
Поиск
Написать публикацию
Обновить
87.56

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

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

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

Как контролировать 140 петабайт данных и 80 тысяч подов в Kubernetes

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

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

Читать далее

Базы данных. Как выбрать идеальное решение? Полный гид по SQL, NoSQL и не только

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

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

Меня зовут Кирилл, и на протяжении последних двух лет я мечтал научиться проходить System Design интервью. Но только недавно взялся за дело всерьёз.

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

Читать далее

Практический гайд по авторизации и аутентификации в микросервисах с Ory и Apache APISIX

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

Мне кажется, что уже есть сотни разных статей на эту тему, но каждый раз мне чего-то не хватало. Поэтому я решил написать свою статью, в которой покажу, как я реализую авторизацию и аутентификацию в своих проектах. Это именно гайд: вы можете взять готовый код и адаптировать его под свои нужды. В рамках статьи будут использоваться Ory Hydra и Ory Kratos, Apache APISIX в качестве API Gateway и несколько микросервисов на Golang. Всё это будет работать в Docker, чтобы вы могли легко запустить и поиграться.

Читать далее

Запуск микросервисов на базе пользовательских ресурсов Kubernetes

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

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

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

Читать далее

Как мы обеспечили 99.7% аптайм на платформе с миллионами запросов в день: опыт разработки для закрытой БК

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

Проектирование и поддержка высоконагруженной платформы для букмекерской конторы almsports.net потребовало особого подхода к обеспечению стабильности, отказоустойчивости и производительности. Мы, как команда разработчиков, ставили перед собой цель обеспечить не только стабильную работу, но и гибкость для масштабирования, отвечая на растущий трафик. В этом посте я поделюсь опытом того, как с использованием DevOps практик и CI/CD процессов мы смогли достичь 99.99% аптайма и эффективно обслуживать миллионы запросов в день на платформе almsports.

Читать далее

Headless и API-First: как ускорить e-commerce и не утонуть в монолите

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

Привет, хабровчане! Я Алиса, тимлид в e-commerce агентстве KISLOROD.

Сегодня расскажу, как мы вырвались из цепких лап монолита с помощью Headless и API-First архитектуры, ускорили разработку и дали бизнесу крылья. Это не просто про технологии, а про то, как не сойти с ума от бесконечных правок и при этом ускорить запуск фич. Мы все еще на PHP, под капотом Bitrix, но перестали латать шаблоны и начали строить настоящую платформу. Погнали разбираться: что это, зачем и как не облажаться.

Читать далее

Конфигурация с поздним связыванием и шаблонизацией в Python

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

Расскажу про Python-библиотеку для гибкого чтения конфигураций с возможность переиспользования и переопределения элементов

Читать далее

Мета-акторы, готовый скелет микросервиса

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

Я ненавижу руками создавать бойлерплейты. Любые. Нет, LLM-ки тут тоже не помогут: им надо писать промпты (а потом ещё проверять, что оно там нагенерировало). Мне всегда хотелось, чтобы остов приложения задавался конфигурацией, а я бы только добавлял бизнес-логику. Буквально, в уже сгенерированные для неё места.

Именно в такой парадигме написана моя библиотека finitomata, в которой конфигурация конечных автоматов задаётся текстовым представлением (PlantUML/Mermaid), а бизнес-логика просто распихивается по колбэкам переходов. Но мне этого оказалось мало, и я решил обернуть в такие же абстракции хранение и подписку на изменения.

Так родилась библиотека (пока не опубликована, доступна только в исходниках) persistomata.

Даже не библиотека, а (простите) фреймворк

Развертывание микросервисов: проблемы, решения, стратегии, антипаттерны, практические рекомендации

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

Микросервисы перевернули игру в разработке приложений. Они сулят гибкость, отличную масштабируемость, командам — больше независимости. Но вот переход на них принес с собой и новые головные боли. Особенно когда дело доходит до развертывания. Управлять кучей мелких, отдельно выкатываемых кусочков — задачка та еще. Старые приемы тут часто пасуют. Нужны свежие идеи, другие инструменты, а главное — по‑другому смотреть на вещи.

Читать далее

System Design для начинающих: всё, что вам нужно. Часть 6

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

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

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

Читать далее

Новая фича в Java 21: Виртуальные потоки: новые возможности для I/O bound микросервисов

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

Привет, Хабр! Я Иван Попов, ведущий инженер ЦК платформенных и интеграционных решений РСХБ-Интех. Java — мой самый любимый язык программирования, я всю жизнь работал только на нём. Сейчас я работаю в банке и хочу разрушить стереотип  о том, что в банках все работают на Vegas. На java мы очень много работаем, тем более если видим, что новая технология позволяет нам оптимизировать процессы разработки (а количество интеграций огромное). 

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

Читать далее

Часть 2: Как я реализовал взаимодействие микросервисов — Kafka и gRpc

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

Привет! Меня зовут Бромбин Андрей, и сегодня я продолжаю цикл статей о создании микросервисного приложения с нуля. В этом выпуске мы сосредоточимся на взаимодействии между микросервисами, используя два подхода: асинхронный с помощью Kafka и синхронный через gRPC.

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

Мультитенантность: почему мы отказались от готовых решений и как приручали Keycloak

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

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

Читать далее

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

Со Scala-монолита на Java-микросервисы, или Как перебрать движок, не останавливая машину

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

Привет, Хабр! Меня зовут Евгений Кермас, я главный эксперт по технологиям в Управлении развития технологий модельного риска в Сбере.

В этой статье я попробую ответить на вопрос: «Что делать, если вы, как архитектор, пришли на существующий проблемный проект в качестве кризисного-менеджера?» Расскажу о нескольких подходах и дам советы, которые могут помочь в принятии решений в создании архитектуры и планировании проекта. Для этого разберём один пример с максимальным количеством проблем. На входе у нас есть монолит с запутанным кодом, на legacy-инфраструктуре, с нецелевым техстеком и большим грузом проблем, как технологических, так и организационных.

Читать далее

Контейнер с нуля

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

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

Читать далее

Паттерны кеширования: проблемы, решения, практические рекомендации

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

Приложения тормозят. Пользователи уходят. Бизнес недоволен. Знакомая картина? Часто корень зла – медленный доступ к данным. Кеширование может стать спасательным кругом. Но это не серебряная пуля. Неправильно настроенный кеш – источник новых проблем, иногда похуже старых.

Читать далее

От Lerna до ModuleFederation

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

Привет, Хабр! Меня зовут Дмитрий Ханин, я работаю в Сбере и участвую в разработке Платформы ЦА — системы на базе блокчейн, занимающейся привлечением средств юридических и физических лиц. Сегодня хотелось бы рассказать про тот путь, который мы прошли за несколько лет, как организовали взаимодействие между разными приложениями и чем нам это помогло.

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

Читать далее

Kafka: ребалансировка изнутри

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

Привет! Меня зовут Геннадий, я руковожу командой разработки системы учета товаров в Ozon. Мы активно используем Kafka как основной инструмент для асинхронного взаимодействия между нашими сервисами. Для нас Kafka — это не просто очередь сообщений, а один из ключевых компонентов всей архитектуры. Поэтому мы постоянно погружаемся в его тонкости и нюансы, чтобы грамотно настраивать и использовать его возможности. Думаю, многие из вас сталкиваются с тем же — когда Kafka становится критически важной частью вашего решения.

Хотя информации о ребалансировке Kafka достаточно, она часто либо слишком разрозненная и техническая, либо наоборот — поверхностная и без акцента на важные детали. Я собрал для вас самое важное и объясню это простым и понятным языком.

Читать далее

Надежность и устойчивость в микросервисной архитектуре

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

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

Читать далее

Издержки микросервисов, которые ваш стартап может не потянуть

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

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