In large a Sitecore commerce environment (or any Sitecore environment), it is necessary to warm up a content delivery server correctly before it accepts traffic. Warm ups are required after deployments, maintenance, scale out scenarios or any time a CD may be “cold” after being down.
A cold start is never a good idea.
If you are in a multi site environment, for example, if you are using SXA and have multi tenant\multi site setup, it is critical that you warm up each site correctly. Just warming up one site will not correctly warm the CD.
The code in the SiteWarmer repository below adds functionality to your solution to either browse each sites sitemap.xml or a light warm up of touching a collection of items.
The monitoring and initiation of the process is done via a single API call making it possible to be called from a script, load balancer, application gateway or, theoretically, from the IIS initialize module.