Skip to content

Commit 4f20b69

Browse files
authored
Merge pull request #1652 from plone/deployment-overhaul
Initial skeleton of deployment documentation
2 parents 155fe18 + e534a80 commit 4f20b69

File tree

10 files changed

+203
-69
lines changed

10 files changed

+203
-69
lines changed

docs/deployment/backup.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

docs/deployment/components.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Components of a Plone 6 application for deployment"
5+
"property=og:description": "Components of a Plone 6 application for deployment"
6+
"property=og:title": "Components of a Plone 6 application for deployment"
7+
"keywords": "Plone, deployment, components, backend, volto, frontend, TLS termination proxy, load balancer, router, database, mail service, optimization, maintenance"
8+
---
9+
10+
(deployment-components-label)=
11+
12+
# Components
13+
14+
This page in the deployment guide covers the components in a Plone application deployment.
15+
The components can be broken down into those that are required, recommended, and optional.
16+
17+
18+
(deployment-required-components-label)=
19+
20+
## Required components
21+
22+
You need the following components to deploy a Plone application.
23+
24+
- {term}`Plone backend`
25+
- {term}`Volto` as the default {term}`Frontend` for Plone
26+
- {term}`TLS termination proxy`
27+
- {term}`Load balancer` or router
28+
- Database
29+
- Mail service
30+
- Maintenance tasks
31+
- Database backup
32+
- Packing database - https://5.docs.plone.org/manage/deploying/packing.html
33+
- Log rotation
34+
35+
36+
(deployment-recommended-components-label)=
37+
38+
## Recommended components
39+
40+
Recommended components, although not required, will help with the performance and user experience of your Plone application.
41+
42+
- HTTP caching
43+
44+
45+
(deployment-optional-components-label)=
46+
47+
## Optional components
48+
49+
- Monitoring
50+
- Search
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
5+
"property=og:description": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
6+
"property=og:title": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
7+
"keywords": "Plone, Continuous integration, CI, continuous deployment, CD, pipeline, images, GitHub, actions, workflows"
8+
---
9+
10+
(deployment-continuous-integration-and-deployment-label)=
11+
12+
# Continuous integration and deployment
13+
14+
This page in the deployment guide covers {term}`continuous integration` (CI) and {term}`continuous deployment` (CD) for a Plone 6 application.
15+
16+
17+
## Deployment pipeline
18+
19+
20+
## Build images

docs/deployment/index.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,29 @@ myst:
44
"description": "Deployment of Plone 6"
55
"property=og:description": "Deployment of Plone 6"
66
"property=og:title": "Deployment of Plone 6"
7-
"keywords": "Plone, deployment, automation"
7+
"keywords": "Plone, deployment, server, environment, continuous integration, continuous deployment, automation, tuning, optimatization, orchestration, Docker, Swarm, Kubernetes"
88
---
99

1010
(deployment-label)=
1111

1212
# Deployment
1313

14+
This part of the documentation describes how to deploy your Plone 6 application.
15+
This how-to guide covers the components of a Plone application, a server environment, continuous integration (CI) and continuous deployment (CD), and orchestration for a deployment.
16+
It is not comprehensive of all ways to deploy Plone, but covers common usage.
17+
18+
1419
```{todo}
15-
Intro to chapter "deployment"
20+
Find a better home for Caching, as it goes deep into explanation with a little bit of how-to guide.
1621
```
1722

