- Built a ticketing cloud service using microservice architecture with Node.js, React.js, Bull, MongoDB.
- Solved concurrency issues in a distributed systems by communicating data between services using NATS streaming server as an event bus.
- Designed the CI/CD workflow using Github Actions and deployed to Google Cloud and DigitalOcean with Docker, Kubernetes, and Skaffold;
- Implemented a countdown expiration service using a queue system via Bull and Redis
- Built a server-side rendered frontend using Next.js; Automated the testing process using Jest.
- skaffold Installing Skaffold
- docker Install Docker Engine on Ubuntu
- kubectl Install and Set Up kubectl on Linux
- minikube minikube start
- ingress-nginx Ingress Nginx Installation
- nodejs & npm
sudo apt install nodejs npm
Ubuntu 20.04.4 LTS
sudo usermod -aG docker $USER
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
sudo service docker start
minikube start
minikube addons enable ingress
kubectl get namespace
kubectl get services -n ingress-nginx
vim /etc/hosts
# Add this line
192.168.49.2 ticketing.dev
kubectl create secret generic jwt-secret --from-literal=JWT_KEY=asdf
kubectl create secret generic stripe-secret --from-literal STRIPE_KEY=sk_test_XXX
git clone git@github.com:Holychung/ticketing.git
cd ticketing
skaffold dev