I am sure most of you have come across this situation.
You liked something on the Internet, decided to buy it and made the payment at the payment gateway. After that, you expect to come to the original website and see a confirmation message. Something of the sort 👇
Your order has been successfully placed. You will receive the item on Monday
But instead, you get a blank page staring 👀 at you.
You wait hoping that it would show a success message. But no, it just stares back at you.
You get worried, thinking - "What happened to my money? Will my order be delivered? Or not?"
Inevitably you lose your patience and reach out to customer care. Depending on how good is the company's customer service team - you may be in for a long battle over multiple emails/twitter escalations, etc.
Recently, this happened to me when I was purchasing a mutual fund from an AMC website. And I was furious as hell 😡!
Welcome to the world of software failures!
We all enjoy the benefits of a well-designed, functioning software. You enjoy HD streaming video of the latest movies on your laptop. You press a button and a cab comes to pick you up. At the tap of a button, food from your favorite restaurant is delivered to your room. It's wonderful ain't it?
But when the same software fails, it causes a lot of discomfort for the customers. Habit is a bad thing they say!
Turns out that the systems which are delivering software to customers are getting increasingly more complex and also sophisticated. Most of the popular software nowadays is hosted somewhere in the cloud (no, its not the ☁️☁️ in the sky, just data centers with lots of servers 😃 ). Users interact with them via APIs these software expose. And magic💥 happens. Movies get streamed to your laptop. Food gets delivered. A cab appears. Yada. Yada.
I used to spend a lot of time debugging these issues in my previous role as a product lead at a series A funded startup. If something is breaking in our tech stack - I would get all my tech leads in a room together and try to find the root cause of the issue. It's not a pleasant experience, to say the least. We would spend several hours biting our nails in the meeting room trying to poke the systems in different ways.
My co-founder also had his share of hard times trying to debug which service in their micro-services application is causing the issue.
The fact is this:
If you have to become a great company in this day and age, you have to provide a glitch-free customer experience. Period.
Customers are getting more and more demanding. They expect great service with sleek performing apps and huge discounts. And if you don't provide it they will take their business somewhere else. So, ensuring an error-free, fast, performant app is not just a good to have - but table stakes today.
But you can't start digging the well when you are thirsty. You need to prepare for it.
Hence, monitoring and observability tools become critical.
At SigNoz, we are broadly targeting the domain of observability for microservice applications.
What does that mean, you ask?
It means that
- No issues come up in the software deployed in your cloud infra
- You get proactive alerts if something bad is about to happen in your services
- And, if some issue still creeps in, then you should be able to debug them in a matter of minutes
Of course, there are other players in this space, but we believe that there is a paradigm shift happening in how people run their software on the cloud. Cloud-native technologies like Kubernetes and Serverless are getting rapid adoption and they bring with them their own set of challenges and unique opportunities.
In this new world, monitoring can't be an afterthought but built into when you start building your systems. Any how-to guide on Kubernetes today also includes instruction on how to set up monitoring.
A peep into the Future
We believe the AI/Robot age is already here. It's just that the robots are not roaming in the streets, as the movie Terminator showed it to be, but are settled in cloud provider data centers.
The robots are already here. They are just sitting in cloud datacentres. After all, if you think carefully - isn't a lot of our lives governed by the notifications we get on mobile or desktop. Be it slack pings, new offer on e-commerce, email, twitter replies or WhatsApp notifications. Our brain has got attuned to responding to these triggers like a Pavlovian dog. In a way, the robots are already here and controlling us, but by sitting in their comfortable datacentres.
Observability/monitoring is a way to ensure that these cloud-based robots are functioning properly and are doing what they are supposed to do. In spite of all the advancements in computer science, these cloud-based software systems are fragile and break quite often. Any software engineer who has deployed a service at least has a few stories to narrate on how he deployed services and the issues faced.
It would be unfair on our part to lament the fragility of software systems though. As a discipline, computers/software engineering is quite new. If you take the World War II code-breaking era as the start of programming, this discipline is only 70-80 years old. Some sources take the starting of software engineering as a discipline to be around 1960. So we are hardly 60 years in.
If you compare this timeline to human evolution, this is nothing. Humans have benefited from millions of years of tinkering by evolution - and have developed sophisticated mechanisms like immunity, self-healing. We believe that cloud systems will also get there and at a much faster pace compared to what evolution took.
This is what we believe SigNoz can help achieve. Making cloud systems become reliable, proactive and self-healing. We think that this future is possible in the next 5-10 years and we want to play our small part in achieving this.
We will keep you updated on our journey. Happy to listen to any thoughts/comments you may have. Please share them by commenting below or writing to me at [email protected]