image-75 (1) (1)

Enkulu - Redefining Augmented Reality

Frame 1178

Executive Summary

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.

Problem Statement

Most of the tech stack was deployed on azure VMs, however they were using archaic deployment processes with a lot of manual input, this coupled with poor infra planning had resulted in high amount of down time. This problem was brought into sharp relief when their user base climbed ten fold. The problem was further compounded by lack of health checks and resource monitoring. Subpar patches to this had brought the core maintenance and enhancement operations to a screeching halt.

Our Solutions

The first thing that we proposed to do was move the frontend build files to S3 in order to reduce 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. Next we proposed rewriting parts of code to better handle errors and setting up of node clusters with load balancer to help reduce the load on the primary unity servers, this also helped with reducing down time since nodes could be safely brought down without affecting user experience during low traffic hours.

Technologies

C#, Nodejs, AWS(SQS, S3), Azure(VM and load balancer), Unity, .Net, Docker

Success Metrics

1. Reduced down time
2. Better error alerts
3. Reduced first response time (FRT) for resource hiccups