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

Пользователь

Отправить сообщение

Микросервисы в представлении среднего разработчика, и как всё на самом деле

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

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

Когда спрашиваю у людей на собесах, или когда в команде решаем, как клепать очередной проект, такое порой слышу, что становится страшновато. Мне кажется, лет через 5 все компании будут обитать в мультивселенной безумия из “микросервисов”, которую они себе радостно построили, уходя от этих ваших страшных “монолитов”.

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

погрузиться в микросервисы
Всего голосов 219: ↑215 и ↓4+240
Комментарии210

Решение проблем общего кода в микросервисах Spring Boot и не только

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

Привет, Хабр! Меня зовут Александр Митин, я работаю в Т1 на проектах одного крупного банка. Занимаюсь развитием продкутовых сервисов компании (проект по обслуживанию и проведению ЧДП/ПДП клиентов). Опыт разработки 13 лет, последние 5 лет — в финтехе.

Сегодня микросервисная архитектура используется во многих проектах. Зачастую в таких системах применяют журналирование, авторизацию и прочие служебные сервисы, общие для всех приложений. А при разработке возникает огромное желание не дублировать одну и ту же логику, а вынести её в отдельную библиотеку, тем самым переиспользовав код. Что мы имеем в итоге? В лучшем случае одну библиотеку «common», которая разрастается до огромных размеров и становится ядром распределённого монолита. В дальнейшем новые версии этой библиотеки теряют обратную совместимость, а каждое её обновление в проектах сильно осложняет поддержку. Более того, становится невозможным разобраться, где и какие классы используются, что делает архитектуру хрупкой и уязвимой.

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

Использование Istio для управления трафиком и мониторинга в микросервисах

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

Привет, уважаемые читатели Хабра!

Когда у нас есть десятки, сотни или даже тысячи микросервисов, становится важным уметь управлять трафиком между ними. Это может включать в себя маршрутизацию запросов, балансировку нагрузки, версионирование сервисов и даже внедрение A/B-тестирования. Контроль над трафиком необходим для обеспечения стабильности и производительности системы.

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

И вот здесь на помощь приходит Istio, предоставляя мощные инструменты для управления трафиком и мониторинга в микросервисной архитектуре.

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

Создание музыки в нейросети Udio, подробная инструкция с примерами от сообщества

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


Друзья, всем привет! Меня зовут Илья, я основатель онлайн-нейросети для создания изображений ArtGeneration.me, техноблогер и нейро-евангелист. С самого детства я мечтал научиться играть на каком-нибудь музыкальном инструменте. Я делал много попыток: были две гитары (акустическая и электро), клавиши и даже электронные барабаны. Но мне всегда не хватало усидчивости, и я не чувствовал удовлетворения от освоения инструмента, поэтому забрасывал его. Пробовал также освоить Ableton и FL Studio, но они казались мне слишком сложными. В итоге, к 35 годам я научился играть только на варгане, хотя душа требовала большего — я очень люблю музыку и слушаю ее буквально 24/7.


Нейросети уже дали мне возможность создавать прекрасные изображения, и я думал, как было бы здорово, если бы можно было так же легко создавать музыку. И действительно, около 10 месяцев назад появились такие инструменты, как MusicGen и AudioCraft от Meta*.


Читать дальше →
Всего голосов 27: ↑26 и ↓1+36
Комментарии20

Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком

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

Hibernate — очень мощный и функциональный ORM (Object-Relational Mapping) фреймворк. Он связывает базы данных с помощью объектно-ориентированных языков программирования. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить». 

В статье делимся рецептами работы с Hibernate и Spring Data JPA: они помогут решить многие проблемы, возникающими при использовании фреймворка.  

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

Как мы работаем со Stateful в Kubernetes: особенности и подводные камни

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

Всем привет! На связи Олег Сапрыкин, технический директор по инфраструктуре и тимлид DevOps-команд во «Фланте». В марте 2024 года мы с Андреем Радыгиным (ex-главный архитектор по внедрению Deckhouse) выступили на конференции DevOpsConf. Эта статья — текстовый вариант нашего доклада о развитии и нашем опыте использования Stateful в Kubernetes.

Мы рассказали, как оценивать Stateful-компонент, прежде чем запускать его в Kubernetes, показали нюансы работы с такими приложениями, а также поделились особенностями конфигурирования и опытом использования некоторых Stateful-операторов — ClickHouse, Redis, Kafka, PostgreSQL и MySQL.

Читать далее
Всего голосов 37: ↑36 и ↓1+51
Комментарии4

Как начать писать на Java в VSCode

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

Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.

Тогда зачем пробовать что‑то другое?

Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.

В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.

Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.

В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».

Перейти на VSCode
Всего голосов 65: ↑64 и ↓1+69
Комментарии58

Перфокарты против перфокарт: война систем до появления iOS и Android

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

Первая система для обработки больших объемов данных появилась в конце 19 века. Американский инженер Герман Холлерит создал ее для того, чтобы обрабатывать результаты переписи населения США. Компания Холлерита — первый ИТ-стартап — нашла частных инвесторов и государственные заказы, создала новую отрасль, и привлекла сотни клиентов. Однако ее монопольное положение на этом рынке было недолгим — вскоре появился конкурент, который смог предложить пользователям более низкие цены и новые технологии.

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

Опять транзакции…

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

