Challenge
Agrifac has always considered the digital future, so it has equipped its Condor lineup with more than 400 sensors that report data such as engine temperature, liquid consumption, and GPS data. Agrifac historically implemented a solution that collects sensor data and stores it in the on-premise central database.
The database was hosted on bare-metal servers that needed to be maintained by the Agrifac team. The solution wasn’t scalable and reliable enough, resulting in availability issues and high costs for introducing new features into the customer-facing products that heavily relied on fresh sensor data.
Approach
Since the old solution wasn’t scalable and reliable enough, Agrifac realized that they needed to move from physical servers to a system that would address the limitations. They were aware of emerging players offering solutions built on the public cloud that advertised unlimited scalability and high reliability.
Agrifac came up with the following requirements:
- Simple interface for ingesting data to keep complexity on the machine software side low.
- Central storage in the cloud to store all sensor data.
- Access to central storage for all organizations within Agrifac, based on the roles and permissions to streamline the introduction of new data products.
- Ability to route data to various storages used as storage backends of their solutions. E.g. Postgres database.
- Unlimited scaling without a need to reimplement the logic of their solution.
- Seamless integration of new machines into the system, reducing the integration time and improving security.
- An extensible system allowing custom services specific to Agrifac to be added when needed.
- Standardized protocols for communication and data for all connected machines.
They decided to select the Spotflow IoT platform that covers all requirements out of the box.
Solution
Agrifac uses a private instance of the Spotflow IoT platform deployed to their Microsoft Azure cloud subscription. The instance was deployed within several days and was fully ready for use by the customer. The instance can be tailored to the solution's needs, and its size can be adjusted with zero downtime, providing a reliable and cost-effective solution.
It was important that the introduction of a new system didn’t disrupt end users. We migrated data from the legacy solution to the Spotflow IoT platform's Stream storage (Azure Blob) with minimal downtime to end-user applications by incorporating real-time replication.
The machine software needed to be updated to ensure communication with the Spotflow IoT platform. Since machine software has a long update cycle, we needed to support the old and the new implementation alongside. New machines and machines with updated software leverage all functions of the Spotflow IoT platform, such as the Spotflow device provisioning feature, improving solution security and allowing new machines to maintain their identities. The communication protocol was updated to MQTT, and the data exchange format to the Protocol Buffers.
All incoming data is persisted to the Stream storage and is readily available for organizations within Agrifac based on defined access policies. Some data used in custom Agrifac apps is routed to various storages, such as the SQL database Postgres.
Diagnostics data is routed to Grafana, which is used for machine monitoring. Grafana dashboards show aggregated stats from the fleet and important metrics from selected machines and help Agrifac personnel troubleshoot potential issues.
Results
- The always up-to-date data within the central storage is accessible to all organizations within the company.
- Operating and paying an in-house team to manage the system is unnecessary.
- Unlimited zero-downtime solution scaling with predictable costs.
- Seamless near-realtime data routing of selected data to Agrifac apps.
- Improved security and easy machine integration thanks to the Spotflow device provisioning process.
- Increased observability of the fleet thanks to Grafana dashboards, which consistently show up-to-date system vitals.
- Standardized machine-to-cloud communication and data exchange formats.