Курс, в котором уделяется время углубленному изучению администрированию сервера, созданию кластерных конфигураций, настройке системы безопасности и других типовых задач администратора.
Основные рассматриваемые темы:
- Архитектура решений на базе сервера Libercat. Типовые конфигурации, развёртывание приложений, интеграция с инфраструктурным ПО (веб-серверы, СУБД).
- Анатомия конфигурационных файлов.
- Механизмы перехватчиков запросов (Valves).
- Тонкая настройка журналирования.
- Автоматизация запуска сервера средствами ОС. Docker-контейнеры.
- Масштабируемые и отказоустойчивые конфигурации: реверсивный прокси, балансировщик нагрузки, кластеры.
- Конфигурация сервера приложений на совместную работу с системами непрерывной сборки и непрерывной интеграции (CI / CD).
- Вопросы производительности сервера приложений. Управление памятью, интеграция с инструментами мониторинга и профилирования приложений.
Программа курса
- Модуль 1: Введение
- Apache Software Foundation и Jakarta Project
- Платформы Java: Java SE (JRE + JDK).
- Платформа Jakarta EE: контейнеры и серверы приложений.
- Возможности и функционал Tomcat
- Отличия между версиями Tomcat , отличия Tomcat от Librecat в плане функциональных возможностей
- Стек Web Technology
- Введение в технологии виртуализации
- Обзор технологий виртуализации Linux
- Docker преимущества и недостатки
- Модуль 2: Инсталляция Libercat
- Варианты инсталляции Librecat (docker и др.)
- Зависимости и предусловия установки
- Инсталляция в виде stanalone-приложения
- Инсталляция в docker-контейнере
- Модуль 3: Каталоги Tomcat. Содержимое и назначение. Конфигурирование Tomcat
- bin
- conf
- lib
- logs
- temp
- webapps
- work
- server.xml (detailed walkthrough)
- web.xml
- context.xml
- Модуль 4: Valves-клапаны Tomcat
- AccessLog
- RequestFilterValve
- Выбор других фильтров из окружения
- Как можно заменить клапаны фильтрами
- Модуль 5: Управление памятью и JMX мониторинг
- Сборщик мусора в Java
- Использование JAVA_OPTS, JMX и JConsole для мониторинга и тюнинга использования память
- Калибровка куч в JVM
- Использование JMX и JConsole для конфигурирования Tomcat
- Изменение конфигурации Tomcat с помощью JMX “на лету” без рестарта Tomcat
- Нагрузочное тестирование с помощью JMeter
- Использование VisualVM
- Модуль 6: Журналирование
- JULI журналирование
- log4j журналирование
- Исключения и дампы потоков
- Модуль 7: Tomcat приложения и базы данных
- Классический подход JDBC
- Лучший подход: ресурсы JNDI
- Установка и мониторинг базы данных для пулов соединений
- Модуль 8: Безопасность
- Безопасность файловой системы
- Менеджер безопасности Java
- Аутентификация и авторизация
- SSL (обязательное)
- Закрытие потенциальных «дыр безопасности» в конфигурации «по умолчанию» для Tomcat.
- Security CWE list
- Модуль 9: Настройка производительности
- Рекомендации для JVM
- Сборка мусора (Parallel, Concurrent Mark Sweep, G1)
- Построение собственных коннекторов
- Отключение/удаление ненужных приложений
- Тюнинг пулов соединений
- Отключение режима разработчика
- Прекомпиляция JSPs
- Предустановка сервлетов
- Модуль 10: Запуск Tomcat за Apache httpd
- Зачем запуск Tomcat за Apache httpd или nginx?
- Installing mod_jk (Apache httpd or nginx) или mod_proxy_ajp и mod_proxy_balancer
- «Проксирование» трафика к Tomcat через AJP
- Мониторинг состояния подключения web-сервера к Tomcat
- Модуль 11: Кластеризация Tomcat
- Конфигурирование mod_jk (в Apache или ) или mod_proxy_balancer (начиная с Apache 2.2) как балансировщика нагрузки
- Интеграция с haproxy
- Аппаратное балансирование нагрузки как альтернатива программному
- Сессии sticky
- Репликация сессий
- Конфигурирование распределенных приложений