Stay calm to see the light
This story is shared by Nikhil Kabbin, Principal Data Scientist at Gramener.
When we watch the news on television, we seldom imagine the behind-the-scenes hustle and bustle that makes live news possible. This activity increases ten-fold during the elections. There is absolute mayhem on the news floor, but our screens show us a different picture.
Like many other people, I had nothing to do with news, let alone the on-goings of the news floor, till I started working on a project for one of India’s leading news channels.
With the election season upon us, the channel had asked us to build a live visual analytics tool. This tool would light up the Indian map on millions of screens across the country.
We were on a journey to develop a holistic solution. An AWS Cloud instance was working on a Linux O.S. Virtual Machine connecting to Microsoft MSSQL database using Pyodbc driver.
We prepared through extensive testing and were ready for D-Day. We deployed the tool on a system in the control room and connected it to a large screen in the newsroom. All was going well.
With just a few hours remaining for things to go live, the client decided to publish the live application on their website. At that time, we were confident that we would pull it off. Since our technology stack was simple, we did not see the need to create a docker image.
But Murphy’s law states, “anything that can go wrong, will go wrong.”
We were unable to install an ODBC connector on the server. It was unusual. To add to it, the person who had procured it could not help either.
I was worried. A big moment was about to get ruined for me.
In that jumpy state, when nothing else occurred to me, I called the Gramener CTO. at 4 A.M., just two hours before we were to go live. Calling someone at an ungodly hour is not my second nature, but I hoped he would answer.
He was as cool as a cucumber when he picked up the call. The following conversation ensued:
CTO: Can you create a new instance or get root access to the system?
Me: No. The I.T. guy is not present here.
CTO: Okay. So, you can’t install the drivers. Not a problem. What about the architecture? Can you explain it to me?
Me: Sure. It is a microservices architecture. The backend and front-end are loosely connected. When the backend hits the live database, it gives the computed results as JSON. The front-end renders basis this JSON.
The CTO responded with a simple yet intuitive solution. How could such a simple thing elude me?
CTO: Can you SCP/RSYNC to the server?
CTO: Okay. Run the application on your local server. Or also on an additional one for the sake of safety. Write a simple script to RSYNC the data to this server every minute.
The CTO was spot-on. We deployed this method and went live on screens and the website parallelly. With the mission accomplished, we also solved the server dependency problem later.
Lesson learned: Keep calm. On most occasions, the solution is simple, and you can see it when your head is clear.
P.S. – Don’t hesitate to ask for help, especially at Gramener, where the 24-hour open-access culture embraces you with open arms.