Hi, I am Rajeswaran, a Full-stack web developer in Spritle Software. We at Spritle have developed some of the top paid apps of Freshworks (Youtube – Freshdesk for Mint, Playstore – Freshdesk for Mint, Google my business, etc.) and several other custom and marketplace apps. We have been a preferred solution partner for Freshworks for almost 4 years.
Here, I’m going to share my thoughts on how I ensured the healthiness of the server. Let’s consider Playstore – Freshdesk for Mint app. It uses middleware to process all backend stuff. Maintaining such a middleware requires knowledge and attention. Yet, it can be made easy by using the right tools.
Now, Let’s jump into each product and know how we can make use of the products in the server maintenance.
pm2
Best service that satisfies customers is making sure the application is running 24/7. It is an important aspect of customer satisfaction. So, we searched for a tool which will keep the application online 24/7. And what we found was pm2 – a lightweight yet powerful process manager. It helped us a lot as we can deploy the app with a few configurations. Accidentally, if an application or a server crashes it will restart the application automatically which is one of the cool features of the pm2. In addition, we can monitor the application’s behaviour efficiently by using pm2.
Prometheus and Grafana Labs
Monitoring server units like CPU usage, Memory usage, Storage, etc. is a critical part of server maintenance. If the server unit crashed, it would be hard to find the RCA of the issue that caused the failure. We searched for a better solution for this. Then, we found a solution. Yes, it is Prometheus – a powerful automated monitoring and alerting tool. It helped us a lot in monitoring the healthiness of the server. Now, we have data in our hand. Yet, we found it difficult to visualize the data provided by the Prometheus. Then, we found an awesome data visualization tool – Grafana Labs. Then, we said, ‘What are we waiting for?’ We integrated Prometheus with Grafana. We have created our own dashboards and alerts in Grafana Labs. Alerts will be sent through the mail to the Admin and Team will be notified on the Slack channel. We relied on them a lot in monitoring the performance of the server.
Database Backup
Customer’s data is our top priority. We can’t think of losing their data at any cost. So, We need to ensure no data loss even when the server crashes. So, we have configured a Job (cron job) to run on the server at the scheduled interval which will back up the database. Also, we sent those backups to the AWS S3 to ensure data recoverability at any time.
Sentry
Error tracking and application monitoring is an important aspect of Server maintenance. This can be made easy by using Sentry. It is a powerful application monitoring tool that every developer should make use of the features it provides. We have integrated all our Node.js Application with Sentry. It helped us a lot while finding the RCA of the issue. We, Human, will make mistakes. But, by using Sentry, we can reduce them to a large extent. Even, we integrated this with Slack and GitLab. So, if any issue occurs, it will get notified in the Slack channel and also get created as an issue in GitLab project.
Freshping
Downtime in a web service will reduce customer satisfaction. It needs to be addressed. But luckily we have a solution for this in the Freshworks product itself. It is Freshping – an uptime and performance monitoring tool. It pings us about the downtime within 60 seconds and it supports multi-channel notifications. Hence, we thought why not we shall use this? Yes, we did. Even, we integrated this with Slack in that way our teammates will get notified right inside our channel.
These are the products we relied on to maintain our server. I believe you get a big picture of how a server can be maintained in an efficient manner.
Thanks for spending your valuable time in my blog. If you liked my post and have any feedback or thoughts to share, you are welcome to add a comment or send an email to rajeswaran@wp.spritle.com.
Have a great day……🙂