The purpose of this side project is to make a URL shortener website. I use Echo, a Go web framework, for the application layer, and Redis for the data layer. For continuous integration, I use GitHub Actions to build a container image and push it to Docker Hub. As a preparation step for deployment, I firstly deploy ArgoCD to my Kubernetes cluster. ArgoCD will automatically sync my application in my Kubernetes cluster with the manifest file in GitHub for continuous deployment. In this manner, an update in the manifest file in GitHub will automatically update my application in my Kubernetes cluster.
Complete architecture graph of this project:
https://drive.google.com/file/d/1dbC0q0RBPA4OSnzcSvCBagtzQ4qIRNiy/view?usp=sharing
Project repository:
https://github.com/josephshih13/short-url
Website that I generated from this project:
http://short.josephtest.net/