Environments, Instances, Repositories, Branches, and Publishing Targets with Composable CMS
This article contains some perspectives on concepts I’ll define as environments, instances, repositories, branches, and publishing targets. Some of this is specific to composable applications and some is even more specific to content management systems. Different vendors use different terminology. Due to my familiarity with Sitecore CMS (not Sitecore XM Cloud) and Contentstack (sorry, Interwoven, you’re just too old), I’ll try to relate my terminology to theirs. If you know how other CMS products use these terms or what terms they use for these concepts, or any additional relevant concepts and terms, please comment on this article.
Environment
Organizations manage their solutions and component applications in multiple environments. For example, a developer might work on their workstation in a development environment. From there, they may push code to an integration test environment, from which that code may flow to user acceptance testing, staging, and eventually a production environment.
Environments are a well-understood concept for most developers, with a scope that is much larger than the CMS alone. Unfortunately, Contentstack uses the term environment to describe what I refer to as a publishing target.
Instance
An instance is a standing instance of an application (sorry, there doesn’t seem to be any good synonym for instance, just as there seems to be no good synonym for experience). With on-prem software as well as IaaS or PaaS (which includes Sitecore), an instance is an installation of the application. With SaaS, an instance typically relates to an individual customer, although technically, a single customer may allocate multiple instances of the SaaS software. SaaS hosts can support multitenancy, allowing multiple customers to share a single installation of the application.
Repository
A single instance can host one or more repositories. Repositories contain data, including unpublished Work in Progress. Each Sitecore instance hosts a single repository, which is the master database. With Contentstack, each instance can host multiple stacks.
领英推荐
Branch
With some CMS products, a repository can contain branches, which allow multiple variations of a set of content entries concurrently with a single repository. In this context, branch does not refer to a branch in a hierarchical information architecture, but more like a branch in a source code repository.
Publishing Targets
Typically, CMS users publish content, sometimes using workflow processes, to some number of publishing targets. Publishing from the CMS WIP repository to publishing targets makes content available to additional environments, such as staging or production content delivery. Sitecore can use publishing targets to distribute content to multiple databases for scalability. Again, Contentstack refers to publishing targets as environments.
Updates
If there are any updates, I will maintain this content here: