Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
© 2014 IBM Corporation
IoT, Cloud, and DevOps
Device Application ManagementIn the Fog
Tim Hahn, IBM Distinguished EngineerChief Architect, Connected Car and Internet of ThingsIBM Software, Rational19 November 2014
© 2014 IBM Corporation2
IoT, Cloud, and DevOps
This Presentation
As computing complexity rises in devices, the need to actively manage the applications and code running in the devices also rises. This suggests that there will be more and more pressure to safely, dynamically, and securely update devices which are deployed into active service. In this session we will discuss some of the solutions in use for this activity and point out the advantages and disadvantages of various methods.
© 2014 IBM Corporation3
IoT, Cloud, and DevOps
IBM Internet of Things Reference Architecture
Design & Engineerthings and applications
addressing requirements management and
complex system design process
Securityintelligence and action
is critical from the device up through industry solutions
Analyze & Optimizeinformation from across the
lifecycle leveraging insight for action
Connect, Collect, & Commanda wide variety of devices with
different patterns of data volume, variety and velocity
Operateinfrastructure safely and securely from rollout to
production
Managethe lifecycle of assets ensuring safe, reliable
and predictive operations
Industry Solutions
Design & Engineer Operate Manage
Analyze & Optimize
Connect, Collect, & Command
Se
cure
Devices, Gateways, & Assets
Protocols
Better outcomes driven by data, analytics, and business process optimization
© 2014 IBM Corporation4
IoT, Cloud, and DevOps
Typical Architecture for IoT and M2MAcross Many Industries – and Fog Computing
DeviceDeviceDeviceDevice
Gateway(sometimes)
App Interface
Data
Collector(s)
App Interface
App Interface
Local Network
Broadband Network
Application(s)
Application(s)
Application(s)
© 2014 IBM Corporation5
IoT, Cloud, and DevOps
Converging Spaces, Technologies, and Teams
● Spaces● Systems development and engineering● Software development and lifecycle● Operations and asset management managing in-service equipment
● Technologies● Embedded devices● Networking technology● Cloud● Big Data and Analytics● Browser and Mobile device interfaces
● Teams● Mechanical and Electrical Engineers● Software Engineers● Data Scientists● Operations teams
© 2014 IBM Corporation6
IoT, Cloud, and DevOps
IoT and Cloud have many similarities … and a couple differences Cloud
– Software running in the systems
• may contain issues which need to be fixed
• may contain unforeseen vulnerabilities
• must allow for adding features after initial release
– Applications run remote from the developers and managers
– Applications run in virtual systems which can be quickly deployed, started, and reclaimed
IoT Devices
– Software running in the devices
• may contain issues which need to be fixed
• may contain unforeseen vulnerabilities
• must allow for adding features after initial release
– Devices run remote from the developers and managers, often without human intervention
Differences
– Devices require “fail-safe” modes of operation
– Devices require a “revert to factory settings” capability in case of un-recoverable upgrade/change event
© 2014 IBM Corporation7
IoT, Cloud, and DevOps
ContinuousEngineering
Operate Develop/ Test
Deploy
Steer
DevOps
ConnectConnect
CollectCollect
ManageManage
AssembleAssemble
IntegrateIntegrate
Internet of Things – Transforming Device and Software Development
© 2014 IBM Corporation8
IoT, Cloud, and DevOps
Device Management and DevOps Device Management
– Inventory
– Status
– Provision
– De-provision
– Change Ownership
© 2014 IBM Corporation9
IoT, Cloud, and DevOps
Device Management and DevOps Device Management
– Inventory
– Status
– Provision
– De-provision
– Change Ownership
DevOps
– Development
– Deployment
– Test
– Release
– Implementation
– Roll-out
– Update/Evolve
– De-commission
© 2014 IBM Corporation10
IoT, Cloud, and DevOps
Device Management and DevOps … Are Converging
Device Management
– Inventory
– Provision
– Status/Health
– Maintain
– De-provision
– Change Ownership
DevOps
– Development
– Deployment
– Test
– Release
– Implementation
– Roll-out
– Update/Evolve
– De-commission
Device features dictated by software/firmware
Updates expected/demanded while “in service”
Customers used as test/evaluation/feedback group
Build, deploy, enhance
Manage, maintain, support
© 2014 IBM Corporation
IoT, Cloud, and DevOps
11
Acceleratesoftware delivery –
for faster time to value
Balance speed, cost, quality and risk –
for increased capacity to innovate
Reduce time to customer feedback – for improved customer
experience
ContinuousCustomer
Feedback & Optimization
Collaborative Development
Continuous Release and Deployment
ContinuousMonitoring
ContinuousBusiness Planning
Operate Develop/ Test
Deploy
Steer
DevOps Continuous Feedback
ContinuousTesting
IBM DevOpsEnterprise capability for continuous software delivery that enables organizations to seize market opportunities and reduce time to customer feedback
© 2014 IBM Corporation12
IoT, Cloud, and DevOps
Techniques for Device Application Management
Embrace the need and potential for change throughout product lifecycle!
– Enable timely customer feedback
– Allow for device update while “in service”
Integrate Asset Management with Software Distribution and Deployment
– Inventory Tracking
– Version management and Tracking
– Update status
– Update schedule (maintenance, requested, and demand-driven)
Stage roll-out across inventory
– Smooth out demand on distribution servers/networks
– Allow for staged introduction in case of need for roll-back
Update processing on the device
– Always have a fail-safe operating mode
– Have multiple usable firmware versions, allow one to run while other is updated/verified
– Verify package before application/installation
– Establish “safe” times for cut-over (configured or adaptive)
© 2014 IBM Corporation13
IoT, Cloud, and DevOps
Update Scheduling
Maintenance-based
– Coordinated with inventory asset management
– Allows for lining up updates with scheduled “out of service” or “down-time” for devices – e.g. regular vehicle maintenance window
Requested
– Device-based request for latest update level
– User or service personnel initiated update at the device
– Allows for forcing and update at a time that is convenient/acceptable given device conditions
Required or Demanded
– Suitable for rolling out critical fixes or features, such as patching security vulnerabilities
– May be issued at a time that is inconvenient for the device – device must receive and schedule at next available acceptable window of opportunity
– Can be used to enable upgrade at server side by forcing migration of older firware levels in devices
© 2014 IBM Corporation14
IoT, Cloud, and DevOps
Handling Updates at the Device
Timing
– Explicit indication of in-service vs. out-of-service
– Location
– Network-connectivity
– Adaptive state – based on past usage profile
Staging
– Receive and verify before apply
– Use two-mode system with A/B images as well as a fail-safe fall-back mode
– Employ rules for falling back to previous level
– Switch to latest level at next start (some time after the receive/verify/apply)
– Next update replaces the level that is not in use/active.
Logging
– in-device, with update log, boot log
– in inventory/asset management
– periodic reconciliation
© 2014 IBM Corporation15
IoT, Cloud, and DevOps
Device Application Management
DevicesDevicesDevicesDevices/Gateways
DevicesDevicesDevices
Devices/Gateways
DevicesDevicesDevices
Devices/GatewaysAssetManagement
Software/FirmwareDevelopment
Level n Level m Level q
DeploymentAutomation
Fan-outServices
Fan-outServices
Fan-outServices
Delivery Pipeline
ApplicationsApplicationsApplications
AssetManagement
© 2014 IBM Corporation16
IoT, Cloud, and DevOps
Device Application Management - Summarized
Devices are more and more dependent on the software running inside of them
– Greater need to actively manage and update the software running in these devices
– Fog Computing introduces additional pressure to update firmware
DevOps is used extensively in cloud and mobile-based application environments
– Many techniques carry over effectively to the IoT space, learning from the mobile application management space
– Similar handling for IoT applications, extending into the devices themselves.
– Allows coordination between server-based components and device-resident components
Recommendations
– Include DevOps practices in the development, test, deployment, and management of device firmware/software
– Integrate hardware development, software development, and operations work-streams and systems
– Automate everything – build, analysis, deployment, testing, promotion
– Include fail-safe and core base OS in devices
– Prepare for roll-back and back-out processing of updates
© 2014 IBM Corporation17
IoT, Cloud, and DevOps
IoT, Cloud, DevOps, and Operations …
Leverage practices across disciplines!
© 2014 IBM Corporation18
IoT, Cloud, and DevOps
www.ibm.com/software/rational
© 2014 IBM Corporation19
IoT, Cloud, and DevOps
Useful Links
IBM IoT Foundation
– https://internetofthings.ibmcloud.com/
IBM Bluemix
– https://ace.ng.bluemix.net/
IBM SoftLayer
– http://www.softlayer.com/
IBM Cloud Technologies
– http://www.ibm.com/cloud-computing/us/en/
IBM Analytics
– http://www.ibm.com/analytics/us/en/
IBM MobileFirst
– http://www.ibm.com/mobilefirst/us/en/
IBM Social Business
– http://www.ibm.com/social-business/us/en/
IBM Security
– http://www.ibm.com/security/
IBM Asset Management
– https://www.ibmserviceengage.com/asset-management/learn
IBM IoT on Twitter
– http://twitter.com/IBMIoT
– @IBMIoT
IBM IoT Blog
– http://ibminternetofthings.tumblr.com
© 2014 IBM Corporation20
IoT, Cloud, and DevOps
© Copyright IBM Corporation 2014. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
www.ibm.com/software/rational
© 2014 IBM Corporation21
IoT, Cloud, and DevOps
IoT Depends on Cloud, Analytics, Mobile, Social, and Security
Cloud
– Many solutions depend on server-hosted services, databases, and web applications
– Handling thousands of devices requires strong horizontal scaling
Analytics
– IoT applications are often concerned with analyzing and visualizing sensor data from many devices
– Complex data analytics is used to find hidden correlations and also identify anomolies
– Models are developed to enable scheduled maintenance and avoid failure based on usage
Mobile
– Many applications utilize sensor information obtained from mobile devices
– Many applications provide a mobile device user interface to allow visualization and control of IoT devices
Social
– IoT applications often make use of information from multiple sensors in order to determine consensus
– Crowd-sourced information is a form of social collaboration amongst cooperating devices
Security
– Device identification, data flow, and command verification all require strong security
– Device software update validation requires security technology