Due to the team’s focus on DrupalCon Global in the last couple of weeks, we’ve got a triple release to cover here (so apologies for being a little late!)
Better Health checks, faster performance
Another target area for recent work has been in improving performance – whether it’s the underlying infrastructure or the Lagoon components themselves.
Lagoon 1.8.x brings an important (and much asked-for) improvement in the performance of the User Interface. We have added a caching system to the group lookup queries (used in the UI, and some underlying CLI/GraphQL requests). Our testing has shown that this will improve the performance of the API between 5 and 20 times – meaning faster loads, smoother workflows and less DB traffic.
On the theme of reducing traffic, our good friend Blaize at Amazee Labs has been at it again – this time developing a new endpoint that can be used to perform status checks for sites running on Lagoon. Accessed at www.yoururl.com/.lagoonhealthz – it will return a tiny JSON payload that reports the health of the underlying components of that site – including NGINX, PHP, MariaDB, Solr and Redis services. The massive advantage of this is that we can use this URL to point external uptime checks to – which will reduce the unnecessary page loads and Drupal bootstraps, whilst making use of smart caching to provide the best balance of performance and accuracy. We’re pretty excited to measure what reduction in impact this can have on the myriad of external checkers that are being run on Lagoon sites around the clock (approximately 10% of origin hits can be attributed to status and uptime checks)
API & Authentication subsystem
- In order to accommodate the API caching, we tweaked a couple of the underlying queries in here, particularly as they relate to Billing Groups.
- [1.8.1] – we identified a bug in a subset of this and corrected it.
- [1.8.2] – we also identified a bug with the Redis caching, and corrected that!
Admin & User Interfaces subsystem
- Off the back of the webinar from last month, we made a couple of minor stylistic and workflow changes to how Active/Standby is triggered and displayed via the UI.
- [1.8.2] – More awesome additions to the Problems system on the dashboard (Thanks, Tim!), and a couple more billing improvements.
Build & Deploy subsystem
- The first notable change here is allowing more flexibility in the creation and allocation of auto-generated routes. You can now explicitly control whether individual environments (including) pull requests get auto-generated routes.
- Also included are a number of improvements to the disabling pre-rollout tasks via variables, ensuring correct labelling, fixing parallel Kubernetes deployments and correctly identifying the Harbor image needed to deploy a project.
- [1.8.1] – We also identified a couple of fixes to build queuing and retrying in Kubernetes.
- [1.8.2] – A problem was observed with twig temporary folder mounting causing disk performance issues, now resolved.
Logging & Reporting subsystem
- [1.8.2] – Some more updates to the Logging work from 1.7.0 – mostly around Kubernetes/Openshift charts and documentation.
Base Images & Testing subsystem
- A small change to handle pre-existing my.cnf files for MariaDB pods, and another update to the configuration for Xdebug on MacOS!
- Composer and NewRelic included with the PHP Images have been updated to their latest versions.
- [1.8.2] – We’ve added PECL YAML extension to the PHP images to improve performance under certain conditions (particularly Drupal), and a fix to Varnish VCL
Documentation & Examples / DX subsystem
- A couple of updates and tweaks here – plus a useful addition on Solr from Chandeep – we love it when our partners and customers contribute!
Automation, Services & Helpers subsystem
- Mostly tidyups here – some additions to make local development easier (kubeconfig settings and api-development), and a fix to how the auto-idler service works in production/development clusters.
- [1.8.2] – We’ve had a busy month working on some bulk scripts to help in our day-to-day administration of the platform.
Questions? Comments? Feature requests? Get in touch with us anytime.