Spring АйО
10.9K subscribers
496 photos
310 videos
638 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Download Telegram
Axelix. Элитный спецназ для Вашей Spring Boot экосистемы.

Друзья, на JPoint мы обещали анонс продукта с Open Source ядром, который помогает в разработке, тестировании и отладке Spring Boot приложений. И мы это сделали 😎.

Конечно же, речь про Axelix.

И на днях, наконец, состоялся первый Milestone релиз! GA релиз Axelix состоится летом 2026 года.

В этот воскресный вечер представляем Вашему вниманию статью Михаила, где он поясняет, в чём заключается цель проекта Axelix, какие проблемы он призван решить, и почему не Spring Boot Admin.

Приятного чтения!

📎 Ссылка на статью: https://habr.com/ru/companies/spring_aio/articles/1041836/
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥37👍129😁52🤔1🤩1
🔮 Перевополщение Stable Values в JDK 26

Ленивая инициализация в Java почти всегда значит: поле сначала null, потом double-checked locking, volatile, синхронизация. Ошибиться легко, а final не поставить. Итог - код хрупче и JVM хуже делает constant folding.

В JDK 26 (preview, JEP 526) добавили LazyConstant<T>: final поле, рецепт вычисления через Supplier, значение доступно через get(). Supplier выполнится при первом get и только один раз успешно, даже при гонке потоков. Кроме этого значение помечается как @Stable - JVM может считать его константой и агрессивнее оптимизировать.

Граничные случаи: null нельзя; не сериализуется; исключение из Supplier пробросится и следующая попытка снова пересчитает; equals у LazyConstant - только identity.

Для 1:n есть List.ofLazy и Map.ofLazy: элементы/значения считаются по индексу/ключу по требованию и кэшируются.

📎Полный текст — https://habr.com/ru/companies/spring_aio/articles/1042294/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥1410
G1 хотят сделать GC по умолчанию вообще везде. Даже там, где JVM раньше выбирала Serial.

Это важное, но на первый взгляд не самое громкое изменение в HotSpot.

Сейчас логика такая:
— в серверных сценариях JVM уже давно по умолчанию выбирает G1;
— в более ограниченных средах, например с небольшим объёмом памяти или малым числом CPU, JVM могла выбрать Serial GC.

Теперь так:

если вы явно не указали GC, HotSpot всегда выбирает G1.

Почему так решили?

Когда G1 сделали дефолтным для серверных окружений в JDK 9, у Serial оставались заметные плюсы в более узких конфигурациях — по throughput и memory footprint. Поэтому JVM сохраняла отдельную ветку выбора для “маленьких” сред.

Но с тех пор G1 сильно подтянули:

— по пропускной способности он уже близок к Serial;
— по паузам он давно выглядит лучше;
— по потреблению нативной памяти тоже стал гораздо конкурентоспособнее.

То есть аргумент “в ограниченной среде по умолчанию нужен именно Serial” уже не выглядит таким железным.

Что это значит на практике?

— поведение JVM станет предсказуемее;
— дефолтный GC больше не будет зависеть от того, сколько у вас CPU и памяти;
— разбирать поведение приложения и JVM станет проще.

При этом важно:

— Serial никуда не исчезает;
— если он лучше подходит вашему кейсу, его по-прежнему можно указать явно;
— речь не о том, что Serial плохой, а о том, что G1 теперь достаточно хорош, чтобы быть разумным дефолтом везде.

Конечно, это не революция, но признак зрелости G1:
из дефолта для серверов он превращается в универсальный baseline для HotSpot.

А вы вообще в проде/локально полагаетесь на GC по умолчанию или всегда фиксируете его флагами?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍368🔥61👌1
👻 Проблема фантомной записи

В проде бывает так, что одна и та же операция часто повторяется: клиент не дождался ответа и ретраит, балансер порвал соединение, очередь переиграла сообщение. Вспоминаем про идемпотентность - это правило «повтор не должен создавать новый платёж/заказ».