Всем привет. На своем последнем месте работы я выполнял обязанности Java разработчика в одной из команд сервиса, чье приложение установлено в смартфоне большинства жителей РФ. Использовался стандартный стек технологий: Java, Spring(web, jdbc, core), PostgreSQL, Kafka. Обычное синхронное API по работе с данными, без всякой реактивщины, с нагрузкой более миллиона пользователей в день. Я столкнулся с тем что сервисы по работе с БД были обильно «усыпаны» Spring аннотациями @Transactional. Даже одиночные запросы на чтение данных использовали аннотацию с параметром readOnly=true. Я пытался писать комментарии к мердж‑реквестам с вопросом: «зачем вы это делаете?». Но получал ответы из разряда: «для перфоманса», «у нас так принято, чтобы случайно не упустить случай когда транзакция будет действительна нужна», «раньше у нас была какая‑то проблема с коннектами (какая именно никто так и не вспомнил сколько я не пытал), мы везде добавили аннотации и все заработало». Если интересно чем в итоге закончилась эта дискуссия, то подробности далее.

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

Вперед в будущее: Wayland против X11

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

Доброго времени суток, дорогие читатели! Сегодня я затрону одну интересную тему — графические дисплейные сервера и протоколы в Linux. В этой статье я расскажу вам о архитектуре X11 и Wayland, историю их создания и наконец-то сделаем вывод: Иксы на мороз, или вейланд на помойку?


Еще в далеком 2016 году вышла Fedora 25 с окружением GNOME 3.22 на базе дисплейного сервера Wayland. А в RHEL 10 выкинут X11 на мороз. Релиз RHEL 10 намечен на 2025 год, CentOS Stream 10 — на 2024 год. Для обеспечения работы приложений, требующих X11, будет использоваться XWayland. Таким образом, в 2029 году (к моменту окончания первого этапа поддержки RHEL 9) стоит ожидать появление первого аппаратного обеспечения, не поддерживающего X11.


И как я думаю — будущее за Wayland. Но пока X11 является стандартом. Давайте разберем это!


Читать дальше →
Всего голосов 81: ↑74 и ↓7+84
Комментарии115

Использование resilience4j со Spring Boot

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

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

Рассмотрим какие в ней есть инструменты, как их использовать в Spring Boot приложении с помощью аннотаций, как настраивать и есть ли в них подводные камни

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

Фильтр Блума – вероятностная структура данных для проверки принадлежности элемента множеству

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

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

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

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

CompletableFuture. Глубокое погружение

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

java.util.concurrent.CompletableFuture - класс не новый. Он предстал перед нами во всём своём величии в 2014-м году вместе с выпуском Java 8. Много лет с тех пор прошло, а проще он не стал.

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

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

Графика древности: палитры, часть 2/2

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

В предыдущей части цикла статей мы рассмотрели историю эволюции палитр в цветной компьютерной графике домашних компьютеров и игровых консолей, а также причины, почему они оказались именно такими и содержали те или иные цвета. Однако тема палитровой графики ещё не исчерпана. Сегодня поговорим про множество других интересных вещей: программируемые палитры и экономию памяти, палитровые анимации и визуальные эффекты, проблемы цветопередачи, обход ограничений на количество цветов, таинственный «артефактинг» и особенности рисования палитровой графики.
Читать дальше →
Всего голосов 105: ↑105 и ↓0+105
Комментарии19

Графика древности: палитры, часть 1/2

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

Хотя пиксельная графика прошлых лет полна нюансов, несомненно, одной из её главнейших характеристик, наряду с разрешением, является палитра — ограниченный набор цветов, которым нарисовано пиксельное изображение. Уникальное сочетание цветов, доступное на отдельно взятом старом компьютере или игровой приставке, часто позволяет даже беглым взглядом отличить графику для одной платформы от другой. Техники работы с палитрами и подбор оттенков также являются визитной карточкой многих пиксельных художников прошлого и современности. Но палитра — это не просто случайный набор цветов. Это результат технических ограничений и инженерных решений, в результате которых родились необычные техники рисования, анимационные спецэффекты, и особая визуальная эстетика.
Читать дальше →
Всего голосов 91: ↑90 и ↓1+126
Комментарии38

Kotlin под капотом: inline функции

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

Многие разработчики не понимают в чем профит от использования inline функций и в каких случаях их нужно использовать. Для чего нужен crossinline и как работает reified. Разбираемся как это работает на уровне байткода, в котором хорошо видно всю суть inline функций kotlin.

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

Fooocus v2: Революция в работе с изображениями — расширение, изменение и персонализация. Все про Input Image в нейросети

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

Друзья, всем привет, в прошлой статье Fooocus v2 — бесплатный Midjourney у вас на компьютере, вы познакомились с рисующей нейросетью которая вполне способна заменить Midjourney, узнали как её установить, как пользоваться, за что отвечают все настройки и как работают режимы, как писать запросы, чтобы нейросеть вас понимала.

Из этой части вы узнаете как с помощью нейросети Fooocus можно дорисовать любое изображение выйдя за его границы, изменить любую деталь на изображении, узнаете как добавить на свою генерацию текст, наложить свое лицо или как создать изображение по вашему референсу. Сегодня я расскажу про раздел Input Image.

Внутри много картинок и гифок.

Читать далее
Всего голосов 34: ↑33 и ↓1+42
Комментарии26

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

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

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Всего голосов 90: ↑87 и ↓3+114
Комментарии216

Apache Kafka. Пишем простой producer и consumer и тестируем их

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

В данной статье будет описано, как создать простой kafka producer и kafka consumer, а затем протестировать их.

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

Используем Elasticsearch вместе со Spring Boot

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

Всем привет! Это моя первая статья на Хабре и в ней я хочу рассказать о том, как мы можем интегрировать Elasticsearch в наше Spring Boot приложение. Этот проект предназначен для ознакомления с технологиями и служит скорее шпаргалкой/пособием или же фундаментом для дальнейшего погружения в тему.

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

Информация

В рейтинге
5 358-й
Зарегистрирован
Активность

Специализация

Backend Developer
Java
Kotlin
Python