Amazee Labs has a dedicated global web maintenance and extensions team that focuses on providing a managed service for maintaining and expanding existing websites, as well as building incrementally on existing tools and infrastructure.
Over the last 18 months, we have been investing in automating certain parts of the maintenance service lifecycle. Before we dive into our automation thinking and approach, in the first part of this two-part series, I’ll share some information about the components of our maintenance service.
As the image below suggests, there are three pillars in our holistic maintenance service:
- Managed Web Maintenance
- 24/7 Application Support
- Extension Services
Managed Web Maintenance
The first pillar of the maintenance team is our Managed Web Maintenance service which ensures that our customers never need to ask “Is my website software secure, up to date, and performing well?”.
On a regular basis, our automated scanners check our portfolio of managed websites and infrastructure for over 300 common issues. (More about this later on.)
Empowered by the automation, the Site Reliability Engineering (SRE) Team periodically analyses the scan reports and, together with account managers, arranges for any required updates or fixes to be applied to the websites. Customers receive a report on their site's software status on a quarterly or monthly basis.
24/7 Application Response Team
The Amazee Labs 24-7 Response Team gives customers the peace of mind that when things go wrong, or when they need help using their website (e.g: changing a view or editing / adding content), a highly skilled team is available to support them on a 24/7 basis.
Of course not every customer requires this kind of all-encompassing service, but for those that do, no matter the time of day, the Amazee Labs Site Reliability Engineering team is geared to jump into action to solve their problems.
Extending Maintained Websites
Finally, in our 10+ years of experience, we have found that most websites will be rebuilt roughly every three years to keep up with online trends, to deal with technical debt, or simply to refresh the site appearance and user experience.
While we have helped many clients transition from their legacy web systems to Drupal 8, not everyone is ready to do a large move to a new platform all at once.
Our approach to extending our maintenance customer’s website, attempts to de-risk the “one big bang launch” and allows us to work with our clients to meet one primary goal: reduce the time to market for website improvements and maximise the value of the time already spent on their website.
As you can see in the diagram, our extension service covers the adaptation of existing features to changing audience needs, as well as the creation of new features - to deliver new value - as our customers iterate and grow to further understand their audience and their needs.
An introduction to maintenance automation
The focus of this two-part series is on the Managed Web Maintenance component of the maintenance service offering.
The maintenance mission of a maintenance team can be very human-intensive. We realised early on that without technology, process, and business engineering, the price of our maintenance team can work out to be prohibitively high. In order to democratise access to our services for our customers, and to scale our business offering, we had to figure out which parts of the maintenance offering could be managed or delivered in a more efficient and automated way.
We quickly figured out that what we needed to do was a mixture of creating an environment where the team was efficient and focused, as well as leveraging the fact that our maintenance team is made up of a team of problem solvers and solution-orientated engineers.
We also quickly realised that “maintenance automation” is perhaps a term that means different things to different people. Broadly speaking, maintenance automation is the process of finding the things that humans have to do over-and-over again and creating tools that reduce the manual steps that humans need to take. While our goal is to reduce - not specifically eradicate - human intervention, we’re happy when we can completely remove repetitive manual steps.
So, in the best case, these tools themselves are executed automatically. However, some tooling is manually executed when it is first developed - with a view to automate the execution once the tooling has proved its use. So we use the term “maintenance automation” to cover the “to be automated” tooling as well.
The takeaway here is that we consider “maintenance automation” to be - at least in part - a continuous process of finding manual processes and replacing them first with tools that reduce the steps and then eventually automating the execution of these tools.
Cattle not pets
The Amazee Group CTO, and CTO of amazee.io - Michael Schmid - has consulted closely with our maintenance engineering team. One of the things we’ve learned with Michael is to think of “cattle not pets” as often as possible. What this means is rather than thinking about the individual site you’re working on, rather think about a large number of similar sites, and solve the problem in a generalised way. Good solid engineering thinking.
This opens up the other part of maintenance automation. Above we describe the process of automating already existing manual engineering tasks and processes. Coming from the other side, we also look to preempt manual steps before they even emerge. Sometimes the easiest way to guide a cow to the corral is to corral it along with the whole herd.
Categories of problems
A large part of maintenance engineering has to do in some way with problems. Our maintenance team defines three broad categories of problems.
Firstly we have performance problems. This category covers all problems which pertain to the site not meeting some kind of operational standards. These could be deeply technical (such as Google's “First Contentful Paint” metric) through to highly specific SEO or Accessibility targets.
Secondly, we have the reliability category. Reliability is the site's propensity to be available when someone tries to engage with it. Problems in this area range from platform or infrastructure problems (generally hosting related) through to application configuration and application code.
Thirdly and finally we have the security category. This category naturally attracts a lot of attention due to the reputational and (increasingly) legal consequences of security breaches and illicit data access. Problems in the security category range from patches to be applied, through to software updates, configuration issues, and code security problems.
The two kinds of maintenance engineering
A lot of teams spend their time resolving problems that have emerged in the absence of a preemptive maintenance strategy. We refer to this as corrective maintenance engineering. A lot (but not all) of these problems exacerbate over time - i.e. their severity increases.
As maintenance teams mature, the focus shifts from corrective maintenance to preemptive maintenance engineering. The goal of preemptive maintenance is to first catch, and then resolve, the majority of problems before they cause severe performance, reliability, or security problems.
The takeaway then is that maintenance processes can be broadly categorised into “problem detection” and “problem resolution”.
Conclusion - part 1
In part 1, I have covered the basics of how Amazee Labs thinks about Maintenance and the way we approach automating the parts of the process that are repetitive. I also introduced three categories of problems, as well as the two kinds of maintenance engineering.
In part 2 of this two-part series, I’ll introduce the automation of problem detection and resolution. I’ll also introduce Lagoon Insights and the Amazee Labs Maintenance Tooling. Finally, I’ll explain how this all comes together in our service offering.
Did you know?
The Amazee Labs Managed Web Maintenance Scanning Software performs
- Drupal core status, contrib module status, and best practice drupal configuration scanning
- Application dependency (Symfony, 3rd party libraries, etc) security scanning
- Container security scanning for customers using containers
- Performance and uptime monitoring
- Automatic HTTPS Certificate validation
Our systems can be configured and augmented to perform custom checks specifically for your website context.
Do you have one or many Drupal sites which are missing a preemptive maintenance strategy?
Do you want to learn more about this maintenance service and how it can solve your maintenance pain?
Then reach out to us and let's chat!