Introduction
BISSELL is a family-owned enterprise with over 145 years crafting premium cleansing merchandise that exceed client expectations. BISSELL provides a full vary of flooring care and air therapy merchandise. Related vacuum cleaners – significantly robotic vacuums – are a rising phase of their enterprise. BISSELL has 1 million registered vacuum gadgets of their current IoT Platform powered by AWS IoT, and presently 25% of these gadgets are linked within the discipline. With growing adoption of linked vacuum cleaners all over the world, BISSELL is anticipating 1 million gadgets to be linked within the discipline within the close to future. BISSELL needed to make sure its IoT platform may scale with this fast anticipated development throughout product classes.
BISSELL’s home-grown legacy IoT platform on AWS included a set of REST APIs that enabled completely different members of their IoT ecosystem to entry platform information. The legacy platform labored and carried out effectively, however BISSELL anticipated future ache factors scaling the platform with new merchandise and customers.
On this weblog submit, we present how BISSELL labored with AWS Skilled Providers to enhance their legacy REST APIs as a part of migrating their IoT platform to a brand new structure based mostly on the AWS Related Machine Framework (CDF). We establish ache factors of the legacy REST API structure after which describe how we redesigned it utilizing CDF’s micro-services method of grouping associated REST APIs right into a single Lambda with proxy integration. Subsequent, we spotlight how the brand new structure contributed to bettering the scalability, efficiency, and value effectivity of BISSELL’s IoT platform.
Legacy structure challenges
The serverless REST APIs on BISSELL’s legacy IoT platform had been constructed utilizing BISSELL’s Onion Structure, which is a serverless design sample comprised of a number of concentric layers of Lambda features interfacing with one another in direction of the information entry layer within the core. BISSELL determined to create the Onion Structure as a consequence of excessive code re-usability.
The area layer of the structure incorporates a set of Amazon API Gateways, and every Amazon API Gateway serves REST API requests originating from a particular area. These domains characterize purchasers of the BISSELL IoT platform reminiscent of a cellular app or an internet portal. Beneath the area layer is the service layer of the Onion Structure that’s comprised of Lambda features, every of that are devoted to service a particular REST API request. Lastly, the information entry layer of the Onion Structure incorporates an extra set of Lambda features that implement Information Entry Object (DAO) interfaces. The information entry layer Lambda features entry IoT information saved in Amazon DynamoDB tables utilizing the DAO interfaces. The next picture exhibits the completely different layers of the Onion Structure.
When a shopper invokes a REST API, the Amazon API Gateway first initiates the Lambda perform within the service layer that handles the requested REST API operation. Subsequent, this Lambda perform invokes a set of Lambda features within the information entry layer as wanted to finish the requested operation. Lastly, the Lambda features return outcomes again to the calling Lambda perform within the service layer, which constructs and returns the ultimate response to the Amazon API Gateways.
The Onion Structure promotes a extremely reusable code base by permitting the service and information entry layers to share Lambda features. Nevertheless, it additionally presents challenges when making an attempt so as to add options and scale to a whole bunch of 1000’s of gadgets. First, sustaining greater than 500 Lambda features made it tough for BISSELL to carry out fast and frequent updates to scale the present REST APIs. Second, the rising chain of invocations between particular person Lambdas coupled with inconsistent database design negatively impacted the platform’s efficiency and value effectivity. Moreover, debugging points grew to become difficult with builders having to look throughout a number of Lambdas to seek out root causes.
Migrating to the brand new structure
BISSELL and AWS Skilled Providers determined emigrate the legacy platform to a brand new answer developed utilizing the AWS Related Machine Framework (CDF). CDF is an open supply framework for constructing an enterprise IoT platform. It offers a set of production-ready micro-services referred to as CDF modules, all architected and applied utilizing native AWS providers and finest practices. The CDF modules kind a layer above the AWS constructing blocks as proven within the following structure diagram.
The workforce started by addressing the inner-most information entry layer of the Onion Structure. The legacy IoT platform lacked a clearly outlined machine registry to handle a big fleet of gadgets and their relationships to different sources inside the platform reminiscent of customers, machine sorts, and firmware. Within the legacy platform, information for gadgets and different sources was scattered throughout a number of Amazon DynamoDB tables. This problem, coupled with each static and dynamic information coexisting throughout tables, led to elevated system complexity, stale information, and value inefficiency. As an example, BISSELL needed to create a collection of Amazon DynamoDB queries throughout a number of tables simply to assemble an inventory of gadgets owned by a selected person. This operation consisted of the next steps:
- The Information Entry Object (DAO) first want to question the “Customers Desk” utilizing a person ID as the kind key to acquire all teams which can be related to the person.
- From the returned teams, an array of machine IDs is constructed by pulling out machine ID from every group.
- The DAO iterates over every machine ID, having to question a number of tables to assemble an entire machine object on every iteration.
The diagram following illustrates this problem by way of a mock situation.
BISSELL and AWS Skilled Providers used the CDF Asset Library to construct a complete machine registry outlined as a single graph database utilizing Amazon Neptune. Throughout the re-implementation section, the workforce migrated occasionally altering or in any other case static information (for instance, device-friendly identify, person electronic mail deal with) to the Asset Library. However, often altering information, reminiscent of machine utilization metrics, was maintained in Amazon DynamoDB tables. This resulted in a simplified information entry layer that allowed the workforce to enhance efficiency and value of the upstream information consumption.
The diagram following illustrates how the CDF Asset Library is ready to scale back the variety of DynamoDB queries from the a number of queries required with the legacy setup to a single Neptune question.
After optimizing the platform’s information entry layer with the CDF Asset Library, the workforce labored on migrating from the legacy Onion Structure to a brand new structure based mostly on CDF’s micro-services design paradigm. BISSELL migrated their legacy REST API structure as a part of the CDF Utility Layer, additionally referred to as the CDF Facade layer. The Facade layer is an software layer that incorporates BISSELL’s distinctive enterprise logic and orchestrates the underlying CDF Core modules. The CDF Core modules are applied as a Lambda with proxy integration, which teams dispersed units of Lambda features right into a single Lambda perform for dealing with a standard service such because the CDF Asset Library. The open supply [AWS Serverless Express] Node Package deal Supervisor (NPM) package deal lets you simply construct serverless REST APIs utilizing the Specific framework on prime of Amazon API Gateway.
BISSELL’s CDF structure offers a Lambda configured with proxy integration that serves as a single level of entry for all API requests made by frequent purchasers such because the cellular and net purposes. As an example, BISSELL’s cellular software sends all requests to a devoted Amazon API Gateway. From there, Amazon API Gateway makes use of proxy integration to route any requests to a Lambda devoted to dealing with all API operations for the cellular software. The Lambda itself breaks down into three layers. When the Lambda is invoked, the API request first enters a controller, the place it determines what service to name based mostly on the request’s endpoint. The service then calls the Information Entry Object (DAO) to entry the platform’s databases hosted in Amazon Neptune and Amazon DynamoDB.
By migrating to the CDF structure, BISSELL lowered the variety of Lambda features within the platform by 90 p.c. The brand new controller, service, and DAO design consolidated the code base and lowered troubleshooting efforts. One other key profit was the power to deploy the Lambda as an area Specific server, which contributed to rushing up improvement and troubleshooting points even quicker. This answer supplied the BISSELL improvement workforce the power to shortly deploy and take a look at the API execution on a developer’s native machine.
Conclusion
BISSELL efficiently migrated their legacy serverless REST APIs to a brand new structure based mostly on a micro-services design paradigm introduced by the AWS Related Machine Framework (CDF). BISSELL now has a extra scalable, performant, and value environment friendly answer for his or her IoT platform on AWS.
The migration resulted in a 90 p.c discount within the variety of Lambda features. Put up migration information confirmed a 90 p.c discount in Lambda prices and a 50 p.c discount in Amazon API Gateway latency. Moreover, the migration supplied BISSELL a platform that helps agile enterprise enlargement with the power to scale options and gadgets quickly and reliably.
To study extra about AWS IoT providers and options, go to AWS IoT or contact us. Additionally, study extra about BISSELL’s new IoT Platform within the first submit of this collection.
In regards to the Authors
![]() |
![]() |
![]() |
![]() |