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

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

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

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

Микросервисы vs Монолит: плюсы и минусы

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

Привет! Меня зовут Игорь Шаталкин, я разработчик-эксперт в CUSTIS. В ИТ только и разговоров о том, что лучше — разделять или монолитствовать. Однако выбор архитектурного подхода зависит от множества факторов: масштабов проекта, бизнес-логики, организационной структуры команды и технических ограничений.

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

А в следующих статьях планирую поделиться практическими кейсами внедрения микросервисов и рекомендациями по переходу от монолита к микросервисам.

Читать далее

Создаем Spring Boot Starter для Kafka с Avro: пошаговое руководство

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

Интеграция Apache Kafka в проекты на Spring Boot часто требует много boilerplate-кода.

В этой статье я делюсь опытом создания кастомного стартера kafka-spring-boot-starter, который упрощает настройку продюсера и консюмера Kafka с поддержкой Avro-сериализации.

Рассказываю, как решал проблемы с тестами (например, auto.offset.reset=latest) и адаптировал стартер для гибкой работы со схемами.

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

Бонус в конце — удобный обзор ключевых настроек Kafka для продюсера и консюмера.

Читать далее

Как мы перестроили комментарии в ОК: от линейного хаоса к веточной гармонии

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

Комментарии в соцсетях — это как чипсы: начал читать, остановиться невозможно. Но в ОК до 2024 года они были плоскими — вместо структурированного диалога под постом пользователи видели бесконечную ленту сообщений, где ответы терялись в хронологическом порядке. Представьте: под постом про котиков кто-то спросил про корм, но ответ на вопрос появился в самом низу, через 500 комментариев с обсуждением хвостатых. Найти ответ на вопрос в такой системе, если он вообще существует, — тот ещё квест.

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

Читать далее

Давайте (не) разрушим монолит. Часть 2

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

В предыдущей статье мы начали обсуждать, что компании (всё еще) хотят разделить монолиты на микросервисы. Если спросить их, что они этим изменят — услышите, что с микросервисами рассчитывают решить проблему «большого комка грязи» или сократить time-to-market.

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

Читать далее

Service Mesh в дикой природе или как не стать жертвой атак

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

Когда погружаешься в Service Mesh, кажется, что это волшебная штука, которая решает все проблемы. Но потом вспоминаешь, что безопасность сама себя не настроит, а уязвимости появляются там, где их меньше всего ждёшь.

В статье разобрал всё это подробнее:
- Какие ошибки в безопасности Service Mesh встречаются чаще всего;
- Как атакуют Istio и Linkerd, и почему mTLS — не панацея;
- Какие практики реально работают, а какие просто звучат красиво.

С примерами, кейсами и полезными ссылками, чтобы не наступать на чужие грабли.

Вникнуть

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

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

Продолжаем наращивать базу знаний по System Design. В этот раз освятим использование BLOB Storage, CDN, Message Broker. Посмотрим на основные концепции и области применения этих важных компонентов при проектирование высокодоступных отказоустойчивых систем.

Читать далее

Всё пропало! Google удалил хронологию пользователей с карт

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

Сервис Google - Maps Timeline позволял пользователям легко посмотреть историю своих перемещений на Гугл картах, с привязкой к посещённым местам, сделанным фотографиям.

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

Поплакать вместе с автором...

Давайте (не) разрушим монолит. Часть 1

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

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

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

Я нахожу этот подход озадачивающим — по моему опыту, микросервисы редко решают проблемы, которые, по мнению большинства, они должны разрешить. Особенно, если внедрять их без других изменений. Я написал серию постов, в которых обсуждаю распространенные заблуждения о микросервисах. В этой серии разберем, какие проблемы не решают микросервисы, а какие — могут решить (если всё сделать правильно). А также, что мы можем сделать, если микросервисы — это не то, что нам нужно.

Читать далее

App.Farm CI. Часть IV. Реализуем flow — шагаем к автоматизации разработки

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

Привет, Хабр! На связи команда разработки App.Farm в РСХБ-Интех. Хотели бы представить вам следующую часть цикла статей об App.Farm CI, одной из подсистем нашего продукта — PaaS App.Farm.

App.Farm  — платформа по типу PaaS для стандартизации процесса разработки бизнес-приложений: от хранения исходного кода до запуска сервисов. App.Farm CI - подсистема обеспечивающая хранение кода, артефактов, автоматизацию сборки.

Какие темы затронем в этой статье:

- Разновидности flow

- Базовый набор job

- Генерация Dockerfile

- Проверка качества кода

- Сборка и публикация артефактов

- Развертывание

- Демонстрационные примеры

Читать далее

Какие же они тупые❢

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

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

