- Used Node.js, Express.js, and MongoDB.
- Takes input url and converts into tinyurl.
- Check screenshots in
public/images
directory. - Uses mongo db for persistence.
- Setup
config/config.js
for DB connection params. - Use
npm install
to install nodejs dependencies. npm start
to start local dev server and hit http://localhost:3000
- An attempt to dockerise a simple node js app which connects to mongo db.
- Setup deployment configurations using helm charts for kubernetes environment.
- Use all best practices possible to create build, release and deploy pipeline.
- Persistence layer deployment(mongo) is NOT in the scope of this work.
-
Security
- Docker Image Security.
- [TODO] non root user setup.
- [TODO] minimum user permission for process execution.
- [TODO] proper permissions for files/directories inside docker.
- Kubernetes security
- [TODO] dedicated namespace for app
- [TODO] use service account and rbac.
- [TODO] setup network policies.
- [TODO] setup security context for pods and containers.
- [TODO] Define resource quotas for containers.
- [TODO] secret handling
- Docker Image Security.
-
Scalability
- [DONE] setup service object to access deployment.
- [DONE] setup nginx-ingress to access above service.
- [DONE] define hpa, min and max pod limits
- [DONE] configure liveness and readiness probes
-
Future
- [TODO] static test cases and security analysis of app/docker image.
- [TODO] sidecar for logging
- [TODO] sidecar for application metrics