Skip to content

Restructure Service Platform hosting docs to make it clearer for containers - #8449

Open
WilliamBZA wants to merge 4 commits into
masterfrom
improve-containerized-platform-docs
Open

Restructure Service Platform hosting docs to make it clearer for containers#8449
WilliamBZA wants to merge 4 commits into
masterfrom
improve-containerized-platform-docs

Conversation

@WilliamBZA

Copy link
Copy Markdown
Member

No description provided.

@WilliamBZA WilliamBZA changed the title Restructure Service Platform hosting docs to make it clearer Restructure Service Platform hosting docs to make it clearer for containers Aug 7, 2026
@WilliamBZA
WilliamBZA marked this pull request as ready for review August 7, 2026 07:54
Comment thread platform/containers.md
2. **ServiceControl Error instance**, the only required piece. See [Deploying ServiceControl Error instances using Containers](/servicecontrol/servicecontrol-instances/deployment/containers.md).
3. **ServiceControl Audit instance** (optional), if audit message history is needed. See [Deploying ServiceControl Audit instances using containers](/servicecontrol/audit-instances/deployment/containers.md).
4. **ServiceControl Monitoring instance** (optional), if endpoint performance monitoring is needed. See [Deploying ServiceControl Monitoring instances using containers](/servicecontrol/monitoring-instances/deployment/containers.md).
5. **ServicePulse**, the web UI that connects to the instances above. See [Running ServicePulse in containers](/servicepulse/containerization).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can SP be hosted via SC when using containers? (Perhaps that would simplify this further)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Definitely, we should be simplifying the deployment so less is more 😉

WilliamBZA and others added 2 commits August 12, 2026 10:21

@johnsimons johnsimons left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If the aim of this PR is to simplify deployment, I personally believe that we should update the whole docs to use SP embeeded, this thinking is that the less things the user needs to setup the better.
However, when using the embedded SP, we need to consider that hosting it in port 33333 is not very "standard", so we may need to adjust docs to explain this hurdle.
The whole RavenDB does not work in cloud providers and customers need to run the Raven Cloud, that to me is another friction point that is difficult to grasp, so I don't know @WilliamBZA whether the case you are deailing with touched on that.

Comment thread platform/index.md
## Working with the platform

ServiceControl and ServicePulse are server applications. They should be deployed in each environment, for example: test, QA, and production.
ServiceControl and ServicePulse are server applications. They should be deployed in each environment, for example: test, QA, and production. See [Running the Particular Service Platform in containers](/platform/containers.md) for an overview of deploying them as containers.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This feels a bit out of place here. Why are we mentioning containers but not all other deployment methods?

Comment thread platform/containers.md
Comment on lines +33 to +39
Deploy the pieces in this order:

1. **RavenDB**, one container per Error or Audit instance. See [Managing ServiceControl RavenDB instances via Containers](/servicecontrol/ravendb/containers.md).
2. **ServiceControl Error instance**, the only required piece. See [Deploying ServiceControl Error instances using Containers](/servicecontrol/servicecontrol-instances/deployment/containers.md).
3. **ServiceControl Audit instance** (optional), if audit message history is needed. See [Deploying ServiceControl Audit instances using containers](/servicecontrol/audit-instances/deployment/containers.md).
4. **ServiceControl Monitoring instance** (optional), if endpoint performance monitoring is needed. See [Deploying ServiceControl Monitoring instances using containers](/servicecontrol/monitoring-instances/deployment/containers.md).
5. **ServicePulse**, the web UI that connects to the instances above. See [Running ServicePulse in containers](/servicepulse/containerization).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Given that this page is part of the "learning path", I don't think we can just say "optional"!
This is the area where I would also explain why they need these extra features deployed. And then add a link to another page to learn more about them, and on that page we would say it is optional.

Comment thread platform/containers.md
2. **ServiceControl Error instance**, the only required piece. See [Deploying ServiceControl Error instances using Containers](/servicecontrol/servicecontrol-instances/deployment/containers.md).
3. **ServiceControl Audit instance** (optional), if audit message history is needed. See [Deploying ServiceControl Audit instances using containers](/servicecontrol/audit-instances/deployment/containers.md).
4. **ServiceControl Monitoring instance** (optional), if endpoint performance monitoring is needed. See [Deploying ServiceControl Monitoring instances using containers](/servicecontrol/monitoring-instances/deployment/containers.md).
5. **ServicePulse**, the web UI that connects to the instances above. See [Running ServicePulse in containers](/servicepulse/containerization).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Definitely, we should be simplifying the deployment so less is more 😉

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I personally find these modes quite complex, and I am not sure they really work in practice.
For example, when we build the Helm charts, we just went with --setup-and-run because otherwise things get super confusing.

I would suggest --setup-and-run is really the mode they want to use for container deployments.
Everything else is kind of an "advanced" setup mode.

## Overview

When MassTransit is used with the rest of the platform, there are in total 4 containers that need to be deployed:
See [Running the Particular Service Platform in containers](/platform/containers.md) for an overview of deploying the platform as containers. When MassTransit is used with the rest of the platform, there are in total 4 containers that need to be deployed:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This can be further reduced to 3, if we make the embedded ServicePulse the default in docs (it is already the default in SCMU).

---

ServiceControl 5.3.0 adds the ability to host ServiceControl instances in Linux containers. This article describes how to migrate from ServiceControl hosted on Windows hosting to new ServiceControl instances hosted in containerized infrastructure.
ServiceControl 5.3.0 adds the ability to host ServiceControl instances in Linux containers. This article describes how to migrate from ServiceControl hosted on Windows hosting to new ServiceControl instances hosted in containerized infrastructure. See [Running the Particular Service Platform in containers](/platform/containers.md) for an overview of the resulting container topology.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This prompt feels a bit too early; don't we want them to read the migration first? Consider moving the prompt later on the page.

Comment thread servicecontrol/index.md
- [Audit instances](/servicecontrol/audit-instances/) provide valuable information about the message flow through a system. These instances are used by ServicePulse to help visualize a distributed system.
- [Monitoring instances](/servicecontrol/monitoring-instances/) provide performance monitoring and metrics analytics that are useful for keeping track of the health of a distributed system.

See [Running the Particular Service Platform in containers](/platform/containers.md) for an overview of deploying these instances as containers.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Again, this feels out of place. They are on the learning path. Do we want them to go somewhere else?

Comment thread platform/containers.md
monitoring --> pulse
```

Only the Error and Audit instances need a RavenDB container; Monitoring instances don't store any data. Audit and Monitoring instances are optional, but recommended: an Error instance is required to run ServiceControl at all.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
Only the Error and Audit instances need a RavenDB container; Monitoring instances don't store any data. Audit and Monitoring instances are optional, but recommended: an Error instance is required to run ServiceControl at all.
Only the Error and Audit instances need a RavenDB container; Monitoring instances don't store any data.
Audit and Monitoring instances are optional but recommended.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants