Deployments of productive Intershop Commerce Management (ICM), Intershop Order Management (IOM), and Progressive Web App (PWA) systems are more or less complex procedures. This guide explains the various aspects of how the deployment process usually takes place. Additionally, general rules and guidelines are listed to ensure a common understanding of rights and responsibilities.
The target group of this document are project managers, release managers and developers of the implementation partner, as well as project managers and DevOps engineers of Intershop who are involved in deployment processes.
Note
The focus lies on post-go-live deployments. Deployments during the project phase are briefly mentioned at the end of this guide.
Environments | INT | ICM Integration environment |
---|---|---|
UAT | ICM User Acceptance Test environment | |
PRD | ICM Production environment | |
Software | ICM | Intershop Commerce Management |
PWA | Progressive Web App (new storefront of ICM) | |
IOM | Intershop Order Management | |
Persons in the Process | Roles | The following documentation will call the persons by their role in the process. Depending on the partner, the size of the project, and other factors, one person can cover one role or several roles. |
Implementation Partner (DEV) | DEV | Development team |
Release Manager | Person who decides when and how a deployment should take place | |
Deployment Attendant | Member of the project team who can evaluate the success of the deployment | |
Deployment Mailing List | During a deployment several e-mail notifications are sent. A list of recipients is required for this. It should include the people responsible for the technical and the business side of the deployment, i.e., the release manager and the deployment attendant(s). This list will be defined with the first e-mail to the Service Desk, which includes the deployment instructions and the relevant recipients. | |
Intershop Operations (OPS) | OPS | Intershop Engineering Operations team |
OPS Engineer | Member of the Engineering Operations team who is assigned to a scheduled deployment | |
Project Manager (PM) | Responsible person for the project progress on the Intershop side and for the daily communication with customers and partners, organizer of the Weekly Jour Fixe (WJF) meeting | |
Deployment Manager | Person who is in charge of the deployment schedule, knows OPS team capacity, and replies to deployment requests from the release manager | |
Other Abbreviations | DB | Database |
DPL | Deployment of a new software version on one of the environments | |
DPL block | Deployment of a new software version on INT, UAT, and PRD (including SYN, if needed) | |
Rollback | The database backup is restored and the previous version is deployed again. | |
SLA | Service Level Agreements | |
SYN | Synchronization process of database and file system, usually between PRD to UAT, but also from PRD/UAT to INT | |
VM | Virtual machine | |
WJF | Weekly Jour Fixe, a recurring meeting between implementation partner (DEV) and Intershop Operations (OPS) |
The process consists of different steps:
For more details, refer to Deployment Steps.
Note
Generally all communication goes through Service Desk. Tickets can be opened and managed via Support Portal or via e-mail.
At least one day (better two or more) before the deployment day, the release manager sends detailed instructions to the OPS team via the Service Desk.
Note
If deployment instructions are not received within this lead time, OPS cancels the deployment and a new deployment date must be scheduled.
The following information must be included:
Item | Example |
---|---|
Type of deployment | full DPL |
Current (custom) ICM release version | RELEASE/0.0.1-prod29 |
Target (custom) ICM release version | 7.10.10.0 |
Additional options |
|
Shall Intershop (OPS) wait for the release manager feedback after a successful PRD (ED) deployment before proceeding with PRD (LV) so that DEV can perform tests or other changes? | yes/no |
Custom release notes | |
Short description that includes what specifically has been changed (mandatory for hotfix) |
For PWA Deployments, the following information needs to be provided:
Item | Example |
---|---|
SSR image tag to be deployed | SSR image tag: release-42 |
NGINX image tag to be deployed | NGINX image tag: release-42 |
Additional values need to be changed for the production configuration (i.e., environment variables for the SSR Container) | Please adapt the following environment variable for the SSR container:
|
Recommendation
Please provide a deployment mailing list with the provision of the DPL instructions. It should contain the release manager and the deployment attendant(s) from the implementation partner and customer.
The mailing list will be used for communication during the deployment process, keeping all relevant persons up-to-date. Ideally, all participants are already included in the e-mail that provides the deployment instructions.
See Concept - Intershop Commerce Platform Synchronization Process.
On the deployment day an Intershop DevOps engineer will perform the deployment according to the instructions in the Service Desk ticket.
Note
For a full deployment, please always select the webtier component too (unless explicitly requested not to do so by the DEV team) to avoid problems with ICM upgrades.
Note
A deployment attendant from the implementation partner must be available for the whole duration of the deployment, even if the deployment happens during the night.
A close collaboration between Intershop and the implementation partner is the key to a successful deployment. If anything goes wrong, DEV and OPS need to decide if a rollback should take place or not.
If, for any reason, the deployment cannot be started on time, the DevOps engineer will inform accordingly - if necessary jointly with the deployment attendant (DEV).
The deployment attendant performs some basic tests to evaluate if the deployment was successful.
Note
The test has to be completed within 30 minutes. If it needs more time, this has to be addressed in advance and must be considered in the deployment scheduling (time).
The following section describes some general and specific information around deployments.
It also contains some rules and guidelines which are required for a smooth process.
Intershop Commerce Platform systems are usually set up with an ICM application like this:
There are three different DPL types:
Full deployment | Changes in functionality are made on the code side (web and app tier) and the database side. The increased testing effort on the operational side is ensured by a complete deployment block (consisting of SYN, UAT, and PRD deployment), which is implemented by the OPS team. In addition, due to the necessary downtime, the work is usually carried out outside regular business hours (related to the chosen SLA) for PRD environments. | |
---|---|---|
Code deployment | General Code deployment means that changes to functionality are only made to the code side (web and application layers). Changes to the database are not included. For PRD environments, this can be done by either OPS or DEV. | |
Performed by OPS If a code DPL for PRD is to be performed by OPS, the following applies: With a code DPL, the OPS team only takes over the DPL of the PRD environment. Prerequisite is that all function and performance tests have been successfully performed by the implementation partner (DEV). The release needs to be deployed on INT and UAT - and a DPL can be carried out without manual activities if possible, but in any case without manual intervention in the system. | Performed by DEV If a code DPL for PRD is to be performed by partners (DEV), the following applies: Constraints
Requirements
Rules
Execution and Testing Before any code deployment on PRD (live and edit) is performed and triggered, DEV has to ensure that no important jobs, job chains, or processes are running (such as staging). After any DPL on PRD (live and edit) DEV has to validate/check:
1 APAC is Asia Pacific. EMEA is Europe, Middle-East and Africa. AMER is North, Central, and South America. | |
Hotfix deployment | General A hotfix is used to repair a faulty release, usually one (or few) errors on web, app server, and/or Solr server. The code changes should be minor and successfully tested beforehand. No change on database side is possible. The release has to be deployed successfully on UAT and INT before. A hotfix can be installed at the push of a button without additional manual steps - so this can be done on short notice. Note Hotfixes should only include small code changes to fix critical/show stopper bugs in the current PRD release. The hotfix release should only change at the third position of the release number (e.g., 11.0. 2 ). A hotfix DPL (as it is a code DPL, too) can be done by either OPS or DEV. | |
Performed by OPS see Code deployment above | Performed by DEV see Code deployment above Rules
|
The software to deploy also has an influence on the type of DPL. The previous classification applies primarily to ICM with a classic storefront. For other cases:
Overview of
Overview of
The start of each individual step needs to be requested explicitly via a Service Desk ticket (separate deployment instructions for UAT and PRD), along with deployment instructions, see also Providing Instructions.
The instructions must be sent right in time. Otherwise the deployment step is considered cancelled and has to be re-scheduled.
Receiving deployment instructions is considered as a final and binding deployment request. Only send instructions when the deployment is completely agreed upon/authorized on the implementation partner's (DEV) side. The requested release version has to be successfully deployed on UAT (with the same tag).
Deployments which are done by Intershop must be scheduled in advance with the Intershop deployment manager.
Please note that submitting a valid deployment request does not guarantee a deployment at a specific date and time. The deployment manager must confirm the scheduling based on the availability of OPS resources.
The necessary lead time depends on the deployment type.
Deployment Type | Lead Time | Performed by OPS |
---|---|---|
Full | minimum 1 week | Monday afternoon, during regular business hours (13h-17h CET/CEST) Tuesday - Thursday, regular business hours (9h-17h CET/CEST) PRD deployments are bound to business hours for standard SLA customers, which does not apply to premium SLA customers, however. |
Code | minimum 3 days | Monday afternoon, during regular business hours (13h-17h CET/CEST) Tuesday - Thursday, regular business hours (9h-17h CET/CEST) |
Hotfix | short notice | Monday - Friday, regular business hours (9h-17h CET/CEST) Depending on the available team capacity, a hotfix deployment is executed on the same day or at the latest on the following day. Short-term deployment appointments cannot be guaranteed for reasons of team capacity. |
Generally, at least one working day must follow after the deployment. The aim is to be able to solve any problems that may arise during regular working hours. No employee from the implementation partner (DEV), Intershop (OPS), or another related person is available at the weekend. Public holidays must be also taken into account.
Recommendations:
Note
For an ICM production live cluster (PRD-LV), the Intershop Operations team performs all deployments on production, since we are also responsible for fulfilling the SLAs.
The implementation partner is able to perform DPLs via Jenkins jobs on INT and UAT.
See the following responsibility matrix:
ICM | IOM | |||||
---|---|---|---|---|---|---|
Deployment Type / Environment | INT | UAT | PRD | INT | UAT | PRD |
Full | DEV1 | OPS | DEV (ISH) | OPS | ||
Code |
| |||||
Hotfix |
1 For a DPL (no matter what type), OPS expects that DEV deployed and tested the release successfully on UAT at least one business day in advance.
In full, deployment changes are made on the database side (in the form of DBMigrate), which are always accompanied by a downtime of the web shop. This is necessary to ensure data consistency as far as possible.
This is why full deployments are usually done outside business hours of the web shop.
With a code deployment no changes are made on the database and, as a rule, no downtime is necessary.
Hotfix deployments (=small code deployment) do not require any changes on the database and, therefore, have no downtime either.
Deployments during the project phase, before a shop is live, are a) much more frequent and b) a lot less critical. So the process is less strict and the responsibilities are distributed differently.