Чтобы отличать повтор от новой операции, используют idempotency key (ключ идемпотентности). Это обычная уникальная строка-идентификатор, которую клиент или апстрим отправляет вместе с запросом (часто в заголовке `Idempotency-Key`). Сервис сохраняет этот ключ у себя и связывает с результатом операции.

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

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

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1043208/
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍93🔥1👌1
🫡 Блеск и нищета

Именно так называется наша первая статья, вышедшая ровно 2 года назад.

Вот она: Блеск и нищета нового Scrolling API в Spring Data

За все время мы выпустили 248 статьей. И вот небольшая статистика по ним:

📎 Самая просматриваемая статья (111к просмотров) и самая комментируемая (130 комментов): Как жить без IntelliJ IDEA? Часть №1. Собери сам

📎 Самая залайканная статья (64 лайка): OpenIDE: первая российская среда разработки с поддержкой Java 24

📎 Самая заминусованная статья (-13 голосов): REST умер? Почему Java-разработчики уходят в GraphQL

📎 Собравшая наибольшее количество сохранений в избранное (251 сохранение): Как подготовиться и пройти System Design Interview

📎 Самая дочитываемая статья: Hibernate merge: начали за здравие, закончили за упокой

Давайте обсудим в комментариях, чего нам не хватает, а чего наоборот, слишком много. Будем рады фидбеку!

Спасибо всем за все! 💚
Please open Telegram to view this post
VIEW IN TELEGRAM
135🔥22🤩62
Media is too big
VIEW IN TELEGRAM
🍃 Скрытые фичи Claude, Python быстрее Java, администрирование Spring Boot | Spring АйО Подкаст №63

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156😁5🤔2🤯1
📚 Лицензирование ПО. Вам следует это знать

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

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

В новой статье наш эксперт, Михаил Поливаха, решил расписать по полочкам:

🔘Что вообще такое Copyright?
🔘Что такое лицензия и какие основные типы лицензий бывают?
🔘Что же на самом деле такое "Open Source"? Многие понимают "Open Source" неправильно.
🔘И наконец, как на практике крупные проекты лицензируют свои программные продукты

📎 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/1044986/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍87🤔31🤩1
⚡️ Skill of the Week: Spring Explore

Разработка с применением AI-агентов находит все больше поклонников, в том числе среди участников и экспертов нашего сообщества. Поэтому мы решили запустить еженедельную рубрику Skill of the Week, в которой будем рассказывать о полюбившихся нам скиллах и практиках использования AI-агентов.

В этот раз мы разбираем Spring Explore Skill.

Как вы знаете, первичное наполнение контекста — крайне важная задача. При этом все популярные агенты (Claude Code, Codex, OpenCode и т. д.) выполняют ее без какого-либо понимания, как устроены приложения, написанные на Spring.

Как результат: не находятся бины, дублируются компоненты, снижается скорость работы и растет расход токенов. Эти проблемы как раз и призван решить данный скилл.


📚 Погружаемся в Spring Explore на Хабре: https://habr.com/ru/companies/haulmont/articles/1041314/
👍2611🔥65🤔2
☠️ Частая проблема в дизайне API в Java, которая будет Вам стоить очень дорого ☠️

Даже в очень аккуратном Java API иногда прячется ошибка, которая сначала выглядит как мелочь, а потом превращается в источник очень дорогих проблем. Особенно неприятно, когда всё начинается с безобидного getXXX(), который вроде бы просто геттер, отдающий данные наружу.

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

И самое неприятное, что на этом история не заканчивается: подобные решения иногда расширяют attack surface системы и в плохом сценарии становятся частью куда более серьёзных инцидентов. В новой статье разбираю именно такой случай на простом Java-примере и показываю, почему эта ошибка в дизайне API может стоить очень дорого. Если вам близки темы Java, Spring и аккуратного API-дизайна, почитайте, статья небольшая 😉

