-
The most important video game webpage has grown. It needs to improve its resilience and monitoring capabilities to support the vote in the most significant event to determine the best Video Game of the Year (GOTY), so it builds an online survey to determine the winner. It shows some candidates for the awards, and on the first page, it offers a bar chart with some voting trends.
-
When the application was deployed, it again has been suffering many performance issues. Currently, the technical team wants to implement Kubernetes and Service Mesh capabilities to fix the issue and improve the application's global health status. Your mission is to try to fix all of them. Are you ready to do it? Let's get into the challenge.
- You will build a web service to fix the issue of the current web service. You'll have to do two endpoints: the first one will get all the games, and the second one will get the games associated with each candidate.
- Your web service application needs to receive all headers that start with the pattern x-, and they need to re-send it to the backend products.
- Docker: you need install it to deploy the proyect.
- Command line: you need it to execute the performance commands to enable the project.
- Enable all project
- docker compose up -d backend_bff mocksserver goty-front
- Disable BFF service
- docker compose up -d mocksserver goty-front
- Disable Backend and Frontend
- docker compose stop mocksserver goty-front
-
The main backend gets three funcionalities and you can get data across this endpoint:
-
It gets the details by game (numbers one to six):
verb: GET
end-point: http://localhost:3100/api/product/{id} -
It gets a list of associates' games by the candidate:
verb: GET
end-point: http://localhost:3100/api/product/{id}/similars -
It gets a list of all games:
verb: GET
end-point: http://localhost:3100/api/products
- You need to create a Docker image to deploy your web service.
- Create a kubernetes cluster with Minikube and deploy every component of the project; they are: mockserver goty-front, backend-bff-solution(your own web service) and the first backend-bff, all component will be deployed with the same file called 4-application-no-istio.yaml
- Deploy istio on your Kubernetes cluster. To do it, you need to create four files:
- 1-istio-init.yaml: Adding pre-configurations for your istio deployment
- 2-istio-minikube.yaml: Your Istio deployment
- 3-label-default-namespace
- 4-application-no-istio: all your configuration for the Kubernetes cluster.
- The version of Istio that is allowed are 1.20 or later.
- Install Kiali, Jeaguer, and Grafana Pluggin in the cluster
- Create a canary deployment with Istio and Virtual service for the backend-bff-solution(your own solution) and backend-bff
- Create a ingress-gateway for your cluster
- Create a circuit breaker between backend-bff-solution(your own solution) and backend-bff.
- Clone the repository and create your own; all files should be in the folder called Kubernetes.
- Each challenge must be implemented in its folder, located within the Kubernetes directory.