How to manage 70+ sites without losing your sanity
At Annertech, our managed services team manage 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 loosing your sanity!
1. Standardise your setup
Most websites have common structures, common elements and common building blocks. The key to managing at scale is to capitalise upon 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 servants 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. 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.
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. Allowing experts 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.
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, e.g. set up BackstopJS tests to check sample pages for regressions if changing font sizes, or node edit pages if upgrading Features or content types.
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, e.g. bot alerts, incoming client communications, ticket updates all into one place, e.g. 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.
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.