February 1, 2024 / 7 min read
Table of contents
Simply put, “a stitch in time saves nine”, meaning if you don’t keep up with regular maintenance throughout the year, you risk accumulating massive technical debt, which could increase critical errors and the costs associated with fixing them.
Regular maintenance ensures that your Optimizely operates at peak performance, remains secure, and provides a seamless user experience. This means not only staying on top of the latest updates and NuGets but also regularly reviewing your logs. Doing so makes you best prepared to deal with critical errors quicker and at a lower cost than otherwise. So, to help you keep your head above the water, our effective maintenance best practices for Optimizely offer you the following:
To guide you through this process, we have created a list of the most critical areas that require your attention. Additionally, our detailed checklist can provide you with an overview of tasks to keep your Optimizely setup running efficiently.
From the outset, it’s important to know how your developers have configured the key functionalities of your Optimizely setup. The documentation should include architecture, requirements documentation, system integration, and how the environment is configured. This should be supported with relevant links and screenshots to make it crystal clear exactly how your systems are set up.
You really don’t have to document every line of code.
Having solid documentation has many benefits for you: It makes team transitions and onboarding easier by reducing the system’s learning curve, boosts efficiency within your established teams by providing quick access to key information, and bridges the gap for cross-team knowledge sharing, allowing developers to get up to speed on parts of a project they’re not familiar with.
Remember, your documentation isn’t just a record; it should be a living document that is regularly reviewed and updated to reflect the current state of your system.
Keeping on top of your Optimizely updates should be a key part of your regular maintenance schedule. It will keep your Optimizely system secure, efficient, and compatible with other technologies. This means updates for your libraries, NuGets, integrations, APIs, and Optimizely CMS itself, including commerce components and add-ons. It might seem like a lot to do, but fall behind at your own peril!
It depends.
For minor updates, a regular schedule is best. Optimizely frequently releases minor updates with small tweaks to enhance usability or patch a vulnerability. It's best to accommodate these updates regularly; try for once a month, or better yet, every two weeks! Ensure your teams are kept informed by having them follow Optimizely news for any critical updates or vulnerabilities that need immediate action.
Weekly releases at Optimizely, source: world.optimizely.com/releases
For major updates, a wait-and-see attitude is better. They often bring significant changes that may affect your application’s stability. Therefore, waiting a month or two after a major release gives you breathing room to ensure these versions have no critical failures which might affect your operations. During this time, you can prepare your app and teams for the update, making it smoother when it’s time to update for real.
Regular updates mean your Optimizely app is never too far behind the latest version. This makes accommodating newer updates more manageable and less time-consuming. It means your app is secure and benefits from the latest security patches. It also means incorporating new features becomes more streamlined; being several versions behind can mean that an update is not just an update but a complete overhaul, requiring more time and resources to implement.
If you’re not regularly reviewing your logs, how can you know the health and performance of your Optimizely platform? You can’t!
Logging is essential for providing insights into how your app is functioning and whether you have any issues to resolve. Ensure your developers regularly monitor for failures and slow response times. They should identify any frequent errors which affect performance and might indicate underlying issues.
After each release, dedicate 2-4 dev hours to log monitoring to identify and add new issues to your backlog quickly. Integrate these backlog issues into your sprints to make error resolution an ongoing task. Of course, you should adjust your developers' bug-fixing frequency based on the severity of the issue and prioritise those with the potential to cause major disruptions or irreversible damage.
Regular manual or automatic testing ensures your Optimizely app meets standard performance metrics to guarantee a top user experience. It's best to integrate automatic testing directly into your DevOps pipeline; this makes sure that each component and interaction within your application works smoothly, catching potential issues before they escalate.
Performance tests are necessary to see if your site is up to the challenge of a heavy traffic load. If you fail to do them before going live, you risk serious performance issues, which will cost you sales.
Automatic testing is great for system components, but sometimes you need a more human touch. Manual testing is useful tool for delivering a fantastic user journey. Test as though you are a customer being guided through your user journey; click the most important UI functions to test they work.
For each project, you need to keep a list of key functions where you’ll conduct manual testing, as well as a list of key automatic tests. These tests should be kept at a reasonable level so you don’t overload your employees. The best practice is to prioritise areas where the consequence of any error is larger, for example, a page that allows users to make a purchase.
If a release doesn’t match your expectations (or your users’), you need a rollback plan to return quickly to a previous, stable version with minimal disruption.
One way is to implement feature flags, as they allow you to deploy new features without making them immediately available. This allows you to enable them as you see fit with the peace of mind that you can disable them just as fast to return to a previous version if needed.
A better way is available with Optimizely Feature Experimentation, which offers a nuanced way to roll out feature updates gradually. You will have the ability to control what percentage of your users will be exposed to the new features, which allows you to monitor performance and user feedback in real time.
Feature flags in Optimizely Feature Experimentation
It’s best to start with a small percentage, say 10%, to see how the feature performs. If any issues arise, you have the flexibility to dial back instantly, minimising impact and allowing your team to solve any issues without affecting all your users.
A rollback plan provides risk mitigation and means every new release contributes positively to your user experience.
Backups are a crucial component of any site maintenance plan. They serve as a lifeline in case of catastrophic data loss or corruption.
Usually, we create backups at different intervals depending on the type of data. However, luckily for us, Optimizely DXP provides a number of backup options.
Here are a few ways Optimizely DXP provides redundancy precautions:
For most business cases, Optimizely’s backup schedule will provide enough protection in case of emergency. However, you can also implement stronger precautions depending on the critical nature of your business.
Establishing monitoring for your platform’s most crucial endpoints, like login or payment service, means you can quickly identify and solve any issues as they arise. Tools like HTTP health checks and real-time monitoring solutions will allow your team to assess the health and responsiveness of your endpoints continuously, flagging any issues immediately. This allows for a rapid response and prevents major disruptions to your users.
Nowadays, users expect a high standard of service and reliability, and if that is disrupted, it can affect your platform’s reputation, so make sure to keep an eye on things.
Periodic security maintenance of your platform is another key area for consideration. Optimizely DXP comes equipped with its own security measures, but if you’re hosting the platform yourself, you should ensure your environment is secure. You need to run security audits, and if you don’t have the capabilities in-house, it is recommended that you hire an expert to help.
Aside from audits, you should track your access management closely. Regularly review and manage admin rights to secure your system from unauthorised users who might have malicious intent. Use tools like Active Directory to make this process easier; for example, you can create policies which automatically revoke access when an employee leaves their role. Additionally, consider extra layers of security, such as hiding access behind a VPN, to further control and monitor access to your platform.
Optimizely gives you a bunch of handy tools for access management. You can create precise user roles and groups and set each access according to their role. It has many available options, so it’s worth reading the documentation to get an idea of how specific your access management can be.
Each of these maintenance best practices plays a role in keeping your Optimizely platform in top shape. These proactive measures mean your system is ready for anything and guarantee a smooth user experience. Time spent on maintenance is time saved in the future.
If you need a more in-depth list of specific tasks associated with these critical maintenance areas, we have prepared a checklist for you. Use it as a tool for standard recurring tasks essential for operating Optimizely effectively.
However, each project is unique, and if you need help with something not in our guide, reach out to us for some expert advice.
Senior Systems Consultant
Marcin is a full-stack developer with a proven track record of successfully delivering a wide range of web projects. He caters to the client's needs at each and every step. With over 10 years in IT and a comparable time within Optimizely products: Content Management and Commerce, Marcin improves any team he’s on.
Senior .Net Developer
Wojciech is a seasoned back-end developer with over six years of experience in software development. Wojciech's proficiency extends to the full spectrum of Optimizely products, including both CMS and Commerce solutions. He delivers successful projects, from large corporate platforms to bespoke solutions, ensuring client expectations are met.
July 26, 2024 / 10 min read
This guide covers how Optimizely Data Platform (ODP) can improve your business with real-time customer insights, personalised campaigns, and simple data integration and will give you...
July 3, 2024 / 7 min read
This guide will provide you with what to consider when choosing between Optimizely DXP Cloud Services and managing your own infrastructure. It's not a binary choice; each option has...