coder-template/README.md

2.5 KiB

coder-template

Terminology

  • code-server : Open Source Visual Studio Code + web browser remote access
  • coder : Development Environments (i.e. code-server, JupyterLab, JetBrains, and etc) management software
  • API-server : LMS can call the endpoints of this API-server to manage coder.

What is this?

You can use this template when you create a new lab and deploy it to coder. Lab users will get clients that include web IDE and software/tools (e.g. akamai CLI).

  • build : sample API-server
  • docker-compose.yaml : installs coder and API-server

Sample Workflow

  • Alice : Content Creator
  • Bob : Lab Administrator

1. Servers vs Clients

Alice ->> Bob: I'd like to create a new lab for DevOps.
Bob ->> Alice: Do you want servers or clients? 
Alice ->> Bob: I'm not sure. Learners will run python, terraform, and httpie.
Bob ->> Alice: I suggest clients. Each learner can run codes or tools in his/her own isolated environment.

Bob can create diverse types of servers (Linux only!) such as, web servers, application servers, and database servers.

Sample server: https://origin-akashop.akamai-lab.com/

Bob can create one type of clients based on Visual Studio Code. Clients can be assigned to learners one to one or one to many.

Sample client: https://training.akamai.com/ewp

2. Software

Bob ->> Alice: Do you need any software or tools other than python, terraform, and httpie?

Bob can install other softwares or tools such as akamai cli, based on the lab scenario.

3. Infrastructure

Bob runs docker-compose.yaml file to create a default coder and API-server.

git clone https://gitea-ptl.akamai-lab.com/akamai/coder-template.git
cd coder-template
docker compose up -d

4. code-server Template

Bob builds a code-server template by customizing main.tf.

/samples/main.tf file can be a good starting point if you don't want to use persistant volume.

5. Staging

Bob deploys a code-server to kubernetes staging environment and Alice validates it iteratively until they finalize code-server template.

Bob should customize API-server codes, if Alice wants to integrate coder with LMS (for example, click a button on LMS to create a new code-server and get its URL).

6. Production

Bob deploys a code-server to kubernetes production environment.

Alice validates the client by end-to-end test.