What Open-Xchange high availability requires before go-live
High availability for OX App Suite is a property of the whole stack, not of one replicated component. If mail, calendar and contacts must stay available through a node, database, cache or storage failure, every layer that a user request touches has to survive that failure without losing sessions, data or files. Adding replicas to the middleware alone leaves the platform exposed at the points where state lives, and those points are where outages usually start. Teams usually need this level of design when users depend on mail for daily work, when a contract or internal service level sets an uptime target, or when several teams share operational duty for the platform. Each of these raises the cost of an unplanned outage and makes a single failed component visible to the business. Before committing to a design, ask who owns each layer, what the uptime commitment covers, and whether the team can respond to a failure at 2 a.m. without the person who built the cluster. The hard part is state. Sessions and caching depend on Redis 7.4.x, so the team must decide whether the Redis deployment is managed through the littlered operator or is a custom setup, and how a Redis failover affects logged-in users. Data consistency depends on MariaDB with Galera Cluster, which requires choosing a supported MariaDB line, planning quorum and deciding how writes behave during a node loss. Attachments and OX Drive files depend on a distributed file system: NFS for small to mid-size deployments, or object storage such as AWS S3, Ceph RadosGW or Scality RING for larger ones. A replicated storage layer that is not sized for the workload can become the bottleneck that defeats the rest of the design. The platform layer also shapes the HA design from the start. OX App Suite v8 runs on Kubernetes, is delivered as Helm charts, and requires Istio, with Helm 3.17.0 or newer. Ingress, traffic routing, pod scheduling, persistent volumes and node pools all affect how failures are contained. Confirm which Kubernetes and Istio versions your environment will run, since the supported window for Kubernetes is N-1 and N-2 and Istio support covers the latest release plus two prior versions. Where Istio cannot be used, the basic ingress-nginx option exists, but that choice changes the traffic design and should be made before the cluster is built. Before go-live, write down the failure modes you intend to tolerate, the component that owns each one, and the evidence that proves recovery works. The failover tests that follow from that list are covered in the testing section of this page, so treat this section as the checklist of decisions that must be settled first.
Which components carry availability in OX App Suite v8
Availability in OX App Suite v8 is the combined result of the Kubernetes workloads, the traffic layer, the database, the session cache and the file storage. A failure in any one of these layers stops users even when the others are healthy, so each needs its own redundancy plan and its own checks before go-live.
Kubernetes workloads with multiple replicas
OX App Suite v8 runs on a Kubernetes cluster and is delivered as Helm charts that reference container images. Availability depends on running the application workloads as multiple replicas, so a failed pod or node is replaced while other replicas keep serving users. Check the cluster version against the supported N-1 and N-2 range in the requirements, confirm Helm 3.17.0 or newer, and set replica counts and placement per environment in the chart values. The Kubernetes and Helm deployment topic covers the build steps.
Istio as the traffic layer
Istio is required for OX App Suite v8 and carries user traffic into the platform, so the ingress layer is the entry point for every session. Open-Xchange supports the latest Istio release plus two prior versions. Where Istio cannot be used, a basic ingress-nginx option exists, so confirm with Open-Xchange which routing and TLS controls you need and whether that option covers them. Run gateway replicas across nodes so that one gateway failure does not cut off access. The security hardening topic covers Istio ingress and TLS.
MariaDB with InnoDB and Galera
MariaDB with the InnoDB storage engine is the primary data store for OX App Suite v8, holding the platform's core records. Supported versions are 10.6.x, 10.11.x, 11.4.x and 11.8.x, and Galera Cluster is supported for multi-node availability. Confirm the branch you standardize on appears in that list, the number of Galera nodes, how quorum is kept when a node drops out, and how application connections move to a surviving node. The database and storage design topic covers Galera layout and sizing.
Redis 7.4.x for cache and sessions
Redis 7.4.x handles caching and session storage for OX App Suite v8. The littlered operator deploys it by default, and unmanaged or custom Redis setups can be configured instead. If session data is lost, users must sign in again, and while the cache is cold more requests reach the database. Confirm which deployment model you choose, how the operator handles node loss and replication in your cluster, and who owns Redis upgrades within the support window. The Kubernetes and Helm deployment topic covers the operator choice.
Distributed storage for Drive and attachments
OX Drive files and PIM attachments are persistent data that must sit on a distributed file system. NFS is the option for small to mid-size deployments, and object storage such as AWS S3, Ceph RadosGW or Scality RING is the option for larger ones. If this layer fails, files become unavailable even when every application pod is healthy. Confirm the redundancy model of the chosen backend with its vendor or storage team, and test read and write behavior during a node or storage failure. The database and storage design topic covers sizing.
Which high availability design fits your environment
This table compares the main high availability choices for OX App Suite v8: Redis, MariaDB, persistent storage, ingress and site placement. Read each row as a trade-off, since every option changes both the failover behavior and the work your team keeps, and check the final column against the release you plan to deploy. The main takeaway is that vendor-default options reduce what your team builds, but failover testing, upgrades and recovery remain yours in every case.
| Option | When it fits | Operational cost to own | Confirm before deciding |
|---|---|---|---|
| Redis via littlered operator | Default path for teams that want the vendor-supported Redis 7.4.x pattern without designing it from scratch. | Your team owns operator upgrades, Redis version moves and recovery after node loss. Capacity sizing stays with you. | The operator version your chart release expects and its Kubernetes compatibility. |
| Unmanaged or custom Redis | Your platform standard already runs Redis, or policy requires a specific topology. | You carry installation, TLS, persistence, failover and patching, and must verify session behavior after each failover. | The cache and session configuration OX App Suite expects for your chart release. |
| Galera Cluster | Mail and identity data must keep accepting writes through a node failure without a manual promotion step. | Loss of quorum halts writes. You manage state transfer when a node rejoins and watch flow control under load. | The MariaDB line (10.6.x, 10.11.x, 11.4.x or 11.8.x) and Galera settings in the release notes. |
| Single MariaDB with backups | A smaller footprint, where the business accepts a restore window instead of automatic database failover. | Fewer moving parts, but recovery time depends on restore tests you run regularly. Promotion of a replacement is manual. | How the business defines acceptable downtime and data loss for mail and files. |
| NFS for persistent data | Small to mid-size deployments, as the requirements for distributed file systems describe. | Storage latency and file locking affect Drive and attachment performance. You own the NFS server's own high availability. | NFS server failover design and latency measured at your expected peak load. |
| Object storage (S3, Ceph RadosGW, Scality RING) | Larger deployments, where file volume and growth make object storage the expected choice. | Needs a storage team or provider to operate the cluster. Failover depends on the storage product, so test it directly. | Which object storage products and versions Open-Xchange supports for your release. |
| Istio ingress | Where Istio is permitted and the platform team already operates a service mesh. | Istio must stay within the supported window: the latest release plus two prior. Each upgrade must follow that window. | The Istio version named in your chart release and its pairing with your Kubernetes version. |
| ingress-nginx | Where Istio cannot be used, using the basic ingress option described in the Operations Guide. | Mesh traffic policy features are not part of this option. You still own TLS configuration, rate limits and upgrades. | Any traffic policy or certificate requirements your security team has set for ingress. |
| Single-site or multi-site placement | Single site fits when one location meets your recovery target. Multi-site adds a second failure domain for outages. | Multi-site adds replication, DNS failover and split-brain planning for Galera and storage. Cost grows with each site. | Inter-site latency and where Galera quorum members sit, since Galera is sensitive to wide-area delay. |
How to build a highly available OX App Suite cluster step by step
This sequence takes an OX App Suite v8 cluster from prerequisites to a running, multi-replica deployment in infrastructure you control. Each step depends on the one before it, so a failed check should stop the work until the layer beneath it passes.
Confirm Helm and Kubernetes versions
Your platform engineering team checks that the cluster runs a Kubernetes version within the N-1 or N-2 range that OX App Suite v8 supports, and that the deployment workstation or CI runner has Helm 3.17.0 or newer. Confirm the exact supported Kubernetes versions against the requirements page before you proceed, since support windows change with releases. Record the Helm and cluster versions in your change file. The step is done when helm version reports 3.17.0 or newer and the server version of the cluster falls within the range you confirmed.
Deploy the Istio layer and confirm entry
The platform team installs Istio at a release within the window OX App Suite v8 supports, then configures the ingress gateway with your TLS certificate for the public hostname. If Istio cannot be used in your environment, confirm with Open-Xchange whether the basic ingress-nginx option fits your design before changing the plan. Send a test HTTPS request through DNS to the gateway address. The step is done when the hostname resolves to the gateway and the request returns a response generated by the gateway itself.
Stand up Galera Cluster on MariaDB
The database team deploys a Galera Cluster on a supported MariaDB line (10.6.x, 10.11.x, 11.4.x or 11.8.x) using the InnoDB storage engine, with an odd number of nodes placed across separate failure domains so quorum survives a single node loss. They set replication, storage sizing and backup approach, and expose the cluster through a load-balanced endpoint. On each node, check wsrep_cluster_size, which should match the node count, wsrep_ready, which should be ON, and wsrep_local_state_comment, which should read Synced. The step is done when all nodes report Synced and a test write through the endpoint appears on every node.
Deploy Redis 7.4.x and test sessions
The team deploys Redis 7.4.x for caching and session storage, either through the littlered operator that OX App Suite uses by default or through an unmanaged or custom setup that your operations team runs. They set the connection details the middleware will use and decide how replication and failover are handled in your environment. Then they test session behavior: log in through the gateway and confirm the session stays valid as requests land on different middleware replicas. The step is done when redis-cli ping returns PONG from a middleware pod on every replica and a session survives a forced restart of one middleware pod.
Provision the distributed storage tier
The storage team provisions the shared file tier that holds OX Drive files and PIM attachments. NFS suits small to mid-size deployments, while object storage such as AWS S3, Ceph RadosGW or Scality RING suits larger ones, so choose against your expected mailbox and file volume with your architect. Restrict access so that only the OX namespace or service identities can reach the export or bucket. The step is done when every middleware and file-handling replica can mount the NFS export or reach the bucket with its configured credentials, and a file written from one replica is readable from all the others.
Install OX App Suite charts with replicas
The platform team installs the official OX App Suite v8 Helm charts with a values file for this environment. They set replica counts above one for each stateless service and point the charts at the Galera endpoint, the Redis service and the storage tier. Keep the values file in version control and apply it through your normal change process. After rollout, confirm that each service runs pods on more than one node, that readiness probes pass, and that every middleware replica reaches Galera, Redis and storage. The step is done when a rolling restart of one node leaves the service answering through the gateway and health checks stay green on the remaining replicas.
What drives the effort of a high availability build
This table lists the drivers that move the effort and cost of an Open-Xchange high availability build, with how each one changes the work and how to keep it down. Read the last column to separate one-time build work from costs that recur after go-live. The main takeaway: standardizing storage, limiting the first release to one site and reusing existing Kubernetes and observability tooling usually reduce the build effort the most.
| Driver | Why it changes effort | How to keep it down | One-time or recurring |
|---|---|---|---|
| Mailbox and user counts | Mailbox and user counts set database, file storage and Redis sizing, and the number of replicas each tier needs. | Size from your actual mailbox and attachment profile before choosing storage and replica counts. | Sizing is one-time. Capacity growth and added replicas recur. |
| Sites and failure domains | Each additional site or availability zone adds replicas, network paths and a failover scenario to design and test. | Limit the first release to one site, then add a second site after the first passes failover tests. | Design and first build are one-time. Cross-site links and replication recur. |
| Kubernetes and Istio maturity | OX App Suite v8 requires Istio, with ingress-nginx as a basic option only where Istio cannot be used. Teams without Kubernetes or Istio experience need more build time and training. | Reuse an existing cluster and service mesh standard, and confirm the Kubernetes version falls within the N-1 or N-2 support window. | Platform setup is one-time. Cluster and mesh upgrades recur. |
| Galera and Redis experience | Galera quorum handling and Redis 7.4.x failover are where teams without prior operating experience lose the most time during build and early incidents. | Choose one MariaDB version from the supported list and one Redis deployment model, then write runbooks for each. | Runbooks and tuning are one-time. Patching and monitoring recur. |
| Storage platform choice | NFS suits small to mid-size deployments. Object storage such as AWS S3, Ceph RadosGW or Scality RING suits larger ones, and each option adds different integration work. | Standardize on one storage option your infrastructure team already operates, and confirm it matches your expected scale. | Integration is one-time. Capacity and any licensing for the storage platform recur. |
| Directory and SSO integration | OpenID Connect or SAML login, user provisioning and session rules must be built and tested against each identity source. | Use one identity provider for the first release and confirm the supported protocol for your OX App Suite version. | Configuration is one-time. Directory changes and certificate renewals recur. |
| Compliance evidence needs | Assessors may ask for configuration baselines, access records, backup restore results and change history. Collecting these is extra work only if it is not planned during build. | Reuse existing logging and evidence tooling, and agree the evidence list with your assessor before build starts. | Evidence design is one-time. Evidence collection recurs in each assessment cycle. |
| Failover test scope | The number of failure scenarios, such as node loss, database node loss, Redis failure or site loss, sets the test effort before go-live. | Agree a written scenario list in the scope, start with the most likely failures and expand the list over time. | The first test cycle is one-time. Repeat tests after major upgrades recur. |
How high availability changes by deployment model
A single Kubernetes cluster with middleware replicas spread across nodes is the simplest high availability model. The OX App Suite pods can be scheduled on several nodes, so losing one node should move workloads instead of stopping mail. The data tier decides how much protection you actually get, so the Galera nodes, Redis and the file layer need the same placement review as the application pods.
- Galera: Spread the MariaDB nodes across physical hosts with anti-affinity rules, and keep an odd number of nodes so quorum survives one loss.
- Redis: The littlered operator is the default for Redis 7.4.x. Confirm how it places replicas and how session and cache data fail over.
- Storage: NFS suits small to mid-size deployments, but the NFS service is a single point of failure unless your storage platform provides its own redundancy.
- Ingress: Istio or the basic ingress-nginx option is the front door. Confirm that the ingress layer runs with more than one replica.
Before go-live, drain a node and restart one Galera member while mail and sessions are active, then record what users see.
Spreading one region across failure zones protects the platform from the loss of a single zone, such as a power or network event. The Kubernetes scheduler can spread middleware replicas across zones, but the data tier needs more careful design. Every Galera write must be acknowledged by the cluster, so the latency between zones directly affects user-facing response times. The zone design should be chosen with your database and storage teams, not left to the default scheduler.
- Galera: Place an odd number of nodes across zones so that a full zone loss still leaves a quorum. Measure inter-zone latency before choosing the layout.
- Redis: Confirm whether replicas and the failover mechanism are zone-aware in the operator configuration.
- Storage: Check whether the chosen NFS or object storage service replicates data across zones and what happens to in-flight writes during a zone loss.
- Kubernetes: Use topology spread constraints for the OX App Suite pods, and confirm the supported Kubernetes versions for your provider.
Test a full zone outage in a staging cluster, then confirm that Galera rejoins cleanly and that no user data was lost during the event.
A multi-site design runs separate clusters, usually in different regions or data centers, with replicated data between them. This model protects against the loss of a whole site, but it changes the consistency and failover behavior of every stateful component. Synchronous Galera replication across long distances is rarely practical for mail, so the replication method for each data tier is a key design decision. The facts supplied do not settle which replication topology OX App Suite v8 supports across sites, so confirm that with Open-Xchange before you commit.
- Galera: Confirm whether a single Galera cluster across sites is supported, or whether an asynchronous replication topology is used, and what that means for failover.
- Redis: Redis runs per cluster by default. Confirm how session state behaves during a site switch.
- Storage: Confirm how file and attachment data is replicated between sites and what recovery point the business accepts. That target is not supplied here.
- DNS and ingress: Each cluster has its own Istio or ingress configuration, so confirm how traffic is redirected during failover.
Run a planned site switch in a test window, and record the time users need to re-authenticate and the data gap, if any.
An air-gapped environment removes direct internet access, so the platform cannot pull images or charts at install or upgrade time. OX App Suite v8 is delivered as Helm charts that reference container images, so the images and charts must be transferred into the isolated network and served from an internal registry. The high availability design for Galera, Redis and storage stays the same, but every image they depend on must be available offline.
- Images: Mirror every container image referenced by the release, including the Redis operator, MariaDB and Istio images where used. Keep an inventory with versions.
- Charts: Transfer the Helm charts for each release, and confirm that the client runs Helm 3.17.0 or newer.
- Storage: Use on-premises object storage such as Ceph RadosGW or Scality RING for larger deployments, or NFS for smaller ones, since public cloud object services are not available.
- Updates: Each upgrade needs a new mirror cycle, so plan the transfer window with the support window in mind.
Confirm the exact image list for the target release with Open-Xchange, and run a restore test from the offline mirror before go-live.
How to test OX App Suite failover before go-live
A failover test plan should show two things before go-live: the platform keeps serving users while a component is down, and when it cannot, it fails in a way your operations team can see and recover from. Write one entry per test with three fields: the expected user-visible result, the measurement, and the rollback step. Measure from the user's side with a scripted check that logs in, sends and receives a mail, reads calendar and contacts, and opens a file in Drive or a PIM attachment. Run every test in a staging environment built from the same Helm chart version and values files you plan to use in production, and pin those versions before the first test begins.
Start with controlled pod termination for middleware and frontend replicas. Delete one replica at a time with kubectl while the scripted check runs. The expected result is that new logins and mail flow continue, with at most a brief error for requests in flight at the moment of termination, and that Kubernetes replaces the pod and readiness returns to normal. Measure the error window from the synthetic check, not from the cluster dashboard. The rollback is to restore the original replica count and confirm every pod is ready before the next test. Next, stop one MariaDB Galera node. Quorum should hold. Write test mailboxes and calendar entries through the application, rejoin the node, then compare row counts and checksums across members before you record the test as passed.
Redis needs a test that reports actual behavior, not assumed behavior. Stop the Redis instance that holds caching and session data, and record whether users keep their sessions or must sign in again. Confirm the answer against your own setup, since the default littlered operator deployment on Redis 7.4.x and a custom or unmanaged setup can behave differently. For storage, interrupt the path to the distributed file system or object store for a short, pre-agreed window. Drive and attachment reads and writes should fail with clear errors, mail and calendar should keep working, and no file should be corrupted after access returns. The rollback restores the network path, and you verify a sample of files by checksum. For the ingress layer, disable the Istio gateway or the ingress-nginx path, record how traffic behaves during the outage, and reapply the original configuration as the rollback.
If multi-site operation is in scope, run a full site-level failover last, because it touches every component above. Confirm database and storage replication status before the test, direct traffic to the secondary site, and run the complete check set. Plan failback as its own test with its own pass criteria. Then write every result into the handover pack: test identifier, date, build and chart versions, operator, expected and observed behavior, log or screenshot references, rollback time, open defects, and a named owner for each item. Agree the pass criteria with the client before testing starts, so the handover pack supports the go-live decision and nobody has to reinterpret results afterwards.
How to protect the highly available stack
A highly available OX App Suite v8 platform has more entry points than a single node: the Galera data store, Redis, the file tier and the replica tooling that moves them. The controls below cover those components specifically. The full baseline for the platform is in the sibling security hardening topic, so treat this section as the HA-specific layer on top of it.
Keep HA credentials in a secrets manager
Store the Galera, Redis and storage credentials in a secrets manager that your cluster can read, rather than in chart values files or shared configuration. Confirm that the Helm deployment can consume secrets from that manager without copying them into release history. Rotate each credential in an order that keeps at least one working path open, and test a rotation in a staging cluster with a Galera node restarted before doing it in production.
Terminate and encrypt traffic at Istio
OX App Suite v8 requires Istio, so enforce TLS at the Istio ingress gateway for client traffic and, where your Istio configuration and the OX components support it, use mutual TLS between services. Check which internal hops can be encrypted in your release and document any that cannot. Confirm certificate issuance and renewal for the gateway, because an expired certificate on the ingress will fail every replica at once.
Restrict Galera and Redis ports
Apply Kubernetes network policies so that only the OX application pods can reach the Galera cluster ports and the Redis service, and so that Galera nodes can reach each other for replication and state transfer. Block other namespaces and external addresses by default. Verify the policies after each chart upgrade, since a renamed label can silently remove the allow rules that the cluster depends on.
Limit access to the storage tier
Restrict who can reach the NFS export or object storage bucket that holds OX Drive files and PIM attachments, and who can read its access keys. Use separate credentials for the application and for administrators, and give operators only the access their role needs. Review these grants whenever the storage backend changes, because a broad storage key bypasses every control on the application tier.
Change control for failover tooling
Treat replica management and failover tooling as production code. This covers Galera recovery procedures, Redis operator settings, failover scripts and cluster-level Helm values. Require a reviewed change, a recorded approval and a tested rollback for each modification, and keep the current versions in source control. Ask your implementation partner to show how these changes are logged and who may approve them.
What to monitor, back up and document after the cluster is live
The operations team needs a monitoring baseline before the first mailbox goes live, because high availability only works if someone sees a degraded node before users do. For MariaDB Galera, watch the node state reported by wsrep_local_state_comment, the member count in wsrep_cluster_size, and flow control through wsrep_flow_control_paused. A node that stays paused slows every write in the cluster, even when it still answers queries. For Redis, which holds caching and session data for OX App Suite v8, track availability, memory use against the configured limit and eviction counts. Evictions under memory pressure can drop sessions and force users to sign in again. Agree alert thresholds with your own team, then test each alert once by taking a node down in a non-production environment.
Next, cover the layers around the data stores. On Kubernetes, alert on OX deployments with fewer available replicas than expected, on pods that restart repeatedly and on nodes under resource pressure, since a crash loop often appears here before it appears in a user report. The persistent tier that holds OX Drive files and PIM attachments needs capacity trending and latency tracking, whether it is NFS, Ceph RadosGW, Scality RING or AWS S3. Growth is easier to forecast from mailbox and file counts, but only if someone reviews the trend on a fixed schedule. At the edge, the Istio ingress gateway should expose request counts and 5xx error rates by route, so a failing backend shows up as a rising error ratio on a specific path.
Backups must cover two separate things: the MariaDB data store and the persistent storage tier. For MariaDB, agree the backup method with your database team and confirm that it produces a consistent copy of the Galera cluster. Confirm also that binary logs allow recovery to a specific point in time. For the storage tier, the method depends on the backend you chose, and each option has its own replication, snapshot and versioning features. Confirm retention periods and the restore procedure with the platform owner. Decide whether Redis data needs backup at all, or whether rebuilding its cache and sessions after a loss is acceptable for your users. Finally, restore a copy into a separate environment, because a backup that has never been restored is an assumption, not a recovery plan.
Failover tests are not a one-time go-live activity. Each Helm chart upgrade, Kubernetes version change or Istio change can alter pod scheduling, service routing or how the database connections reconnect, so repeat the failover scenarios after each one. Keep the same test list every time: drain a Kubernetes node, stop one Galera node, fail one Redis instance, and confirm that sessions survive and mail keeps flowing. Record the outcome and the time each service took to recover, and compare the results against the previous run. The upgrades and support topic covers how to choose releases and stay inside the support window, so this section assumes that decision is already made and focuses on proving the cluster still fails over correctly.
The handover should leave the team with runbooks and an architecture record they can use without the implementation partner in the room. The runbooks should cover replacing a Galera or Redis node, expanding storage, renewing certificates at the Istio layer, restoring from backup and rolling back a failed Helm release. The architecture record should list every component and version in use, including the Kubernetes, Istio, MariaDB and Redis versions, the storage backend, the network paths, and the named owner of each monitoring alert and backup job. Place both documents under change control and agree who approves updates. Ask for both to be reviewed by the team that will operate them, and test one runbook end to end before the handover is signed off.
Questions teams ask about Open-Xchange high availability
How much does an Open-Xchange high availability build cost?
No fixed price applies, because cost follows the written scope. The main drivers are the number of mailboxes and users the platform must carry, the number of Kubernetes clusters and environments (production, staging and disaster recovery), whether Istio and the Redis operator are already in place, and the storage design: NFS for small to mid-size deployments or object storage such as AWS S3, Ceph RadosGW or Scality RING for larger ones. Module choices matter too. The OX App Suite Operations Guide notes that some modules or features may carry custom packaging or separate fees set in the license agreement, so confirm licensing before scoping. Ask for a quote that separates one-time build work (design, deployment, failover testing and handover) from recurring work (patching, upgrades, monitoring and support).
How long does a high availability build take?
The schedule depends on how many components are new to your environment and how quickly decisions get made. The work that usually sets the critical path is confirming the Kubernetes version against the N-1 and N-2 support range, agreeing the Istio release (the supported range is the latest release plus two prior versions), sizing the MariaDB Galera cluster and storage tier, and choosing the Redis deployment. A build that reuses an existing cluster with Istio and object storage moves faster than a greenfield one. The failover test window is often the longest fixed block, because replica loss, node drains, database node failure and storage outage each need time to run and repeat. Ask for a milestone plan in the written scope that names the dependency for each phase, and confirm the change window your organization needs before go-live.
What skills must our internal team have for OX high availability?
Your team needs working knowledge of Kubernetes, Istio, MariaDB and distributed storage, plus one person who owns the test window. Kubernetes: deploy and upgrade Helm charts with Helm 3.17.0 or newer, and manage nodes, namespaces and cluster DNS. Istio: ingress, TLS and traffic policy, since OX App Suite v8 requires Istio. Ingress-nginx is a basic option only where Istio cannot be used. Database: Galera cluster operations, including node rejoin and state transfer. Storage: NFS or object storage for OX Drive files and PIM attachments. Redis: the littlered operator (Redis 7.4.x) or a custom setup. Plan a test window with production-like load, a rollback path and people available for failover drills. Confirm each skill against the OX requirements for your target release before you commit to a schedule.
Can we build Open-Xchange high availability without a partner?
Yes, if your team has the skills described above, enough time to run full failover test cycles, and a clear owner for upgrades. The official Helm charts and the OX documentation cover the deployment path, and Open-Xchange publishes AGPL-3.0 mirrors of the App Suite UI and middleware code on GitHub. What a partner usually adds is speed on decisions that teams rarely make: sizing Galera and storage for mailbox counts, checking Kubernetes and Istio version pairs, and designing failover tests that prove the platform holds up under load. A first build often takes longer than planned because of unfamiliar Kubernetes or database issues. Decide early whether you want full build ownership, a shared model where your team works alongside ours, or a fixed-scope build followed by handover.
What does the handover include after an OX high availability build?
A handover should leave your team able to operate, change and recover the platform without relying on one person's knowledge. Expect deployment artifacts (Helm charts with per-environment values files), architecture and network diagrams, the Kubernetes, Istio, MariaDB Galera, Redis and storage configuration, backup and restore procedures, monitoring and alert definitions, and a runbook covering node loss, database node failure and storage outage. It should also include the failover test scripts and results, an upgrade procedure for moving within the support window, a list of open risks, and licensing notes covering any modules that may carry separate fees. Agree in writing whether training sessions and a post-handover review period are included, and set acceptance criteria tied to the failover test results before sign-off.
How do we keep an OX high availability platform supported over time?
Run a release inside Open-Xchange's support window and plan upgrades on a fixed cadence. Under the support commitment, a standard release is supported for 12 weeks, ending with the availability of the third following release. An LTS release is supported until the next LTS release plus six months. The current LTS is v8.47 (FCS 2026-03-18), and v8.35 is discontinued, so a platform on an older line needs an upgrade plan first. Each upgrade touches Helm chart values, the Kubernetes and Istio versions you run, and database and Redis compatibility, so test it in staging with the same failover drills. Recurring work includes patching, upgrade testing, monitoring and on-call response. Ask whether any support retainer covers these tasks and who performs them.
Does a high availability build need a separate test environment?
Yes, in practice you need a staging cluster that matches production closely enough for failover tests to mean something. Matching means the same Kubernetes and Istio versions, the same Galera topology, the same Redis deployment and the same storage class. Scale it down only where you have documented the difference. Without a comparable environment, the first real failover test happens in production. Treat the staging capacity as recurring infrastructure rather than a one-time cost, because you will reuse it for every upgrade and chart change. Ask the provider whether the scope includes building the staging cluster or only testing against yours, and confirm who pays for the cloud or data center capacity it runs on.
How DeployOpen works on this
DeployOpen plans, builds and tests OX App Suite v8 high availability inside your own infrastructure, from the Kubernetes cluster and Galera database to Redis and distributed storage. Work is fixed-scope, with the written scope agreed before any build starts. Failover is tested before go-live, and ongoing support is available as a retainer.
How we scope
- The written scope names each HA component: Kubernetes replicas, MariaDB Galera, Redis and distributed storage.
- Scope confirms the Istio or ingress-nginx ingress path and the Helm 3.17.0 or newer toolchain.
- Scope records the MariaDB line (10.6.x, 10.11.x, 11.4.x or 11.8.x) and the storage backend for Drive and attachments.
How we build
- Deploy the official Helm charts with Redis 7.4.x through the littlered operator, or a custom Redis setup you specify.
- Configure Galera clustering on MariaDB with InnoDB, and spread OX replicas across nodes to limit single-node failure impact.
- Place Drive files and PIM attachments on NFS or object storage such as Ceph RadosGW, Scality RING or AWS S3.
How we hand over
- Test failover for each component before go-live, including pod, database node, Redis and storage interruptions.
- Document the topology, Helm values, Galera recovery steps and the Redis and storage runbooks for your operators.
- Agree the handover in writing, with test results and open items listed against the fixed scope.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers, covering HA components after handover.
- Plan chart and Istio upgrades inside the support window, since standard releases are supported for 12 weeks.
- Pick the LTS or standard line with your team, since LTS support runs to the next LTS plus six months.

