Курс для действующих Java-разработчиков с опытом от 2х лет, желающих углубить знания в устройстве JVM, принципах профилирования и оптимизации приложений в облачной инфраструктуре.
После курса Вы сможете:
- Обосновать выбор имплементации JVM
- Изучить байткод, применить инструмент, меняющий байткод
- Выбрать нужный GC под задачу
- Получить дамп памяти
- Анализировать heap работающего приложения. Найти утечку памяти
- Ускорить загрузку приложения
- Подключить агентов к JVM
- Собрать модуль в модульной системе JAVA
- Синхронизировать потоки с помощью объектов java.util.concurrent
- Профилировать приложения, искать «горячие» места
- Использовать фреймворки на основе неблокирующих IO
- Использовать реактивный подход при обработке данных: Reactor
- Деплоить приложения в Kubernetes
- Настроить service mesh
- Спроектировать модель метрик приложения: что, где и как фиксируем
- Настроить интеграцию приложения с Prometheus
- Настроить интеграцию Prometheus & Grafana
- Реализовать дашборд в Grafana.
- Проработать модели логирования в сервисе. Обеспечить трассировку запросов
- Спроектировать приложения (сервисы): распределить зоны ответственности по приложениям
- Обеспечить аутентификацию и авторизацию при вызове сервисов
- Спроектировать REST API одного сервиса: набор методов и DTO к ним
- Описать сервис с помощью OpenAPI, Swagger
- Описать сообщения на Protobuf
Программа курса
Модуль 1. Java Virtual Machine (JVM)
- Тема 1. OpenJDK vs OracleJDK и другие имплементации
- Тема 2. Byte code
- Тема 3. Garbage Collector: разбор разных GC
- Тема 4. Java memory management
- Тема 5. Memory dump
- Тема 6. Class Data Sharing
- Тема 7. HotSpot JVM Performance Enhancement
- Тема 8. Java Instrumentation
- Тема 9. Модульная система Java
- Тема 10. Обзор прочих областей
- Тема 11. JDK tools
- Тема 12. Сессия Q&A
Модуль 2. Многопоточность и производительность
- Тема 13. Java.util.concurrent. Часть 1
- Тема 14. Java.util.concurrent. Часть 2
- Тема 15. Java.util.concurrent. Часть 3
- Тема 16. Профилирование java приложений. Thread dump, JFR
- Тема 17. Профилирование java приложений. Работа с jvisualvm & asyncProfiler
- Тема 18. Off-heap
- Тема 19. Java NIO
- Тема 20. Реактивное программирование
- Тема 21. Reactor
- Тема 22. Сессия Q&A
Модуль 3. Облачные технологии
- Тема 23. Вспоминаем Docker
- Тема 24. Детально про Kubernetes. Часть 1
- Тема 25. Детально про Kubernetes. Часть 2
- Тема 26. Обзор Helm
- Тема 27. Метрики
- Тема 28. Prometheus & Grafana
- Тема 29. Сквозное логирование в микросервисах
- Тема 30. Проектирование и архитектура в разрезе микросервисов
- Тема 31. Работаем над микросервисным приложением
- Тема 32. Безопасность веб-приложений в микросервисах
- Тема 33. Сессия Q&A
Модуль 4. Протоколы взаимодействия
- Тема 34. Rest: Swagger, OpenAPI
- Тема 35. Protobuf, gRPC
- Тема 36. SOAP
- Тема 37. RabbitMQ
- Тема 38. Kafka
- Тема 39. NoSQL
- Тема 40. Сессия Q&A
Модуль 5. Проектная работа
- Тема 41. Выбор темы и организация проектной работы
- Тема 42. Консультация по проектам и домашним заданиям
- Тема 43. Защита проектных работ
Курс рассчитан на 6 месяцев плотного обучения.




