devops
-
Настройка Jenkins
TODO.
Для красивого отображения сборки в Jenkins нужно установить https://plugins.jenkins.io/pipeline-stage-view. Сборка будет выглядеть так:
-
Настройка NAT в Linux Debian (интернет в локальной сети)
Пока только ссылки. На статью не тянет.
-
Настройка UFW
Настройка шлюза в интернет для домашней сети на базе компьютера с 2 сетевыми картами. Одна карта смотрит в интернет c фиксированным интернет IP адресом, другая подключена к домашнему wifi роутеру.
Проверка статуса сервиса ufw, конфигурация портов: -
Опыты с 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/
Запустить:
Страница 2 из 3