Обновить
256K+

Java *

Объектно-ориентированный язык программирования

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

Автоматизация деплоя: из Bitbucket через Jenkins в MicroK8s — опыт финтех-разработчика

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

Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали!

Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье.

CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.

Читать далее

Как читать сообщения, если никто из брокеров не предоставил удобный интерфейс

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

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

Как правило, брокер сообщений между сервисами – черная коробка, которая работает, что называется «As Is». Разработчики подключают зависимости, вешают аннотации консюмеров и продюсеров, оно заводится и все рады. Но что они там подключили и как это работает никто не видит.

Так давайте же посмотрим, как мы можем открыть этот чёрный ящик на примере наиболее популярных брокеров сообщений.

Читать далее

Идеи ничего не стоят

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

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

Читать далее

Создаём HTTP-сервер на Java NIO

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

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

В этой статье создадим HTTP-сервер на чистом Java NIO, без всяких Spring Boot, Jetty и прочих фреймворков. Будем разбираться, как работает неблокирующее I/O, что такое Selector, SocketChannel, и как заставить сервер обрабатывать тысячи запросов одновременно без запуска тысяч потоков.

Читать далее

CRaC в Java

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

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

Сегодня рассмотрим CRaC — это технология, позволяющая создать контрольную точку работающего Java-приложения, сохранив его полное состояние: память, потоки, системные ресурсы и прочее. Иными словами, вы проводите полную инициализацию приложения один раз, делаете «снимок», а затем при повторном запуске восстанавливаете это состояние, обходя долгую процедуру холодного старта.

Читать далее

Reverse shell на Java или кошмар сисадмина

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели10K

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

Читать далее

Карликовый желтый гигант

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

Размышление о жизненных перспективах платформы 1С:Предприятие. Стиль изложения беглый профессионально‑метафорический.

Читать далее

Концерт для Java с ИИ — разработка готовых к продакшен LLM приложений

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

Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов. 

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

Читать далее

Null-safety в Spring приложении с JSpecify и NullAway

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

Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением NullPointerException в продакшен, о способах борьбы с этой проблемой, над которыми работает команда Java и о скором выходе новых решений, которые помогут разработчикам навсегда избавиться от этого кошмара.

Читать далее

Парсим сайт для получения УДК иерархии

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

Предыстория:

У меня на домашнем ПК скопилось некоторое количество книг в электронном формате. Это в основной массе техническая литература. И мне хотелось всё это систематизировать. Придумывать не хочется, когда в книгах есть УДК, ББК классификаторы.

Читать далее

Принципы SOLID и основы построения коммерческой организации

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

Привет, дорогой друг!

Сегодня я тебе объясню принципы SOLID максимально понятным способом.

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

Представь себе, что ты решил заняться бизнесом.

Первым делом ты организуешь небольшую торговую компанию. Ты только начинаешь свой путь в бизнесе, и поэтому всё делаешь сам. И закупаешь товар, и развозишь его по точкам, и ведёшь учёт, и ремонтируешь грузовую газель.

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

Людей в твоей команде немного, все друг друга знают, вы как одна большая дружная семья. И нет-нет, но периодически, кто-нибудь из сотрудников пытается взять себе дополнительные полномочия из чужой области. То ремонтник порывается съездить на рынок и закупить товар (ему же по дороге), то продажник научить ремонтника как правильно чинить технику (он всё детство провёл в гараже, где они с друзьями чинили папину волгу), то бухгалтерша Галина Петровна решает всех построить и взять на себя часть руководящих функций.

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

Но ты стоишь на страже интересов бизнеса! Железной рукой ты пресекаешь безобразия и вводишь жёсткий принцип – каждый сотрудник отвечает только за своё поле деятельности, у каждого своя ответственность, и никто в чужой огород лазать не смей. Закупщик – только закупает. Продажник – только продаёт. Каждый сотрудник должен иметь только одну зону ответственности.

Читать далее

TrueSql – заново учимся ходить в базу данных. Часть 2 – количество обновленных строк и сгенерированные колонки

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

В первой части мы научили команду разработчиков пяти Fetch. Обучение прямому хождению в БД мы продолжим двумя короткими но важными темами: получение сгенерированных колонок и количества обновленных строк.

Читать далее

Нововведения Java 24

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

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

Читать далее

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

Spring AI научился видеть! Показываю, как заставить GPT находить бананы на картинках

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

Новый перевод от команды Spring АйО расскажет вам о работе с мультимодальностью при работе со Spring AI и о различных вариантах работы с графическими изображениями с использованием искусственного интеллекта.

Читать далее

Как мы готовим российскую Java

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

Подготовка JDK — это не просто запустить скрипт и получить готовый бинарник. Это сложный процесс, включающий тестирование, поддержку, оптимизацию и обеспечение безопасности. 

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

JDK можно собрать вручную, но делать это в проде — так себе идея. Вот почему:

Читать далее

Зачем вашему проекту нужен java.policy?

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

Привет, меня зовут Валерия, я работаю Java-разработчиком в компании SimbirSoft. В этой статье я расскажу вам о java.policy: что это, зачем его использовать и как подключить к проекту. 

В некоторых проектах к исполняемому программному коду, написанному на Java 17 и ниже, отдел информационной безопасности предъявляет повышенные требования. Например, ограничения на доступ к файловой системе или подключение только к определенным ресурсам по принципу запрещено все, что не разрешено. Одним из способов реализации этого является включение java.policy.

Читать далее

TrueSql – заново учимся ходить в базу данных. Часть 1 – пять Fetch’ей

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

Сегодня мы начнем заново учиться ходить в базу данных. Рассмотрим все пять Fetch'ей TrueSql с кейсами их применения.

Читать далее

Немодальное окно коммита в IntelliJ IDEA: шаг вперёд или спорное нововведение?

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

В свежих обновлениях IntelliJ IDEA разработчики JetBrains внедрили немодальное окно коммита, отказавшись от классического модального диалога. Команда Spring АйО не обошла стороной активное обсуждение среди пользователей, которые разделились на два лагеря: одни приветствуют нововведение, другие считают его неудобным. Разберёмся, какие плюсы и минусы выявили пользователи и что по этому поводу думают представители JetBrains.

Читать далее

Выпущена версия Jmix 2.5

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

Команда Jmix рада сообщить о релизе Jmix 2.5, который предлагает множество новых функций, улучшений и обновлений, направленных на повышение эффективности разработки. Этот релиз сосредоточен на повышении эффективности разработки, расширении возможностей интеграции и предоставлении новых функций приложений.

Вот краткий обзор ключевых функций и улучшений в Jmix 2.5.

Читать далее

Вышла IntelliJ IDEA 2025.1 Beta

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

Новый перевод от команды Spring АйО анонсирует выход IntelliJ IDEA 2025.1 Beta и рассказывает о том, какие изменения присутствуют в новой версии IDE.

Читать далее