Nutanix Xi IoT: An Overview for Developers

Bao Phan
nutanix-iot
Published in
7 min readApr 26, 2019

by Rohit Goyal, Principal Product Marketing Manager, IoT Platform

The Nutanix Xi IoT platform reduces the complexity of deploying edge computing solutions. It provides the developer with easy deployment through Docker containers, flexible data pipelines, reusable data transformation functions, a pluggable machine learning architecture and easy to use Application Program Interfaces (APIs) that reduce the development and deployment time of applications to the edge at scale.

Developing for a Diverse Internet of Things

Like the internet itself, the Internet of Things (IoT) contains a wide variety of edge devices with a variety of different configurations that use different communications protocols and have different physical interfaces.

Obtaining the data in a consistent form across devices can be a complex task all on its own. In many cases, the stream of data from these devices must be transformed into a format that is usable to the application as well. Keeping track of all these devices, the data streams, and the applications that deal with them, can be an arduous task that mostly falls on the developer.

On top of that, the time it takes to capture, transport, process and respond to data from edge devices creates latency. This latency affects the ability to respond to an event or information in a timely fashion. If the data is piped and processed in the cloud, that window of time, which could have been used to take action, may have passed.

By distributing the computing part of the problem to the edge, we can execute detection-decision-action logic with limited latency. For example, immediate detection might mean a defective product never leaves the production line, much less makes it to the customer. The consequences of receiving a defective item can range from inconvenient to catastrophic. If it is an article of clothing, the article might require a return. While this may have a range of negative consequences to the business, it does not compare to the consequences of having a defective part installed in an aircraft.

Nutanix Xi IoT Changes the Edge Deployment Model

Edge computing of data created by IoT edge devices can clearly benefit business, but as we mentioned earlier, as the number and diversity of devices grows, so does the workload for developers attempting to write applications for these devices. Configuring devices, networking devices, managing devices and data streams … these tasks distract developers from the primary task at hand: creating the applications that use IoT data to serve the needs of your business.

This figure shows the traditional IoT deployment. The sensors send data to the IoT gateway. The IoT gateway provides a set of services such as translation of communications protocols, security, and data filtering. All the decision-based data processing occurs in the cloud, and frequently the developer is responsible for coding solutions on the entire stack: IoT devices, gateways, and cloud resources.

Consider the edge computing model below. Computing power is deployed to the edge platforms. Data processing and analysis that require low latency are performed within the application running on the edge. Data also passes to the cloud where it can be integrated with other data sources, such as other IoT devices, or enriched by other data processing workflows for the development of new knowledge.

Nutanix Xi IoT Simplifies the Deployment of Applications to the Edge

The Nutanix Xi IoT platform fundamentally changes how developers create IoT edge applications. The figure above depicts the deployment of Xi IoT solutions. It has the following components:

The Xi IoT platform is deployed to the edge using the infrastructure and application management control dashboard running in the cloud. This dashboard provides the ability to deploy applications to thousands of edge locations (as a VM or on bare metal servers) through a user-friendly interface. You can also push containerized applications through the Xi IoT APIs.

A common developer task is configuring the edge devices to obtain data streams. The Xi IoT infrastructure and application lifecycle management dashboard simplifies this task. Rather than having to write code, the developer configures the edge platform by simply selecting the appropriate parameters. Xi IoT uses these parameters to assemble the data stream.

Xi IoT also provides the data storage of the streaming data so that it can be acted on by the data pipeline or containerized application. By creating a level of abstraction between the developer and the environment, Xi IoT simplifies the developer’s tasks.

The developer uses the data pipeline portion of the Xi IoT solution to specify the transformations needed to make the data usable by the application. To do this, the developer can create custom transformation functions, or use one that is already available in the Xi IoT library. Xi IoT supports functions written with Python, Go or JavaScript.

You can create transformation functions in small increments and then chain them together, allowing for a low code solution to be built, tested and maintained. Transformations can be reused, cloned and specialized providing further efficiency for the developer.

As an advanced option, developers can also create transformations as containerized applications that are deployed directly to edge locations.

The data pipeline makes the appropriate data available to the function defined in the Xi IoT dashboard or the containerized application running on the edge. The data can be kept in your private data stores (perhaps for compliance tracking) or easily connected to external cloud services, such as AWS Kinesis, for integration with machine learning or other analytical techniques.

Nutanix makes use of Kubernetes to create an environment that allows the developer to run containerized applications on the edge. The developer creates a containerized application using the popular Docker container technology. The containerized application itself performs any necessary data transformation and analysis, and the container is deployed through Xi IoT. So if a developer knows how to create a container, they’ll know how to run applications on Xi IoT in short order.

The key to Xi IoT is that it simplifies the deployment of applications to the edge by reducing the developer’s involvement in the deployment itself. Instead, the developer gets to focus most of their attention on the key data transformations needed to power their business objectives.

Xi IoT Edge in Action

A typical use of edge computing where Xi IoT shines is in the use of cameras and image analysis. Example scenarios include detecting manufacturing defects or retail analysis of line congestion, dwell time, or display traffic. A strength of Xi IoT is that it removes the architectural considerations from the application and data transformations. Xi IoT lets you deploy a single application package to multiple disparate environments.

For example, a developer could create an application that examines a stream of time-series data — it ingests a real-time video stream, converts the stream into images, analyzes the images, and performs some additional actions based on the analysis. It could alter production if there is a product defect, alert a salesperson that a customer needs assistance, or simply sort the images into categories for further processing by other application pipelines.

Let’s dig into the details of this example application: The developer wants to transform the real-time video stream into images, then select specific areas of the images to analyze further. Data flows from the cameras and other sources to the edge platform. The data often needs to undergo some transformations to be used by the application.

In a traditional edge application, the data might be streamed to central storage. An application service picks up the video data, transforms it into images, and saves the images to another storage location. Another service analyzes the images, kicking off more workflow services and potentially additional storage. Developers are responsible for specifying, configuring, deploying and managing each of these services … on top of developing, deploying and managing.

With Xi IoT, the developer configures the edge platform using parameters selected in the infrastructure and application lifecycle dashboard. Setting up the edge platform is often as simple as clicking a few buttons. The video feed for image processing is handled by Xi IoT and delivered in a standard format. If custom applications are required, they can be configured as standard Docker containers and deployed through Xi IoT.

Data transformations are performed in the Xi IoT data pipeline. This is where developers will focus most of their time, and Xi IoT greatly simplifies the development process. Developers code and deploy just the specific functions needed to handle their data transformations. In this case, the developer only has to handle the image analysis. As they’re developed, these functions become a library of reusable code modules for performing the data transformations. There is no further application server configuration or deployment.

After processing, the data pipeline is used to pass data to whichever cloud storage the company chooses. Xi IoT can pipe data to a variety of cloud types including AWS, GCP, and managed/on-premises private clouds using standard APIs. The details of transporting the data to storage are, again, abstracted by Xi IoT so developers don’t have further development tasks.

In the Xi IoT version of this scenario, the developer’s time is almost exclusively focused on developing the actual image analysis code. In addition, all of the processing occurs on the edge platform, meaning you get the advantage of low-latency edge computing without having to configure and deploy applications for individual devices.

Simplifying Edge Computing

The diversity of edge devices makes deploying applications difficult. Nutanix Xi IoT provides the developer with an environment that handles these complexities and reduces them to selections on a dashboard — freeing the developer to focus on what they do best, creating applications that transform data into decisions.

Originally published at https://developer.nutanix.com on April 26, 2019.

--

--