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

Conversation

conceptualshark
Copy link
Contributor

Description

Resolves #3235, relates to #199.

This PR separates out the consolidation and clean-up of the intro, architecture, and installation overview pages from any content additions or adjustments to other pages. The changes are currently confined to /next, but can/will be backported + rerouted after an initial review, if needed.

When should this change go live?

  • This is a bug fix, security concern, or something that needs urgent release support.
  • This is already available but undocumented and should be released within a week.
  • This on a specific schedule and the assignee will coordinate a release with the DevEx team. (apply hold label or convert to draft PR)
  • This is part of a scheduled alpha or minor. (apply alpha or minor label)
  • There is no urgency with this change and can be released at any time.

PR Checklist

  • My changes are for an already released minor and are in /versioned_docs directory.
  • My changes are for the next minor and are in /docs directory (aka /next/).

@conceptualshark conceptualshark self-assigned this Jul 18, 2024
@conceptualshark conceptualshark added dx Documentation infrastructure typically handled by the Camunda DX team component:self-managed Docs and issues related to Camunda Platform 8 Self-Managed labels Jul 18, 2024
Copy link
Contributor

github-actions bot commented Jul 18, 2024

👋 🤖 ✅ Looks like the changes were ported across versions, nice job! 🎉

You can read more about the versioning within our docs in our documentation guidelines.


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 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 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).

@akeller akeller requested a review from theburi July 18, 2024 16:45
Copy link
Member

@akeller akeller left a comment

Choose a reason for hiding this comment

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

In general, I like the direction these changes are going and my hope is the feedback that does come in isn't significantly blocking or can be addressed in iterations (for example, diagrams may be stale).

As I read through this, I'm wondering if "Ingress" is clear to users. Can you add this to the glossary? In this PR Ingress is used by itself or "Ingress objects," and I'm not sure they need to be different.

Lastly, don't get caught off guard when you backport these changes and need a redirect to remove the Architecture page. We don't do the same checks against /next/ content.

@akeller akeller requested a review from hisImminence July 18, 2024 17:01
@akeller
Copy link
Member

akeller commented Jul 18, 2024

I'm adding @hisImminence as a review in case he wants to involve other engineers in the Self-Managed space in reviewing these changes.

theburi
theburi previously approved these changes Jul 19, 2024
![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

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.

- 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.

- **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/amazon-eks.md).
- [**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.

@hisImminence
Copy link
Contributor

hisImminence commented Jul 23, 2024

I'm adding @hisImminence as a review in case he wants to involve other engineers in the Self-Managed space in reviewing these changes.

Thanks @akeller, reviewed and besides the 2 commands I left lgtm (no blockers just thoughts)! Happy we get things movin'!

hisImminence
hisImminence previously approved these changes Jul 23, 2024
@conceptualshark
Copy link
Contributor Author

@akeller I broke off a separate issue to add Ingress to the glossary here, and will follow up with some changes to this PR.

@github-actions github-actions bot temporarily deployed to camunda-docs August 8, 2024 14:19 Destroyed
@conceptualshark
Copy link
Contributor Author

@akeller I promise this isn't as large as it seems, but backporting was a bit of a mess! I'd love a final sign-off on the redirects and a sanity check on the backported links. I think it's in a good state now.

@conceptualshark conceptualshark requested a review from akeller August 8, 2024 14:40

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.
- 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?

@@ -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).

Copy link
Member

@akeller akeller left a comment

Choose a reason for hiding this comment

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

@conceptualshark have a look at the link vale is complaining about. Linking to /docs/ will not respect the version drop down.

My other feedback is not blocking for this PR.

@github-actions github-actions bot temporarily deployed to camunda-docs August 8, 2024 19:56 Destroyed
akeller
akeller previously approved these changes Aug 8, 2024
Copy link
Member

@akeller akeller left a comment

Choose a reason for hiding this comment

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

🔍 Great detail-oriented work here, particularly with the tricky enterprise badges! I know there are some opens still, but I'm giving this my pre-approval!

@github-actions github-actions bot temporarily deployed to camunda-docs August 13, 2024 21:10 Destroyed
akeller
akeller previously approved these changes Aug 13, 2024
Copy link
Member

@akeller akeller left a comment

Choose a reason for hiding this comment

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

Pre-approving! I know you still had an open item, but this gets the 🟢 from me.


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.
- 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.

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?

@github-actions github-actions bot temporarily deployed to camunda-docs August 14, 2024 12:57 Destroyed
@conceptualshark
Copy link
Contributor Author

Called out the components explicitly to remove any reference to "web" in either components or applications; carved out https://github.com/camunda/developer-experience/issues/370 to tackle the use of these terms throughout the docs.

@conceptualshark
Copy link
Contributor Author

Waiting on the results of #3888 before merging to more easily incorporate those changes (terms approved by support and legal, etc) - should be within 24 hours.

@github-actions github-actions bot temporarily deployed to camunda-docs August 21, 2024 14:19 Destroyed
@conceptualshark conceptualshark dismissed theburi’s stale review August 21, 2024 17:57

Updated to be component-specific

@conceptualshark
Copy link
Contributor Author

@akeller Got the okay to finish this ahead of delays/necessary refactoring of #3888! 🙏 Just needs the final stamp of approval.

Copy link
Member

@akeller akeller left a comment

Choose a reason for hiding this comment

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

🚀 Great changes! 🙌

@conceptualshark conceptualshark merged commit c9fae28 into main Aug 21, 2024
7 checks passed
@conceptualshark conceptualshark deleted the page-reorg branch August 21, 2024 18:12
Copy link
Contributor

🧹 Preview environment for this PR has been torn down.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:self-managed Docs and issues related to Camunda Platform 8 Self-Managed deploy Stand up a temporary docs site with this PR dx Documentation infrastructure typically handled by the Camunda DX team
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Consolidate pages in Self-Managed
4 participants