How Niyuj helped their long-time customer to migrate from the older version of the CMS platform to newer version without causing business disruption
In this fast-changing world, it is utmost important for everyone to have the latest information on fingertips.
Our customer has a top-notch research team in the financial sector who gather latest tax laws, rulings and news and create stories and citations based on this information. This information is distributed to the subscribers over email and/or mobile app.
Niyuj worked with this customer, to help them create the subscription service using a content platform and also a mobile app to disseminate
the information in near real-time. During this 7+ years of engagement, Niyuj also carried out the platform upgrade along with the infrastructure upgrade.
This paper presents a specific use case. However, the approach and guidance offered is the byproduct of dozens of projects and highlights the choices that Niyuj customers faced and the decisions that they made leveraging Niyuj’s experience and expertise across many industries
Key Business Challenges
Our customer has a very strong research and content creator team who understands the financial and tax law domain deeply. Many of the tax laws, rulings and other news items are available across the internet from various portals. However, the quality of the content that comes from our customer is outstanding. The target customer base needs a well-structured abridged version of the laws and rulings which they can quickly read and understand. Our customer solves this problem through subscription-based service to financial and corporate powerhouses, small and medium firms as well as individuals.
Over the period, the users of the website have grown multifold and customer has established relationship with few of the Big 4 accounting firms.
To support growth, it was essential to migrate to newer version without causing any disruption to their business – and this was the key challenge.
Migrating live websites without affecting the business is a feat to achieve. Niyuj managed to have minimal downtime for the customer ensuring continued business.
Our customer is in content publishing business and considering their requirements, Niyuj had proposed to use Drupal. Considering the flexibility that Drupal offers and our customer’s business needs, Drupal turned out to be an excellent choice. The website was hosted on Drupal 6 with MySQL as database. The hardware was hosted on Rackspace along with the monitoring alerts. For search, the Drupal module was extended to use Solr as the search engine. A lot of custom modules were created to cater to specific business needs such as Cart, Subscription, Mailing Lists, Dynamic Banners, SSO, Microsites, Payment integration, Email Integration. Customer has launched multiple business streams and as of now they have 6 different portals (all hosted on Drupal) and a mobile app.
As customer’s business was growing, the customizations were also growing. However, Drupal 6 was reaching end of life. As a technology partner, Niyuj reached out the customer and proposed to migrate all the portals to then latest Drupal version i.e. Drupal 7 at the time. After agreement with the customer, Niyuj team started planning out the requirements to migrate to Drupal 7.
A detailed study of Drupal 6 and Drupal 7 was carried out considering the custom modules those were built for the customer.
For this migration exercise, Niyuj had kept only one goal – Migration without disruption!
Our customer’s user base had grown to tens of thousands of subscribers and thousands of daily active users. It would have been detrimental to customer’s business if their customers couldn’t reach the website or couldn’t read the stories they received in their emails. It would also be a bad user experience if users couldn’t login with their credentials or they couldn’t access any other functionality. Team at Niyuj took up this difficult task to keep the downtime to minimal and not to have any disruption to end users.
During the study, we found that following four modules will have the maximum challenges: User Module, Comments Module, most of the custom modules. We also identified that query syntax was changed from Drupal 6 to Drupal 7. Considering all the findings from the study, a detailed migration plan was created.
The user module in Drupal 7 has substantial differences and in-place migration is not possible. This forced our development team to create scripts for migrating users from Drupal 6 database to Drupal 7 database. Similar exercise was carried out for other modules where in-place migration was not possible. The scripts were thoroughly tested to ensure all the crucial data is getting migrated to Drupal 7 in a required manner. QA team also created scripts to verify the data on old server and old database with new server and new database.
It was also noticed that the hardware that was in use was reaching the capacity and would soon need the upgrade. Hence infrastructure upgrade was also planned as part of this migration.
Niyuj team created a detailed checklist for every step involved in the migration. This is a key step to migrate a live website without disruption!
For any migration, one of the common mistakes is to assume that things will go as you have planned. However, Niyuj team was mindful of this angle and planned for a dry run for migrating data from Drupal 6 to Drupal 7.
The checklist created during earlier phase was used by the team to migrate the production data to new setup. The scripts were executed to verify the data for completeness and integrity for all the key entities such as User, Articles, Documents, Files etc. Customer was also involved in carrying out the UAT during the dry run.
Having successfully done the dry-run, team built the confidence of migrating the live website without any problem.
Quite a few operations such as creating the site, basic configuration etc. was done well before the actual migration started. The migration was planned during mid-night hours to minimize the impact on the end users. The administrator access on old setup was restricted to migration team only to avoid creation of new content. New user registration was stopped temporarily. And the migration scripts were run. As soon as they were complete and preliminary testing was done, Niyuj team made the changes to DNS to point the users to new servers. And the site started functioning smoothly.
Plan, Plan and Plan. Niyuj team believed in the goal and planned with that goal in mind, which resulted in migrating huge database and content without affecting the customer business.
Migrating to latest platform offers the customers benefit of latest technology, improved performance and new features, which benefits their business.
Plan in advance. Review, Refine, Repeat. This is key to success. With the checklist approach, Niyuj team has managed to execute multiple migrations in various domains for various customers.
If things can go wrong, they will! Always have a backup plan. Niyuj team had kept an extra instance ready during final migration, in case, something would have gone wrong during final migration.
Identify the risks in advance, and have a contingency plan. If something could have gone wrong during final migration, Niyuj team had plan to revert and let the business continue as usual.
Collaborate with customer to ensure they understand the importance of migration and risks involved. Our customer helped us tremendously during UAT, ironing out some of the issues which only a domain expert could have seen.
Niyuj automated most of the migration process, through SQL scripts and shell scripts. These scripts were tested during the testing phase and avoided any manual error.
" Niyuj and its team of professional leadership and developers exceeded Edgewater’s expectations. We engaged with Niyuj to increase our capacity and efficiency in new feature development, testing, automation and sustaining engineering. Niyuj has been able to maintain captive and stable team of developers and testers with a spectrum of caliber and skillsets needed for embedded, networking applications and cloud development."
" I have worked with Niyuj on multiple projects. Without exceptions, they were able to successfully deliver what was required. This was done through careful planning that ensures a full understanding of the client’s needs, coupled with the hard work of the talented, capable team members responding to dynamic, challenging requirements."
" We have recently established a Software Engineering Partnership with Niyuj. Niyuj has established a team of talented and high skilled engineers in Storage, Data Protection and Cloud Technologies. Niyuj team works very closely with Carbonite Engineers and makes important contributions to our product roadmaps and our goal is to continue growing the team at Niyuj over the next several months. If you are passionate about building great state of the art software products, leveraging the latest technologies Niyuj could be your go to partner."