http://predixtransform.com
Understand the nuances of non-functional testing and analysis of your services when deployed on Predix Cloud. The session will also cover how to effectively set up your environment for performance engineering.
3. 3PREDIX TRANSFORM
Why go through the
hassle?
• Non-functional issues are
hard to find
• Catches issues early on in
SDLC
• More time for developers
to fix issues
• Saves you from waking up
at odd hours
4. 4PREDIX TRANSFORM
What tools to use?
• Any load generator tool of
choice (jmeter,
loadrunner, blazemeter)
• An application monitoring
tool (New Relic, App-
Dynamics*, Dynatrace*)
• Application log
persistence tool (ELK,
Splunk*)
• JMX metrics collector
(Jolokia)
5. 5PREDIX TRANSFORM
What type of tests to perform?
• Capacity
• Scalability
• Endurance
• Stress
• Chaos monkey*
7. 7PREDIX TRANSFORM
When do you performance test?
• As early in the SDLC process as possible (as early as
sprint 2 if you are on Agile)
• Build the performance test in your CI pipeline. Execute
them nightly.
• Run your endurance test once a week for 5-6 days.
• Persist the test results for historical comparison.
• Chaos monkey tests can run in Production-like
environment.
10. 10PREDIX TRANSFORM
Performance Engineering
Great, we identify service is slow
Architecture/
design
User load or
DoS attack
Data Size or
slow SQL
System/
infrastructure
Configuration
Unoptimized
code/check-in
Execution issues:
Locking/Process
contention
Resource isolation/
throttling in shared
cloud env
Hardware
Capacity
But, what is causing slowness? How do I know ?
RCA
11. 11PREDIX TRANSFORM
Troubleshooting Tools
• Profiling (Yourkit, debug
statement in app)
• Stack Trace analysis for
process contention using
jstack
• Heap dump analysis using
heapdump or similar tools
• Advanced Log analysis (app,
infrastructure, dependent
services)
• APM tools (New Relic/
Appdynamics)
• Monitor everything
• Benchmark Production
system before use
• Timeout for external api calls
• App logs for slow methods
• Throttling/ Admission control
in multi tenant cloud.
• Capacity and Auto Scale
• Hot deployment/debugging
• Sizing guide for private/public
cloud
Best Practices
12. 12PREDIX TRANSFORM
Key Takeaways
• Start early and go deep
• Always use a good monitoring tool
• Automate your tests into CI
• Enable developers
• Make test results accessible