As a relatively new technology, the Internet of Things (IoT) faces many challenges. IoT networks are characterized by a big number of devices. Each of the devices produces huge amount of events. Therefore, scalability is one of the key requirements of IoT applications. Cloud computing could help us achieve scalability by providing virtually unlimited resources. The microservices architecture is becoming increasingly popular for cloud deployments of applications. We often want to extract real-time information from the events that are coming from IoT devices. It would be harder to infer useful information from the enormous amount of raw events, if we store them in a database. Complex event processing enables us to analyze the events as the stream of events flows and to infer meaningful information from them in real time. To demonstrate all of this in practice, we developed an IoT application, which follows the principles of microservices architecture. It is able to simulate events, consume them, do complex event processing and display visualizations. In order to balance the load between the instances and achieve scalability and elasticity, the microservice which is consuming the events can be scaled up and scaled down.
|