How to manage 70+ sites without losing your sanity
At Annertech, our managed services team looks after close to 100 sites on behalf of our clients. So how do they do it?
Managing 50, 70 or 100+ websites is essentially all about process and structure. In this article, we share our top 10 tips for managing large numbers of sites without losing your sanity!
1. Standardise your setup
Most websites have common structures, elements and building blocks. The key to managing at scale is to capitalise on these commonalities and minimise the required knowledge for specific sites.
In order to manage effectively, it is important that for each site you:
- Minimise the peculiarities
- Reduce the tacit/assumed knowledge and institutional memory
Sites should not be special snowflakes. Platform paradigms and design patterns make them tend towards standardisation.
Automation is incredibly useful. The more you have to do by hand, the more work you have to do per site, and achieving scale becomes more difficult.
Conversely, handing repetitive, or complicated, tasks over to your robot helpers will relieve you of much day to day burden and let you focus upon solving new client problems and delivering value to them.
Nowhere is this more important than when it comes to deployments. The key to successful deployments is reliable repeatability. Thus, automating all steps in a deployment are essential.
Monitoring creates a huge amount of value. Compare two situations:
- The first, where a site owner logs a critical ticket because their site is down; and
- The second, where a site monitor detects a problem and it is addressed before the site owner sees it.
These two scenarios are worlds apart, and monitoring enables the second.
The first thing to decide is: what are you monitoring? The web server? The database? A cache? You will have your own requirements, but at a minimum, checking whether the site serves pages to anonymous visitors is a good idea. If sending a request, do you get a 200 OK response? At this point you could check for expected strings in content and check that the SSL cert is valid.
And don't forget about the security of your site. The last thing you need is a security flaw, for your site to be hacked or data to be lost... followed by a loss of trust, customers and revenue. This article aims to paint a clear picture of what you should be aware of as a site owner – where security weak points are, and strategies to avoid them.
Standardisation is at the core of site management at scale. You can standardise module sets, ways of doing things, project structures, tooling... every little element of working with a site can become a standard.
Standardising your hosting platform is of huge benefit. If developers only need to know their way around a single server setup then no time is wasted trying to find logs or file locations, and the available toolset is quickly grasped.
5. Managed Hosting
Good web developers are usually not good systems administrators, and more often still, don’t want to be. Managing your own servers and hardware is a headache your team doesn’t need.
Choosing the wrong provider can slow down your website, cause security issues and even make it inaccessible altogether. This blog outlines how to ensure that you go with the right website hosting service for your business.
Allowing the right experts to provide excellent, optimised hosting will relieve you of the burden of worrying about server patches and give you more confidence in the security of your system into the bargain.
In addition to the production environment, a hosting platform must provide at least one other environment, which exactly mirrors production. It must be simple to copy data and files from production. These things will allow proper testing before deployment to production.
First fix the problem, then engineer it out so it does not reoccur.
"If the data doesn’t exist in three places, it doesn’t really exist," goes the old saying. Your hosting platform should offer easy-to-use backup options. Ideally these will be usable via the command line, so developers can quickly knock out a backup before a deployment. A backup should not be burdensome – it should be something a developer can do without a second thought, and without having to consult documentation.
This will prevent you from losing all your data in the (not so unlikely – remember the Aberdeen Cloud breakdown?) event that something happens.
It goes without saying that there is never a situation where your code should not be in version control.
Keep everything up to date as much as possible to lower technical debt. Use a single, canonical git service. Use composer, particularly for managing patches.
Standardise the process for getting work done.
Work can be:
- Planned – security updates, PHP upgrades, 3rd party system upgrades, new features
- Unplanned – issues arising on production, new feature requests and support requests
Both need to be managed. Ensuring the process for handling unplanned work is robust will help with the scheduling of planned work.
Include QA/testing steps, ensuring that a change actually solves a problem. Relate tickets to changes and keep them, so you have a historical record of changes which lasts longer than memory. A well commented git log and a permanent record in your ticketing system are invaluable in making this possible.
Review your processes regularly. As processes are battle-tested, flaws will be found and refinements can be made.
When you touch something, leave it in a better state than you found it. This is at the core of good maintenance: continuous improvement.
Fully automated testing is the holy grail. However, it can be difficult to achieve, especially across a disparate collection of sites.
Where fully automated testing suites are not globally used, test specific things. For example, set up BackstopJS tests to check sample pages for regressions if changing font sizes, or node edit pages if upgrading features or content types.
Automated testing is capable of running all sorts of tests against your code, making sure that your code responds in the way it's supposed to. The great advantage is that you can check what code is passing and what is failing very quickly (and then fix it). If new functionality is created for your website, you can quickly see if it breaks any other functionality.
The disadvantage is that it does take time to create the tests in the first place and then to maintain them. Automated tests all have special purposes, pros and cons. But one in particular stands out – the smoke test. This blog sets out what smoke testing is and why you should be doing it.
Communicate where you hang out. It goes without saying that communication is of the utmost importance. Limit the number of communication channels you need to check and ensure the team can manage the distractions caused by constant message alerts. The ideal is to funnel channels, for example bot alerts, incoming client communications, ticket updates all into one place – your primary channel, be it IM, email or something else.
Having a single communication backbone will allow anyone on the team to gain an overview of what is happening now and keep everyone abreast of any urgent issues that might arise.
A parting word
Managing sites is like being on call. You don’t want to be called, so when a problem arises, first fix it. Then engineer out the problem so it does not reoccur.
Or consider employing a team of experts to take on responsibility for your digital suite, so you can focus on what's important: your business.
Need a hand?
Contact us now to find out how we can help you manage your sites, allowing you to retain your sanity!
Anthony Lindsay Director of Managed Services
With decades of experience, Anthony leads the Annertech Managed Services Team, delivering top quality design, development, and, ultimately peace-of-mind services to all of Annertech's wonderful clients.