Welcome!

@ThingsExpo Authors: Carmen Gonzalez, Yeshim Deniz, Elizabeth White, Zakia Bouachraoui, William Schmarzo

Related Topics: @ThingsExpo, Mobile IoT, Agile Computing, @CloudExpo, @DXWorldExpo

@ThingsExpo: Article

IoT Software Releases | @ThingsExpo #IoT #M2M #BigData #InternetOfThings

Developing software for the Internet of Things (IoT) comes with its own set of challenges

Developing software for the Internet of Things (IoT) comes with its own set of challenges.  Security, privacy, and unified standards are a few key issues.  In addition, each IoT product is comprised of at least three separate application components: the software embedded in the device, the backend big-data service, and the mobile application for the end user's controls. Each component is developed by a different team, using different technologies and practices, and deployed to a different stack/target - this makes the integration of these separate pipelines and the coordination of software updates for IoT more problematic.  How do you coordinate the diverse moving parts that must come together when your IoT product is updated?

Getting IoT to Flow
Electric Cloud helps our customers solve software delivery problems at a very large scale. Our integrated, end-to-end, DevOps platform - ElectricFlow - has proven to be a natural fit for orchestrating the complex pipelines that are common with IoT.

Pipelines
ElectricFlow 6.0 introduces Pipelines to allow you to automate end-to-end software development and delivery processes, enabling Application Release Automation (ARA) and Continuous Delivery (CD).  You can easily manage the software delivery of one or more applications using pipelines.

electricflow pipeline1

A pipeline is a series of high-level re-usable steps that run automated processes. Pipelines consist of one or more stages. Each stage has a stage plan with one or moretasks, an entry gate, and an exit gate.

Tasks are used to run automated build, test, and deployment processes.  The tasks within a stage plan are run in sequential order.

An entry gate and an exit gate exist for each stage. A gate may consist of one or more automatic or manual approvals.  When the tasks for a stage are completed and an exit gate requires approval before going to the next stage, the approvers are notified by email.

Pipelines provide several benefits:

  • Orchestration - determine who (or what) is working on the release process, what part they are doing, what is the status of that part, and what is the next step.
  • Visibility - determine how the software is performing, whether it is ready for beta or production, where there are performance issues, and what versions are available within the release process.
  • Control - determine whether the software is ready for integration, beta, preproduction, or production and whether the software passes the quality criteria at stage gates and has been approved by the appropriate users or groups.

Pipelines in Action
Let's walk through a real use case to see how ElectricFlow is used to coordinate an IoT release.

The Pieces
In our example, there are three teams that work on the major components of a car-based IoT product:

  • The embedded team develops the software deployed to electric cars. This software collects vehicle-specific information (battery charge, MPGe, etc.) and uploads it to the data center.
  • The backend data team develops the software deployed to the data center. This software collects, analyzes, and provides visualization for the data uploaded by the vehicles.
  • The mobile team develops the app deployed to the app store. This mobile app shows car owners real-time information about their vehicle, such as battery utilization.

For the demo, we assembled the following pieces running "v1" of the product:

iot-dem-vehicle-sw

The vehicle - the embedded software in the vehicle is simulated by a Raspberry Pi with a Blink(1) light indicating the battery charge and pushing information to the DB

iot-demo-backend-sw

The data backend- simulated by a database running in AWS EC2, and a Dashing dashboard to visualize the data

iot-demo-mobile-app-sw-1

The mobile app - an iOS application running on an iPhone and showing real-time data from the DB in EC2

Working in Isolation
Each team uses the appropriate automation mechanism to build, test, and deploy their software in isolation from the other teams.

The vehicle and backend data teams:

These teams use ElectricFlow to:

  1. Model their applications' tiers and components
  2. Define their processes used to build, test, and deploy their applications
  3. Define and run pipelines to execute these processes across the various stages of development.

application-model-iot

The backend data application model

deployment-process-iot

The vehicle deployment process

backend-app-pipeline

The backend data pipeline

The mobile application team:
Using Ship.IO, the mobile team builds, tests, and deploys their solution to various test devices as well as to the App Stores.

mobile-app-builds-ship1

The mobile app jobs - build triggered automatically with each commit to Git.

mobile-app-ship2

The mobile app build/test/deploy process

Bringing it all together
While lower environment development and testing is done using isolated pipelines, all three applications must converge, and be tested, before the final push to production. ElectricFlow manages this Release Pipeline.

release-pipeline

The Release Pipeline stages and gates in ElectricFlow

For the purpose of the demonstration, we update each one of the three components comprising the IoT service to form a "v2" of our product. Once all three updates have passed their pipelines, we are ready to stage our coordinated release.  To do that, we run the Release Pipeline.

run-pipeline

A run-time instance of the Release Pipeline

The applications use snapshots to deploy the exact same bits and processes in each stage of both the individual team pipelines and the coordinated Release Pipeline.  The exact same applications are deployed and tested from Development through to Production.  This ensures repeatability and consistency, and greatly reduces the risk of failures when deploying to Production.  When the applications converge, a successful deployment to the Staging environment is followed by a successful deployment to Production.

pipeline-success

A successful Release pipeline

The ElectricFlow environment inventory shows the version of each component that is currently deployed.  This visibility is powerful both when debugging failures and providing data for audit reports.

release-inventory

The inventory for a Staging environment

Automate everything
This example represents the moving parts that are typical of an IoT service.  Coordinating the software delivery for these moving parts poses a challenge, particularly when cross-teams integration is required, and especially at scale.  While manual coordination is typically used to address this, manual tasks are slow and extremely error-prone.  Automation is the key to high-quality software being delivered at a rapid pace.

automate-the-internet-of-things

In the above demonstration, we see how ElectricFlow models an entire end-to-end IoT delivery lifecycle.  Pipelines orchestrate the development and subsequent convergence of multiple applications - from commit through test and deployment to production.  The simple and intuitive UI, along with the scalable automation of CI and deployment processes, makes ElectricFlow a natural solution for IoT software delivery challenges.

More Stories By Anders Wallgren

Anders Wallgren is Chief Technology Officer of Electric Cloud. Anders brings with him over 25 years of in-depth experience designing and building commercial software. Prior to joining Electric Cloud, Anders held executive positions at Aceva, Archistra, and Impresse. Anders also held management positions at Macromedia (MACR), Common Ground Software and Verity (VRTY), where he played critical technical leadership roles in delivering award winning technologies such as Macromedia’s Director 7 and various Shockwave products.

IoT & Smart Cities Stories
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
Enterprises have taken advantage of IoT to achieve important revenue and cost advantages. What is less apparent is how incumbent enterprises operating at scale have, following success with IoT, built analytic, operations management and software development capabilities - ranging from autonomous vehicles to manageable robotics installations. They have embraced these capabilities as if they were Silicon Valley startups.
Chris Matthieu is the President & CEO of Computes, inc. He brings 30 years of experience in development and launches of disruptive technologies to create new market opportunities as well as enhance enterprise product portfolios with emerging technologies. His most recent venture was Octoblu, a cross-protocol Internet of Things (IoT) mesh network platform, acquired by Citrix. Prior to co-founding Octoblu, Chris was founder of Nodester, an open-source Node.JS PaaS which was acquired by AppFog and ...
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-c...
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...