Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructure/reorganize content in SM introduction pages #4049

Merged
merged 25 commits into from
Aug 21, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7bb057f
restructure pages
conceptualshark Jul 1, 2024
292f4c5
remove arch page
conceptualshark Jul 17, 2024
b7e11c4
Merge branch 'main' into page-reorg
conceptualshark Jul 17, 2024
cc14295
restructure installation overview
conceptualshark Jul 17, 2024
4a42421
contact page, content reorg
conceptualshark Jul 18, 2024
0338e9f
fix links
conceptualshark Jul 18, 2024
6027cac
Merge branch 'main' into page-reorg
conceptualshark Jul 29, 2024
b740e89
create component partial, separate docker/docker compose deployments
conceptualshark Jul 29, 2024
feca778
Merge branch 'main' into page-reorg
conceptualshark Aug 2, 2024
58c7457
add SM metadescription
conceptualshark Aug 2, 2024
673ce93
Merge branch 'main' into page-reorg
conceptualshark Aug 2, 2024
e6c682d
add architecture redirect
conceptualshark Aug 2, 2024
e56deeb
Remove from 8.5
conceptualshark Aug 5, 2024
d23a4e2
backporting continued & link cleanup
conceptualshark Aug 6, 2024
3057115
update redirects
conceptualshark Aug 6, 2024
fcef9c8
optimize sidebars
conceptualshark Aug 6, 2024
b17e352
Merge branch 'main' into page-reorg
conceptualshark Aug 6, 2024
daa1da3
update console licensing link
conceptualshark Aug 6, 2024
1793d14
licensing link
conceptualshark Aug 6, 2024
46adef6
update redirect link
conceptualshark Aug 8, 2024
6d5135e
update licensing file path
conceptualshark Aug 8, 2024
9fa6419
update links, component availability by version
conceptualshark Aug 8, 2024
875bad2
merge main, resolve conflict
conceptualshark Aug 13, 2024
d3a19ed
Call out components explicitly'
conceptualshark Aug 14, 2024
0585252
Merge branch 'main' into page-reorg
conceptualshark Aug 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 24 additions & 15 deletions docs/self-managed/about-self-managed.md
akeller marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,38 @@ title: "Camunda 8 Self-Managed"

