1 November, 2019

October 2019 change log

Major flespi improvements in October 2019

The whole month of October the nature in Belarus was changing its color from dark green to bright yellow and flamy red. And now it is the most beautiful time of the year. But despite such picturesque outdoor life (or maybe thanks to it), the flespi team was working hard on connecting our second data center to the first one.

But as usual, let me start from the monthly statistics — we finished the month with 99.9992% platform uptime. A tiny 22-second downtime on the last day of October was caused by works on the flespi metadata database automatic failover subsystem.

  • As you may remember, in September we spent the whole week designing the architecture of the platform to seamlessly operate in multiple data centers. Now we are approaching this goal step-by-step making a lot of internal changes usually invisible form the outside. In October we installed, upgraded, and synchronized the configuration of the second data center with the first one. We count it as a big step forward as currently two datacenters and three remote servers that we operate share the same HA configuration — the same base firewall rules with auto-generated local rules, the same services provision via ipvs, and the same automatic HA configuration between primary and secondary gateway/routers in our data centers. We switched from good old well-known but slightly slow iptables to modern nftables for the firewall. By the way, the High-Availability of the router services is ensured via the ancient heartbeat daemon in automatic mode that is as robust as Kalashnikov. As a result, switching from the primary to the secondary router is virtually unnoticeable as established connections are synchronized in real-time.
  • If it sounds too complicated, just look at this article describing the Fleet Overview platform. This platform implements a very interesting concept — joining the data from multiple complex fleet management platforms into the same user interface. Besides, it can be used as a good frontend over the flespi backend that is capable of utilizing many of the flespi features including analytics.
  • If you still haven’t registered on the flespi forum, I recommend you to do so. Now that we’ve implemented sending notifications about forum activities directly to Telegram messenger, you’ll stay updated on all discussions and/or tags you\ve chosen even with email notifications turned off. Since the forum is open-source and all Telegram plugins were outdated, we decided to implement this plugin by ourselves. The result was, of course, contributed to the forum community but it was not an easy task since the forum is written on a modern version of object-oriented PHP and this was also a new experience for our team. Anyway, go ahead and register there, authorize via Telegram, and receive all our platform and protocols changelog notifications almost in real-time.
  • To simplify bulk devices creation in flespi, we released a simple web-based script where you can post the configuration of your devices in a step-by-step fashion directly from Excel. Although the best way to import data into flespi is by using the REST API, this script may simplify your migration a bit. For Linux users, the script provides a curl command sample that can be pasted directly into the terminal.
  • The new PVM-II engine is now operating in parallel to its predecessor waiting for connections in our telematics channels. We already started implementing new protocols integrations using the new one whenever possible. This slows down the process a bit since together with code generation we still need to add new assembler instructions but it moves forward quite fast. It means that we are very close to the end of our longest project that took as much as two years to implement. Once finished we will have a cool tool that will be able to stack protocols together, parse binary data in MQTT payloads, perform remote devices configuration via UDP and a lot of other features we were missing in original pvm engine.
  • I'm sure that everybody who uses flespi via REST API follows this thread where we post changes to the telematics gateway API, but nevertheless, it’s worth mentioning that we are changing the streams API to make it simpler and intuitive as we have a lot of streams operated via API only.

In November we will continue integrating hundreds of small things to approach our primary goal — cloud-based multi-datacenter installation. This time the updates will mostly be related to the database engine and MQTT broker services as they are our primary internal services. As a part of this, we are upgrading Debian OS on all our servers to the current stable version released this summer.