Performance, Scalability, Monitoring and Robustness -- with tools hacks and workarounds.
JVM and Java EE application servers come with an amazing set of useful features and monitoring capabilities. In this workshop we will focus on debugging, tuning, bottleneck-, deadlock- and memory leak hunting.
Attendance at Effective Java EE, Java EE Microservices or similar project experience.
- Application servers "under the hood": request queues, thread pools, connections, acceptors (...)
- Disk, RAM, and runtime overhead measurements and requirements
- Performing stress and load tests
- Typical design flaws of Java EE applications
- Identifying performance bottlenecks
- Identifying memory leaks
- Using built-in monitoring capababilities
- Implementing Key Performance Indicators and metrics
- Application server tuning
- JVM tuning in Java EE context
- Java 9: Monitoring and troubleshooting with Java Mission Control
- Tools and utilities
- Designing for scalability
- Load balancing with or without clusters
- Logging and exception handling strategies
- Designing, implementing and exposing health checks
- Considering "cloud native" robustness requirements
- Dealing with concurrency
- Impact of transactions on performance and scalability
- Implementing centralized logging with Elastic
- Implementing centralized metrics with prometheus
- Application server monitoring with prometheus
- Visualisation with Grafana
In this advanced workshop I would like to explain the most significant features with working code and prepared examples. As a reference, you will get a GIT repository with all snippets and solutions, as well as prepared sample applications.
A developer laptop with pre-installed Java 1.8, GIT-client and Maven 3 is required to run the examples. You can run the examples if you like, or "hack" along with me, but taking notes is perfectly viable as well.
I/we will spend 90% of the time in code.
Feel free to contact me / register via email: workshops[-AT-]adam-bien.com