|
| 1 | +# Reference architectures |
| 2 | + |
| 3 | +As Coder evolves to meet the demands of modern development workflows, ensuring |
| 4 | +scalability is paramount. Today, we're stress-testing our platform with 2000 |
| 5 | +concurrent users, preparing for deployments of up to 5000 users. This |
| 6 | +documentation provides prescriptive solutions and reference architectures to |
| 7 | +support successful customer deployments. |
| 8 | + |
| 9 | +Let's dive into the core concepts and terminology essential for understanding |
| 10 | +Coder's architecture and deployment strategies. |
| 11 | + |
| 12 | +## Glossary |
| 13 | + |
| 14 | +### Administrator |
| 15 | + |
| 16 | +An administrator is a user role within the Coder platform with elevated |
| 17 | +privileges. Admins have access to administrative functions such as user |
| 18 | +management, template definitions, insights, and deployment configuration. |
| 19 | + |
| 20 | +### User |
| 21 | + |
| 22 | +A user is an individual who utilizes the Coder platform to develop, test, and |
| 23 | +deploy applications using workspaces. Users can select available templates to |
| 24 | +provision workspaces. They interact with Coder using the web interface, the CLI |
| 25 | +tool, or directly calling API methods. |
| 26 | + |
| 27 | +### Workspace |
| 28 | + |
| 29 | +A workspace refers to an isolated development environment where users can write, |
| 30 | +build, and run code. Workspaces are fully configurable and can be tailored to |
| 31 | +specific project requirements, providing developers with a consistent and |
| 32 | +efficient development environment. Workspaces can be autostarted and |
| 33 | +autostopped, enabling efficient resource management. |
| 34 | + |
| 35 | +Users can connect to workspaces using SSH or via workspace applications like |
| 36 | +`code-server`, facilitating collaboration and remote access. Additionally, |
| 37 | +workspaces can be parameterized, allowing users to customize settings and |
| 38 | +configurations based on their unique needs. Workspaces are instantiated using |
| 39 | +Coder templates and deployed on nodes by provisioners. |
| 40 | + |
| 41 | +### Template |
| 42 | + |
| 43 | +A template in Coder is a predefined configuration for creating workspaces. |
| 44 | +Templates streamline the process of workspace creation by providing |
| 45 | +pre-configured settings, tooling, and dependencies. They are built by template |
| 46 | +administrators on top of Terraform, allowing for efficient management of |
| 47 | +infrastructure resources. Additionally, templates can utilize Coder modules to |
| 48 | +leverage existing features shared with other templates, enhancing flexibility |
| 49 | +and consistency across deployments. Templates describe provisioning rules for |
| 50 | +infrastructure resources offered by cloud providers. |
| 51 | + |
| 52 | +## Proxy |
| 53 | + |
| 54 | +A proxy in Coder serves as an intermediary between users and the Coder platform, |
| 55 | +facilitating secure communication and access control. The proxy handles requests |
| 56 | +from users, routes them to the appropriate services within Coder, and enforces |
| 57 | +security policies to safeguard sensitive information. |
| 58 | + |
| 59 | +## Provisionerd |
| 60 | + |
| 61 | +A provisioner in Coder is responsible for provisioning and managing resources |
| 62 | +required for workspace creation. This includes allocating computing resources |
| 63 | +such as CPU, memory, and storage, as well as configuring networking settings to |
| 64 | +ensure seamless connectivity within the workspace environment. |
| 65 | + |
| 66 | +## Registry |
| 67 | + |
| 68 | +A registry in Coder is a centralized repository for storing and managing |
| 69 | +container images used within the platform. By leveraging a registry, users can |
| 70 | +easily share, distribute, and deploy containerized applications across their |
| 71 | +development workflows, ensuring consistency and reliability. |
| 72 | + |
| 73 | +## Kubernetes Cluster for Coder |
| 74 | + |
| 75 | +A Kubernetes cluster for Coder is a dedicated cluster specifically configured to |
| 76 | +host and manage Coder workloads. Kubernetes provides container orchestration |
| 77 | +capabilities, allowing Coder to efficiently deploy, scale, and manage workspaces |
| 78 | +across a distributed infrastructure. This ensures high availability, fault |
| 79 | +tolerance, and scalability for Coder deployments. |
0 commit comments