Continuous delivery

Overview

The purpose of Continuous delivery is to be able to quickly deliver customizations and extensions of your project to production, without interrupting the work of the Live environment, without having downtime, or without the need to manually merge configurations or databases. You ensure your application functions as expected using thorough automation tests on a production-like environment. Propelling the changes through the environments is automated, which makes it more reliable.

The main goal of the process is that after every development iteration, you end up with the same setup, which you started with - code is the same on all environments, the latest database is on the Live environment.

The following chart displays a simplified overview of a Continuous delivery process:

Continuous delivery - Overview

Environments

Generally, in a Continuous delivery process, you have the following environments:

  • Development environment
    This is the environment where you develop your project. Usually it integrated a source control system. There you develop, extend, and configure your project and, then, build it and run unit tests and integration tests.
  • Test environment
    This is the environment where you only run tests, such as UI automation tests, performance and security tests. You can change the test, but not the code in this environment. To perform the tests, you can create and delete content, but if you need to fix something in the code, you need to go back to the development environment.
  • Live environment
    This is the environment that displays your public website. This is where the backend users can create content, change runtime setting, manage websites, but cannot change the code and the configurations of the project. This is the environment where the frontend of the website is accessible to public users.
    If you need to change the code or the configurations, you need to go back to your development environment.

Setup

You can setup a Continuous delivery process for new, as well as existing projects. You can setup the process, regardless of how many existing environments you are currently using, and regardless of where your project is currently deployed or where you want to deploy it. You can also setup the process with a SiteSync environment, used to synchronize content.

Your Live environment can be located on various locations, such as Amazon Web Apps, Azure Cloud Services, on a Virtual Private Server, etc.
For all available deployment options, see Deployment.

To setup the Continuous Delivery process, you must first setup your development environment, then copy the code to your live and test environments, using export for deployment. Afterwards, to protect the live and test environments, you should make its configurations read-only and configure the SiteSync to synchronize content only. You must also use the Auto-storage mode of configurations on all of your environments, which takes care that environment configurations are delivered easily between environments, while runtime setting are not overwritten.

Recommended environment settings

In order for the Continuous delivery process to work, your environments have to be set up accordingly. 
The following diagram demonstrates the required settings:

Continuous delivery - Recommended settings

For more information, see Deployment mode.
For more information, see Storage modes of configurations.
For more information, see Read-only mode of configurations.
For more information, see Configure SiteSync for Continuous delivery.
For more information see Export and deploy code changes.

Determine your current setup

Before you setup the Continuous delivery process, answer the following questions: Do you want to use SiteSync to synchronize content between your Staging and your Live environments?

Depending on your answers, you can have the following setup scenarios:

  • Standard Continuous delivery setup
  • Setup Continuous delivery with SiteSync

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?