This document describes the DevOps processes for Intershop Commerce Management in a CaaS context.
Intershop CaaS follows the DevOps principles:
The DevOps process can be visualized in the following way:
Every DevOps cycle starts with a planning phase. Requirements need to be defined and have to be broken down. The feedback of the last cycle has to be taken into account.
When Azure DevOps is used, the "Azure Boards" is a good tool to do the planning.
At the very start of every CaaS project, there will be a discovery phase. Here you can find an overview about the typical tasks and responsibilities during the discovery phase:
Intershop | Partner | |
---|---|---|
Documentation, Communication |
|
|
Requirements |
|
|
|
| |
|
| |
Checklist |
| |
Connect |
|
|
Test Infrastructure and Processes |
| |
Deployment Demo |
| |
Acceptance declaration |
|
|
For the collaboration between Intershop and the CaaS Partner, a shared Confluence space will be set up.
Intershop development is typically Java-based and uses Git as source code repository. Developers can have a development environment on their local machine.
To kick-start the development process, blueprint projects are available.
Intershop Commerce Management development in particular is done using Intershop Studio, a standard Eclipse with some Intershop-specific extensions. For more details, see Overview - Intershop Studio.
An Intershop project used the Gradle multi-project build. See Cookbook - Gradle Developer Workflow for more information.
Intershop Commerce Management consists of several development artifacts which are described here: Overview - Development Artifacts.
Note
Storefront development can be done using the classic approach with Intershop templates and pipelines or by using the new Progressive Web App. The PWA is the recommend approach for CaaS.
For recommended customization options, please see: Guide - CaaS Customization Options.
The REST API Documentation can be found here: http://developer.cloud.intershop.com.
The Java API (JavaDoc) is available in Intershop Studio.
For more information see Guide - 3rd Party Integration.
Debugging the solution is possible as follows:
The build process has to be set up as described here:
This needs some DevOps expertise on partner side. Due to that Intershop also provides the complete CI infrastructure as a service. Intershop uses Azure DevOps for that purpose, also see Guide - Azure DevOps for CaaS Projects.
Keep in mind that the environments PRD, UAT and INT are not using development settings, e.g., the CheckSource
properties are generally set to false
. Make sure all custom ISML templates are compiled during the build process by applying Gradle plugin 'com.intershop.gradle.isml
'!
Intershop provides frameworks for testing on all levels
Additionally, code quality checks and performances tests can be performed.
For details refer to Overview - Test Frameworks.
A release is automatically created by the CI system, when the code is tagged with a release label in Source Code Repository (e.g., GIT). The release tag must be of the format RELEASE_x.x.x.
Snapshot releases cannot be deployed.
Deployment of the production system will be done by the Intershop operations team in collaboration with the CaaS partner. The partner provides the release in the project artifact repository. From there it will be picked up by the Intershop deployment process.
Deployments of the pre-production/UAT and integration system can be triggered by the parter in self-service. For this purpose, access to a Jenkins web console will be provided by Intershop. This allows triggering of jobs like:
DPLs are used in the following three environments:
These consist of a live and an edit cluster. The INT and UAT are also called PrePRD. Both environments share a DB infrastructure (VM). The data is separated for each cluster by schema (Oracle) or database (MS Sql Server).
A deployment (DPL) of a release always consists of a block of individual steps. This usually consists of a synchronization process (SYN) in which the file system and the DB are synchronized from PRD to UAT, as well as a UAT and a PRD DPL. The individual steps are only carried out by the OPS team after prior instruction (request). This means that the start of each block step (SYN, UAT- and PRD-DPL) is released by the developer (DEV) by e-mail to operations-support-CUSTOMER@intershop.de with details of the deployment or other instructions (release number etc.) at the agreed time. Otherwise the block step is cancelled and a new date is agreed.
Furthermore, a distinction is made between three different DPL types:
In a Full-DPL, function changes are made both on the code and on database side (the latter in the form of dbinit/dbmigrate), which are always accompanied by a downtime of the webshop, in order to ensure the consistency of the data as far as possible when making the necessary changes on the database level. With a Code-DPL, compared to a Full-DPL, no changes are made to the database and, as a rule, no downtime is necessary. A Hotfix-DPL (without downtime) is only used to correct one (or fewer) errors within a short period of time after the errors have been detected. A hotfix is used to repair a faulty release so that a new server (Web, App or Solr) can be reinstalled at any time at the push of a button, without additional manual steps being necessary.
In addition to the OPS team, the DEV teams are also able to independently perform DPLs (via Jenkins jobs) on the respective INT and UAT environments. On the PRD environment, however, only the OPS team is allowed to execute DPLs.
Basically, the DPL order of a new release is as follows:
The person who executes a SYN or DPL job is also responsible for ensuring that any errors that may occur are corrected immediately or that the OPS team is at least informed (keyword: monitoring and alarm messages).
For the three DPL types, there are different handling procedures for the execution. The dates must always be agreed in advance with the OPS team leader. An appointment should be made as early as possible and according to a fixed rhythm (e.g. every 2nd Tuesday of the month). This makes resource planning easier and safer. Short-term DPL appointments cannot be guaranteed for reasons of resource utilisation.
Note
PRD-DPLs are only carried out on weekdays from Monday to Thursday. At least working day after the DPL must follow. The aim is to be able to solve any problems that may arise during regular working hours. On the other hand, no employee from DEV, OPS or Customer Success Manager (SPoC) is available at the weekend. Public holidays must be taken into account in scheduling.
The following DPL types are available:
Full-DPL | Code-DPL | Hotfix | |
---|---|---|---|
Who? | INT → DEV | INT and UAT → DEV | INT and UAT → DEV |
When? | Full-DPLs contain the most comprehensive changes. Therefore an appointment of at least one week (better 2 weeks) in advance is necessary. The increased testing effort on the operational side is ensured by a complete DPL block (consisting of SYN, UAT and PRD-DPL), which is implemented by the OPS team. In addition, due to the necessary downtime, the work is usually carried out outside regular business hours for PRD environments. | 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 DEV and that a DPL can be carried out without manual activities if possible, but in any case without manual intervention in the system. | Due to the limited code change(s), it is possible to request a DPL date for PRD at short notice. As a rule, this should be at least one day in advance. In an emergency, a DPL is possible on the same day, depending on the available resources. |
Basically, a rollback is done by deploying an older version. A distinction is made between two variants:
Two scenarios can be distinguished for this second variant:
In general, Intershop is responsible for the infrastructure and system layer. The partner does not have direct access.
The following tasks are Intershop's responsibility:
Technical Monitoring:
Technical Reporting:
Capacity Management:
Performance Management:
Security Management:
Continuity Management:
Incident Management:
Problem Management:
Intershop Component | Infrastructure and System Layer | Application Layer |
---|---|---|
Intershop Commerce Management | The partner/customer does not have direct access |
|
Intershop Order Management | Intershop is responsible; the partner does not have direct access. | |
CI System | If the partner uses his own CI system, then the partner is responsible within his own domain for
| |
Process Automation Environment |
|
Access to monitoring web interface to technical layer possible, like:
Access to monitoring web interface with extended monitoring services is possible with the following restrictions:
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.