Welcome!

Agile Computing Authors: Carmen Gonzalez, Elizabeth White, Yeshim Deniz, Zakia Bouachraoui, Pat Romanski

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
The graph represents a network of 1,329 Twitter users whose recent tweets contained "#DevOps", or who were replied to or mentioned in those tweets, taken from a data set limited to a maximum of 18,000 tweets. The network was obtained from Twitter on Thursday, 10 January 2019 at 23:50 UTC. The tweets in the network were tweeted over the 7-hour, 6-minute period from Thursday, 10 January 2019 at 16:29 UTC to Thursday, 10 January 2019 at 23:36 UTC. Additional tweets that were mentioned in this...
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...
Japan DX Pavilion at @CloudEXPO Silicon Valley
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Where many organizations get into trouble, however, is that they try to have a broad and deep knowledge in each of these areas. This is a huge blow to an organization's productivity. By automating or outsourcing some of these pieces, such as databases, infrastructure, and networks, your team can instead focus on development, testing, and deployment. Further, organizations that focus their attention on these areas can eventually move to a test-driven development structure that condenses several l...
The term "digital transformation" (DX) is being used by everyone for just about any company initiative that involves technology, the web, ecommerce, software, or even customer experience. While the term has certainly turned into a buzzword with a lot of hype, the transition to a more connected, digital world is real and comes with real challenges. In his opening keynote, Four Essentials To Become DX Hero Status Now, Jonathan Hoppe, Co-Founder and CTO of Total Uptime Technologies, shared that ...
Over the course of two days, in addition to insightful conversations and presentations delving into the industry's current pressing challenges, there was considerable buzz about digital transformation and how it is enabling global enterprises to accelerate business growth. Blockchain has been a term that people hear but don't quite understand. The most common myths about blockchain include the assumption that it is private, or that there is only one blockchain, and the idea that blockchain is...
Never mind that we might not know what the future holds for cryptocurrencies and how much values will fluctuate or even how the process of mining a coin could cost as much as the value of the coin itself - cryptocurrency mining is a hot industry and shows no signs of slowing down. However, energy consumption to mine cryptocurrency is one of the biggest issues facing this industry. Burning huge amounts of electricity isn't incidental to cryptocurrency, it's basically embedded in the core of "mini...
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the competition, or worse, just keep up. Each new opportunity, whether embracing machine learning, IoT, or a cloud migration, seems to bring new development, deployment, and management models. The results are more diverse and federated computing models than any time in our history.
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...