About performance testing
with NanoCloud
Artem Panasyuk
20/02/2014

Big Systems/Big Data Meetup, Moscow

Artem Panasyuk
20...
Why?
• Early design is a critical stage in product
development. Choices made here has major
influence on final product qua...
How?
• K.I.S.S. - Keep It Simple and Straightforward
-- Apollo project
• "Premature optimization is the root of all evil"
...
Performance vs. Functional
• Functional testing is an essential part of
software development lifecycle:
o Test written onc...
Functional testing toolkit
• xUnit
• IDE

Big Systems/Big Data Meetup, Moscow

Artem Panasyuk
20/02/2014
Performance testing toolkit
•
•
•
•
•
•
•

Bash/SSH/SCP/Ant/…
IDE/JMeter/Grinder/…
YourKit/JProfiler/VisualVM/…
Zabbix/Gen...
Performance vs. Functional
• Common situations with performance testing:
o Tests are written ad hoc and short-lived
o Code...
Try to simplify toolkit?
• IDE
• NanoCloud
• Only Java libraries
ViNode node = cloud.node("remote-node");
RemoteNodeProps....
Performance test with NanoCloud

Big Systems/Big Data Meetup, Moscow

Artem Panasyuk
20/02/2014
Solved with NanoCloud
•
•
•
•
•

Ad-hoc performance testing
NFR verification
Performance regression testing
Stress and fai...
Development workflow
• Performance test driven development (PTDD):
o Write simplest functional code
o Benchmark it
o Impro...
Links
•
•
•
•
•
•
•
•
•
•

NanoCloud
http://code.google.com/p/gridkit/wiki/NanoCloudTutorial
ZooKeeper benchmark example
h...
Q&A

Big Systems/Big Data Meetup, Moscow

Artem Panasyuk
20/02/2014
Upcoming SlideShare
Loading in …5
×

About performance testing with NanoCloud

641 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
641
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

About performance testing with NanoCloud

  1. 1. About performance testing with NanoCloud Artem Panasyuk 20/02/2014 Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  2. 2. Why? • Early design is a critical stage in product development. Choices made here has major influence on final product quality and price. • Suppose development of a system that must satisfy some performance requirements. What is the right time to start performance testing? Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  3. 3. How? • K.I.S.S. - Keep It Simple and Straightforward -- Apollo project • "Premature optimization is the root of all evil" -- Donald Knuth • Use your time to design simple solution and validate that it works rather then complex with the belief that it will work. Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  4. 4. Performance vs. Functional • Functional testing is an essential part of software development lifecycle: o Test written once continues to work in the future o Always compatible with latest version of codebase o Owned and maintained by the whole DEV team o Toolkit is highly automated o Approved/required by management • What about performance testing? Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  5. 5. Functional testing toolkit • xUnit • IDE Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  6. 6. Performance testing toolkit • • • • • • • Bash/SSH/SCP/Ant/… IDE/JMeter/Grinder/… YourKit/JProfiler/VisualVM/… Zabbix/Geneos/… grep/vmstat/ifstat/iostat/top/… Excel/R/GNU Plot/AWK/… I’m sure you have own favorite tools Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  7. 7. Performance vs. Functional • Common situations with performance testing: o Tests are written ad hoc and short-lived o Codebase is way ahead o Owned and maintained by dedicated team member o Toolkit implies lot of manual work o Management doesn't recognize benefits and can't accept time consumption • How we can improve this? Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  8. 8. Try to simplify toolkit? • IDE • NanoCloud • Only Java libraries ViNode node = cloud.node("remote-node"); RemoteNodeProps.at(node).setRemoteHost("longmrdfappd1.uk.db.com"); node.exec(new Runnable() { @Override public void run() { System.out.println("Hello from longmrdfappd1.uk.db.com"); } }); Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  9. 9. Performance test with NanoCloud Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  10. 10. Solved with NanoCloud • • • • • Ad-hoc performance testing NFR verification Performance regression testing Stress and failover testing Sizing and capacity planning Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  11. 11. Development workflow • Performance test driven development (PTDD): o Write simplest functional code o Benchmark it o Improve based on test measurements • Never optimize unless you can measure outcome • Never speculate, measure and justify Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  12. 12. Links • • • • • • • • • • NanoCloud http://code.google.com/p/gridkit/wiki/NanoCloudTutorial ZooKeeper benchmark example http://gridkit.googlecode.com/svn/gridlab/trunk/examples/zk-benchmark-sample/ BTrace (Java dynamic profiling) https://kenai.com/projects/btrace Sigar (system monitoring on Java) https://github.com/hyperic/sigar XChart (java plotting library) http://xeiam.com/xchart.jsp Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014
  13. 13. Q&A Big Systems/Big Data Meetup, Moscow Artem Panasyuk 20/02/2014

×