1 / 17

Best Practices in Developing Hig h Performance Java Applications A Perspective Keynote at Silicon India

Best Practices in Developing Hig h Performance Java Applications A Perspective Keynote at Silicon India. Rajgopal Kishore Vice President and Global Head of BI & Analytics, HCL Technologies rkishore@hcl.in rkishore9@gmail.com. Agenda. Business Implication of System Performance

dallon
Télécharger la présentation

Best Practices in Developing Hig h Performance Java Applications A Perspective Keynote at Silicon India

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Best Practices in Developing High Performance Java ApplicationsA PerspectiveKeynote at Silicon India Rajgopal Kishore Vice President and Global Head of BI & Analytics, HCL Technologies rkishore@hcl.in rkishore9@gmail.com

  2. Agenda • Business Implication of System Performance • Understanding Performance Requirements • Sharing Some War Stories • Best Practices

  3. Business Implications of System Performance • We all want a nice user experience • We won’t tolerate slow pages (we have options); lesser still any downtime • 500 ms slower = 20% drop in traffic (Google) • 100 ms slower = 1% drop in sales (Amazon) • Slower Warehouse management system – lower warehouse throughput! • Any downtime in a trading system - $m lost

  4. What is Performance? Is a subset of NFR… • On-line applications - • Response time • Maintaining response time with increasing load – scalability • Throughput • Handles user expectations/frustration • Availability • Batch applications • Runs in the batch window – which is constantly shrinking! • Does not slow down other on-line work to an unacceptable level

  5. Biggest Cause of Performance Failures.. • Not understanding performance requirements (implicit, explicit, real, or expectation) • Not setting expectations early enough • Not understanding and explaining trade-offs between performance and $ (infrastructure), and time

  6. Performance Requirements Capture – Sample • The application will be optimized for high throughput. Traffic is to be tested for 250 concurrent users and 24/7 operations • All simple transactions will have a response time of less than 5 seconds. Complex transactions will have a response time of 15 seconds • The response time of all the pages would be less than 3 seconds

  7. Consequently … • Performance requirements captured are insubstantial; Work pattern and user behavior is not understood • Infrastructure is suggested with out any basis • No performance benchmarking done till the system integration phase of the project • Benchmarking goals are not defined

  8. What are Performance Requirements? - Multiple dimensions • Infrastructure model • Boxes, routers, IP splitters, CPUs, RAM, bandwidth • Transaction model • Transaction arrivals rates, think time, variation across the day • External transaction model • Any messages, file uploads • Data retention model • # years, hot, warm and cold areas, read-only or read-write

  9. Some War Stories

  10. Deathcare Major in the US … • 15000 users • Complex application • Low bandwidth network – 128K • 7 seconds response time needs – set after a discussion

  11. Major Retailer … • Large and complex application for assortment planning • Board level visibility

  12. Large fashion Retailer… • Big brand • Wanted a 2 second response time for a planning application

  13. At a mid size Telecom company… • Need to “validate” capacity plan of their boxes for a MLM solution roll-out

  14. Summarizing Some Best Practices in development high performance apps… What you will not get on the Internet

  15. Best Practices … • Understand, set and control expectations. • Always attempt to understand real business need as opposed to articulated performance requirements • Big picture first – infrastructure capacity planning • Then optimize the application – create an app where the only bottleneck is the infrastructure …

  16. Best Practices … • Abstraction is not good for performance …. Including Virtualization!!! • Do not use the same APIS for batch and on-line programs • Early stage performance prototyping….

  17. Questions!

More Related