Architecture
We have choosen architecture with having in mind that we are making a demo. We are aware that choosen architecture is overhead for such small site with some dynamic content.
Site is deployed in two Kubernetes services. One for frontend hosted in node.js server and second for scores microservices hosted in Spring boot application server. Database is MongoDB deployed separately in three node replication set with automatic failover. Kubernetes is deployed as three node control plane high availability cluster with keepalived + HAProxy cluster virtual IP manager and load balancer. All Kubernetes nodes are enabled for scheduling to utilize available resources.
API access to services is managed by Ingress with Ingress controller nginx. Ingress maps API URL path to right services thus providing single point of entrance to Kubernetes cluster.
Git links
Project repo | | | Web site GIT repository. Technologies React.js + Next.js. Styles w3.css with small ajustments. |
GAME REACT.js repo | | | Code guess game front-end GIT repository. Technologies React.js with Redux. Used CSS module with local styles. Deployed as webpacked component with inlined resources. |
GAME VUE.js repo | | | Mine guess game front-end GIT repository. Technologies Vue.js with Vuetify. Used CSS scoped style and Vuetify components. Deployed as library component with inlined resources. |
GAME BE repo | | | Code guess game back-end GIT repository. Technologies Java Springboot with MongoDB database. |