Architecture
This is a high-level view of how the platform is built. It does not
include internal details that don't contribute to your assessment, but it
does include enough to understand how the service holds together.
Orchestration on Kubernetes
Your application runs in containers orchestrated by Kubernetes. Each
piece of the service runs as an independent, supervised component. If a
component stops responding, the platform restarts or replaces it
automatically, without manual intervention.
The advantages for you:
- Self-healing in the event of a component failure, with the work spread
across several servers (see
High availability).
- Adjustable capacity: more instances or more resources per instance,
without rebuilding your environment (see
Scaling and capacity).
- Uninterrupted deployments through progressive replacement of
components.
Service layers
flowchart TD
I([Internet]) --> G["Ingress gateway · TLS"]
G --> A["Your business application<br/>containers on Kubernetes<br/>(includes its data and storage)"]
A --> B[/"Backups · Spain"/]
- Ingress gateway: the single point of entry from the Internet. It
terminates TLS encryption and routes each request to the correct
application.
- Business application: your ERP/application, running in isolation; it
includes the data and storage it needs (some applications don't require a
database).
- Backups: backups in object storage in Spain.
Deployment models
Within that application layer, your environment can run in two ways: a
unified model, where a single set both serves users and runs background
processes, or a split model, where user requests, scheduled tasks and
background processes run in independent sets with their own resources. The
latter is what keeps a heavy process from competing with the people using
the application. Details in
Scaling and capacity.
Separation between infrastructure and configuration
We distinguish two layers:
- Base infrastructure: compute, network and storage capacity,
provisioned as code.
- Service configuration: what runs and with what parameters, managed
declaratively and versioned.
This separation makes it possible to rebuild or migrate an environment in a
repeatable and auditable way.
No single point of manual management
There is no console where an operator "touches things" without leaving
a trace. The system's state is defined in code and continuously
reconciled.