Больше всего меня досадует то, что на волне увлечения ИИ как‑то стали забывать про естественные потребности человека, вернее отодвигать их на вторые и третьи позиции в списке приоритетов. Искусственно раздутый хайп вокруг искусственного же интеллекта мешает развитию обычных привычных технологий, практик, интерфейсов, юзабилити и т. д. и т. п. Везде на видное место засовывают этих бесполезных помощников, они везде на первой кнопке, лезут в виде плашек отовсюду, всплывающие окна, помимо запроса на никому не сдавшиеся печеньки на сайтах теперь ещё и предлагают ничем не полезные «интеллектуальные сервисы» в виде помощников. Везде, всюду, на всех сайтах, даже тех, которые совсем далеки не только от ИИ, но и от ИТ вообще. И это мракобесие уже превращается в какое умопомрачение.

Я принципиально сейчас не пользуюсь никакими помощниками. Я понимаю, что на текущей стадии это всё больше хайп, рабоает оно всё через пень‑колоду, раз через десять получаются более‑менее приемлемые результаты. т. е. если вы фанат ИИ (а я на самом деле фанат, но не такого паттерно‑натасканного ИИ, а традиционного, реально интеллектуального) — то можете тестировать и обчать этих ботов на себе. Но зачем вы портите жизнь другим людям, зачем вы втюхиваете тухлые продукты тем, кто предпочитает здоровое питание?

Читать далее

Боремся с токсичными комментариями с помощью ИИ, FastAPI и React

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

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

Мы воспользуемся FastAPI для бэкенда, React для фронтенда, заставим их между собой общаться через RESTful API, а бизнес-логику реализуем путём обращения к ИИ через gRPC.

Читать далее

Три необсуждаемых вопроса о микросервисах и параллельной распределённой обработке данных — чтобы жить стало легче

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

Воркшоп для тех, кто впервые сталкивается с распределёнными системами.

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

Читать далее

Введение в микросервисы C# + шаблон

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

Думаешь, микросервисы — это сложно? В этой статье я коротко и простыми словами объясняю как написать микросервис на .NET, какие технологии использовать и как избежать типичных ошибок.

📌 Что разберем:

Как правильно разделять логику: CQRS, слои приложения

Какие инструменты использовать: MediatR, MassTransit, MinimalApi и др.

Настройка инфраструктуры: базы данных, документирование API

Практические примеры: разберем код, покажу, как все работает

Начать изучение

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

Пишем отложенные сообщения для ВК на питоне

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

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

Читать далее

Как сделать livenessProbe для Kafka-консьюмеров и перестать перезапускать их вручную

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

Kafka-консьюмеры не всегда работают так стабильно, как хотелось бы. Иногда они просто зависают — без ошибок, без падений, но и без обработки сообщений. LivenessProbe в Kubernetes помогает автоматически перезапускать зависшие сервисы, но с Kafka-консьюмерами всё не так просто: стандартного решения для них нет. В этой статье разберём, как правильно реализовать livenessProbe для консьюмеров с помощью паттерна Heartbeat, чтобы не перезапускать их вручную.

Читать далее

Разворачиваем микрофронты на Next.js

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

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

Читать далее

Почему Redis работает так быстро, несмотря на то, что он однопоточный?

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

Redis — это высокопроизводительное хранилище «ключ-значение» в оперативной памяти, известное своей невероятной скоростью. Фактически, один сервер Redis может обрабатывать до 100 000 запросов в секунду (QPS). Такая скорость часто удивляет, особенно если учесть, что Redis в основном работает по однопоточной модели обработки запросов. Так почему же Redis работает так быстро, несмотря на однопоточный подход? Давайте рассмотрим ключевые факторы, влияющие на производительность Redis.

Читать далее

Проблема запуска реплик в Docker Swarm: диагностика и решения

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

При работе с Docker Swarm вы можете столкнуться с ситуацией, когда кластер не может разместить новую реплику сервиса на одной из нод, либо вообще запустить сервис. Это проявляется в логах на одной из менеджер-нод следующим предупреждением:

Читать далее

Заводить ли личный блог или сайт? Часть II. Конифгурация сервера с помощью Ansible

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

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

На очереди конфигурация сервера с помощью Ansible. Данная статья будет разделена на три блока: несколько слов о результатах первой статьи, блок о самом инструменте Ansible и блок о конфигурации сервера с помощью него. 

Читать далее

App.Farm CI. Часть III. Подготовка к реализации flow — быть вахтером или не быть?

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

Привет, Хабр! На связи команда разработки App.Farm в РСХБ-Интех. Хотели бы представить вам следующую часть цикла статей об App.Farm CI, одной из подсистем нашего продукта — PaaS App.Farm.

App.Farm - платформа по типу PaaS для стандартизации процесса разработки бизнес-приложений: от хранения исходного кода до запуска сервисов. App.Farm CI — подсистема обеспечивающая хранение кода, артефактов, автоматизацию сборки.

Какие темы затронем в этой части:

Архитектура подключаемых flow

Архитектура сборки

Базовый набор flow

Требования к flow

Статическая верификация

Читать далее