Architecture
Self-host Architecture
Site Architecture on deco.cx
The high-level architecture of deco integrates different roles (User, Business User, Developer), a website web server, a content delivery network (CDN), administrative functionalities, and external systems (databases, e-commerce, SaaS). The focus is on content management and development/configuration environments, with interaction between various stakeholders and components.
Architecture Overview
-
Users:
- End User: Accesses the site via the deco CDN.
- Business User: Interacts with the system via the web environment to view and edit content in the “Admin.”
- Developer (Dev): Works locally, sends changes via Git, and deploys through CI/CD pipelines.
-
System Components:
- CDN: Delivers the site to end users.
- Site: The web server accessed by users via the CDN.
- Web Environment (Web Env): Where developers and business users view changes that are saved in the environment.
- Admin Panel (Admin): Centralizes control of changes, saving them to Git and reflecting updates in web and local environments.
- Git: Version control system integrating changes from Admin and developers, with deployment via CI/CD.
- External Systems (Database, E-commerce, SaaS): Provide data and services consumed by the site.
Components and Process Flows
-
Content Delivery:
- Users: Interact with the live site via the CDN, with content optimized for fast delivery.
-
Business User Workflow:
- View/Edit: Business users edit content in Admin and preview changes in the web environment.
- Publish: Changes are saved to Git and propagated to the site via the CI/CD pipeline.
-
Developer Workflow:
- Local Environment: Developers make local changes, sync with Admin, and send to Git.
- CI/CD: After changes are pushed to Git, they are automatically deployed via CI/CD.
deco.cx Architecture with Self-hosted Site
Changes in Architecture with Self-hosted Site
With self-hosting, the site is hosted on the organization’s own infrastructure. Here are the main changes and impacts:
Main Changes
-
Self-hosted Site and Internal Systems:
- The Site is hosted locally or on the organization’s infrastructure, outside deco.cx’s direct control.
- Internal Systems (databases and custom software) integrate directly with the self-hosted site.
-
Tunnel to Access the Site:
- deco.cx users and systems access the self-hosted site via a tunnel or public access, under the organization’s control.
-
CI/CD and Git Manage the Site:
- Even with self-hosting, CI/CD is still required to publish code and content changes to the site, now under the organization’s responsibility.
-
Continuity of deco.cx Infrastructure:
- The Web Env and Admin remain within deco.cx infrastructure. If necessary, the organization must configure access from the web environment to internal systems via a tunnel (or public access).
Impact of the Change
- Greater Control: The organization gains more control over the site and internal systems.
- Additional Complexity: Managing the tunnel and CI/CD adds maintenance responsibilities.
- No deco.cx Resources: The site loses access to deco.cx’s CDN and other services responsible for security and performance optimization.
- Local Customization: Greater flexibility in integrating with internal systems.
Relevant Aspects of the Self-host Solution
-
Cache Async Render: By default, the CDN caches the sections rendered on the /deco/render route (HTMX and partials). Without this cache, the system may be overloaded with unnecessary requests. It might be beneficial for the solution to cache these elements.
-
Loader Cache: Calls to loaders receive local cache on the web server. This cache typically occupies 1GB and can fill the disk of the image if it has not been mounted with a sufficiently large ephemeral storage. This and other options can be configured via environment variables and are defined in the deco runtime code.
deco.cx Architecture with Self-hosted Site and Environments
Changes in Architecture with Self-hosted Site and Environments (Envs)
With this change, both the Site and Web Environments are self-hosted. This gives the organization full control over development, production, and integration with internal systems.
Main Changes
-
Self-hosted Site and Environments (Envs):
- Both the Site and Web Env are hosted on the organization’s own infrastructure.
-
Tunnel to Access the Web Environment:
- Interaction with the self-hosted web environment occurs via a tunnel, maintaining connectivity with deco.cx. deco.cx intervention is needed if the tunnel is not publicly accessible.
-
CI/CD and Git:
- CI/CD manages changes locally, with automatic deployment to the self-hosted site, but under the organization’s responsibility.
-
Continuity of deco.cx Infrastructure:
- The Admin remains connected to deco.cx, but relies on the tunnel to interact with the self-hosted environment.
Impact of the Change
- Complete Control: Full control over the site and environments, offering greater flexibility.
- Independence from deco.cx: Reduced dependency on external services for development.
- Maintenance Complexity: Greater responsibility for security and performance.
- Local CI/CD Pipelines: Custom CI/CD pipelines are required for local deployments.
Conclusion
With self-hosted site and environments, the organization gains more control and flexibility but takes on greater responsibility for security, maintenance, and system connectivity.
Was this page helpful?