Devlog # 5: Kubernetes and Grafana
Kubernetes (also known as k8s) is a tool to manage services and infrastructure from code, in script format and in an automated way, to make the deployment of all services. We have recently incorporated it into the Foxize Cloud systems infrastructure.
Internally, Kubernetes is made up of master nodes and worker nodes. The master nodes are those that control the deployment, scaling and monitoring of the applications that run on the worker nodes. In Foxize Cloud, we have the kubernetes cluster in Amazon Web Services (AWS). This way, our technical team launches an order and Kubernetes triggers a series of actions automatically.
This automation allows us, when there is a failure, to act much faster and without affecting the end user. For example, if there is an increase in load on the website, in many cases this would cause the server to crash and the website would not be accessible. Kubernetes anticipates this and automatically creates a new machine to support this load without the website going down. This function is called autoscaling and this allows us to react automatically to variations in traffic. As the load decreases, Kubernetes takes care of shutting down the excess machines, saving costs.
In addition, by having the entire Kubernetes infrastructure programmed in a code repository with the orders and the list of changes made, it allows the technical team to undo actions, reuse scripts and facilitate automation.
What are the benefits of moving to Kubernetes for you?
These internal changes have a direct impact on your training platform:
- The platform is more tolerant to faults, it recovers itself and more quickly, so you won’t notice internal failures or crashes.
- The infrastructure change allows us to generate our own SSL certificates for custom URLs, so it will not be necessary to buy them on an external platform.
- It gives more stability to the platform and allows to guarantee the scalability of the projects.
- Greater security, now there is only one access point to the machines instead of being in different IPs.
- Greater access to information to monitor and extract data autonomously.
This last advantage is thanks to Grafana, a monitoring software installed in Kubernetes. Grafana offers us a visual dashboard of metrics for CPU, RAM, Disk, Storage, and much more. This allows us to have greater control of the platform and easily detect where failures originate from and act quickly.