CS1-Community / CS1-Meta-Framework

4 stars 2 forks source link

Determine and Publish Core Team Dev Stack #11

Open EricEisaman opened 1 year ago

EricEisaman commented 1 year ago

CORE TEAM DEV STACK OPTIONS:

Containerization: Docker, Kubernetes

JS Runtime: Node, Deno, Bun

Mono-Repo Management: pnpm, nx, nx podcast info

Build Tooling Webpack, Vite, Rollup, Bun

DylanBulmer commented 1 year ago

Containerization: I have a k8s cluster, so I'm perfectly happy using both Docker for containerizing and k8s for container orchestration.

Runtime: Here are my thoughts:

I'm cool with trying out Deno now that it's been fully released, but this will limit us on what frameworks we can use.

Mono-Repo Management: I switched to a multi-repo approach, probably because I'm not familiar with these tools, but I'm cool with using whichever you guys feel fits best!

Build tooling:

I think Vite or Rollup is our best option to start; switching tooling is not very hard. I was able to switch from webpack to swc in about an hour in my personal projects.

EricEisaman commented 1 year ago

Thanks for your input @DylanBulmer . I like the idea of k8s for developing a basic service mesh for the open-source backend. I will do some explorations with Vite soon.

DylanBulmer commented 1 year ago

Here are some of my ideas:

Potential dev stacks with deployment strategies in mind (necessary to know now, so we don't need to go back in the future refactoring all our code).

Approach 1 (Node container):

Runtime: Nodejs Web framework: Expressjs Websocket framework: SocketIO Bundler: Vite or Rollup Containerization: Docker Deployment: Kubernetes (AWS EKS or similar)

Approach 2 (Node serverless):

Runtime: Nodejs Web framework: Expressjs and serverless-express Websocket framework: SocketIO Bundler: Vite or Rollup Deployment: AWS Lambda (or similar)

Approach 3 (Deno container):

Runtime: Deno Web framework: Oak Websocket framework: deno-websocket Bundler: Deno? Minify is WIP Containerization: Docker Deployment: Kubernetes (AWS EKS or similar)

Approach 4 (Deno serverless):

// I cannot find a quick tutorial that integrates WebSockets into a serverless application Runtime: Deno Web framework: deno-lambda Websocket framework: deno-websocket Bundler: Deno? Minify is WIP Deployment: AWS Lambda (or similar)