In the 1700s, canaries were used to alert miners when toxic gases reached dangerous levels in coal mines.
Taking this analogy forward into the Digital Era, we can see how it corresponds to the definition of ‘Canary Deployment’ –
Coal – The application
Coal Miners – Development team (Sometimes DevOps)
Birds – Beta requests or users who wouldn’t be real consumers
Toxic gases – Issues not detected in the non-prod environments
Coal mines – Application Infrastructure
Alert – Actions that are taken when a canary fails
Why are canaries substantial? – Primarily for 2 reasons –
A) In a growth business where the majority of the time we are trying to stand out from the rest of the offerings, the basic requirement is the digital high availability and experience of the application
B) Lifestyle business where businesses are trying to retain customers and a nonavailability of the digital offering will create leads to the competitors
In both cases, the goal is to have a digital system that is designed to work without any issues. And building systems without issues is really a critical complex problem. One way to make this work is by building synthetic canaries that would tell us if there are any issues upfront before opening up to the end customers. And this is not a one-time process, depending on the business needs, these canaries would run frequently to understand and monitor the state of the system.
Another study states that nearly 10 to 30 percent of revenue is spent on marketing, depending on the current state of the organization to attract new customers to the system, and it is very essential to have the system available and work as built without any issues to really make the marketing spend worth it.
What are synthetic canaries?
A method to monitor the backend infra, REST API, and websites (Most commonly used places in synthetic canaries) by simulating the users and pre-orchestrating the path through the application.
Why use synthetic monitoring?
- Opportunity to fix the defects before the end customer notices
- Maintain high-level SLAs
- Very less time to arrive at a resolution
- Managing the third-party content
- Alerting at the early stages of the deployment
What is the current offering in AWS?
AWS provides out-of-the-box solutions and also provides a way to bring your own scripts to support synthetic canaries.
What is the pricing involved in using the canaries?
100 canary runs per month are free.
In the paid tier, pricing varies from $0.0012 to $0.0028 per canary run depending on the region. Apart from the direct canary pricing depending on how the synthetics are set, there may be additional charges incurred on the below services –
- CloudWatch Logs
How to clean up the canary, if no longer needed? – Not all the resources get auto-deleted when the canary is deleted. Care should be taken to delete the resources associated with the canary when no longer needed to avoid cloud charges.
Share your learning on monitoring your application with synthetic canaries.