What is a virtual stack?
- A virtual stack, or “vstack”, can be used to host multiple sites on one Silverstripe Cloud stack.
What are the benefits of virtual stacks?
- Virtual stacks are a flexible cost saving option by allowing you to host different websites and their codebases on one stack.
- Virtual stacks can be created by your team on demand through the deployment dashboard,
- If your sites share the same codebase you can simply deploy this codebase across multiple virtual stacks to duplicate your website.
What are the limitations of virtual stacks?
- The resources on virtual stacks are shared with the base stack and any other virtual stacks. Adverse performance on one virtual stack can have a downstream effect on all. For example, if you have one virtual stack which is extremely database resource heavy, it can have an affect on the database performance of the other virtual stacks and base stack
- Whilst virtual stacks are available at all stack sizes we only recommend using virtual stacks when the base stack is a Small and above.
- Virtual stacks have a hard cap of 20 virtual stacks per base stack, regardless of that the base stack size is. As resources are shared, the risk of performance degradation increases with the more virtual stacks added.
- Virtual stacks are designed to be used for sites with fairly lightweight purposes. For sites where performance and stability is paramount we do not suggest using virtual stacks and suggest using a dedicated stack.
- Silverstripe does not perform 24/7 monitoring of virtual stacks. Monitoring will only alert the on-call engineer if the base stack becomes unavailable.
- Team members who have access to the deployment dashboard for the base stack will also have the same level of access for all virtual stacks. Team members cannot be added to a single virtual stack.
- Some metrics shown in the deployment dashboard are unavailable for virtual stacks, such as database queries.
- Certain configuration options set via .platform.yml, such as PHP version or Apache settings, are applied at the base stack level and apply to all virtual stacks. This means you cannot have one virtual stack using a different PHP version than the base stack.
- If the base stack is enabled for a Web Application Firewall (WAF), public non-WAF traffic is blocked. This means all virtual stacks must also be added to the WAF as well, so that virtual stack traffic is not blocked. This may result in price increases if additional WAF licenses are required.
How to add a virtual stack
Virtual stacks can be created by a stack manager, after an initial deployment has been made to all environments on the base stack, by clicking on the Virtual stacks tab on the stack overview page.
If there are existing virtual stacks they will be shown on this page, or you can click “Create virtual stack” to make a new one. Fill out the details and click “Add stack” to get started.
Once the virtual stack is created, the base environment will require a full deployment before you can deploy to the virtual stack.
Reminder: There is a limit of 20 vstacks per stack.
Configuring virtual stacks
Virtual stacks share the same configuration as the base stack's .platform.yml file. If a
.platform.yml file is included in a virtual stack’s code base, it will not take effect.
Any configuration changes made to a virtual stack, such as updating variables or domain names, are applied during the next full deployment to the base stack. You will be prompted that a full deployment to the base stack is required to apply the changes.