Are you having problems with your current Umbraco installation? Have you spent hours searching for a solution and still can’t find it? You’ve checked everything but it still doesn’t work? Then it might be time for an Umbraco health check! Take advantage of our Umbraco experience and save yourself and your team hours of searching for solutions to problems we can fix.
What is an Umbraco health check?
Our Umbraco health check makes sure your site is performing as efficiently as it can be. By performing a series of tests on all areas of your Umbraco site, back and front-end, we can assess where it’s struggling and what Umbraco support we can offer you.
During our Umbraco health check we complete the following checks:
- SEO check (Meta tags, Keywords, Headings, Robots.txt, Sitemap, Broken links)
- Umbraco backoffice check (Document types, Data types, Content structure, Installed packages, Umbraco custom sections)
- Backend check (Project structure, Code in views, Defensive code, Image processing, Strongly typed models, Usage of content service, Usage of UmbracoHelper, Cache, Content queries, Usage of Examine indexes)
- Infrastructure check (Hosting, Database, Version control, Logging, Monitoring, Scalability, Deployability, Automated testing)
- Application architecture check (Visual Studio Project, Console Applications, Scheduled jobs, Integrations)
- Quality/clean code check (Solution structure, Naming, Methods design, Class Design (SOLID), Exceptions handling, Testability)
- Performance profiling (General profiling, Hot spots analytics, Hot spots fixes)
At the end of your Umbraco health check, you will receive a complete report about the status of your Umbraco website indicating any actions that may be required.
Umbraco health check in action:
One of our Umbraco health check clients is Day Out With The Kids, a website that has thousands of family day out ideas in the UK, including adventure activities and attractions and has more than 26 million site visitors per year.
What was the problem?
The website generates a few million page views everyday and was running on two large dedicated servers (8xCPU and 16GB of memory each), in a load balanced environment. During peak traffic times, editors were not able to publish content and the back office was very slow. When the site could publish, the front end would grind to a halt for users.
What we did.
Having received a copy of the site and database from the client we proceeded with our Umbraco health check which helped us generate a 26 page report.
Every Umbraco health check provides a set of recommendations split into three priority groups: Imperative, Important and Recommended. In this case there were a number of minor issues, but the key problems were around the setup of the load balanced environment and the implementation of some regular event that were happening in the background.
Our initial recommendation was to move the project onto the Microsoft Azure Infrastructure and then fix the configuration issues. However before we started anything, we introduced a set of automated tests to ensure when we deployed any fixes, we were notified of anything on the site that was broken by our changes. For this, we used a service called GhostInspector.
By default, we use Jetbrains TeamCity and Octopus Deploy to deploy our applications on to Microsoft Azure. TeamCity is used to manage deployments and Octopus to manage packages which are then pushed up into Azure WebApp slots. Azure WebApp slots are a great way of deploying a site to a pre-production environment for final testing and ‘warming-up’ of the application which is then ‘swapped’ to be the live version when ready. This allows us to deploy with “zero downtime”.
We recommended splitting the production environment into 2 - a front-end and backoffice. On Azure they’re configured as separate App Service Plans. The frontend App Service is autoscaling and accessible for all users under the main domain, the backoffice is held under a separate domain and used by content editors only. The backoffice instance is configured as a “Master” node, so all content changes are automatically reflected on Front-end instances.
After launching the site on the new infrastructure, we noticed some issues with performance. To be able to maintain such a high volume of page views the Azure WebApp scaled up to 10 machines!!!
After some more investigation using the Azure Diagnostic tools and Application Insights, we noticed a legacy issue with Umbraco Examine index configuration. After a quick fix and a deploy the site purrs along beautifully on 2 machines (S3 instance on Azure - 4CPU and 7GB RAM) with the processors at around 20%.