Enklu aims to provide an Augmented Reality (AR) runtime for UWP, WebGL, Windows Standalone, Android, and iOS. It carves a niche in the market by providing a product that is highly iterative in that it provides instant feedback to users for changes in layout, assets UI or scripts by automatically downloading new data eliminating the need to rebuild. Enklu is truly cross platform, not only does it compile flawlessly to multiple targets, it also allows for tailoring experiences to multiple platforms. Enklu employs Unity along with a C# and Node.js framework for backend to provide a web app that can help content creators create an AR VR experience. It employs React for its frontend.
Most of the tech stack was deployed on azure VMs. However, they were using archaic deployment processes with a lot of manual input, coupled with poor infra planning had resulted in a high amount of downtime.
This problem was brought into sharp relief when their user base climbed tenfold. The problem was further compounded by a lack of health checks and resource monitoring. Subpar patches to this had brought the core maintenance and enhancement operations to a screeching halt.
1) The first thing that we proposed to do was to move the frontend build files to S3 in order to reduce the load on the server, post which we moved on to automating the build and deployment of docker images using git actions and terraform and setting up better resource checks by employing the built-in azure triggers.
2) Next, we proposed rewriting parts of code to better handle errors and setting up node clusters with a load balancer to help reduce the load on the primary unity servers, this also helped with reducing downtime since nodes could be safely brought down without affecting the user experience during low traffic hours.
C#, Nodejs, AWS(SQS, S3), Azure(VM and load balancer), Unity, .Net, Docker
1. Reduced down time
2. Better error alerts
3. Reduced first response time (FRT) for resource hiccups