📎 Читать на Хабр:
https://habr.com/ru/companies/spring_aio/articles/1046620/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍219🔥5
Media is too big
VIEW IN TELEGRAM
🍃 Stable Values, как сломать final, Saga — боль | Spring АйО Подкаст №64

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍641
👩‍💻 Вышел Spring AI 2.0.0 GA

Пожалуй, это релиз, после которого Spring AI становится все ближе к тому, чтобы стать production-инструментом.

Что в нём особенно важно:

— Упростили работу с tools

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

— Сильнее прокачали MCP

Spring AI обновился до MCP SDK 2.0 и в целом стал лучше встроен в историю с MCP.
Для тех, кто смотрит в сторону AI-приложений с внешними инструментами и сервисами, это важный шаг.

— Обновили интеграцию с OpenAI

Под капотом Spring AI теперь использует официальный Java SDK от OpenAI. Для разработчиков это обычно хороший знак: меньше самодельных решений, больше стабильности и предсказуемости.

— Привели в порядок память чата

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

— Сделали настройки более понятными

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


В общем стало больше предсказуемости, лучше интеграция со Spring-стеком, меньше неявного поведения в чувствительных местах вроде tool calling, memory и MCP.

Помним, что это major release. Переход с 1.1.x потребует внимательного апгрейда: breaking changes есть в tool calling, memory, MCP и конфигурации.

📎 Документация по 2.0.0
📎 Документация по переезду с 1.1.х на 2.0.0

Кто-то использует Spring AI в реальных сервисах? Или еще подождем?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2410🔥8
Forwarded from Axiom JDK
#вебинар

🛠 От BPMN до контейнера: собираем Java-приложение с OpenBPM и AxiomJDK

Готовим вебинар о том, как создать Java-приложение с рабочим BPM-процессом и пройти весь путь на практике: от выстраивания бизнес-логики до релиза в безопасном enterprise-контуре.

Возьмем понятный пример: заявки, согласования, проверки. Покажем, как описать процесс в BPMN, связать его с Java, запустить на Axiom JDK и упаковать в контейнер.

Отдельно разберем, где может помочь ИИ: не вместо команды, а вместе с ней — чтобы быстрее проходить рутину, но сохранять управляемость, контроль и зоны ответственности.

Обсудим:
— как создать Spring Boot-приложение в OpenIDE с плагином OpenBPM;
— как выстроить BPMN-процесс и реализовать бизнес-логику на Java;
— где ИИ помогает ускорить подготовку структуры приложения, кода, правил и тестов;
— как Amplicode MCP и ИИ-плагины для OpenIDE снимают часть ручной рутины;
— как запустить приложение на AxiomJDK и упаковать его в защищенный контейнер Axiom Containers;
— зачем enterprise Java-приложениям безопасный runtime и как готовиться к рискам после завершения open-source поддержки Spring Boot 3.5.

👥 Будет интересно тимлидам, DevOps, ИБ, BPM-командам и компаниям, которые присматриваются к ИИ-инструментам для разработки.

Спикеры:
— Никита Щиенко, Tech Lead, OpenBPM
— Максим Сафронов, Технологический консультант Axiom JDK

📅 16 июня, онлайн, 11:00

Как и всегда, для участия нужно только зарегистрироваться. Вперед!
👍12🔥84🤔2🤩1
🆕 Новые возможности Hibernate 7.4

Hibernate 7.4, наконец, исправляет старую проблему с пагинацией и fetch join.

Раньше запрос на первые 10 Order вместе с OrderItem не мог безопасно ограничиться на уровне SQL. Из-за join один заказ мог превратиться в несколько строк, и limit мог обрезать коллекцию. Поэтому Hibernate загружал все подходящие строки, а страницу выбирал уже в памяти. На больших данных это, конечно же, било по памяти и могло закончиться OutOfMemoryException. Да и в целом не очень перформансно это, согласитесь.

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

Еще в 7.4 появились history и audit tables. @Temporal хранит версии строк и позволяет читать сущность на конкретный момент времени. @Audited пишет изменения ADD/MOD/DEL в audit-таблицу без Envers.

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1047844/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥20111🤯1
☄️ Друзья, мы на пороге больших изменений в Java ☄️

Спустя более 10 лет разработки, Project Valhalla получит preview в JDK 28.

Напоминаю, что на данный момент актуальная версия Java платформы - 26. Версия 27 будет в сентябре 2026 года, а версия 28 будет в марте 2027 года, скорее всего к Java One в Bay Area.

Ранее Project Valhalla уже был доступен в early access сборках, и ряд JEP-ов, которые нужны были для Project Valhalla, уже попали в mainline, но сами value classes - ещё нет. В JDK 28 это произойдёт!

⚠️ Есть важное уточнение:

В mainline попадет JEP 401, это не весь Project Valhalla в общем понимании, но это очень значимая его часть. Как говорил Brian Goetz (Java Language Architect) на Inside Java:

JEP 401 is the smallest piece of Valhalla that we can ship on its own


Это, вероятно, один из самых важных и больших JEP-ов, которые попадут в mainline JDK. Там PR на 200+ тысяч строк кода, я не шучу.

Тем не менее, такие вещи, как:

- Null-Restricted типы, наподобие String! (Ссылка, типа String! не может указывать на null)
- Примитивы в качестве Generic типов, т.е. вещи, наподобие List<int> (не List<Integer>)

и ряд других - они попадут в mainline в качестве preview позже.

Тем не менее, это крайне значимый шаг. Будем держать Вас в курсе!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥4786🤩1
⚡️ Skill of the Week: Spring Data JPA

Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.

Знать Spring Data JPA должен любой Spring-разработчик. Ждём того же от AI-агента.

Справляются ли с этим современные модели? Смотря какие.

Opus 4.8 ошибается реже остальных, но и он не идеален: вчера агент настроил связь между сущностями правильно, а сегодня на той же задаче добавил CascadeType.ALL 🤦‍♂️.


Skills, которые объясняют агенту особенности фреймворка, значительно поднимают качество кода у моделей среднего класса. На отдельных задачах такие скиллы подтягивают Haiku почти до уровня Opus!

Этому и посвящён скилл недели.

📚 Какие ошибки агенты чаще допускают с JPA и как их избежать, разобрали в статье на Хабре.
1👍23🔥1411🤩1
👩‍💻 Spring Boot 4.1 дает новую опцию управления JDBC Соединениями!

По умолчанию Spring забирает connection в момент открытия транзакции, а не в момент первого SQL-запроса.

Проблема в том, что иногда запросов может не быть вообще.

Типичный сценарий в Enterprise:
— cache hit;
— ранний return;
— не прошла валидация;
— проверка прав завернула вызов;
— сначала сходили в медленный внешний API, а до БД еще даже не дошли.

Но connection уже вынули из пула. Он просто лежит занятым, пока метод делает что угодно, кроме работы с базой.

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

Тем не менее, стоит признать, что такое часто встречается. В Spring Boot 4.1 эта проблема чинится одной property:

spring.datasource.connection-fetch=lazy


Смысл такой, что нет SQL — нет connection. То есть раньше приложение брало connection на всякий случай. А теперь только когда он реально нужен.

⚠️ Обратите внимание, что данная настройка работает не только с Hibernate. Более того, вообще любая блокирующая технология доступа к БД в экосистеме Spring (JdbcClient, Spring Data JDBC и т.д.) может работать с этой фичей.

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

В итоге, где это реально имеет смысл:

— широкие @Transactional границы;
— early-return без похода в БД;
— нагрузка, где каждый idle connection уже начинает стоить дорого.

Флаг довольно удобный. Имейте в виду!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥98👍4018
Привет, Друзья!

Эксперт нашего сообщества, Евгений Сулейманов, проводит опрос зрелости Production систем. Опрос довольно небольшой, и Spring АйО просит Вас пройти его с целью того, чтобы понять, как эксплуатируются современные системы.

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

