Skip to content
This repository was archived by the owner on Oct 18, 2021. It is now read-only.

Commit 036aed6

Browse files
nikkhneevans
authored andcommitted
add .md file for recording project status/future
1 parent fda4b92 commit 036aed6

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

STATUS.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Project status
2+
3+
The idea behind service-scaffold-node is to separate the existing service-template-node into two parts: a bare bones scaffolding project and a related npm package library (servicelib-node) with individual modules. With minimal opinionated implementation details, the scaffolding project will allow the developer to explicitly import desired functionality from modules within servicelib-node.
4+
5+
6+
## To Do:
7+
### Remove service-runner
8+
service-runner is an npm package created at the Wikimedia Foundation enabling Node.js services to scale up, by spinning up multiple workers, in an otherwise single-threaded environment, to handle the load. It also handles logging, monitoring, and rate-limiting.
9+
10+
After an informal discussion with service-ops, it was determined that service-runner is no longer necessary now that services at WMF will be running in Kubernetes. Kubernetes can now handle scaling up services in reponse to higher loads. The logging and monitoring it current handles will be put into servicelib-node, and the API Gateway is capable of handling the rate limiting.
11+
12+
#### Cons
13+
- service-runner can spin up new workers faster than Kubernetes can spin up another instance to support higher loads.
14+
- With more pods come more resource utilization per-pod (e.g. more sidecars, more memory usage, etc. ) We would now be looking at a 1:1 k8s pod to worker ratio, as opposed to N:1 workers to pod ratio.
15+
16+
#### Pros
17+
- Removing a complex, difficult to maintain library. The less code, the better.
18+
- Tightly coupled with and dependent largely on service-template-node structure
19+
20+
### Ideas to explore:
21+
- Use an off-the-shelf worker coordinator
22+
- Create an instance of Envoy to route requests to and from multiple containers
23+
24+
### Middleware

0 commit comments

Comments
 (0)