The Internet of Things on AWS – Official Blog
How BISSELL migrated a million vacuum devices to a scalable IoT Platform on AWS
This post was co-authored by Ramesh Chinnasamy, Principal Lead, IoT at AWS; John Rotach, Sr. Application Architect at AWS; and Mike Ply, Associate Director, IoT at BISSELL
Consumers in countries around the world are finding value in connected vacuum cleaners to tackle life’s everyday messes. As part of the Internet of Things (IoT), connected vacuums provide consumers enhanced functionality, value, and cleaning performance. Vacuum connectivity gives consumers the ability to remotely control and customize vacuum cleaner operations such as starting, stopping, or scheduling cleaning, tracking location, monitoring usage and battery charge, and overall enables an improved cleaning process.
BISSELL is a family-owned business with over 145 years crafting premium cleaning products that exceed consumer expectations. BISSELL offers a full range of floor care and air treatment products. Connected vacuum cleaners – particularly robotic vacuums – are a growing segment of their business. BISSELL has 1 million registered vacuum devices in their existing IoT Platform powered by AWS IoT, and currently 25% of those devices are connected in the field. With increasing adoption of connected vacuum cleaners around the world, BISSELL is expecting 1 million devices to be connected in the field in the near future. BISSELL wanted to ensure its IoT platform could scale with this rapid expected growth across product categories.
In this blog, we discuss BISSELL’s IoT platform and how BISSELL teamed up with AWS Professional Services and TensorIoT to create a scalable, high-performing, and cost-effective IoT platform in preparation for onboarding products and bringing new products to market.
Prior to working with AWS Professional Services, BISSELL built an IoT platform on AWS with various tradeoffs discussed below. They used this platform to perform end-to-end device management using a wi-fi + cloud + app strategy as shown in the image below.
BISSELL built the platform using solutions from various providers but had challenges when trying to innovate and add features including:
- Solutions acquired through various partners limited opportunity for the BISSELL development team to “own” the platform.
- Limited visibility and traceability of device connection and data flow inefficiencies within the system.
- Operational and performance issues with running over 450 lambdas to support data transformation and data flow within the system.
- Lack of data governance and data inconsistencies when storing device data to Amazon DynamoDB.
- Limited automated testing for platform integration.
BISSELL engaged with AWS Professional Services and TensorIoT to help address these challenges and bring frameworks and best practices to:
- Decrease time to onboard devices to the platform.
- Increase the stability of system.
- Simplify data analysis.
- Improve API response time and overall performance of BISSELL’s OT systems.
- Improve device pairing success rate.
- Improve monitoring and logging to reduce production downtime.
- Improve troubleshooting of issues.
- Improve automated testing.
- Optimize usage of AWS capabilities.
BISSELL, AWS Professional Services and TensorIoT migrated the existing production platform to a new platform developed using Connected Device Framework (CDF). They began by working backwards from the problems, developed a minimum viable product (MVP) feature set, and migrated only what was necessary to have a solid base of CDF services and other microservices to prove out scalability and agility. They repeated this process in subsequent phases by iterating on the base services and worked backwards to add necessary functionalities. Adding minimum security guardrails and optimizing cost and performance were also key focus areas in these phases. These migration strategies and deployment procedures created a seamless customer experience with minimal to no downtime.
Phase 1 : Building baseline architecture to meet scalability and agility
The phase 1 goal was to put baseline components into place and build upon these components to implement an MVP feature set, which are common to all BISSELL connected device product categories and sufficient to operate a basic BISSELL device end-to-end. These MVP features were:
- Device pairing – allowing a user to pair a connected device with their account using the BISSELL mobile application.
- Data ingestion –a data ingestion pipeline that allows the platform to consume data such as device cleaning schedules and fluid usage.
- Data history – data storage and an API that allows users to view device history and metrics.
The team started by working backwards from the existing IoT backend system, diving deep to determine which features were essential in the new platform and which were unused or incomplete. Then, they produced an architecture which met the needs of the platform in the near-term but could also be extended for future use cases.
They first deployed foundational components from Connected Device Framework (CDF), including the Asset Library and Provisioning microservices. Next, they did upfront work to connect BISSELL’s CI/CD system, which was key for the team to develop quickly.
In 3 months, the team completed development and replicated the MVP features called out above in the new platform. Keys to the team building the full MVP features in this time were:
- Incorporating baseline functionality “out of the box” from CDF.
- A modular architecture with minimal interdependency between components.
- Deep understanding and accompanying documentation produced from deep-dive sessions around existing platform.
- Increased developer productivity attributed to the ability to stand up and run individual components locally on developer laptops.
- A clean, well-understood and documented new code base.
Phase 2: Iterate feature set and optimize performance
The phase 2 goal was to build upon the MVP feature set, adding in features required by BISSELL’s more complex connected products. These features included:
- Command and control – ability for users to start and stop device cleaning schedules.
- Device scheduling – ability for users to create cleaning schedules with the platform commanding cleaning schedules based on these schedules.
Along with the above features, the team needed to bring in other existing functionalities such as the complete suite of mobile APIs, device APIs, and the device management portal to enable the entire fleet to migrate to the new platform.
Following the phase 1 blueprint, the team worked backwards from problems and held deep-dive sessions to understand functionality in the existing platform to determine what features to replicate in the new platform. By leveraging the productivity improvements realized in phase 1, the team also completed the phase 2 implementation in 3 months and was ready to begin full-platform testing and migration.
Other key non-functional features implemented in the new platform:
- Implementation of best practices across the entire code base in areas of security and monitoring and logging across all microservices.
- Visibility into feature usage and correlation with costs.
- Ability to auto deploy copies of the entire platform stack to other environments (development and test sandboxes).
- Fully automated testing that included unit tests, integration tests (e.g. identity server interaction tests and API pairing tests to ensure correct writing of data to Amazon DynamoDB), and system tests (e.g. simulate actual user behavior at an HTTP level) to verify no deterioration in functionality and to ensure interactions between modules worked as expected.
Phase 3: Migrating the fleet with zero downtime
Migrating over 1 million registered IoT devices to a new cloud architecture is complex. Working with AWS Professional Services, BISSELL reviewed 3 options for migration:
- Iterative deployment: deploy CDF features as they are completed.
- Coordinated big-bang deployment: deploy the new mobile application, device firmware, and cloud solution at the same time.
- Cloud big-bang deployment: deploy the cloud solution as one complete deployment.
Each solution posed different risks, complexities, feasibility, costs, and timelines. The team collaborated closely to arrive at a balanced solution that best meet the needs of BISSELL.
The team decided to move ahead with the cloud big-bang deployment. They would address remaining tech debt in post go-live activities. BISSELL went live with the new platform with zero down time for consumers and their call centers received zero calls on issues related to going live.
The new BISSELL IoT platform based on the Connected Device Framework (CDF), met all of its target goals to scale on performance and costs. BISSELL reduced its AWS Lambda costs by 77 percent, and its Amazon DynamoDB costs by 65 percent; they reduced API response time by 50 percent. In the new development environment, the development cycle time is now minutes instead of days. In production, they can now resolve issues in hours instead of days. Through appropriate logging patterns and detailed alerts, they improved platform maintenance.
BISSELL’s collaboration with AWS has put the BISSELL IoT platform in a position to scale past its 1 million connected devices goal. The platform provides a better experience for consumers and helps them realize more value from their connected cleaning devices.
To learn more about AWS IoT services and solutions, visit AWS IoT or contact us. Also, learn more about how BISSELL built scalable, performant, and cost-efficient REST API for IoT Platform in the second post of this series
About the authors
|Ramesh Chinnasamy is a seasoned leader for Global IoT practice within the AWS Professional Services Global Specialty Practice. He leads IoT solutions for our customers as well as develop best practices & packaged IoT solutions. He helps our customers and partners to deliver end to end IoT solutions from the edge through to the cloud to achieve business outcomes.|
|John Rotach is a Senior Application Architect working in the Sustainability Global Specialty Practice in AWS Professional Services. He has been with professional services for 5 years helping customers architect and build IoT and sustainability applications on AWS. Prior to joining professional services John was a software development engineer who helped to launch the AWS IoT service.|
|Mike Ply is a Associate Director of IoT at BISSELL, leading teams focused on connecting IoT products to provide exciting and unique experiences. Before joining BISSELL, he lead teams in healthcare to deliver innovative digital solutions to improve the health of the community. He also worked in Automotive to define a reusable software architecture for embedded devices. Mike is passionate about improving and innovating on digital experiences to simplify and improve life’s everyday tasks.|