From the Blogosphere
IoT Software Releases | @ThingsExpo #IoT #M2M #BigData #InternetOfThings
Developing software for the Internet of Things (IoT) comes with its own set of challenges
By: Anders Wallgren
Dec. 11, 2015 01:00 PM
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
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:
Pipelines in Action
For the demo, we assembled the following pieces running "v1" of the product:
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
The data backend- simulated by a database running in AWS EC2, and a Dashing dashboard to visualize the data
The mobile app - an iOS application running on an iPhone and showing real-time data from the DB in EC2
Working in Isolation
The vehicle and backend data teams:
These teams use ElectricFlow to:
The backend data application model
The vehicle deployment process
The backend data pipeline
The mobile application team:
The mobile app jobs - build triggered automatically with each commit to Git.
The mobile app build/test/deploy process
Bringing it all together
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.
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.
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.
The inventory for a Staging environment
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.
SOA World Latest Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week