1823
```{toctree}
1924
:maxdepth: 2
2025
21-
provision
22-
scaling
23-
backup
26+
components
27+
server-environment
28+
continuous-integration-and-deployment
29+
orchestration
30+
optimize-and-tune
2431
caching/index
2532
```
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Optimize and tune a Plone 6 application for deployment"
5+
"property=og:description": "Optimize and tune a Plone 6 application for deployment"
6+
"property=og:title": "Optimize and tune a Plone 6 application for deployment"
7+
"keywords": "Plone, deployment, optimize, optimization, tune, backend, volto, frontend, load balancer, database, maintenance"
8+
---
9+
10+
(deployment-optimize-and-tune-label)=
11+
12+
# Optimize and tune
13+
14+
This page in the deployment guide describes how to optimize and tune your Plone application.
15+
16+
17+
(deployment-optimize-and-tune-database-parameters-label)=
18+
19+
## Database parameters
20+
21+
```{todo}
22+
Insert database parameters here.
23+
```
24+
25+
26+
(deployment-optimize-and-tune-future-heading-tbd-label)=
27+
28+
## Future heading TBD
29+
30+
[Plone 5.2 documentation, Performance and tuning](https://5.docs.plone.org/manage/deploying/performance/index.html)

docs/deployment/orchestration.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Orchestration of a Plone 6 application"
5+
"property=og:description": "Orchestration of a Plone 6 application"
6+
"property=og:title": "Orchestration of a Plone 6 application"
7+
"keywords": "Plone, orchestration, scaling, Docker, Swarm, Kubernetes"
8+
---
9+
10+
(deployment-orchestration-label)=
11+
12+
# Orchestration
13+
14+
This page covers orchestration of a Plone 6 application.
15+
16+
The recommended procedure for Plone 6 is through the use of Docker Swarm.
17+
18+
```{seealso}
19+
Kubernetes is another orchestration option currently under development and testing in the [Plone Helm Charts](https://github.com/plone/helm-charts) GitHub repository.
20+
```

docs/deployment/provision.md

Lines changed: 0 additions & 23 deletions
This file was deleted.

docs/deployment/scaling.md

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Prepare a server environment for a deployment of Plone 6"
5+
"property=og:description": "Prepare a server environment for a deployment of Plone 6"
6+
"property=og:title": "Prepare a server environment for a deployment of Plone 6"
7+
"keywords": "Plone, deployment, server, environment"
8+
---
9+
10+
(deployment-server-environment-label)=
11+
12+
# Server environment
13+
14+
This page in the deployment guide covers how to prepare a server environment for a Plone 6 deployment.
15+
You will need to prepare your environment with the following items.
16+
17+
```{note}
18+
Should we reuse or update {ref}`install-packages-hardware-requirements-label`?
19+
```
20+
21+
- server instance with an operating system that Plone can run on
22+
- RAM
23+
- disk
24+
- SSH key
25+
- preparation for orchestration
26+
27+
Although this documentation does not cover the following topics, you will need to consider them when setting up your server environment.
28+
29+
- Firewall
30+
- Attack protection
31+
- DNS
32+
- website configuration of virtual hosts, and listening on and binding to IP addresses

docs/glossary.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ Traefik Proxy
403403
[Traefik Proxy](https://traefik.io/traefik/) is an open-source reverse proxy and load balancer, suitable for containerized architectures.
404404
405405
Volto
406-
[Volto](https://github.com/plone/volto) is a React-based frontend for the Plone CMS.
406+
[Volto](https://github.com/plone/volto) is a React-based frontend for Plone.
407407
It is the default user interface for Plone 6.
408408
409409
The other frontend is {term}`Classic UI`.
@@ -731,6 +731,44 @@ Jest
731731
[Jest](https://jestjs.io/) is a JavaScript testing framework.
732732
Volto uses Jest for unit tests.
733733
734+
Plone
735+
Plone is an open-source content management system (CMS) with over 20 years of stability and security wrapped in a modern, powerful, user-centric package.
736+
It continues to set the standard for content management systems by offering the most functionality and customization out of the box.
737+
738+
backend
739+
Plone backend
740+
Plone's backend includes a content management system, a REST API, and {term}`Classic UI` as a {term}`frontend`.
741+
742+
frontend
743+
Plone frontend
744+
A frontend consists of the user interface elements of a web application.
745+
Beginning with Plone 6, the default frontend is {term}`Volto`.
746+
{term}`Classic UI` is a secondary frontend that is part of the {term}`Plone backend`.
747+
748+
TLS
749+
Transport Layer Security
750+
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network.
751+
752+
```{seealso}
753+
[Transport Layer Security](https://developer.mozilla.org/en-US/docs/Web/Security/Transport_Layer_Security) article from MDN.
754+
```
755+
756+
TLS termination proxy
757+
A {term}`TLS` termination proxy is a proxy server that acts as an intermediary point between client and server applications.
758+
It is used to terminate or establish TLS tunnels by decrypting or encrypting communications.
759+
760+
Load balancer
761+
A load balancer acts as a traffic proxy and distributes network or application traffic across endpoints on a number of servers.
762+
763+
CI
764+
continuous integration
765+
Continuous integration (CI) is the practice of integrating all your code changes into the main branch of a shared source code repository early and often, automatically testing each change when you commit or merge them, and automatically kicking off a build.
766+
767+
CD
768+
continuous deployment
769+
continuous delivery
770+
Continuous deployment or continuous delivery is a software development practice that works in conjunction with {term}`CI` to automate the infrastructure provisioning and application release process.
771+
734772
lazy load
735773
lazy loading
736774
lazy loaded

0 commit comments

Comments
 (0)