Skip to content

Commit

Permalink
Merge branch '6.0' into upgrade-to-61
Browse files Browse the repository at this point in the history
  • Loading branch information
stevepiercy authored May 5, 2024
2 parents 6468ee6 + 64a69c6 commit 680c3e4
Show file tree
Hide file tree
Showing 13 changed files with 206 additions and 72 deletions.
12 changes: 0 additions & 12 deletions docs/deployment/backup.md

This file was deleted.

50 changes: 50 additions & 0 deletions docs/deployment/components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
myst:
html_meta:
"description": "Components of a Plone 6 application for deployment"
"property=og:description": "Components of a Plone 6 application for deployment"
"property=og:title": "Components of a Plone 6 application for deployment"
"keywords": "Plone, deployment, components, backend, volto, frontend, TLS termination proxy, load balancer, router, database, mail service, optimization, maintenance"
---

(deployment-components-label)=

# Components

This page in the deployment guide covers the components in a Plone application deployment.
The components can be broken down into those that are required, recommended, and optional.


(deployment-required-components-label)=

## Required components

You need the following components to deploy a Plone application.

- {term}`Plone backend`
- {term}`Volto` as the default {term}`Frontend` for Plone
- {term}`TLS termination proxy`
- {term}`Load balancer` or router
- Database
- Mail service
- Maintenance tasks
- Database backup
- Packing database - https://5.docs.plone.org/manage/deploying/packing.html
- Log rotation


(deployment-recommended-components-label)=

## Recommended components

Recommended components, although not required, will help with the performance and user experience of your Plone application.

- HTTP caching


(deployment-optional-components-label)=

## Optional components

- Monitoring
- Search
20 changes: 20 additions & 0 deletions docs/deployment/continuous-integration-and-deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
myst:
html_meta:
"description": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
"property=og:description": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
"property=og:title": "Continuous integration (CI) and continuous deployment (CD) for a Plone 6 application"
"keywords": "Plone, Continuous integration, CI, continuous deployment, CD, pipeline, images, GitHub, actions, workflows"
---

(deployment-continuous-integration-and-deployment-label)=

# Continuous integration and deployment

This page in the deployment guide covers {term}`continuous integration` (CI) and {term}`continuous deployment` (CD) for a Plone 6 application.


## Deployment pipeline


## Build images
17 changes: 12 additions & 5 deletions docs/deployment/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,29 @@ myst:
"description": "Deployment of Plone 6"
"property=og:description": "Deployment of Plone 6"
"property=og:title": "Deployment of Plone 6"
"keywords": "Plone, deployment, automation"
"keywords": "Plone, deployment, server, environment, continuous integration, continuous deployment, automation, tuning, optimatization, orchestration, Docker, Swarm, Kubernetes"
---

(deployment-label)=

# Deployment

This part of the documentation describes how to deploy your Plone 6 application.
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.
It is not comprehensive of all ways to deploy Plone, but covers common usage.


```{todo}
Intro to chapter "deployment"
Find a better home for Caching, as it goes deep into explanation with a little bit of how-to guide.
```

```{toctree}
:maxdepth: 2
provision
scaling
backup
components
server-environment
continuous-integration-and-deployment
orchestration
optimize-and-tune
caching/index
```
30 changes: 30 additions & 0 deletions docs/deployment/optimize-and-tune.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
myst:
html_meta:
"description": "Optimize and tune a Plone 6 application for deployment"
"property=og:description": "Optimize and tune a Plone 6 application for deployment"
"property=og:title": "Optimize and tune a Plone 6 application for deployment"
"keywords": "Plone, deployment, optimize, optimization, tune, backend, volto, frontend, load balancer, database, maintenance"
---

(deployment-optimize-and-tune-label)=

# Optimize and tune

This page in the deployment guide describes how to optimize and tune your Plone application.


(deployment-optimize-and-tune-database-parameters-label)=

## Database parameters

```{todo}
Insert database parameters here.
```


