Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Paris Devops - Monitoring And Feature Toggle Pattern With JMX
1. Monitoring and
Feature Toggle Pattern
with JMX
Bruno Bonfils
Cyrille Le Clerc 15/06/2011
Thursday, June 16, 2011
2. Speaker
@cyrilleleclerc
blog.xebia.fr
Cyrille Le Clerc
Large Scale
In Memory Data Grid
Open Source
(Apache CXF, ...)
“you build it, you run it”
2
Thursday, June 16, 2011
4. The Use Case
Corporate Data Center
travel-ecommerce
anti-fraud
Tomcat
Tomcat
travel-ecommerce anti-fraud
Tomcat Tomcat
Credit Card Service
Travel e-commerce application
4
Thursday, June 16, 2011
5. The Use Case
xebia-spring-travel source code
▶ http://xebia-france.googlecode.com/svn/training/xebia-spring-travel/tags/xebia-spring-travel-1.0.0/
▶ Groovy JMX scripts
» http://xebia-france.googlecode.com/svn/training/xebia-spring-travel/tags/xebia-spring-travel-1.0.0/xebia-spring-travel-
ecommerce/src/main/scripts/
▶ JMXTrans Configuration
» http://xebia-france.googlecode.com/svn/training/xebia-spring-travel/tags/xebia-spring-travel-1.0.0/xebia-spring-travel-
ecommerce/src/main/jmxtrans/
▶ JMeter plan
» http://xebia-france.googlecode.com/svn/training/xebia-spring-travel/tags/xebia-spring-travel-1.0.0/xebia-spring-travel-
ecommerce/src/main/jmeter/
xebia-management-extras JMX library
▶ http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras
5
Thursday, June 16, 2011
6. Part 1
Monitoring with JMX
6
Thursday, June 16, 2011
8. Simplified Use Case
Corporate Data Center
travel-ecommerce
Tomcat
Credit Card Service
Mock
Monitoring Booking and Credit Card Service
8
Thursday, June 16, 2011
9. Simplified Use Case
Corporate Data Center
travel-ecommerce
Tomcat
Credit Card Service
Mock
Monitoring Booking and Credit Card Service
9
Thursday, June 16, 2011
17. Monotoring systems
AppDynamics
Hyperic
All others ...
17
Thursday, June 16, 2011
18. JVM Based Scripting Language
http://code.google.com/p/xebia-france/source/browse/training/xebia-spring-travel/tags/xebia-spring-
travel-1.0.0/xebia-spring-travel-ecommerce/src/main/scripts/getAntiFraudVerificationStatus.groovy
18
Thursday, June 16, 2011
19. Part 2
Feature Toggle Pattern with JMX
19
Thursday, June 16, 2011
21. Simplified Use Case
Corporate Data Center
travel-ecommerce
anti-fraud
Tomcat
Tomcat
Credit Card Service
Enable anti-fraud
21
Thursday, June 16, 2011
23. What is it ?
Technique to enable/disable a feature without
redeploying
Can be simple : on/off
Can be sophisticated : f(user), f(server), etc
23
Thursday, June 16, 2011
24. Benefits of the Feature Toggle Pattern
Dissociate deployment & feature activation
Progressive activation of a feature
Canary Testing
Measure impacts of a new version
A/B Testing
Differ feature activation on production
Trunk based development
24
Thursday, June 16, 2011
26. Coding Patterns
Dispatcher
AntiFraudService
<<Interface>>
AntiFraudServiceV1Impl
AntiFraudService
DispatchingImpl
AntiFraudServiceV2Impl
JMX
transient persistent
The dispatcher holds the feature toggle
http://code.google.com/p/xebia-france/source/browse/training/xebia-spring-travel/tags/xebia-spring-
travel-1.0.0/xebia-spring-travel-ecommerce/src/main/java/fr/xebia/ws/travel/antifraud/v1_0/
AntiFraudServiceDispatchingImpl.java 26
Thursday, June 16, 2011
27. Coding Patterns
To duplicate or not to duplicate ?
Dispatching
Smart reuse and mutualization
Dispatching
Brutal duplication
Version 1
Version 2
27
Thursday, June 16, 2011
28. Coding Patterns
To duplicate or not to duplicate ?
Dispatching
Smart reuse and mutualization
Dispatching
Brutal duplication
Version 1
Version 2
28
Thursday, June 16, 2011
29. Coding Patterns
To duplicate or not to duplicate ?
Dispatching
Smart reuse and mutualization
Dispatching
Brutal duplication
Version 1
Version 2
29
Thursday, June 16, 2011
30. Coding Patterns
To duplicate or not to duplicate ?
Old version removal requires cleanup
Smart reuse and mutualization
Old version removal is clean
Brutal duplication
Version 1
Version 2
30
Thursday, June 16, 2011
31. Coding Patterns
To duplicate or not to duplicate ?
Old code removal is simpler with brutal duplication
31
Thursday, June 16, 2011