Camunda 8 Self-Managed is not Camunda 7. [Find Camunda 7 documentation here](https://docs.camunda.org).

However, Optimize documentation is available for both Camunda 8 and Camunda 7, including deployment instructions available [here]($optimize$/self-managed/optimize-deployment/install-and-start). Look for `Camunda 7` badges to help you understand what content is available for what product.
akeller marked this conversation as resolved.
Show resolved Hide resolved

:::

As an alternative to using Camunda 8 through SaaS, you can host it yourself; we call this setup Camunda 8 Self-Managed.
Camunda 8 Self-Managed is a self-hosted alternative to using Camunda 8 SaaS. Building process automation solutions with Camunda 8 works similarly regardless of hosting and deployment.

Building process automation solutions with Camunda 8 Self-Managed is similar to working with Camunda 8 SaaS. For more information on Camunda 8 SaaS, visit [What is Camunda 8?](../components/concepts/what-is-camunda-8.md) If you are new to Camunda 8, we recommend you start your journey with [Camunda 8 SaaS-based guides](../../guides/).
For more information on Camunda 8 SaaS, visit [What is Camunda 8?](../components/concepts/what-is-camunda-8.md) If you are new to Camunda 8, we recommend you start your journey with [Camunda 8 SaaS-based guides](../../guides/).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving an expansion on content here for #1055 - just a quick rewrite for now.


The content in this section of the documentation includes:

- Everything you need to download, configure, and work with each component of Camunda 8 Self-Managed.
- Features specific to Camunda 8 Self-Managed.

The following components are available for Camunda 8 Self-Managed:
To get started with your Self-Managed installation, see our [installation overview](./setup/overview.md).

## Architecture
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe these architecture diagrams are a little out of date, so I attempted to include that these were example/sample deployments, only, until they can be updated.


Camunda 8 Self-Managed consists of multiple web applications and gRPC services. The following example architecture diagram uses two [Ingress objects](./setup/guides/ingress-setup.md#combined-ingress-setup) to access these services externally: an Ingress with HTTP(S) protocol for all web applications using a single domain, and another Ingress with gRPC protocol for the Zeebe workflow engine.

![Camunda 8 Self-Managed Architecture Diagram - Combined Ingress](./assets/camunda-platform-8-self-managed-architecture-diagram-combined-ingress.png)

:::note
By default, the deployment requires at least three Kubernetes Nodes to meet the Pod Anti-Affinity constraints.
Copy link
Contributor Author

@conceptualshark conceptualshark Jul 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "additional considerations" section in the original architecture doc includes this:

For components with Anti-Affinity enabled, like Zeebe Broker, the Kubernetes Nodes should be equal to or greater than the number of the Pod replicas. Otherwise, some of its Pods will not be scheduled and will be in a "Pending" state.

As far as I could tell, this is the only place we talk about which (if any) components have anti-affinity enabled, or mention what to do in that case/"Pending" state pods? I don't think this diagram section is the right place for this information, even in passing, and if this is something SM users will need to know, it should be called out more directly in appropriate sections...? I can spin off a new issue to research this if this line of thought seems correct.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added @theburi as a reviewer to the overall PR, but I'm hoping he could shed some light on this specific topic. Is this something we can address here quickly @theburi, or should @conceptualshark create a new issue and discuss it with you separately?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My initial thought was that this note would be too specific at this doc level. There are several constrains that needs to be taken into account and we should group them in one place, somewhere inside installation page.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to go ahead and remove the notes from this section of the docs, which is meant to be more of an overview, and created an issue for discussion/creation of a better place for these recommendations/constraints/etc to live (#4075).

:::

In this configuration, Camunda 8 Self-Managed can be accessed as follows:

- Web applications: `https://camunda.example.com/[identity|operate|optimize|tasklist|modeler]`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We refer to these as Components. Web Applications is not a topology term that we use. It also does not represent them fully

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the usage here shouldn't capture each component fully, only represent the web interface, and should explicitly separate them out from Zeebe in terms of access.

There's a number of places where we use web app/application like this, so if it shouldn't be used at all, let me know if I should create a separate ticket to update it elsewhere.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not craft a good definition of when to use components vs. web applications off the top of my head. If I had to reason out loud, it would be the following: Modeler is the component, but Web Modeler is a web application. I don't think Identity is a web application, but I don't know how I would verify that.

For internal resources, I would recommend this PMM-maintained page. You can also follow up with @karl-heinsen since I hit a dead end here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would "web components" be preferable? The entirety of this section is focused on separating out the different points of access, so "Components" isn't inclusive enough as Zeebe isn't included, and we're also not referring to the entirety of the component - only the method of access. Looking for any term that is inclusive of all components with a served log-in page, and excludes those without.

Suggested change
- Web applications: `https://camunda.example.com/[identity|operate|optimize|tasklist|modeler]`
In this configuration, Camunda 8 Self-Managed can be accessed as follows:
- Web components: `https://camunda.example.com/[identity|operate|optimize|tasklist|modeler]`
- Web Modeler also exposes a WebSocket endpoint on `https://camunda.example.com/modeler-ws`. This is only used by the application itself and not supposed to be accessed by users directly.
- Keycloak authentication: `https://camunda.example.com/auth`
- Zeebe gateway: `grpc://zeebe.camunda.example.com`

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would back either "web applications" or "web components" to get this out the door.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Web Modeller has three parts - NodeJS server that exposes web interface, REST API server and Socket server. Identity has also web interface. 'Web Component' is to restrictive and diminishes the value of our product. We typically refer to zeebe, optimize, operate as Component or C8.
Can we use 'Component' going forward?

- Web Modeler also exposes a WebSocket endpoint on `https://camunda.example.com/modeler-ws`. This is only used by the application itself and not supposed to be accessed by users directly.
- Keycloak authentication: `https://camunda.example.com/auth`
- Zeebe gateway: `grpc://zeebe.camunda.example.com`

## Availability

- Zeebe
akeller marked this conversation as resolved.
Show resolved Hide resolved
- Zeebe Gateway
- Operate
- Tasklist
- Connectors
- Optimize
- Identity (not available in Camunda 8 SaaS)
- Console [<span class="badge badge--enterprise-only">Enterprise only</span>](../../reference/licenses/#console)
- Web Modeler
Each component of Camunda 8 Self-Managed can be deployed in single or high-availability mode, which provides minimal to no service interruption. The following diagram represents deployment in high-availability mode:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are updating the page. This statement is not really correct. Not all the components are highly available. Operate is a single node only (Using Helm charts) It is possible to deploy in HA mode, but it needs manual intervention. Can we rephrase it ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would argue that 'it is possible to deploy HA mode', and therefore the statement is correct :P I feel it would sound more confusing if we state its not HA or partially.

Would it be an idea to create a follow up to create a guide or make the HCs configuration more easy for customers to set up all apps in HA mode then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hisImminence @theburi Do you think this diagram with a theoretical HA mode is adding anything for a technical audience? I could remove it if it's only adding to confusion, and make an issue to create the follow-up HA guide. Or, leave it for now, and make that guide to link to from here when it's done.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could remove it if it's only adding to confusion, and make an issue to create the follow-up HA guide

You are referring to the diagram on this page, or?

I would go with this option: I could remove it if it's only adding to confusion, and make an issue to create the follow-up HA guide.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specifically the high availability diagram here. I've gone ahead and removed it in this iteration, and set up this issue to look into it outside of this cleanup PR.


Camunda 8 Self-Managed users may also use [Desktop Modeler](../../components/modeler/desktop-modeler/install-the-modeler) as an addition to these components. Desktop Modeler can be used by process developers to build BPMN diagrams, DMN diagrams, or [Camunda Forms](../guides/utilizing-forms.md) for automation.
![Camunda 8 Self-Managed Deployment Diagram](./assets/camunda-platform-8-self-managed-deployment-diagram-high-availability-mode.png)
38 changes: 0 additions & 38 deletions docs/self-managed/platform-architecture/overview.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Multi-tenancy is disabled by default and is not covered further in this guide. I

### Architecture

Note the [existing architecture](/self-managed/platform-architecture/overview.md#architecture) extended by deploying a Network Load Balancer with TLS termination within the [ingress](https://kubernetes.github.io/ingress-nginx/user-guide/tls/) below.
Note the [existing architecture](../../../../about-self-managed.md#architecture) extended by deploying a Network Load Balancer with TLS termination within the [ingress](https://kubernetes.github.io/ingress-nginx/user-guide/tls/) below.
Copy link
Member

@akeller akeller Aug 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got into a habit of using the docs area instead of trying to walk the file structure with ../'s. Can you bring this to a team meeting so we can discuss it? No action required here (in the PR).


Additionally, two components ([external-dns](https://github.com/kubernetes-sigs/external-dns) and [cert-manager](https://cert-manager.io/)) handle requesting the TLS certificate from [Let's Encrypt](https://letsencrypt.org/) and configuring Route53 to confirm domain ownership and update the DNS records to expose the Camunda 8 deployment.

Expand Down
4 changes: 2 additions & 2 deletions docs/self-managed/setup/guides/ingress-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Camunda 8 Helm chart doesn't manage or deploy Ingress controllers, it only deplo

In this setup, a single Ingress/domain is used to access Camunda 8 web applications, and another for Zeebe Gateway. By default, all web applications use `/` as a base, so we just need to set the context path, Ingress configuration, and authentication redirect URLs.

![Camunda 8 Self-Managed Architecture Diagram - Combined Ingress](../../platform-architecture/assets/camunda-platform-8-self-managed-architecture-diagram-combined-ingress.png)
![Camunda 8 Self-Managed Architecture Diagram - Combined Ingress](../../assets/camunda-platform-8-self-managed-architecture-diagram-combined-ingress.png)

```yaml
# Chart values for the Camunda 8 Helm chart in combined Ingress setup.
Expand Down Expand Up @@ -109,7 +109,7 @@ Once deployed, you can access the Camunda 8 components on:

In this configuration, every Camunda 8 component is assigned its own Ingress and Domain. The use of a context path is unnecessary because the default base path `/` is used for each Ingress/Domain. In this setup, you only need to provide the Ingress settings and specify the Identity authentication redirect URLs.

![Camunda 8 Self-Managed Architecture Diagram - Separated Ingress](../../platform-architecture/assets/camunda-platform-8-self-managed-architecture-diagram-separated-ingress.png)
![Camunda 8 Self-Managed Architecture Diagram - Separated Ingress](../../assets/camunda-platform-8-self-managed-architecture-diagram-separated-ingress.png)

```yaml
# Chart values for the Camunda 8 Helm chart in combined Ingress setup.
Expand Down
2 changes: 1 addition & 1 deletion docs/self-managed/setup/guides/using-existing-keycloak.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Using existing Keycloak"
description: "Learn how to use an existing Keycloak instance in Camunda 8 Self-Managed deployment."
---

Camunda 8 Self-Managed has two different types of applications: Camunda applications (Operate, Optimize, Tasklist, etc.) and non-Camunda applications (such as Keycloak and Elasticsearch). For more details, review the [architecture](/self-managed/platform-architecture/overview.md) documentation for more information on the different types of applications.
Camunda 8 Self-Managed has two different types of applications: Camunda applications (Operate, Optimize, Tasklist, etc.) and non-Camunda applications (such as Keycloak and Elasticsearch). For more details, review the [architecture](../../about-self-managed.md#architecture) documentation for more information on the different types of applications.

This guide steps through using an existing Keycloak instance, which is part of [Camunda Identity](/self-managed/identity/what-is-identity.md). By default, [Helm chart deployment](/self-managed/setup/install.md) creates a new Keycloak instance, but it's possible to use an existing Keycloak instance either inside the same Kubernetes cluster or outside of it.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Using Amazon OpenSearch Service"
description: "Learn how to use an Amazon OpenSearch Service instance in Camunda 8 Self-Managed deployment."
---

Camunda 8 Self-Managed has two different types of components: Camunda components (Operate, Optimize, Tasklist, etc.) and non-Camunda dependency components (such as Keycloak and Elasticsearch). For more details, review the [architecture](/self-managed/platform-architecture/overview.md) documentation for more information on the different types of applications.
Camunda 8 Self-Managed has two different types of components: Camunda components (Operate, Optimize, Tasklist, etc.) and non-Camunda dependency components (such as Keycloak and Elasticsearch). For more details, review the [architecture](../../about-self-managed.md#architecture) documentation for more information on the different types of applications.

This guide steps through using an existing Amazon OpenSearch Service instance. By default, [Helm chart deployment](/self-managed/setup/overview.md) creates a new Elasticsearch instance, but it's possible to use Amazon OpenSearch Service instead.

Expand Down
2 changes: 1 addition & 1 deletion docs/self-managed/setup/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ For example, `CAMUNDA_OPERATE_ELASTICSEARCH_URL` becomes `CAMUNDA_OPERATE_OPENSE
Refer to the [Operate](/self-managed/operate-deployment/operate-configuration.md#settings-for-opensearch) and [Tasklist](/self-managed/tasklist-deployment/tasklist-configuration.md#elasticsearch-or-opensearch) configuration documentation for additional component configuration parameters to update.
:::

![Camunda 8 Self-Managed Architecture Diagram](../platform-architecture/assets/camunda-platform-8-self-managed-architecture-diagram-combined-ingress.png)
![Camunda 8 Self-Managed Architecture Diagram](../assets/camunda-platform-8-self-managed-architecture-diagram-combined-ingress.png)

When installing the [camunda-platform](https://artifacthub.io/packages/helm/camunda/camunda-platform) Helm chart, all components shown on the architectural diagram above are installed.

Expand Down
24 changes: 13 additions & 11 deletions docs/self-managed/setup/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "This chapter contains information for users who want to deploy and
keywords: ["camunda download"]
---

This chapter contains information for users who want to deploy and run Camunda 8 Self-Managed, typically in their self-controlled cloud (public or private) or even on their own hardware.
This guide contains information for users who want to install, deploy, and upgrade Camunda 8 Self-Managed, typically in their self-controlled cloud (public or private) or on their own hardware.

## Components

Expand All @@ -19,22 +19,24 @@ This chapter contains information for users who want to deploy and run Camunda 8
- Web Modeler
- Console [<span class="badge badge--enterprise-only">Enterprise only</span>](../../../reference/licenses/#console-sm)

All components except Web Modeler and Console are single Java applications.
All components except Web Modeler and Console are single Java applications. Depending on your needs, you might not need all of the above components to successfully use Camunda 8.

Depending on your needs, you might not need all the above components to successfully use Camunda 8.
Camunda 8 Self-Managed users may also use [Desktop Modeler](../components/modeler/desktop-modeler/install-the-modeler) as an addition to these components. Desktop Modeler can be used by process developers to build BPMN diagrams, DMN diagrams, or [Camunda Forms](../../guides/utilizing-forms.md) for automation.

:::note

To obtain or retrieve your Camunda 8 credentials for Enterprise licenses, visit the [contact page](/contact).

:::

## Supported environments

For details on supported environments (e.g. Java or Elasticsearch versions), see [supported environments](/reference/supported-environments.md).

## Deployment options

You have the following options to run or deploy the above components in a self-managed fashion:

- **Helm/Kubernetes**: We strongly recommend using Kubernetes to run Camunda 8 in production. In addition to stock Kubernetes we also officially support variety of providers like Red Hat OpenShift and Amazon EKS. Also using Kubernetes with Minikube or KIND can be an interesting environment to run Camunda 8 locally on developer machines.
- **Docker**: You can run the provided Docker images of the components, also in production. For your convenience, we provide a Docker Compose configuration to run Camunda 8 on developer machines. Note that the Docker Compose configuration is **not** optimized for production usage, but for local development. You can find setup instructions in the [camunda-platform](https://github.com/camunda/camunda-platform) repository.
- **Manual**: You can run the Java applications on a local or virtual machine if it provides a supported Java Virtual Machine (JVM). This allows you to run Camunda on virtual machines or bare metal and offers a significant amount of flexibility. However, you will need to configure the details for the components to interact correctly yourself. We consider this a last resort. Note that Windows/Mac is **not** supported for production usage of Zeebe.
- [**Helm/Kubernetes**](./install.md): We recommend using Kubernetes and Helm to deploy and run Camunda 8 Self-Managed in production. With the right configuration, Camunda 8 Self-Managed can be deployed on any Certified Kubernetes distribution (cloud or on-premise). We also officially support a variety of providers like [Red Hat OpenShift](./deploy/openshift/redhat-openshift.md) and [Amazon EKS](./deploy/amazon/amazon-eks/).
- [**Docker**](./deploy/other/docker.md): Component [Docker images](https://hub.docker.com/u/camunda) are available for use in production. A Docker Compose configuration is also provided for local development, and is **not** optimized for production usage. You can find setup instructions in the [camunda-platform](https://github.com/camunda/camunda-platform) repository.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thought here: would it make sense to have the Docker Compose part as a separate bullet point (would make if fmpov clearer that its not related to the docker setup), and only local!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pulled out docker compose in the latest push, and put it in its own mention, to keep this only a list of option for production-viable deployments.

- [**Manual**](./deploy/local/manual.md): The Java applications can run on a local or virtual machine if it provides a supported Java Virtual Machine (JVM). This allows you to run Camunda on virtual machines or bare metal and offers a significant amount of flexibility. However, you will need to configure the details for the components to interact correctly yourself. We consider this a last resort. Note that Windows/Mac is **not** supported for production usage of Zeebe.

:::note
For additional details on locating your Camunda 8 credentials, visit the [contact page](/contact).
:::
For more details on deployment, see [sizing your environment](../../components/best-practices/architecture/sizing-your-environment.md#camunda-8-self-managed).
7 changes: 0 additions & 7 deletions optimize_sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -2132,13 +2132,6 @@ module.exports = {

"Self-Managed": [
docsLink("Camunda 8 Self-Managed", "self-managed/about-self-managed/"),

{
Architecture: [
docsLink("Overview", "self-managed/platform-architecture/overview/"),
],
},

{
Setup: [
docsLink("Overview", "self-managed/setup/overview/"),
Expand Down
1 change: 0 additions & 1 deletion sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -867,7 +867,6 @@ module.exports = {
"Self-Managed": [
"self-managed/about-self-managed",
{
Architecture: ["self-managed/platform-architecture/overview"],
Setup: [
"self-managed/setup/overview",
"self-managed/setup/install",
Expand Down
Loading