Loading

Documenting deployment types

Elastic ships the same products across very different operational models. The same task, such as changing a setting, configuring a feature, or creating a snapshot of a cluster, can require completely different workflows depending on how the user deployed Elastic.

This page is the entry point for writing and reviewing documentation that spans deployment types. It covers what the deployment types are, how to recognize when content is deployment-sensitive, and where to find the patterns we use to handle that variation.

Note

If you have questions about deployment types or how to document them, reach out to @elastic/docs.


Deployment types differ mainly in who operates the platform and how much of the stack lifecycle is automated. For cues that signal a piece of content is rooted in a specific deployment type, refer to Signals: how to recognize deployment context.

Deployment type One-line summary
Self-managed You own everything.
Elastic Cloud on Kubernetes (ECK) Kubernetes-native orchestration; you run the operator.
Elastic Cloud Enterprise (ECE) Same software as ECH — but you run the platform.
Elastic Cloud Hosted (ECH) Elastic operates the platform; you configure and maintain the deployment.
Elastic Cloud Serverless Elastic operates and configures; you use it.

ECH, ECE, ECK, and self-managed run the versioned flavor of the Elastic Stack — they share the same versioning and compatibility model, though each orchestrator exposes a different subset of stack configuration and features. Elastic Cloud Serverless runs the serverless flavor — unversioned and continuously delivered. For how flavors map to applies_to tags, refer to Dimensions.

Not every component is available on every deployment type. For the component matrix, refer to Deployment options.

Sometimes, people refer to everything not hosted on Elastic Cloud as "self-managed" (meaning self-managed, ECE, and ECK together). Don't use this in published documentation. Self-managed, ECE, and ECK differ in meaningful ways that the grouping obscures. Always name the specific deployment type.

serverless appears in both the Stack/Serverless and Deployment dimensions of applies_to. This is because Serverless acts as both:

  • A flavor of the Elastic Stack — unversioned, continuously delivered, behaves differently from the versioned Elastic Stack
  • A deployment type — projects are created, scaled, and managed differently from any other deployment type

When tagging, use serverless in whichever dimension matches your page's primary focus. For more on dimension choice, refer to Dimensions.


The most common writer mistake is assuming a task that's universal in concept is also universal in procedure. It usually isn't.

Task Same or different steps?
Configure an elasticsearch.yml setting Different — the file isn't directly accessible on orchestrated deployments
Configure something in the Kibana UI Same across deployment types (exceptions for Serverless)
Configure an Elasticsearch cluster-level / dynamic setting Same across deployment types — done through the Elasticsearch API (exceptions for Serverless)
Add a config file to your Elasticsearch instance Different — depends on deployment type
Install Elastic Agent to send data to Elasticsearch Same — action is performed on the client
Integrate a custom application using client libraries Same — action is performed in client code
Configure ILM policies Same across versioned deployment types; unavailable in Serverless
Tip

Usage of a feature is usually the same across deployment types. Admin and orchestration tasks are usually different. When in doubt, separate "how to use" from "how to install or configure."


When writing or reviewing a page, ask one question: how deployment-sensitive is this content?

Sensitivity What it looks like Examples
Not sensitive Independent of deployment type Feature usage, query behavior, client code, Kibana UI workflows
Somewhat sensitive Same task, different surface Editing a setting, adding a secure setting, accessing logs
Very sensitive Different steps, blockers, or unavailable in some types Setting up monitoring, installing the operator, configuring snapshots

The sensitivity level determines which strategy to apply. The classification itself is the most important review skill: if you can't name the sensitivity, you can't choose the right approach.