Евгений Сулейманов:

Запускаю State of Production Engineering 2026 - исследование о том, как команды разработки живут в ПРОДе.

Это не опрос про Java.
Не опрос про Kubernetes.
Не опрос про DevOps.
И не "какой инструмент observability вы используете".

Смотрим шире:

- архитектура и владение
- поставка и безопасность релизов
- управление инцидентами
- observability как способность расследовать, а не просто смотреть графики
- resilience
- данные
- рантайм и работа с платформой
- AI в процессе SDLC
- инженерная культура
- стоимость инцидентов, даунтаймы и надежность.

Основная идея проста: зрелость production engineering - это не наличие инструментов, а способность команды управляемо проводить изменение от идеи до стабильной эксплуатации в ПРОДе.

Нужны ответы людей, которые действительно связаны с ПРОДом:

CTO, Head of Engineering, тимлиды, архитекторы, разработчики, SRE, DevOps, QA лиды, delivery/product менеджеры - все, кто участвует в релизах, инцидентах, эксплуатации, архитектурных решениях и инженерных процессах.

Анкета занимает примерно 10–15 минут.
Можно отвечать без имени и компании.
По итогам подготовлю публичный отчет и бенчмарки по зрелости production engineering.

Ваш опыт очень важен.


Пройти опрос:
State of Production Engineering 2026
👍108😁5👌1
Media is too big
VIEW IN TELEGRAM
🍃 Spring AI 2.0, Anthropic спрятал бомбу, Геттеры опасны | Spring АйО Подкаст №65

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥178👍7😁4
😵‍💫 Когда Hibernate плевать на ваш OneToOne Lazy Loading

Вы аккуратно расставили FetchType.LAZY на всех *ToOne связях, уверены, что лишних запросов в БД нет — и тут в логах всплывает необъяснимый SELECT, который вы не просили.

Особенно обидно, когда это @OneToOne: на @ManyToOne ровно тот же LAZY работает железно и всегда, а здесь Hibernate вдруг идёт в базу eagerly, будто вашей аннотации и не было.

А самое неприятное — большинство объяснений в сети сводятся к тому, что просто так уж устроено, но главный вопрос "Почему?" остается без ответа. Почему один и тот же LAZY в одном
случае работает, а в другом молча игнорируется?

В новой статье Михаил Поливаха, разбирает по полочкам:

☑️ Что на самом деле такое FetchType.LAZY и почему это всего лишь hint, а не приказ;
☑️ Почему @OneToOne иногда невозможно сделать lazy именно в Java;
☑️ Почему @ManyToOne при этом ленив всегда — и при чём тут владение связью и foreign key;
☑️ Как с этим жить: optional = false, дизайн схемы, @MapsId и другое.

📎 Подробнее в статье на Хабр: https://habr.com/ru/companies/spring_aio/articles/1050462/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍175🤩1
🛡 Project Valhalla: 10 спустя

В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора.

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

Project Valhalla добавляет value class. Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения.

JEP 401 планируют включить в JDK 28 как preview. Это еще не финал: value class пока может быть null, а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко.

📎 Статья целиком: https://habr.com/ru/companies/spring_aio/articles/1050938/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥2711
Наши друзья из Axiom проводят вебинар для тех, кто сталкивается с Java, Kubernetes и всем, что связано с защищённым контуром.

Ребята обещают показать самый что ни на есть практический сценарий: Java-сервисы внутри Kubernetes, mTLS, ГОСТ TLS, Axiom JDK Certified и КриптоПро/JTLS. В общем самая жиза.

Будет разбор:
• зачем сервисам сертификаты;
• как работает mTLS;
• где в этой схеме Axiom JDK Certified и КриптоПро;
• почему не надо хранить ключи в container image;
• как network policies помогают не превращать кластер в проходной двор.

👆Спикер — Дмитрий Сапожников.
30 июня в 11:00

Если тема вам близка, регаться тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥3