The Internet of Things (IoT) describes a conceptual world where devices of all sorts, from your cell phone to your automobile, from the security sensor in your house to the GPS-enabled wearable on your wrist, are constantly connected to the Internet. There, each device stores vital data about itself and the processes it is designed to monitor within a larger world. People or algorithms can then analyze this data in order to identify trends and predict future events, allowing the device to anticipate its user’s needs and behavior.
By 2020, Gartner expects nearly 20.8 billion devices around the world to be IoT enabled, and still more studies suggest a number as high as 1 trillion. Regardless of the actual growth rate of IoT, it remains clear that a suitable, long-term, and scalable solution is necessary in order to account for the high volume and expected proliferation of IoT devices, their communication protocols, algorithms, and analyses of metrics.
Recently, a client came to ClearScale with that exact intent in mind. Their series of IoT-ready devices were slated for production and deployment, but they were concerned with how they would capture, process, monitor, and report the required data. They turned to ClearScale to see how we could leverage our experience with the AWS platform in order to provide a robust and scalable cloud solution for their long-term needs.
As always, ClearScale — an AWS Premier Consulting Partner with extensive IoT project experience — began working with the client to understand their goals and to identify not only their requirements but also what was needed from an AWS Services perspective. In this case, we knew we could utilize the AWS IoT services, a platform that has been developed by Amazon to meet the IoT needs of customers. By providing secure, bi-directional communication between devices and the AWS Cloud, it accomplishes the main functionality required for any IoT implementation.
During our consultation with the client, we determined what type of communication protocols and business rules were needed, what endpoints were expected, and what naming conventions were required. We also discussed the kinds of messages that would be sent and received by devices, the expected behaviors of those communication patterns, and ultimately, what kind of security was necessary to secure the network of devices.
The IoT Solution
Since the devices themselves had yet to be built, the IoT solution to support them would need testing on a precursory system. This meant that ClearScale had to build a device emulator based on the specifications the client had provided. Not only would this allow for end-to-end testing of the implementation (load and regression), but it would also serve as the subsequent prototype when the devices were developed later on.
Importantly, the device emulator was developed using the AWS Lambda functions, an existing solution provided by AWS that allowed ClearScale to quickly develop and deploy an emulator far faster than traditional means. Taking this approach meant that for each Lambda function deployed it could emulate up to 100 devices, allowing robust scaling during testing of the IoT solution. Used in conjunction with AWS S3 web console, it allowed the client to quickly tune and launch device emulation sessions.
To further support the IoT approach the client requested, ClearScale implemented an AWS DynamoDB to persist the rules that the business determined were necessary for communication protocols, as well as an associated web console to allow an administrative user to manage the rulesets.
Using the AWS IoT Devices Registry, ClearScale then configured the system to allow devices to store system attributes, unique identifiers, automatic certificate registration, and automatic attachment of the device to a root devices group.
Leveraging the AWS IoT Rules Engine, ClearScale then implemented the alarm rules logic, including a system update sent to the device registry when certain alarms were triggered, as well as statistical logging. ClearScale also developed a process to have the logs written to AWS Elastic Search and the Rules Engine to support SMS, Email, and Push Notification messaging based on the client’s preferences.
Providing all of this functionality was important in order for the devices to effectively communicate according to the client’s parameters. In order to truly understand how the data was manipulated and what patterns or trends were active in a population of devices, ClearScale opted to use Kibana as a metrics platform to display the data graphically. The entire solution was monitored by Amazon Cloudwatch to monitor key system metrics.
The Web Application
Along with communication between devices and other IoT implementation, management of the information and accessibility were also crucial aspects and were addressed with a robust web interface. As such, ClearScale embarked on an effort to develop and deploy a solution that would serve as the middle graphical interface tier between the data and the client’s internal user base.
The JVM Web application required not only the ability to log who was using the system and what actions they took, but also a security layer in order to properly grant authorization to key groups of users. Using this interface, a client user could manage groups or subgroups of devices, as well as alarm and notifications rules, and have everything update in real-time. To do this, several interface layers were created between the web application, the Amazon DynamoDB, and the AWS IoT. This not only allowed for the creation of new rules but also provided the ability to restructure rulesets and visualize a tree layout of how the devices were connected to each other and the IoT backend.
The Final Implementation
Although the solution was robust and accomplished the needs that the client defined at the onset, ClearScale had to make certain that the entire solution would serve their needs for an extensive period of time.
During final implementation, ClearScale set up and configured AWS Virtual Private Cloud (VPC) and ECS clusters for robust scaling. We also configured the services for the AWS IoT gateway, built and deployed Jenkins scripts for integration into ECS, set up monitoring via Amazon Cloudwatch and Cloud Trail, set up and configured the Docker registry, and then used Cloud Formation to deploy a complete end-to-end development pipeline for a true Continuous Integration (CI) environment so that our client could easily maintain their development environment going forward.
Our work was not complete until robust, end-to-end testing was completed at every step of the project to ensure that our infrastructure and delivery were defect-free and aligned with the client’s goals set forward at the project start. Furthermore, we spent a substantial amount of time documenting how to use the system so that non-developers would be able to manage the business needs going forward.
At ClearScale, we believe in empowering our clients by providing them with more than just their own requirements. We believe that in order for a robust, scalable solution to be successful in the long term, it must be accompanied by education. Educating the client on how to best leverage the tools we provide them is the best way to make sure they can find new and better ways to use them in the future. At ClearScale, we believe this is the definition of true partnership, and it’s the only way to ensure we are providing solutions that truly make your business succeed and grow.