# Kubernetes: Production readiness self-assessment

Think you’re ready for production? Ensuring that your Weaviate cluster is production-ready requires careful planning, configuration, and ongoing maintenance. Ensuring that you have a stable, reliable deployment requires you to think of your _ending_ at the _beginning._ This guide provides you with introspective questions to assess readiness and identify any potential gaps before moving your workloads into production.

:::callout{intent="tip"}
If you _do_ identify gaps within your deployment, be sure to reach out to your SE (solutions engineer) who can help steer you on the path to production success!
:::

### High Availability and Resilience

- [ ] Are your clusters deployed across multiple availability zones (AZs) or regions to prevent downtime?
- [ ] Are you running Weaviate in a highly available setup with a 3-node minimum?
- [ ] Have you configured your schema to use a replication factor of 3 to ensure copies of data are available during node outage?
- [ ] Are replicas deployed across multiple nodes for redundancy?
- [ ] Is your control plane highly available?
- [ ] Is your application fault-tolerant _without_ your control plane?
- [ ] Are there automatic node repair or self-healing mechanisms in place?
- [ ] Have failover scenarios been tested to validate resilience?
- [ ] Are you utilizing Weaviate’s backup capabilities for disaster recovery?
  - [ ] How often are these mechanisms tested?
  - [ ] Has the ability to recover from a node failure or database corruption been tested?
- [ ] Have you thought about the retention period of backups?
  - [ ] How do you clean up any out-of-date backups?
- [ ] Are rolling updates performed to avoid downtime?
- [ ] Are canary deployments implemented to safely test new releases?
- [ ] Do you have development or test environments to safely test changes?

### Data Ingestion and Query Performance

- [ ] Is there a strategy for handling heavy ingestion loads?
- [ ] Has the percentage of resources for indexing vs querying applications been specified?
- [ ] Is there a defined strategy for data deduplication and cleanup before ingestion?
- [ ] How frequently is data added, updated, or deleted?
  - [ ] Is data updated in place or mostly append-only
  - [ ] How often do deletion operations trigger garbage collection?
- [ ] Have you implemented a scheduling strategy for large ingestion jobs?
- [ ] Have you tested query performance under load?
  - [ ] Is query performance monitored using Prometheus or Grafana?
- [ ] Have replica shards been deployed for load balancing and failover support?

### Resource Management

- [ ] Have you considered your data’s consumption pattern(s)?
  - [ ] Has your memory allocation been right-sized to match workload demand?
  - [ ] Has your storage/compute allocation also been right-sized to match workload demand?
  - [ ] Is there a process to delete old or unused objects?
- [ ] Have multiple replicas been configured to balance read-heavy workloads?
- [ ] Has the proper storage class been selected for your needs?
  - [ ] Does your storage class support volume expansion so that you can support growth over time?
- [ ] Is the data within your cluster properly backed up, including the persistent storage?
- [ ] Is the sharding strategy aligned with the size and access patterns of the dataset?
- [ ] Is `GOMEMLIMIT` properly configured for memory management?
  - [ ] Is `GOMEMLIMIT` set based on available system memory to prevent excessive garbage collection pauses?
- [ ] Have you considered vector quantization techniques to reduce memory requirements?

### Tenant State Management

- [ ] Are you implementing multi-tenancy?
  - [ ] Are there limits or quotas per tenant to avoid noisy neighbor issues?
- [ ] Is there a strategy for offloading inactive tenant data?

### Security

- [ ] Are the components of your cluster communicating via SSL/TLS and trusted certificates?
- [ ] Is the _“principle of least privilege”_ being followed?
- [ ] Are your container security defaults set properly?
- [ ] Is access to your cluster strictly limited?
- [ ] Has [RBAC](../authorization-and-authentication/weaviate-configuration-rbac.md) been implemented to restrict access?
- [ ] Have network policies been implemented to limit pod-to-pod communication?
- [ ] Are secrets secured with K8s Secrets or a vault solution?
- [ ] Do you have a process for when secrets are exposed, when access is lost to a key or certificate, and when secrets need to be rotated?

### Monitoring and Observability

- [ ] Is logging implemented?
  - [ ] Are the collected logs stored centrally?
- [ ] Is metric collection enabled using Prometheus (or Alloy, DataDog, or another monitoring platform)?
- [ ] Are health and performance metrics being visualized in Grafana?
- [ ] Are alerts configured for events?

Evaluate these key areas to build a highly available, resilient, and efficient deployment that will scale to meet your business needs. By ensuring that these self-assessment questions have been addressed, you can proactively identify potential risks and maximize the reliability of your deployment.

## Questions and feedback

Have a question or feedback? Here's how to reach us.

::::card-grid
:::card{title="Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions and connect with other developers on our **Community forum**.
:::

:::card{title="Support" href="/guides/support-overview" icon="life-buoy"}
Weaviate Cloud user or customer? Find the right channel on the **Support page**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
