It’s been a full year since the Team Sherlock @ Nutanix launched our initial release of Xi IoT back in November 2018. The first stage of this rocket has traveled quite far since its launch, so let’s review all the key milestones of the last year!
In case you’re wondering why the team bears the name “Sherlock”, guess who would process volumes of data and derive insights faster than anybody else?
The fundamental premise of Xi IoT is to enable you to deploy Apps closer to your data. The location and the volume of the generated data depends on your unique use-cases. After working with customers across different vertical markets, we’ve learned quite a bit about a variety of real-world use cases.
For example, retail stores are deploying video or infrared cameras for image processing to build interesting Apps to enrich their shopper’s in-store experience. Hospitals and Clinics want to streamline the patient experience during their office visits. Manufacturing Plants want to modernize their digital infrastructure of assembly lines. Further, customers want to run parts of the Apps in a centralized locations like regional Private Data centers or Public Clouds like AWS or Azure or Google Cloud.
Most Apps have to process volumes of data, and it makes sense to have these Apps running as close to the data as possible for obvious reasons — and that’s where Edge Computing becomes very important architecture to consider.
These Apps need to produce inference (“Actionable data”) with the lowest possible latency (“Real Time Processing”), with least or minimum dependency on external networks. Edge is a perfect place to deploy these Apps.
On the other hand there are Apps which process volumes of data in a “batch”. e.g. Machine Learning Training Programs – which are long running, and resource intensive. Or Long term data archival process. Such Apps are deployed in the Public or Private Clouds.
Managing (hardware and software) infrastructure at these different locations is challenging as well. Some of the locations are so remote that sending personnel to service the infrastructure is very expensive. Customers want easy methods to manage such planet scale infrastructure and its life-cycle.
Let’s quickly review how Xi IoT solves Apps and Infrastructure Life Cycle management problems.
The beginning — Xi IoT 1.0 GA
We launched Xi IoT Platform in November 2018. In its debut, it provided rich set of essential “managed” platform services for operationalizing data processing Apps running on infrastructure deployed at planet scale.
It’s important to note the term “Managed” Services. As an App developer, you can assume these services to be available 24/7 wherever they are deployed. You don’t have to worry about installing, and patching these services. Xi IoT Platform will do it for you (of course, with your consent!)
“Managed” Runtime Services
Containers as a Service
If you have built Containerized App, all you need is to drop the Application yaml spec into Xi IoT Platform. Xi IoT Platform will deploy it wherever you want it to be. You can manage App’s lifecycle (e.g. updates) from the convenience of SaaS Portal — https://iot.nutanix.com.
Here is an example of an application running at 10 locations. You can even setup a policy to automatically deploy App instances on new locations as they are on-boarded.
Data Pipelines as a Service
Build modular Apps using Data (processing) Pipelines with Functions written in Python, Node.js, GOLANG by using built-in runtime environments or add your own custom runtime environments.
This service is built on top of Function-as-a-Service framework — which let’s you literally focus on snippets of code without having to provision any underlying software or hardware infrastructure.
“Managed” Data Services
Data acquisition service
Connect to various IoT Sensors, video cameras, external databases and so on and make the data available to Apps running close to it. Out of the box, system supports MQTT, RTSP, GigE Vision and so on. We work with our partners and customers, to add more protocols.
Kafka and NATS as a Service
External Cloud Connectivity Service
Connectors for Public Cloud Data Services like AWS Kinesis, Google Cloud Data Store or Azure Blob Store and many more. Reach out to us in case you need to push data to other data services (including data lakes in your private data centers.)
Tools for managing life-cycle of your Apps
Container Registry Profiles
Use your Continuous Integration and Deployment process to push new code (as container images) to standard (Docker) container registries (Docker, ECR, GCR and so on) and let Xi IoT pull the Apps directly where they will run.
Converging Edge and Cloud has never been simpler before. With Xi IoT, you can simply add a cloud profile, with just enough privileges to push data all the way from thousands of “edge” locations to a central data lake in your Public or Private Cloud.
The Platform supports connectivity to AWS (Kinesis, S3, AQS), Azure (Blob Store) and Google Cloud (Pub/Sub, Cloud Datastore). We work with our partners and customers to add support more services in Public or Private Clouds.
And, all of these services are available as software stack, ready to be deployed anywhere your data is. You get to choose what hardware (infrastructure) you want to deploy.
Xi IoT PaaS software stack can run as a virtual machine on any hypervisor in your private cloud or any Public Cloud or a qualified bare-metal server.
Year 2019 — Newly launched Xi IoT Products and Services
After the initial launch, Xi IoT team tackled another problem. How do we make the platform more accessible and available to the Application Developers?
Kicking off IoT Projects is hard. You would have to acquire real sensor devices, connect them to physical hardware boxes, install the runtime software (OS, Monitoring Software, Data Management, Security and so on) on these boxes and then build or buy Apps to run on this infrastructure. In addition, you may build a software and hardware configuration just for one specific use-case. If you need to deploy solution for another use-case, you may have to create another point solution. This approach may lead to infrastructure silos and repeated maintenance overheads.
Each of the above steps are keeping you away from your main goal – build interesting Apps, test with real data and deploy in production to enjoy the benefits of an IoT solution.
We launched Xi IoT Cloud Instance Service to solve this problem. You can sign-up for a free trial at https://www.nutanix.com/iot-trial.
Xi IoT Cloud Instance
What you get is fully provisioned Xi Service Domain Instance running in the Cloud with all of its platform services. You can quickly deploy your Apps and experience the simplicity of the Xi IoT Platform yourself.
Xi IoT Cloud Instance includes Xi IoT Application Library – a set of AI Apps made available to you by Xi IoT Product Team and our partners.
Xi IoT Application Library
Xi IoT Cloud Instance comes with few Apps and Data Pipelines to get you started. They are hooked up with Youtube-8M Video data-source. Modify these apps or deploy your own apps and see how you can use the Platform. Here are sample apps created by us and some of our users.
XI IoT Sensor Mobile App for iOS and Android
One of the challenges in developing IoT Apps is to acquire quality data to test the app with. E.g. if you have a trained machine learning model, you will need real world data to try the ml-models on.
To make it very easy and quick to test your machine learning models on samples of data, we shipped Xi IoT Sensor Mobile app (available for iOS and Android) which uses your phone’s camera as a video sensor allowing you to run ml-models on live or recorded video streams.
Typically machine learning model’s training process involves large data sets. For example, if you’re training an object detection model, you will need thousands of pictures in the data lake.
Using Xi IoT Data Pipelines, you can use Xi IoT Sensor Mobile App to capture live videos and have individual images (frames) sent to Public Cloud Services like AWS S3 or Kinesis or Azure Blob Storage or Google Cloud Datastore or a data lake in your private datacenter. You can use this image-data-set to train machine learning models using standard process offered by these Clouds.
Need real world data-set to train your Machine Learning model ?
Here is a sample Data Pipeline for populating AWS S3 bucket with images captured live from your phone’s camera.
Xi Service Domain
Those who are already familiar with the Xi IoT platform would have noticed a change in the terminology.
Xi Edge is now called Xi Service Domain.
While Xi IoT started off its journey with Edge Computing use-cases, it’s obvious that its set of rich platform services can be deployed wherever customers’ data is, not just the Edge location. Xi Service Domain provides an abstraction which emphasizes platform’s location agnostic nature. It helps visualize true power of a multi-cloud PaaS (Platform as a Service) architecture.
Xi AI Inferencing Service with ML Models Library
Xi IoT Service Domain is a software stack delivered as PaaS stack that can run on a variety of hardware infrastructure. Depending upon the use-case, you may need GPUs or CPUs to execute machine inferencing Apps.
Apps can use simple “infer” API execute machine learning models anywhere. The service abstracts underlying AI accelerators like GPUs, FPGA or SOCs so that customers can take advantage of advancements in the hardware technology for AI Acceleration.
Xi IoT Platform provides ML Models Library to manage distribution of Machine Learning models at scale. Developers can build model once, upload it to Xi IoT ML Models library and expect the Xi IoT platform to make the models available wherever the Apps or Data Pipelines are deployed.
Here is a sample Python function that uses Xi IoT infer API with machine learning model “objectdetect:v1.0” on image-data.
Application Developer Tools
Every platform built to run Apps must provide good set of App development tools. We are delighted to announce that we have made good progress on making these tools available to you. We would love to hear from you how we can help build more tools to make it easy to build and deploy Apps on Xi IoT Platform.
Xi IoT CLI
Xi IoT Provides a first class way for users to automate various tasks. Xi IoT CLI can be used to Add, Update or Remove various system objects like Projects, Apps, Data Pipelines and many more. We continue to add more and more capabilities in the CLI. Give it a try and let us know what you think. Download latest CLI from github.com.
Xi IoT Python SDK
Xi IoT API provides first class methods to manipulate (Add/Update/Remove) various objects in the platform. Infrastructure Administrators and Project Users can generate up to two API keys for API usage.
Real Time Log Monitoring
As a developer or operator of Xi IoT service, you can view real time logs of any application containers, running on any Service Domain, anywhere on the planet. Xi IoT Streams logs in real time over https so that it just works even if your Service Domain infrastructure is behind the firewall.
Application and Infrastructure Log Bundles
Real Time Log Monitoring features gives you access to live log but if you need prior logs for offline viewing, Xi IoT Platform provides quick way to download the entire set of logs for any application instance running on any Service Domain.
Features for Planet scale infrastructure management
Secure “Shell” access to Service Domain Console
By design, Xi IoT Service Domain doesn’t provide access to underlying infrastructure (Operating System, Kubernetes Cluster and so on) but there are situations where you must access the infrastructure to troubleshoot a problem. Xi IoT provides secure access to infrastructure using Remote Shell. This feature is enabled upon request and must be used only under exceptional circumstances where other platform debugging tools (Alerts, Events, Log Bundle, Real Time Log Monitoring and so on) have been proved not sufficient to troubleshoot a given problem.
Robust OTA Software Updates
Xi IoT lets you manage planet scale infrastructure where Service Domains are deployed at geographically apart locations. Xi Service Domain Software stack needs to be updated and underlying infrastructure components need to be updated to use new features or apply security fixes and so on. Many locations don’t have enough network bandwidth or have extremely high error network connectivity. It requires highly efficient, and robust software updates. Xi IoT provides “Download and Upgrade” style updates. As an Administrator you can download all the upgrade bundles to all the Service Domains. Once upgrade bundle has been downloaded to the Service Domain, Administrator can quickly perform an upgrade during any maintenance window.
Privileged Mode Apps
Out of the box, Xi Service Domains don’t allow Apps in privileged mode. But there are Apps which may need access to physical ports of the host system. For example, if your app needs access to USB, Serial or other physical ports for managing directly plugged in peripheral or sensor devices into edge hardware platform. If the feature is enabled for your account (reach out to us if you have such use-case), then individual Apps can ask privileged-mode access by including a special tag in the application yaml spec.
Multi-node Service Domains
While Xi IoT Platform 1.0 addressed planet scale infrastructure and App management, it didn’t address two problems:
- Scale out of infrastructure at any given location. There are use-cases which require efficient use of available resources. e.g. if a retail store needs to process video streams from 1000 cameras deployed in the store, the Apps running on that Service Domain must keep up with ingestion of Gigabytes of data produced every minute.
- Business critical Apps running at the edge need to be protected for high availability. Hardware failures are inevitable but the Platform must be resilient to the failures.
Xi IoT Platform now supports multi-node Service Domains. Such Service Domains can pool available resources — CPU, GPU, Memory and Storage to provide better scale-out infrastructure for Apps running on them.
Xi IoT Hands-on Labs
The Xi IoT labs are designed to give you hands-on experience with the Xi IoT platform and aim to provide real-world examples of how the platform could be used. Check them out at the Nutanix Developer Portal Labs page.
What would Year 2020 bring?
All new products and services launched in Year 2019 set the stage for what’s coming in Year 2020. We’re excited to take our platform not only to Edge-computing use-cases but also to private and public clouds. It’s a software PaaS Stack after all, it should be available wherever customers’ data is. There is no limit on what kind of Apps will run on this platform.
Team Sherlock will be busy putting together an exciting roadmap, launching delightful new products solving real world problems. I cannot wait to write about what’s coming.. stay tuned.
On behalf of Team Sherlock, I wish our awesome customers and partners Happy Holidays and a Happy New Year!
We would love to hear from you about your IoT journey and see if we can help in any way. Write to us at iot at nutanix.com .