in a recent post I mentioned the excellent value provided by a Scaleway ARM-based server instance (https://nicbkw.com/serious-cloud-presence-for-e2-99-month/). ThingSpeak (https://thingspeak.com) is well-known in the IoT world as an open source “Internet of Things” application and API to store and retrieve data from things using HTTP over the Internet or via a Local Area Network. With ThingSpeak, you can create sensor logging applications, location tracking applications, and a social network of things with status updates. Docker is a great way to abstract your solution into easily defined virtual containers (https://www.docker.com/).
Thingspeak is open-source and the install is available for download (https://github.com/iobridge/ThingSpeak). It has proved to be a scaleable architecture, built on Puma/Ruby on Rails with a MySQL database.Thingspeak in an x86 Docker environment is already supported, but I struggled to find anything similar for ARM.
So, I adapted the x86 install, replacing the required base images with two available for ARM architecture on Docker hub (https://hub.docker.com/). It was also necessary to add ruby on rails to the install. The resulting Docker build scripts are here: https://github.com/nicbkw/docker.thingspeak
Be aware that the install takes around 30 minutes due to the need to build and compile some components from source for the ARM platform. I would try this on a Raspberry PI, but mine are both in use ;-).
Say Internet of Things and understanding is split into: “my refrigerator will order milk over the internet” or “hackers can take control of my car”, but mostly “yeah – already got that to control my central heating”. Techies (like me) just go misty-eyed over all of these new gadgets.
IoT is much bigger than all of this. Over the past three years, enterprises have had to learn how to manage employees own devices connecting to corporate WiFi. This has required a huge uplift in WiFi bandwidth requirements and the ability to recognise and control access for many more devices as employees look for corporate data (email, CRM, price lists, etc.) on their smartphones and tablets.
Now imagine the mulitple of devices if every room, corridor and stairway has lighting, heating, aircon, occupancy and door locks advise and control through IoT devices. Then consider IoT signalling maintenance requirements of drinks and snacks machines. Car parks using IoT to show empty spaces. The list goes on; how will enterprise IT admin connect these devices through corporate WiFi?
The data rate will be small (and hopefully each device will talk to an internal gateway server, not over the internet) but each device will have a unique physical address and a requirement for an IP address – there will be a need to consider IPv6. Is your enterprise network IPv6 capable? Does your DNS allow IPv6 mapping?
IPv6 was first described in 1998 (Internet Protocol, Version 6 (IPv6) Specification,S. Deering, R. Hinden (December 1998)) – but how many enterprise networks are capable of supporting this extended IP addressing scheme?
I access the internet via BT Business Broadband; testing my browser capability using http://test-ipv6.com/ shows that BT DNS supports only IPv4 name resolution. So I just have to wait for BT to enable IPv6 addressing – or should I consider DNS that is already IPv6 capable? As an enterprise, you have to do this now!
For a way forward with IPv6, take a look at: https://www.opendns.com/about/innovations/ipv6/
I am a bit of a geek and consequently end up trying new hardware, apps and frameworks all the time. One issue with this is maintaining a reliable OS image. I am currently fiddling about with IoT hardware that runs a trusted connection to a web server to avoid broad internet access. Evaluating each new framework inevitably results in library inconsistencies and unstable platforms with unexpected errors. One way forward is to run in containers and consensus is that Docker (https://www.docker.com/) is the leading solution.
Recently, I was looking to run Docker on ARM platforms. Why ARM? – great return out of extremely lightweight, low-cost computing platforms. Earlier this year, hypriot (http://blog.hypriot.com/post/dockercon2015/) showed more than 2,000 docker containers running static web servers on a single Raspberry Pi2. OK – an interesting exercise.
For a cloud server with dedicated hardware, take a look at Scaleway (https://www.scaleway.com/imagehub/docker/) – they build their own hardware and each user gets their own 4 ARM cores, 2GB memory, 50GB SSD disk, 1 reserved public IPv4 and 200Mbit/s un-metered bandwidth (https://www.scaleway.com/features/) for €2.99 /month – this is good stuff!