SEAMLESS SAAS PLATFORM MIGRATION ENSURES BUSINESS CONTINUITY AFTER SPIN-OFF
The customer
Established over 90 years ago, the company is a renowned leader in the field of sensors and sensor-related technology. With a strong global presence spanning over 20 countries, they boast an extensive distribution network that reaches customers worldwide through various esteemed partners.
The business
The platform provides reporting and management features for IoT devices that can be deployed in remote areas with limited or unreliable network connectivity. To overcome this challenge, the business utilizes LPWAN technology, allowing the devices to communicate with the SaaS platform through the provided LPWAN channel.
The challenge/ requirement
Following its acquisition by another group, the customer is undergoing a spin-off process from its current parent group, necessitating the disconnection from the existing cloud services utilized. The Software as a service (SaaS) platform comprises multiple crucial modules, including data processing, authentication, reporting, and payments. While the customer holds intellectual property rights for some components, others are exclusively owned by the current parent group and cannot be transferred. Consequently, the client is tasked with migrating the entire SaaS platform to a newly owned cloud service account.
The migration process must be conducted without any disruptions, as the platform experiences a continuous inflow of messages from IoT devices. Uninterrupted service is paramount, and any data loss during the migration process is unacceptable. As such, a seamless and meticulously planned migration strategy is essential to ensure a successful transition of the SaaS platform, with the client required to rebuild the nontransferable modules from scratch while effortlessly relocating the proprietary ones.
The solution
Built the missing modules for authentication, payment and message processing.
Build from scratch
Authentication platform
After a comprehensive analysis, the decision was made to opt for an industry-standard Customer Identity and Access Management (CIAM) solution rather than developing a module from the ground up. Following the evaluation of several products, Azure AD B2C emerged as the top choice and was subsequently tailored to the specific requirements of the customer.
Message processing
The development of the message processing module, responsible for handling incoming data from IoT devices, involved creating it from the ground up using .NET Core. Particular attention was paid to accommodate the constant flow of incoming data, and as a result, the processing was designed to be asynchronous. This approach aimed to enhance processing efficiency and guarantee the integrity of the data.
Payment platform
After careful deliberation, Stripe was chosen as the preferred payment processing partner for the platform. The integration involved tailoring Stripe to suit the specific requirements of the SaaS platform, incorporating custom features such as credit point matching and support for multiple products.
Lift and shift
Devised a strategy to migrate the platform without loss of messages which included setting up custom replication of messages from Azure Event hub queues to Cosmos containers.
The platform made use of two distinct database platforms. Cosmos and Azure SQL. Cosmos is used to store extensive data quickly, and Azure SQL is used to store processed structured data. The revamped platform used components like a Service bus, API management gateways, Web and API apps, Azure Functions, storage accounts, Application Insights, Azure monitor, Stream Analytics, Azure data factory, IoT event hub, Azure Device provisioning service etc. In addition, the system is also made of Apache Superset to provide business intelligence reports.
The application tier components were replicated to the new cloud account using IaC scripts to reduce effort and improve accuracy. The components built from scratch wad deployed using CI/CD pipelines and were integrated with the existing components, and were smoke tested to ensure the integrity of the platform.
The data tier components too were created in the new account in advance and customized to suit the revamped platform. Azure data factory pipelines were set up to copy data between the different data subsystems in the two accounts.
Data migration
Multiple mock runs were performed to ensure the integrity of the pipelines and the process. The playbook for the final migration was developed and executed in phases. The data was transformed on the fly during the migration to ensure compatibility with the newly built modules.
The benefits
During the initial analysis phase, inherent weaknesses in the existing platform were identified, primarily stemming from its infrastructure-level architecture. To address these issues, comprehensive improvements were suggested and successfully implemented as part of the migration process, effectively resolving long-standing platform issues. Additionally, the customer’s outdated mobile app suffered from poor usability, which limited its potential for wider use. This usability concern was also addressed during the migration, enhancing the app’s user-friendliness.
Moreover, while exploring the existing architecture, numerous functional-level bugs were discovered, significantly affecting the system’s performance. To enhance end-user experience, these bugs were meticulously rectified as part of the migration, ensuring minimal deviations from the agreed-upon scope.
Furthermore, the platform lacked sufficient guidelines, user manuals, and architecture documentation, which posed challenges during discovery and analysis. To improve visibility and provide technical insights, these crucial resources were developed and provided to the customer during the migration process.