Deployment

Foreword

For our Shopware cluster, the deployment of Shopware via pipeline is mandatory to ensure that all affected app servers receive the same updates.

For optimal deployment, we recommend using our GitLab hosting.


Requirements

  • creoline Shopware Cluster
  • GitLab with at least one active GitLab runner
  • SSH access to all app servers via user deployer



Folder structure

The following folder structure exists for all app servers after we have provided them:

/var/www/shop.com/
|
├── current -> releases/test-release-2
|
├── releases
│ ├─── test-release-1
│ └─── test-release-2
|
└── shared
    ├── config
    ├─── files
    ├── media
    ├── public
    ├─── thumbnail
    └── var


Several releases can be provided using the releases folder and activated or deactivated using the active symlink. The symbolic link current points to the desired active release.



Definition app server

There are two types of app servers for our Shopware cluster:


  1. app server master
  2. app server slave


The app server master provides the following functions:

  • Shopware Administration (Admin Traffic)
  • Shopware Message Queue
  • Cronjobs / internal tasks


The App-Server Slave provides the following functions:

  • Shopware storefront (visitor traffic)



Different distribution of files