Continuous Delivery

Posted by Community Admin on 05-Aug-2018 11:07

Continuous Delivery

All Replies

Posted by Community Admin on 08-Sep-2016 00:00

We are working on improving the support for Continuous Delivery in Sitefinity.  Our goal for the next release is to enable you to easily include Sitefinity instances as part of a Continuous Delivery setup and deploy new versions of your website across environments without a need to merge conflicts.

This can be achieved based on the following capabilities in Sitefinity:

I. New way for storing configurations:

  1. Application settings that relate to runtime functionality are stored in the database. These can be modified runtime and there's no need to change them on different environments
  2. Configurations related to system setup are stored in the file system. These can be changed between environments with config transformations

II. Export changes in the database structure to the file system:

  1. The "Export for deployment" feature allows you to export to the file system, structure changes and configurations that are normally stored in the database
  2. Once deployed, these changes will be automatically imported into the database on the target environment

 

basic CI/CD setup would look as follows:

  1. Implement your changes to the code and structure of Sitefinity
  2. Use the "Export for deployment" feature to export structure changes from the DB to the file system
  3. Commit the changes to source control (incl. the Deployment folder)
  4. Deploy the changes to the target environment
  5. Sitefinity will pick up the changes and update the structures in the DB
  6. Run your tests. If all goes well, repeat steps 4-6 on your next environment

A few other points:

  • To enable this workflow you'll first need to setup your instance for continuous delivery. This will guide you through the process of enabling the new config mode, migrating old configs and configuring other features like SiteSync to work with Continuous Delivery
  • To further protect your target environment from undesired changes to config files, we have added another setting (ReadOnlyConfigFiles) that enables you to lock them. This way, you can ensure that file-based config changes go only upwards and that your source control is the single source of truth for them

 

The above is a general explanation of the CD support in Sitefinity. There are a lot details behind all this, that I am skipping for the sake of simplicity. If you have any questions - feel free to ask :)

Posted by Community Admin on 08-Sep-2016 00:00

Hi Mariush,

Thumbs up for this! Right now I am working with multiple web.config transformations and a script to replace .config files for each environment. It sounds like I could get rid of all that stuff once this is implemented.

Would this also work for changes to Dynamic Modules? Adding/removing/editing fields and content types for example?

Posted by Community Admin on 09-Sep-2016 00:00

Hi Arno,

Yes, it will transfer changes to Dynamic Modules too. Once you export for deployment, Sitefinity will place the necessary Dynamic Modules definitions in the Deployment folder. When the target instance is restarted, it will read these definitions and apply your changes.

You will still need some config transformations though for staff that define whether your instance is source or target and for setting read-only config mode to on/off. 

I am happy you like the new capabilities and hope they will be useful for your projects.

Mariush

Posted by Community Admin on 17-Oct-2016 00:00

Mariush,

I was curious about one of your points about exporting configurations that are normally stored in the database.  Will that work from a predetermined list of configurations?  Or is this something we could take advantage of with custom configurations?

Thanks,
Ryan

This thread is closed