Usually, we think about IoT applications as something specially designed for low power devices with limited capabilities. IoT devices might use a different CPU architectures or platform. For this reason, we tend to use completely different technologies for IoT application development than for services that run in a data center.

In part two, we explore some techniques that allow you to build and test contains for alternate architectures such as ARM64 on an x86_64 host. The goal we are working towards is to enable you to use the same language, framework, and development tools for code that runs in your datacenter or all the way out to IoT edge devices. In this article, I’ll show building and running an AArch64 container image on an x86_64 host and then building an RPI3 image to run it on physical hardware using Fedora and Podman.

Continue reading “IoT edge development and deployment with containers through OpenShift: Part 2”

Usually, we think about IoT applications as something very special made for low power devices that have limited capabilities. For this reason, we tend to use completely different technologies for IoT application development than the technology we use for creating a datacenter’s services.

This article is part 1 of a two-part series. In it, we’ll explore some techniques that may give you a chance to use containers as a medium for application builds—techniques that enable the portability of containers across different environments. Through these techniques, you may be able to use the same language, framework, or tool used in your datacenter straight to the “edge,” even with different CPU architectures!

We usually use “edge” to refer to the geographic distribution of computing nodes in a network of IoT devices that are at the “edge” of an enterprise. The “edge” could be a remote datacenter or maybe multiple geo-distributed factories, ships, oil plants, and so on.

Continue reading “IoT edge development and deployment with containers through OpenShift: Part 1”

As enterprise applications become larger and more distributed, new architectural approaches like reactive designs, microservices, and event streams are required knowledge. The Eclipse Vert.x framework provides a mature, rock-solid toolkit for building reactive applications using Java, Kotlin, or Scala. Vert.x in Action teaches you to build responsive, resilient, and scalable JVM applications with Vert.x using well-established reactive design patterns.

Vert.x in Action teaches you to build highly-scalable reactive enterprise applications. In this practical developer’s guide, Vert.x expert Julien Ponge gets you up to speed in the basics of asynchronous programming as you learn to design and code reactive applications. Using the Vert.x asynchronous APIs, you’ll build services including web stack, messaging, authentication, and access control. You’ll also dive into deployment of container-native components with Docker, Kubernetes, and OpenShift. Along the way, you’ll check your app’s health and learn to test its resilience to external service failures.

There is a major push in the United Kingdom to replace aging mechanical electricity meters with connected smart meters. New meters allow consumers to more closely monitor their energy usage and associated cost, and they enable the suppliers to automate the billing process because the meters automatically report fine-grained energy use.

This post describes an architecture for processing a stream of meter readings using Strimzi, which offers support for running Apache Kafka in a container environment (Red Hat OpenShift). The data has been made available through a UK research project that collected data from energy producers, distributors, and consumers from 2011 to 2014. The TC1a dataset used here contains data from 8,000 domestic customers on half-hour intervals in the following form:

We are seeking input from Internet of Things (#IoT) developers to better understand their needs for software and related tools. Whether you’re a hacker instrumenting your home with Raspberry Pi, or an IT developer working on Industrial IoT solutions, we want to know how you’re using open source technologies to build your IoT solution. The output from this survey will help the open source community focus on the resources most needed by IoT developers.

The role of applications has changed dramatically. In the past, applications were running businesses, but primarily relegated to the background. They were critical, but more operational in the sense that they kept businesses running, more or less. Today, organizations can use applications as a competitive advantage. In fact, a well-developed, well-timed application can disrupt an entire industry. Just take a look at the hotel, taxi, and movie rental industries respectively.

Last month was Arm TechCon, the annual developer conference showcasing offerings from Arm and its partners. Arm laid out its vision and strategy to achieving even greater integration in its processors and circumventing the slowing Moore’s law. As always, there was a bevy of new product announcements but overall, the show seemed to lack the energy of the last few years and especially the excitement of last year after Arm was acquired by Softbank. For example, there was no big vision keynote like the one last year from Masayoshi Son (Chairman & CEO of Softbank) who had talked of IoT enabling a Cambrian Explosion (which enabled thousands of new species on Earth), leading to 1 trillion IoT devices in 20 years.

In architecting end-to-end Internet of Things (IoT) solutions, one of the biggest challenges is how to integrate IoT data with data streams from enterprise systems and external sources. Traditionally, businesses have used an enterprise service bus (ESB) and service-oriented architecture (SOA) to integrate and connect different systems and applications. However, this integration approach, due to its complexity and time-consuming implementation cycle, is not suitable for the rapidly moving needs of digital business imperatives like IoT. Given IoT’s adaptive nature, agile integration should be considered.