blog logo
thumbnail

Tools and Tips for Successful Demandware Release Management

Robert Ward • January 7, 2015

By Robert Ward, Technical Lead

When implementing a Demandware eCommerce site, it is typical to have multiple environments with constantly evolving code and data. Keeping track of all of these moving parts can be a challenge, but there are a few tools that can help make your releases relatively quick and painless:

Demandware Build Suite

demandware

What is it?
The Demandware Build Suite is a set of scripts that help automate build processes. It can be run from UX Studio or the command line, and it supports both SVN and Git repositories.

Why should I use it?
The build suite performs a multitude of tasks that would otherwise be time-consuming, such as minimizing/concatenating Javascript and CSS, deploying and activating builds, and creating JSDoc API Documentation for DemandwareScript files.

Jenkins Continuous Integration (CI) Server

jenkins

What is it?
Setting up a Jenkins CI server allows you to configure and monitor your build process. It has a wide variety of useful features, such as automatic build schedules and custom build notifications.

Why should I use it?
Combined with the Demandware Build Suite, Jenkins CI is a powerful tool that allows you to trigger builds with a single click and monitor their status. In addition, the simple interface makes it possible for your Quality Assurance (QA) team to trigger builds themselves, as well as see the change history to determine what fixes are included in each build.

An Issue Tracking System with Source Control Management (SCM) integration

redmine

What is it?
A project management application is useful for tracking releases and defects. Some of the more popular solutions (such as JIRA and Redmine) allow you to connect your SVN or Git repository, and will automatically update tickets with the information tagged in developer commit messages.

Why should I use it?
By integrating your source control system with your project management application, you can effectively automate the bug tracking process. All the developer needs to do is commit the code, and all of the details are handled automatically!


Once you have these tools in place, here are some tips for optimizing your release management process:

1. Designate a Release Manager and have him or her send build notifications.

Since QA is responsible for testing releases as they happen, it is important that they know (A) when a build happens, and (B) what fixes are included in that build.

Whether your Release Manager is a QA Lead, Tech Lead, or Project Manager, having one point of contact for the build process can help eliminate redundancy and confusion. That person should notify all of the relevant stakeholders (likely through a summary email) as each build happens.

Some people prefer to automate the build notification process, which is definitely acceptable as well. Ultimately, the main takeaway here is that timely communication is important.

2. Maintain the metadata in your code repository.

Most Demandware developers can likely recall a time that their code worked beautifully on their sandbox, only to crash and burn once it was built in the development instance. Usually, this can be traced back to a site preference or custom attribute that was not transposed properly.

By storing metadata in the code repository alongside the cartridges using the same Import-Export (impex) structure as Demandware, you can minimize this risk. Rather than manually attempting to copy over the required metadata, the release manager can simply zip up the folder and import it as a Site Import.

Whether or not you plan to automate the metadata import as a part of your Demandware Build Suite configuration, it still helps to have the metadata centrally available. This will help greatly cut down the amount of time necessary to set up new sandboxes and instances, as well as allow for tagging/branching of the metadata for each release.

3. Schedule backups of staging data

Since staging is typically the environment that has the most production-ready code and content, it is important to back up the data in case something goes awry. Thankfully, Demandware allows you to schedule backups via the Site Import & Export process. This is a simple but frequently overlooked step, and it can be a lifesaver in case the catalog or metadata becomes irretrievably broken.

4. Clean up code versions regularly

The default Demandware quota for number of code versions is 20, and Demandware will start sending quota violation emails if you surpass that number.

If you are using a continuous integration process (via Jenkins for example), the number of code versions can quickly balloon to an unwieldy amount. To avoid those quota violations, clear up disk space by deleting old code versions that are no longer needed. If you choose to go the automated route, solutions can be found in the Demandware XChange Community.

If you’re looking for more assistance with your Demandware eCommerce solution, please contact us.

 

Robert Ward is a Technical Lead on the LYONSCG Implementation team, and has been building Demandware sites since 2011. Robert is a certified Demandware Developer, and he is an avid fan of all things basketball-related.


Robert Ward

About the author

Robert Ward

Subscribe to our blog

Let's discuss the next step in your commerce journey.

XSchedule a meeting