IoT portal migration
**Issue**: The client sought the ability to distribute their platform and install it on customer premises (the existing solution functioned solely on the client’s side). The platform had a complex architecture and was centralized. A further challenge was posed by the unique technology needed to facilitate device connectivity to the platform. The client required technologies such as virtualization, containerization, licensing, and a cloud-agnostic approach. The technologies utilized by the client included PHP, Golang, COAP, MQTT, Jenkins, and GitLab.
**Solution**: Gart developed a cloud-agnostic Kubernetes solution that enabled installation of the platform on any customer infrastructure with the capability to scale on demand. Additionally, we configured the internal network to operate with COAP and MQTT protocols for device connectivity. Our team utilized Helm charts as the primary tool for configuration and delivery, while the build and release processes were automated using the GitOps methodology. Given the complexity of the client's current solution and the many details to consider, extensive communication with product owners and engineers was essential. The entire project duration was 1.5 years.
**Outcome**: Gart delivered a versatile Kubernetes solution managed by Helm charts. As the architecture required an IoT-specific UDP protocol, we created a custom solution for the Ingress controller and load balancing. We implemented horizontal autoscaling based on fundamental and application-specific metrics. Monitoring of the application's state was achieved using Prometheus, Graphite, and Grafana. A token auto-generation process was established to ensure security for authentication and transactions. The CI/CD framework provided was based on GitLab CI, with automated release management also implemented.
For more details, please review the Case Study: https://gartsolutions.com/case-studies/iot-device-management-using-kubernetes/