devops
-
Опыты с ssl
В https://github.com/cherepakhin/senior/tree/main/new_site/ssl опыты в папке sert_testing из https://test.playincloud.ru/index.php/spravochnik/43-certs.
-
Перевод сайта на https
Проверка конфигурации сервера apache2:
$ sudo apachectl configtest Syntax OK
Проверка наличия модуля ssl в apache http сервере:
-
По мотивам hr-admin
По мотивам
hr-admin
https://github.com/cherepakhin/hr_admin

Заготовка для UI проектов со Spring Boot Web
Java 17
Основная цель ТОЛЬКО FRONTEND.- В качестве template использован Freemarker с помощью библиотеки spring-boot-starter-freemarker
- Простой CRUD. База данных H2.
- Использован Tailwind CSS Framework(TailwindCSS) - CSS-фреймворк для оформления интерфейсов.
- При тестировании использован AssertJ
- Тесты в BDD стиле с Mockito (смотри файл EmployeeControllerTest.java)
- DataJpaTest в (смотри файл EmployeeRepositoryDataJpaTest.java)
- Использован GigaChat
Развернуто тут: https://v.perm.ru/hr_admin/ (запустить ~/temp/hr_admin.sh)
spring-boot-mdl
-
Покрытие тестами 100%
Задача: довести покрытие тестами до 100%. Зачем? А почему бы и нет?

-
Проблема kworker 100% CPU
Проблема: процесс kworker : kacpi_notify сильно грузит процессор (до 100%)
Решение: -
Программы для Диаграммы
1. Plantuml
2. Dia
3. Draw.io
4. Miro
5. mermaid.aiДиаграммы как рабочие инструмент, а не только для документирования и презентаций. Для индивидуального использования я выбрал PlantUML, а для работы в команде Miro.
PlantUML - мой выбор, потому что диаграмму можно писать текстом, а PlantUML ее сам визуализирует и размещает на странице, бесплатный и работает везде, что-то типа блокнота.
Miro - отличный сервис, мегамонстр, но платный (есть бесплатный вариант с некоторыми ограничениями). И в одном из проектов очень даже показал себя.
Drawio и Dia - бесплатный сервис, удобен когда нужно еще и распечатать или вывести на печать, сохранить в pdf. -
Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему
- Жанр: Бизнес
- Автор: Джордж Спаффорд, Джин Ким, Кевин Бер
- Читает: Андрей Крупник
- Продолжительность: 13 часов 14 минут
-
Простой проект на Kotlin и Spring Boot
Оглавление:
Статический анализатор Idea Analize
JPA Entity классы с KotlinUnit тестирование
Интеграционное тестирование в проекте
Покрытие тестами
Spring profiles
CORS filter
Тестовый запускСоздание запускаемого файла и его запуск
Publishing SpringBoot "FAT" jarИнтеграционное тестирование
Примеры тестов httpie
DataJpa tests
RestAssured tests
Нагрузочное тестированиеMicrometer
Prometheus
Пример просмотра использования CPU в Prometheus
Запуск prometheus в dockerDocker
Grafana
Кеширование
Сборка Jenkins
NexusПросмотр ресурсов с помощью Java Mission Control
ЛогированиеИспользование "ChatGPT-EasyCode" в Idea
Использование "ChatGPT-EasyCode" в VSCodeЧастный параметр конфигурации в application.yaml
Переопределение значения переменных application.yaml -
Работа с Kafka
Простые приложения для работы с Kafka на Kotlin:
https://github.com/cherepakhin/shop_kafka_producer
https://github.com/cherepakhin/shop_kafka_consumer
В Readme.md этих проектов более подробное описание.Составные части Kafka
Kafka — брокер сообщений, с помощью которого разные микросервисы общаются друг с другом. Также используется для отправки логов (например в Graylog и Elastic), хранения данных и т. д.
Брокер — узел Kafka, отвечает за прием, сохранение и передачу сообщений между продюсерами (Producer) и консюмерами (Consumer)
Консюмер (Consumer) — получатель сообщения
Продюсер (Producer) — отправитель сообщения
Zookepeer — хранит конфигурации, состояния, обнаруживает брокеров, выбирает контроллер кластера, отслеживает состояние узлов и обеспечивает функциональность и надёжность кластера
Контроллер кластера — отвечает за назначение мастеров партиций и отслеживает состояние брокеров
Offset Kafka — это понятие, которое используется для обозначения позиции в потоке сообщений. Offset отслеживает, на каком месте в потоке находится каждый консюмер, чтобы он мог читать сообщения с нужной позиции. Каждый раз, когда потребитель читает сообщение, его позиция сдвигается на одно сообщение вперед.
Партиция (Partition) — единица многопоточности в Kafka. Число партиций в топике можно лишь увеличивать. Партиции это те самые шарды, которые используются для шардирования в Kafka.
Реплика (Replica) — копия партиции. Реплика может быть размещена на другом узле для обеспечения отказоустойчивости. Обеспечивает репликацию данных.
Топик (topic) — служит для записи и чтения сообщений.
Консюмер группа (Consumer group) — группа получателей сообщенийZookeeper
Перед запуском самого брокера Kafka, нужно запустить Zookeeper (это сервис координации сервисов с базой "ключ-значение"):
-
Работа с log
Разработчик сам должен позаботиться о качестве логов, информации из stacktrace будет маловато. Интересны условия возникновения ошибки. Однозначно нужны значения переменных в момент возникновения ошибки, т.к. эти данные потом нигде не получить. Примитивный пример:
-
Разработка в offline режиме
Проблема: доступ в интернет или к репозиториям проекта сильно ограничен, практически, околонулевой. Решение - кешировать зависимости.
-
Репозитории yandex
Возникают проблемы при сборке проектов (санкции?). Яндекс подсуетился и сделал зеркало репозиториев https://mirror.yandex.ru/ (в.т.ч. maven, дистрибутивы linux и др.программ).
-
Создание fat jar файла
Оглавление:
-
Тестирование REST
В заметке описаны инструменты тестирования REST и примеры использования.
А чем, собственно, проблема?

-
Установка Credentials в Jenkins
"Скажи пароль? - Пароль! - Проходи!"
Credentials - это пара user/password для различных доступов (git, deploy и т.п.).
-
Установка Kafka в Linux
Установка описана в https://www.dmosk.ru/miniinstruktions.php?mini=kafka-linux.
Дистрибутив Kafka: https://downloads.apache.org/kafka/
Скачать https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz -
Установка Tomcat 9 в Linux
Установка
https://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.zip
Распаковать apache-tomcat-9.0.98.zip в /usr/share/tomcat9/
Запустить: -
Установка и использование MiniKube
Перед запуском освободить память:
vasi@v:~$ sudo systemctl stop elasticsearch.service vasi@v:~$ sudo systemctl stop nexus.service
Minikube запускается в виртуальной машине. Описание установки и запуска описано в https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fdebian+package.
-
Установка и использование Minikube на раз-два-три
1. Запуск minikube
-
Установка и использование Prometheus, Grafana

Prometheus - инструмент сбора метрик приложений.
Grafana - отображение собранных статистических данных о работе приложений.
На картинке ниже отображены результат работы двух приложений, расположенных на разных хостах.
Страница 2 из 3