What’s New With Kernl – December 2020

The final “What’s New With Kernl” for 2020 is upon us! There were a lot of great updates this month, so let’s dive in a see what changed.

Features, Infrastructure, & Bugs

  • Site Health Lighthouse – This month we started using the lighthouse Node.js package to generate Lighthouse scores. Prior to this we were making a child process call directly. This change made behavior a lot more predictable and allowed us to write some better tests around this functionality.
  • Site Health Exponential Back off – On some occasions a customer will start monitoring a site but then the site will go away. This can happen for any number of reasons and if one of them is “oh no our site is on fire” we don’t want to contribute to the mess. Exponential back off was implemented on our performance checks so that we don’t make potentially bad situations worse. It also helps us prevent checking sites that went away permanently.
  • Payment Method Bug – Awhile ago we upgraded to use Stripe Checkout which introduced a very subtle bug where credit cards were not being added as the default payment method on accounts. This has been resolved.
  • Add Webhook Bug – When adding a Webhook to Git providers a 400 error would be thrown if the webhook already existed. Kernl now checks for the existence of a Kernl webhook before trying to create one. If it already exists, we update our reference.
  • Analytics Performance Improvements – The query performance of the domain list has been improved by ~15%. The installed plugin list rendering has been improved significantly. The list is now usable on lists with more than 1000 rows.
  • Unified PostgreSQL – Kernl uses PostgreSQL in two places: Analytics and Load Testing. When those services were created it made sense for them to have their own PostgreSQL instances, but that is no longer the case. Both services now report into a centralized PostgreSQL instance that can be scaled independently of the Analytics or Load Testing service.
  • PostgreSQL Upgrade – Before the unified PostgreSQL work mentioned above, the Analytics and Load Testing services were running on PostgreSQL 9. Everything is now running on version 13. This brings additional features and performance improvements.
  • Load Balanced Analytics Servers – When PostgreSQL was hosted on the same box as the Analytics application server, we had only one option for scaling: vertically. Now that the database has been moved elsewhere we can improve performance and reliability via horizontal scaling.
  • Blog PostUsing Svelte in WordPress Plugins
Before and after Analytics infrastructure changes. Before, all items on same machine. After, load balancer, multiple app nodes, and unified PostgreSQL.
Analytics before and after

That’s all for 2020. I hope that everyone has a better year in 2021. Cheers!