Pull to refresh
8
0.7
Oleg Kunitsyn @olku

Outscaling & Governance

Send message

Spring Security: разберём по полочкам токены, фильтры и авторизацию (с диаграммами!)

Level of difficultyEasy
Reading time14 min
Views8K

Команда Spring АйО перевела статью, в которой подробно рассматривается процесс регистрации и аутентификации пользователей с использованием Spring Security.

Читать далее

Топ-7 нейросетей для создания презентаций с нуля

Reading time7 min
Views7.4K

2025 год сделал значительный шаг вперед в области искусственного интеллекта и нейросетей для генерации контента. Среди бесчисленного множества инструментов крайне важно выделить для себя реально качественные и годные, ведь кто не хочет сократить время на бестолковый поиск информации, особенно, когда дедлайны поджимают? (=

Без долгих прелюдий – в сегодняшнем обзоре обсудим лучшие из лучших AI-генераторов, разберем, что они из себя представляют, какой функционал, удобно ли ими пользоваться.

Приятного прочтения! =)

Читать далее

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Level of difficultyEasy
Reading time21 min
Views53K

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

Читать далее

Работа с Terraform: эмпирические правила

Level of difficultyHard
Reading time6 min
Views2.3K

Примерно с 2018 года я занимаюсь программированием инфраструктуры если не каждый день, то несколько раз в неделю. Я не утверждаю, что это позволяет мне претендовать на какой-то авторитет. Но за это время я определённо успел сформировать конкретные мнения по некоторым вопросам. В этой статье поделюсь некоторыми этими наблюдениями в качестве эмпирических правил, которым пытаюсь следовать при разработке для Terraform, но с тем же успехом вы можете применять их и в других языках для программирования инфраструктуры.

Читать далее

«База» по метрикам в Prometheus

Level of difficultyMedium
Reading time12 min
Views10K

Привет, Хабр! Меня зовут Глеб Типсин, я являюсь ведущим разработчиком продукта «Системы персонализации и геймификации» в SM Lab.

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

Материал подойдёт тем, кто только знакомится с мониторингом и хочет освоить «базу», а также тем, кто уже работает с Prometheus, но хочет "освежить" свои знания и узнать что-то новое.

Читать далее

Первый шаг к кибернетическому тимлиду: автоматическое ревью кода на основе LLM

Reading time10 min
Views5.7K

Привет, Хабр! Меня зовут Евгений Зорин, я ведущий разработчик в центре инноваций Future Crew. У моего проекта достаточно компактная команда. Нам постоянно нужно проверять критически важную функциональность, и часто это может сделать только сам разработчик. С появлением современных LLM, таких как ChatGPT, возникла идея об их внедрении для ревью кода. В качестве подопытного кролика был выбран Swift. В этом материале я расскажу, чего мы добились, какие инструменты использовали и как LLM справляется с поставленной задачей.

Читать далее

AI в энтерпрайзе

Reading time6 min
Views1.8K

Основные проблемы в корпоративном IT это, как и прежде: инфраструктура, безопасность и работа с данными. В корпоративном секторе столько неэффективности и реакционности, что буст продуктивности, который принесет AI станет каплей в море. Без современной инфраструктуры и стека данных, внедрение AI не отобьет OPEX и тем более CAPEX.

Читать далее

Как автоматизировать оборону города с помощью Kubernetes CI/CD Pipeline: защита от зомби через автоматические обновления

Level of difficultyEasy
Reading time5 min
Views1.5K

Ситуация. Вы сидите в высокой башне Фуфелшмерц Пакостин Корпорейшн, и вдруг во всем мире случается зомби‑апокалипсис. Очевидно, что у гениального ученого где‑то есть «инатор» для борьбы и выживания в таком случае.

Порывшись немного в кладовке, вы случайно находите главный сервер здания, где страшными буквами написано КуБеРнЕтИс СИ/СД Пипелайн (разумеется на русском). Слава Богу, что вас когда‑то в универе пытались научить чему‑то, и вы, вроде, что‑то начинаете вспоминать...

Осталось только придумать, как с помощью этого сервера раскатить защиту башни на распознавание зомби, а не Перри...

Вспомнив наставления своего мастера (и английский алфавит) вы вспомнили, что КуБерНеТиС на самом деле отлично подходит для настройки непрерывной интеграции и доставке (CI/CD), чтобы автоматически обновлять защиту башни и мочить защищаться от зомби.

Читать далее

Simple Spring (полный фарш)

Level of difficultyMedium
Reading time55 min
Views7.7K

У нас был spring и hibernate
Мы твёрдо знали, что OAuth2.0 это хорошо, а принцип "Api first" ещё лучше.
И нам дали ровно 48-ь часов чтобы создать работающую инфраструктуру с возможностями авторизации, отслеживания метрик, динамической маршрутизацией запросов и раздачей конфигураций сервисам "на лету". Кроме того от нас хотели получить "best practics" по работе с БД в коде и лёгкой поддержке ролевой модели.

Читать далее

Маппинг даты и времени в Hibernate и JPA

Level of difficultyEasy
Reading time10 min
Views3K

Сегодня любой Java разработчик сходу сможет правильно ответить на вопрос "Как смапить дату и время из колонки таблицы БД на поле в Java классе?". Или нет? 

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

В новом переводе от команды Spring АйО рассказывается про подробности работы с современным API java.time, правильный маппинг данных с учётом часовых поясов, устаревших типов java.util.Date, Calendar и многое другое.

Читать далее

NATS, SAY NOT ONLY RabbitMQ and KAFKA

Level of difficultyEasy
Reading time10 min
Views2.9K

В данной публикации я хочу рассказать про относительно новый брокер сообщений NATS (Neural Autonomic Transport System). А также сравнить его с более популярными и известными брокерами RabbitMQ и Apache Kafka.

Читать далее

Как создать кастомный Starter для Spring Boot

Level of difficultyEasy
Reading time4 min
Views821

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

Сегодня я покажу, как создавать кастомные Starter'ы, которые помогут сэкономить время и стандартизировать конфигурации во всех микросервисах.

Читать далее

Простые сценарии использования Sonarqube

Reading time5 min
Views50K

На сегодняшний день это один из, или же самый известный способ автоматического анализа кода и его ревью. Популярностью он обязан тому, что этот сервис бесплатен и доступен, а так же для его установки не требуется много усилий. Интерфейс выглядит современно и понятно. Sonarqube, хоть и написан на java, не ест много ресурсов :)

Читать далее

RabbitMQ + Java Spring Часть 2

Level of difficultyEasy
Reading time5 min
Views1.1K

Предыдущая часть: RabbitMQ + Java Spring

P. S.: Гит разбит на ветки по частям (part-1, part-2...)

Я продолжаю серию, посвящённую использованию RabbitMQ в связке с Spring.В предыдущей части был реализован простой обмен двух микросервисов посредством очереди в MQ.В этот раз рассмотрим крутые фичи, которые предоставляет RabbitMQ

Читать далее

Отправляем пуш уведомления в телеграм через Spring Boot

Level of difficultyMedium
Reading time2 min
Views4.7K

Допустим, вы хотите аутентифицировать пользователей через телеграм и после этого отправлять им уведомления. В Spring Boot приложении это сделать довольно просто ✨

Читать далее

Как поймать и обезвредить проблемные запросы в PostgreSQL

Level of difficultyMedium
Reading time10 min
Views11K

«Как ускорить выполнение запросов к базам данных?» — извечный вопрос админов и пользователей. Казалось бы, раньше всё работало неплохо, но стоило клиентской базе вырасти в пять раз, как всё замедлилось. Знакомая ситуация? В этой статье расскажем, как найти запросы, которые можно ускорить, и оптимизировать их.

Статья подготовлена по материалам выступления на конференции PGCONF.СПБ 2024.

Бежим ловить запросы!

RabbitMQ + Java Spring

Level of difficultyEasy
Reading time9 min
Views3.7K

github

Понять статью не составит труда тем, кто знаком с Spring и Spring Web и хотя бы раз создавал простое приложение с контроллерами, сервисами и моделями (проще говоря - реализовывал паттерн Model View Controller).

Читать далее

DDD против реальности: распространённые ловушки и их решение в NestJS

Level of difficultyEasy
Reading time11 min
Views5.2K

Сложно внедрить DDD в NestJS, не запутавшись в абстракциях? В статье рассмотрены частые ошибки - от комбайна в контроллерах до формальных Value Objects. Разбираем, как выделять слои (Domain, Application, Infrastructure, Interface), правильно использовать Entities и репозитории и создавать поддерживаемую архитектуру.

Читать далее

Как мы взломали 512-разрядный ключ DKIM в облаке менее чем за $8

Reading time5 min
Views19K

В ходе нашего исследования, охватывавшего записи SPF, DKIM и DMARC на 1 миллионе самых популярных веб-сайтов мы с удивлением обнаружили более 1 700 открытых DKIM-ключей длиной менее 1 024 бит каждый. Эта находка нас удивила, поскольку RSA-ключи короче 1 024 бит расцениваются как небезопасные, и их не рекомендуется использовать в DKIM с 2018 года, когда был введён в действие документ RFC 8301.

Просто из любопытства мы решили проверить, а удастся ли нам взломать один из таких ключей. Мы стремились извлечь закрытый ключ из открытого RSA-ключа, так, чтобы можно было подписывать им электронные сообщения, выдавая себя за их подлинного отправителя. Кроме того, нас занимало, пройдут ли DKIM-верификацию электронные письма, подписанные таким скомпрометированным ключом. Мы решили проверить крупнейших провайдеров электронной почты —  в частности, Gmail, Outlook.com и Yahoo Mail — вдруг они просто с порога откажутся проверять цифровые подписи, сгенерированные настолько коротким ключом.

Для нашего эксперимента мы выбрали домен redfin.com, на котором нашли 512-разрядный открытый RSA-ключ по адресу key1._domainkey.redfin.com (сейчас он уже не доступен):

Читать далее

Как организовать безопасное хранение секретов в Docker: лучшие практики

Level of difficultyMedium
Reading time6 min
Views14K

Хей, Хабр! Секреты — это такая щекотливая тема, из‑за которой у безопасников начинаются нервные подёргивания глаза. Вроде бы «просто пароль» или «просто токен», но в 2025 году мы уже знаем, что просто в безопасности — это верная дорога к утечкам и ночным обкаткам плана B. В этой статье поговорим, как правильно хранить секреты в Docker‑контейнерах и окрестностях, а заодно разберёмся, чем могут помочь Docker Secrets, HashiCorp Vault и компания.

Читать далее

Information

Rating
1,803-rd
Location
Berlin, Германия
Registered
Activity