Pull to refresh
5
0
Александра Волушкова @SashaVolushkova

Java Backend Developer

Send message

Prometheus: как Бог огня стал Богом мониторинга

Level of difficultyEasy
Reading time6 min
Views6K

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

Метрики собирает и анализирует Prometheus – гибкая система с открытым исходным кодом, являющаяся одним из самых распространенных инструментов для реализации мониторинга.

Цель данной статьи - рассмотреть процесс разработки сервиса мониторинга на основе Prometheus и оценить его значимость в контексте современной разработки программного обеспечения.

Читать далее
Total votes 16: ↑14 and ↓2+13
Comments14

Цикл статей о Greenplum. Часть 1. GP под капотом

Level of difficultyMedium
Reading time6 min
Views6.9K

Всем привет!

Как вы знаете, многие поставщики ПО ушли с российского рынка ввиду введённых санкций и многие компании столкнулись с необходимость заняться импортозамещением в кратчайшие сроки. Не стал исключением и наш заказчик. Целевой системой, на которое было принято решение мигрировать старое хранилище, стал Greenplum (далее GP) от компании Arenadata.

Этой статьей мы запускаем цикл материалов посвященных Greenplum. В рамках цикла мы разберем, как вообще устроен GP и как выглядит его архитектура. Постараемся выделить must have практики при работе с данным продуктом, а также обсудим, как можно спроектировать хранилище на GP, осуществлять мониторинг эффективности работы и многое другое. Данный цикл статей будет полезен как разработчикам БД, так и аналитикам.

Читать далее
Total votes 19: ↑18 and ↓1+21
Comments2

Старт приложений в БД Oracle через CRON: предотвращение параллельного выполнения

Level of difficultyEasy
Reading time3 min
Views1K

Работа одного и того же приложения одновременно в нескольких сессиях ни к чему хорошему привести не может, в лучшем случае – это просто лишняя нагрузка на сервер, в худшем – взаимные блокировки (deadlock) и как следствие – аварийное завершение приложений и/или значительное увеличение времени работы из-за многочисленных откатов транзакций. Как предотвратить параллельный запуск? Читайте в статье.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

Spring MVC REST API: автономная конфигурация при написании модульных тестов

Reading time8 min
Views2K

Создание и настройка необходимых компонентов без дублирования кода

Отправка HTTP-запросов в тестируемую систему без дублирования кода

Настройка Spring MVC Test framework, при написании модульных тестов для Spring MVC REST API с помощью JUnit 5.

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments1

Join или не Join, вот в чем вопрос…

Level of difficultyEasy
Reading time9 min
Views16K

В процессе разработки программ с обращениями к базам данных часто возникает проблема создания SQL-запроса по большому количеству таблиц. Существует два варианта: один сложный запрос с большим количеством Join’ов и условий или несколько простых SQL-запросов с последовательным применением результата обработанного запроса к следующим запросам. Какой более эффективный? Читайте в статье.

Читать далее
Total votes 20: ↑11 and ↓9+2
Comments36

Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0

Level of difficultyMedium
Reading time27 min
Views22K

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

В данной статье мы рассмотрим процесс интеграции Keycloak в наше приложение Spring Boot 3 в качестве сервера авторизации с использованием протокола OAuth2. Обсудим смысл OAuth2, его механизм работы и сравним его с другими протоколами. Кроме того, мы настроим Keycloak с использованием Docker Compose, воспользовавшись PostgreSQL в качестве базы данных для Keycloak. Затем мы интегрируем Keycloak с нашим приложением Spring Boot 3, используя протокол OAuth2. Также мы подключим Keycloak Admin Client и, наконец, проверим функциональность всей системы.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments16

Миграция базы данных с Oracle на PostgreSQL в системе с микросервисной архитектурой

Level of difficultyEasy
Reading time12 min
Views4.1K


Привет! Эта статья рассказывает о моем опыте миграции СУБД с Oracle на PostgreSQL в системе с микросервисной архитектурой и является продолжением моего доклада на PGConf.Russia 2023. Я постарался выделить и описать в ней самые интересные и важные, на мой взгляд, моменты на пути по поиску и внедрению альтернативы Oracle, тестированию Greenplum и, в конечном итоге, переходу на несколько связанных баз данных PostgreSQL. Надеюсь, что данная информация будет полезна и интересна всем, кто уже столкнулся с похожей задачей, неизбежно к ней движется или просто интересуется данной темой.
Читать дальше →
Total votes 12: ↑11 and ↓1+13
Comments4

Модульные тесты как оплот стабильности в Agile разработке

Level of difficultyMedium
Reading time15 min
Views3.5K

В этой статье мы рассмотрим ту часть тестирования, которой не касаются специалисты по тестированию — модульные тесты. Почему же при Agile так необходимо иметь качественное покрытие модульными тестами? Раскроем их положение в цикле разработки и цели их создания. Рассмотрим различные варианты оценки качества покрытия тестами при разработке backend приложения на языке Java с использованием Spring-boot. С помощью Jacoco построим отчет и увидим недостатки численных оценок покрытия тестами. Сформулируем субъективные оценки модульного тестирования и советы по их разработке.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments2

Особенности VACUUM в MPP-форках PostgreSQL

Reading time11 min
Views7.3K

Один из важнейших аспектов, за которым должен следить каждый администратор баз данных PostgreSQL — процесс поддержания «здоровья» базы данных vacuum / autovacuum, удаляющий из памяти неактуальные версии табличных строк и сбрасывающий счётчик транзакций.

В этой статье я систематизировал особенности vacuum / autovacuum, с которыми сталкиваются администраторы MPP-РСУБД.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments8

API-First и микросервисы

Reading time15 min
Views23K

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments11

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer
Git
Java
OOP
Database
PostgreSQL
MongoDB