(deployment-optimize-and-tune-future-heading-tbd-label)=

## Future heading TBD

[Plone 5.2 documentation, Performance and tuning](https://5.docs.plone.org/manage/deploying/performance/index.html)
20 changes: 20 additions & 0 deletions docs/deployment/orchestration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
myst:
html_meta:
"description": "Orchestration of a Plone 6 application"
"property=og:description": "Orchestration of a Plone 6 application"
"property=og:title": "Orchestration of a Plone 6 application"
"keywords": "Plone, orchestration, scaling, Docker, Swarm, Kubernetes"
---

(deployment-orchestration-label)=

# Orchestration

This page covers orchestration of a Plone 6 application.

The recommended procedure for Plone 6 is through the use of Docker Swarm.

```{seealso}
Kubernetes is another orchestration option currently under development and testing in the [Plone Helm Charts](https://github.com/plone/helm-charts) GitHub repository.
```
23 changes: 0 additions & 23 deletions docs/deployment/provision.md

This file was deleted.

28 changes: 0 additions & 28 deletions docs/deployment/scaling.md

This file was deleted.

32 changes: 32 additions & 0 deletions docs/deployment/server-environment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
myst:
html_meta:
"description": "Prepare a server environment for a deployment of Plone 6"
"property=og:description": "Prepare a server environment for a deployment of Plone 6"
"property=og:title": "Prepare a server environment for a deployment of Plone 6"
"keywords": "Plone, deployment, server, environment"
---

(deployment-server-environment-label)=

# Server environment

This page in the deployment guide covers how to prepare a server environment for a Plone 6 deployment.
You will need to prepare your environment with the following items.

```{note}
Should we reuse or update {ref}`install-packages-hardware-requirements-label`?
```

- server instance with an operating system that Plone can run on
- RAM
- disk
- SSH key
- preparation for orchestration

Although this documentation does not cover the following topics, you will need to consider them when setting up your server environment.

- Firewall
- Attack protection
- DNS
- website configuration of virtual hosts, and listening on and binding to IP addresses
40 changes: 39 additions & 1 deletion docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ Traefik Proxy
[Traefik Proxy](https://traefik.io/traefik/) is an open-source reverse proxy and load balancer, suitable for containerized architectures.

Volto
[Volto](https://github.com/plone/volto) is a React-based frontend for the Plone CMS.
[Volto](https://github.com/plone/volto) is a React-based frontend for Plone.
It is the default user interface for Plone 6.

The other frontend is {term}`Classic UI`.
Expand Down Expand Up @@ -731,6 +731,44 @@ Jest
[Jest](https://jestjs.io/) is a JavaScript testing framework.
Volto uses Jest for unit tests.

Plone
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.
It continues to set the standard for content management systems by offering the most functionality and customization out of the box.

backend
Plone backend
Plone's backend includes a content management system, a REST API, and {term}`Classic UI` as a {term}`frontend`.

frontend
Plone frontend
A frontend consists of the user interface elements of a web application.
Beginning with Plone 6, the default frontend is {term}`Volto`.
{term}`Classic UI` is a secondary frontend that is part of the {term}`Plone backend`.

TLS
Transport Layer Security
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network.

```{seealso}
[Transport Layer Security](https://developer.mozilla.org/en-US/docs/Web/Security/Transport_Layer_Security) article from MDN.
```

TLS termination proxy
A {term}`TLS` termination proxy is a proxy server that acts as an intermediary point between client and server applications.
It is used to terminate or establish TLS tunnels by decrypting or encrypting communications.

Load balancer
A load balancer acts as a traffic proxy and distributes network or application traffic across endpoints on a number of servers.

CI
continuous integration
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.

CD
continuous deployment
continuous delivery
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.

lazy load
lazy loading
lazy loaded
Expand Down
2 changes: 1 addition & 1 deletion submodules/plone.api
2 changes: 1 addition & 1 deletion submodules/volto

0 comments on commit 680c3e4

Please sign in to comment.