fbpx

Oracle Commerce Holiday Readiness Checklist

Oracle Commerce Holiday Readiness Checklist

At the Insight West 2015 event, our co-founder Russell Moore shared holiday readiness tips for Oracle Commerce websites. He spent nearly two decades building and managing Oracle Commerce/ATG sites for businesses all over the world and the list below is comprised of some best practices he learnt during his long career in the industry.

SR CheckmarkDETERMINE ANTICIPATED PEAK TRAFFIC

Historically, we saw many clients come onboard and refer to the data from Google Analytics (e.g. User Sessions, PageViews, etc.) as their peak traffic. While those data is very useful in many occasions, sizing your hosting environment for the holiday traffic is not one of them.
In order to scale your hosting environment you need to know anticipated peak requests per second at the server level.

SR CheckmarkSCALE THE ENVIRONMENT

Among nice features of the Oracle Commerce/ATG platform is its ability to scale horizontally. You almost never need to scale database. Usually it is app servers, sometimes search servers, and very rare web servers.

SR CheckmarkLOAD TEST

  • Execute multiple scenarios concurrently modeled after real traffic
    If you only test 1 scenario at a time, your load test will produce unrealistic (and pretty much unusable) results.
  • Use an APM to watch load test live
    Just load testing to see where it tips over is not as useful as having somebody watching what causes the slow down (garbage collection, JVM, third party, etc). This shows you where the problems are and what to focus on to improve performance.
    We saw many times how small things that would cause things to tip over were easily switched off. As the result, the speed sometimes would double or even triple. Identifying those small things allows you to quickly go and change them. As the result you get much better load test and better tuning.
  • Plan on multiple runs
    Do test run and then do some fixes. Then, load test again. Do it at least twice. If you do it more than two times it would be even better.
  • Don’t get choked up on using the same logged-in user
    Using the same user across multiple sessions will cause your cart to merge. As the result you get unrealistic results (really bad unrealistic results). Make sure that you create new test users for different scenarios.
  • Lock off users, take real orders that you can throw away later
    If you can do it (not all businesses can) load test in the middle of the night (or another low traffic time for your site) and lock your users up. This way you can see what your site can really do. You will be able to place orders all the way from the end.
    Make copy of your database before you do it and when you are done just delete the latest database (one that you used for the test) and use the previous copy of the database.

SR CheckmarkTUNE SYSTEMS

  • Look for nonfunctional indexes and SQLs that cause problems in your database
    Those are things that build up over time. Some of them you might not even notice on a regular basis but when you hit peak traffic those things can cause serious performance issues.
  • Look at JVM SQL and cache sizes
    Checkout ATGLaunchChecklist for tips on tuning.
  • Test code changes
    Over the cause of the year you add new features and not necessarily test all those features. This is the time of the year when you have to do it. Make sure you leave enough time between those tests and holiday season as you might identify issues with those changes and might need time to fix and test them again.
  • Maximize RAM utilization by JVMs
    Sometime under high load JVMs react very differently. You would want to maximize the use of the RAM on boxes that you use. We sometimes have clients who panic when they see that RAM on the JVM board is close to 100% but it is actually a good thing.

SR CheckmarkOPTIMIZE CACHE

  • Disable Oracle Database AMM
    With Oracle Database you would want to crank up the SGAs and if you are using AMM you should check for validity. You should have enough cache to cache the whole database.
  • Use Cache Droplets
    Use Cache Droplets when you have content on a web page that should be the same for many visitors. When you use this cache, the application stores the pieces that can be cached across multiple requests for multiple users in a hash map and regenerates them as needed. This cache significantly reduces CPU usage that would be required to render that content dynamically.
  • Opt for Repository Cache instead of Inventory and Price Caches
    Under high load, those cache components have significant performance problems. Disable those caches and use Repository Cache instead.
  • Set up cluster caching
    The larger the hosting environment for the site more beneficial Cluster Wide Cache becomes for e-commerce businesses. For instance, if you are running 16 instances you’re caching 16 copies of every file that means you’re using 16 times the RAM that you really need to be using and that means that caching validation and updates all have to be dealt with in 16 different locations. Creating a centralized cache using tools such as Coherence means that you cache data just once.

SR CheckmarkUSE A REPUTABLE CDN

We had one client in 2014 whose CDN actually slowed down its site. It was faster going directly to the origin than when directed to CDN.

SR CheckmarkPLAN AROUND TRAFFIC

  • Disable back-ups and the high-IO jobs
    There are many things that you do on a regular basis. However, we can all agree that Black Friday and Cyber Monday are special days for retailers. Therefore, treat them special by dialing those jobs down.
  • Plan bulk data loads and BCC deployments around the traffic
    Push catalog changes, upload images, etc. before or after the promotion was sent out to minimize traffic spikes. So instead of pushing the site changes on the site the same morning as you send emails do it the evening before that.
  • Schedule penetration tests around your load tests and peak traffic
    Regular penetration tests sometimes cause performance anomalies. You don’t have to have them all the time. So turn them off during holiday weekend. You only need to run them quarterly or weekly.
  • Send smaller number of emails at once
    We see it quite often – marketing team would send promotional emails to 3,000 people at 8am. Don’t do that! Send smaller number of emails at once, pace them (1,000 at 7 am; 1,000 at 8 am ; 1,000 at 9 am). This way your site traffic will be more distributed in time and less spiky.

Have a holiday readiness advice to add to this list? Leave a comment below.

1 Comment

  1. Jagdev Singh 5 years ago

    Nice Post…!!!

Leave a reply

Your email address will not be published. Required fields are marked *

*