The Requirement
The client wanted to:
- Migrate from ‘end of life’ Drupal 7 to Drupal 8.
- Enhance editorial experience - right from generating content to publishing it on the website.
- Optimize their huge database of tables to produce fresh content and update existing content with ease.
- Automate the import process of large datasets.
- Improve the API response time and subsequently, enhance application performance to quickly access and retrieve information.
The Challenges
The client was facing database management challenges and performance-related issues:
- Usage of Drupal 7 along with a lot of customizations required continuous maintenance of the custom codebase.
- The automated migration process took weeks to run because of the multitude of fields in D7.
- Low performance of the D7 system failed to meet current business needs.
- System inability to simultaneously handle content updates by different users led to the repetitive efforts of saving the records.
- As the system required manual intervention in uploading content, it took approximately 2-3 days to import/update a large set of data in the CSV file format.
- Low API response time led to poor application performance.
The Solution
We created a roadmap to migrate the client’s website from D7 to D8. The proof of concept ensured that their business needs are met using Drupal 8 core capabilities and contributed modules with minimal customization. We also recommended the following measures:
- An efficient data structure with custom entities to manage huge datasets.
- Use of improved D8 database structure to reduce the number of tables.
- Enhance the editorial experience for in-house content editors.
- Proposed ways to improve API performance and fix issues of degradation due to increased load.
- Expose the APIs to third parties (universities and colleges) to allow them to perform tasks, such as form filling, much faster.
- Utilize a better import process for large datasets (30000 records each).
Our Approach
We worked closely with the client to carve a migration strategy that addressed these issues successfully:
- End-of-Life D7 - As D7 was approaching end of life, we provided them a strategy to migrate their website to D8 on PHP 7.3 and MySQL 5.7. This allowed them to leverage new functionalities and achieve better web performance.
- Application performance - The use of Elasticsearch indexing to store, search, and analyze huge amounts of data and receive responses in milliseconds.
- Editorial Experience - Integration of the Inline Entity forms module to edit referenced content. It breaks down one large request into multiple requests to reduce response time at the end of content update.
- Extensibility - Recommended the usage of robust migration plugins for migrating large sets of data from Drupal 8 to Drupal 9.
- Scalability - Demonstrated the Publish/Subscribe model in CMS, so that peripheral systems can be integrated for any future business need.
- Improved Website Performance - Showed how Restful APIs can be used in small sets to reduce the request turnaround time.
- Managed enormous datasets - Suggested the use of field UI field with custom entities and other base fields to reduce the number of tables.
Tech Stack
Business Benefit
- Increased editor efficiency. They can now generate, edit, and update content much faster.
- Faster API response - from 8-9 seconds to 0.5-0.6 milliseconds.
- Minimal code maintenance.
- Reduce the time to run the semi-automated import process to less than a day with negligible manual intervention.
- Improved system scalability to accommodate new datasets, handle higher traffic, and manage new business requirements.