Managing Workspaces via Life Cycle Management
Life Cycle Management (LCM) is a GoodData feature that allows you to configure and control multiple workspaces through master workspaces.
LCM can help you in the following situations:
- You need to provision (or deprovision, respectively) multiple workspaces based on a predefined template (master workspace), and then manage users in these workspaces. You need to create all objects from scratch, and establish relationships between them. This use case is covered by the Provisioning aspect of LCM.
- As a service provider, you build data products and need to manage their releases. You may have different data products for different categories of clients. When you change a data product, you need to propagate this change to all the clients using this data product. This is done by synchronization from the master workspace and is covered by the Synchronization / Release Management aspect of LCM.
We strongly recommend that the initial setup of LCM on your site involve or be done by GoodData specialists. For more information, contact GoodData Support.
Let’s define the main terms that we are going to use when talking about LCM:
A domain (formerly known as an ‘organization') is all your workspaces, users, white-labeling configuration, Data Warehouse, and other components.
A data product contains multiple segments. Domains can contain multiple data products.Data products as a feature were introduced on February 25, 2017. Any API configuration created before this date will still work as intended. However, all existing segments in your domain will be found in the ‘default’ data product.
A client is your individual customer. Each client has a workspace and belongs to a segment. Each client has an identifier unique within the data product that the client’s segment belongs to.
A segment is a set of workspaces grouped by some specific characteristics and tied to a master workspace. Workspaces within a segment share the same data logical model, same reports, and same ETL defined by the master workspace. A segment has clients assigned to it. The clients are associated with the workspaces. For example, we can say: ‘Client ABC is in the segment Lite’. Each workspace within a segment typically contains different data and users, which are specific to a certain client. You can have one or more segments within the domain.
A master workspace is the workspace that defines all the properties for the workspaces within its segment. Each workspace within the segment gets its model, ETL, and reports from the master workspace. There can be only one master workspace in a segment.
Within your domain and data products, you can have multiple segments, each with their own set of workspaces. For example, one segment could be a ‘Lite’ version, another one a ‘Premium’ and another one - ‘Platinum’ (that is, you provide ‘Lite’, ‘Premium’ and ‘Platinum’ versions of your solution, and each version is used by a particular set of your clients). Each segment has one master workspace from which the other workspaces in the segment are cloned.
When you need to update workspaces within a segment (for example, update the model, add or remove dashboards or reports, and so on), the master workspace is updated. When a new version of the master workspace is released, all the associated workspaces in the segment inherit its dashboards, reports, and metrics, and lose the deprecated ones respectively.
Let’s look at the example to see how all these things are related.
Imagine that you offer your clients two versions of the solution with different features, Basic and Premium.
In LCM terms, here is what we have:
- The domain contains two data products.
- Each data product offers two different segments: Basic and Premium. These segments represent the two versions of your solution.
- Each segment has a unique logical data model and a set of reports defined by their master workspace, Basic Master and Premium Master.
- The Basic segment in the top data product (on the top of the illustration above) has two clients: Acme and Air Titan Airlines. This means that these two clients use the Basic version of the solution.
- The Basic segment in the bottom data product (on the bottom of the illustration above) has two clients: U.R.U. and SupaTabs. This means that these two clients use the Basic version of the solution.
- The Premium segment in the top data product (on the top of the illustration above) has two clients: Best Foods and Zen Table. This means that these two clients use the Premium version of the solution.
- The Premium Segment in the bottom data product (on the bottom of the illustration above) has two clients: RobCorp Foods and Megazoom. This means that these two clients use the Premium version of the solution.