Mais conteúdo relacionado Semelhante a Cranking It Up - SuiteWorld 2017 (20) Mais de Diego Cardozo (16) Cranking It Up - SuiteWorld 20172. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.2
CRANKING IT UP: WEB PERFORMANCE
GAINS IN NETSUITE 17.1
Jeff Binder, Head of Commerce Performance & Scalability, Oracle + NetSuite
Diego Cardozo, Sr. Web Performance Engineer, Oracle + NetSuite
Mark Sweeting, Sr. Web Performance Engineer, Oracle + NetSuite
April 25, 2017
NEXT STARTS NOW
4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.4
Safe Harbor Statement
The following is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated into
any contract. It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions.
The development, release, and timing of any features or functionality
described for Oracle’s products remains at the sole discretion of Oracle.
5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.5
AGENDA – PERFORMANCE
5
1 Benchmarks and updates
2 Improvements in 17.1
3 Performance checklist
4 Common problems and solutions
5 Services
6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.6
PERFORMANCE
STANDARDS
INDUSTRY
BENCHMARKING
7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.7
NETSUITE 2016 PERFORMANCE STANDARDS
3,5
1,5 1,5
2
3
2
1
5
4 4
1 1
3
1
2
0
2
4
6
Seconds
8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.8
NETSUITE INDUSTRY INDEX
(Q3, 2016)
STRICTLY CONFIDENTIAL. DO NOT DISTRIBUTE.
9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.9 STRICTLY CONFIDENTIAL. DO NOT DISTRIBUTE.
10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.10 STRICTLY CONFIDENTIAL. DO NOT DISTRIBUTE.
11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.11 STRICTLY CONFIDENTIAL. DO NOT DISTRIBUTE.
12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.12
PERFORMANCE
IMPROVEMENTS
PRODUCT / PLATFORM
13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.13
PERFORMANCE IMPROVEMENTS IN 2017.1
1. Single domain shopping and checkout over HTTPS
2. MatrixChildDetails & Related Item custom fieldsets
3. The ability to turn user event scripts on/off in webstore
4. Performance improvement for larger carts
14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.14
SSL SINGLE DOMAIN SHOPPING & CHECKOUT:
15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.15
SSL SINGLE DOMAIN SHOPPING & CHECKOUT:
16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.16
WITHOUT MATRIX CHILD DETAILS - FIELDSET
Items API call: http://advanced.localhostloopback.com/api/items?q=iphone&fieldset=itemssearcher
Notice that all the fields returned for Matrix
Child Items are from the default Matrix Child
Items Related Field Set
17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.17
WITH MATRIX CHILD DETAILS - FIELDSET
Items API Call: http://advanced.localhostloopback.com/api/items?q=iphone&fieldset=itemssearcher&matrixchilditems_fieldset=searchmatrix
Notice that there are fewer fields returned, and all the
fields returned for Matrix Child Items are from newly
created Related Field Set “Search Page Matrix Child
Items”.
With fewer fields to return per matrix child item, the
page will load faster.
18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.18
TURNING OFF SCRIPTS IN SCA/SCIS:
3. The ability to turn user event scripts on/off in webstore:
19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.19
FASTER CART:
20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.20
PERFORMANCE IMPROVEMENTS COMING UP
Please note: “The following is intended to outline our general product direction. It is intended for information purposes only,
and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and
should not be relied upon in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle Corporation.”
1. Support for HTTP2 for SuiteCommerce
2. Merge Shopping, Checkout and My Account into one SPA
3. Faster SEO Engine
4. Faster Item API based on Elastic instead of SOLR
21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.21
PERFORMANCE
CHECKLIST
22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.22
CHECKLIST
•It is not just about what we can do for you
•You can have an enormous positive impact in your own performance
•We built the following checklist to help you out
−You can evaluate your own website performance
−Identify and tackle common performance problems
•https://developers.suitecommerce.com/performance
23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.23
• 40+ page guide on performance tuning
that follows the checklist structure
CHECKLIST
• 1 page checklist that summarizes all the
important action items
24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.24
COMMON
PROBLEMS
AND SOLUTIONS
25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.25
COMMON PROBLEMS
•Searching for a product is slow
•Slow home page load
•Navigating directly into inner pages is slow
•Adding a product to the cart is slow
•Proceeding to checkout is slow
•Placing an order is slow
26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.26
SEARCHING FOR A PRODUCT IS SLOW
• We need to understand how search works in order to understand why it is
slow
• A SolR query is ran on the application server, which indicates which items
are to be returned
• A database query is ran on the database server, which returns data for those
items
• We can see those timings the timings using the following parameter:
&ssdebug=T
Browser SolR Database query
27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.27
SEARCHING FOR A PRODUCT IS SLOW
1. Open request on chrome dev tools
2. Add &ssdebug=T parameter
SoLR = 325 ms
SQL = 2.5 s
28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.28
SOLUTION – REMOVE UNUSED FIELDS
Item
(24)
Item
Data
Related Items
(30)
Custom Fields
Item Data, Stock Info,
Images
• itemid
• internalid
• displayname
• ispurchasable
• quantityavailable
• isbackorderable
• isinstockStock Info
Images
Pricing
Info
• onlinecustomerprice
• onlinecustomerprice_formatted
• priceschedule
29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.29
SOLUTION – REMOVE UNUSED FIELDS
Item
(24)
Item
Data
Related Items
(30)
Custom Fields
• ispurchasable
• quantityavailable
• isbackorderable
• isinstock
Stock Info
Images
Pricing
Info
• onlinecustomerprice
• onlinecustomerprice_formatted
• priceschedule
30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.30
SOLUTION – REMOVE UNUSED FIELDS
• 84% reduction in download time, from 7.7 seconds to 1.3 seconds
• 98% reduction on payload size, 126 KB to 3 KB
31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.31
• Problem 1:
Bootstrap the whole application
−shopping.ssp
−shopping.environment.ssp
−shopping.user.environment.ssp
−Live.Order.ss
• Problem 2:
Load the whole home page on top
−JS
−CSS
−Images
−Fonts
SLOW HOME PAGE LOAD
SINGLE
PAGE
APPLICATION
32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.32
SOLUTION FOR PROBLEM 1 - ENVIRONMENTS
•shopping.user.environment is blocking but non-cacheable
−Only user-specific content should be found here
•shopping.environment.ssp is blocking but cacheable
−Bootstrap information here, but only if it is needed on all pages
−If the information is not needed on all pages, you should retrieve it on demand
−Make sure that categories are lightweight for Shopping
−We will mention how categories affect Checkout later
33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.33
CATEGORIES
•Design your category structure for performance and usability
•Golden rules for blazingly fast categories:
−Your category tree shouldn’t be deeper than 3 levels
−Each product should be assigned to a single category
34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.34
GOLDEN RULES FOR CATEGORIES
35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.35
SOLUTION FOR PROBLEM 2 - CONTENT OPTIMIZATION
According to the HTTP Archive, total page size and number of requests have the
highest bearing on the time it takes a page to download and render.
➢ Average homepage size: 2.5 MB
➢ Average number of requests: 101
These numbers are particularly critical for mobile users, where download speeds
and roundtrip latencies can be quite poor.
Source: http://httparchive.org/interesting.php (7 Mar 2017)
36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.36
CONTENT OPTIMIZATION
•Last year we talked about how faster websites sell more
•Every extra byte or request has a COST
•Ask yourself some difficult questions.
•Can you attribute a dollar-value upside to every page component? If not,
how can you justify each one?
•REMOVE anything that has no measurable value, or that doesn’t have a
business purpose.
37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.37
CONTENT OPTIMISATION: CAROUSEL EXAMPLE
5 seconds
5 seconds
5 seconds
38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.38
CONTENT OPTIMISATION: CAROUSEL EXAMPLE
39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.39
CONTENT OPTIMIZATION: IMAGES
• Average Image bytes on page: 1.6 MB (66% by weight)
• Image optimization is easily overlooked (often not owned)
• Easily fixed - add it to your image work flow as final step
before loading into Netsuite file cabinet
• Use the correct image format: JPG for photos, PNG for logos
and graphics. Avoid GIF.
• Don’t scale images in the browser, unless you have good
reason to do so.
• Compress your images
• Consider using imager.js (https://github.com/BBC-
News/Imager.js)
40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.40
CONTENT OPTIMIZATION: REDUCE, REUSE, RECYCLE
Source: http://requestmap.webperf.tools
41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.41
CONTENT OPTIMISATION: WEBPAGE TEST
42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.42
Popularity
Products
NAVIGATING DIRECTLY INTO INNER PAGES IS SLOW
•Problem 1: SEO Page Generator
−Errors
−Delays
−Upcoming: new SEO engine
•Problem 2: We cannot always rely
on cache hits for PDPs
−There are usually thousands of them,
many may be seldom visited
43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.43
SOLUTION – DEBUG THE SEO ENGINE
• Add seodebug=T as a parameter to the URL and view source
• Error logs, and detailed breakdown on weight, loading time and memory consumption for each asset
44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.44
SOLUTION – EXCLUDE CONTENT FROM SEO ENGINE
•You can wrap functionality under the following snippet, which will prevent it
from executing on the SEO Engine
•Example: third parties, widgets in PDP, correlated items
45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.45
SOLUTION - CDN: SETUP
SuiteCommerce Advanced comes with Akamai support out of the box.
Requires two configuration actions:
1. Create a CNAME pointing at your Netsuite “CNAME Alias”
2. Tick the ”Use CDN” checkbox in website set up
46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.46
SOLUTION - CDN: CHECK YOUR CONFIGURATION
Easy to do from command line on Mac/Linux:
dig IN A +short www.example.com
Three conditions can be identified:
1. CNAME created and CDN enabled
2. CNAME created but CDN not enabled
3. CNAME not created (CDN checkbox has no effect without it)
(Or use Akamai debug headers plugin)
47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.47
SOLUTION - CDN: EXAMPLE 1 - PASS
$ dig IN A +short www.example.com
www.example.com.hosting.netsuite.com.
website-cdn.netsuite.com.
website-cdn.netsuite.com.mdc.edgesuite.net.
a1168.q.akamai.net.
81.150.22.78
81.150.22.102
48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.48
CDN: EXAMPLE 2 - FAIL
$ dig IN A +short www.example.com
www.example.com.hosting.netsuite.com.
shopping.netsuite.com.
167.216.129.13
Why? CNAME created, but CDN checkbox not ticked
49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.49
CDN: EXAMPLE 3 - FAIL
$ dig IN A +short www.example.com
64.89.45.13
Why? No CNAME created. A record points straight to Netsuite DC
50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.50
CDN ENHANCEMENTS
•CDN on Checkout – use a vanity domain
−e.g. checkout.example.com instead of checkout.netsuite.com
−Uses Amazon Cloudfront
•Single domain shopping and checkout
−Requires HTTPS
−Uses Amazon Cloudfront
−Opens the gates for HTTP/2
51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.51
ADDING A PRODUCT TO THE CART IS SLOW
•What is scriptable cart?
•Parallelism between the back end and the web store
Sales Order form BOGO
52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.52
ADDING A PRODUCT TO THE CART IS SLOW
•What is scriptable cart?
−Executes client scripts for the Sales Order
record on the web store
−Per-website setting
−Problem: it executes ALL client scripts
53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.53
SOLUTION – SCRIPTABLE CART
•Customization Scripting Scripted Records
54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.54
SOLUTION – SCRIPTABLE CART
•You can exclude client scripts from the web store
−If you set execution context to “All Roles” it executes on the web store
−If you set it to “All Employees” it doesn’t
•New feature in 17.1
−The performance of the shopping cart has been enhanced in 17.1
−Evident in larger shopping carts with more than 50 unique items
55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.55
PROCEEDING TO CHECKOUT IS SLOW
•Last year milestone: running shopping and checkout on
the same server
•This year
−Running them on the same domain
−Enabling CDN for Checkout
•Next year: same .ssp page (no page reload)
56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.56
BEFORE - PROCEEDING TO CHECKOUT IS SLOW
57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.57
AFTER – FASTER PROCEED TO CHECKOUT
58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.58
SOLUTION – WHAT DID WE DO?
•Removed mini cart – No LiveOrder.Service.ss request
−No loading time
−No spinning wheel
•Removed categories from the environment
−Had to remove navigation bar in consequence
•If you pay closer attention, you will see that it was gone from
checkout steps already
•Following these steps makes the page load in less than 4s
59. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.59
SOLUTION – WHAT DID WE DO?
60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.60
ISSUE - PLACING AN ORDER IS SLOW
•Customization Scripting Scripted Records
61. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.61
ISSUE - PLACING AN ORDER IS SLOW
•Placing an order triggers workflows and user events
•New feature in 17.1: User Event script execution context
−There is a new option in the deployment called “Execute in Commerce Context”
−When this option is not selected, the script will not trigger for events that take
place in SCA, SB or SCIS
•Setup Company Enable Features Web Presence
−Asynchronous AfterSubmit Sales Order Processing
62. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.62
PERFORMANCE
SERVICES
CHECKPOINTS, AUDITS,
REPORTING AND ALERTING
63. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.63
PERFORMANCE CHECKPOINT - FAIL
0
2
4
6
8
10
Home Category1 Search Item Add to
Mini Cart
View Cart Proceed
To
Checkout
Login Shipping
Address
Shipping
Method
Payment
Seconds
www.customerABC.com
Good Warning Problem Industry Standards
Feb 12 – Feb 18, 2017
64. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.64
PERFORMANCE CHECKPOINT - PASS
0
2
4
6
8
10
Home Category1 Search Item Add to
Mini Cart
View Cart Proceed
To
Checkout
Login Shipping
Address
Shipping
Method
Payment
Seconds
www.customerABC.com
Good Warning Problem Industry Standards
Feb 21 – Feb 28, 2017
67. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.67
MONITORING & ALERTING Keynote/Dynatrace global test node locations (Feb 2016)
Google Chrome
at each location
68. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.68
PERFORMANCE AUDITS
•360-degree review of your website performance
−Frontend
−Backend
−Implementation
•Identifies factors impacting site performance
•Provides possible solutions to these problems
•Audit document with prioritized list of actions
•Webex delivery, Q&A
69. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.69
Industry Expertise
• Business Analytics
• KPI Reporting
• Regular
Checkpoints
Performance
• Monitoring and
Alerting
• Reports and
Industry
Benchmarking
• Audits
Design
• Advice on
Accessibility and
Design
• UX/UI Design
Audits
• Mock-ups
SEO
• Expert Advice and
Assistance
• Migration Analysis
• On-Page
Optimization Audit
Customizations
• Included hours for
enhancements and
customizations
www.netsuite.com/success-servicescss-info@netsuite.com
COMMERCE SUCCESS SERVICES
We’re here to help!
71. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.71
Get involved, visit DEVLAND on Level 4.