From the Devops Toolbox: APM for Iot Introduction
Total Page:16
File Type:pdf, Size:1020Kb
From the DevOps Toolbox: APM for IoT Introduction With the advent of IoT and mission-critical applications, IT’s traditional practice of software developers operating alone no longer works. First and foremost, IoT has, by definition, things that bring hardware to the table — along with an additional planning dimension. Secondly, the IoT system is fragmented, with no central standards and no oversight when it comes to development. To minimize schedule extensions, cost overruns, and the risk of external threats, developers and the teams around them must work together from the get-go and operate with consistency and in a common, horizontal manner. This collaborative approach is referred to as DevOps, and companies implementing this practice are seeing a great increase in bottom-line success rates. In fact, in a 2017 State of DevOps report conducted by Interop, 25 percent of IT professionals surveyed said DevOps practices led to reduced costs in their organizations, while 20 percent correlated DevOps to increased revenue. 1 However one defines DevOps, achieving success But what exactly means not only its accelerated adoption in web-native companies and big organizations, but also embracing is DevOps and how the notion that dev, test, and ops teams can work together with greater visibility, and in real time. This is does it work? especially true when it comes to managing IoT. According to Gartner: So, how does DevOps work in the context of IoT? This guide aims “DevOps represents a change in IT culture, focusing on rapid to answer that — and a few more service delivery through the adoption of agile, lean practices in fundamental questions, including: the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration Why is DevOps important? ˚ between operations and development teams. DevOps How does it work in the context of IoT? ˚ implementations utilize technology — especially automation What are the associated challenges that can ˚ tools that can leverage an increasingly programmable and be solved with APM? dynamic infrastructure from a life cycle perspective.” What are some of the best practices? ˚ From the DevOps Toolbox: APM for IoT 2 Why is DevOps important? DevOps teams are involved in developing software from code to production, making the whole life cycle faster. So much faster, in fact, that IT departments with a strong DevOps methodology and a streamlined process get to launch a new product or service up to 200 times faster than other, lower-performing IT teams, according to the 2016 State of DevOps Report. In addition, their change failure rates are three times lower, and the amount of time spent on recovery after system or process failures is reduced by 24 times. The result? 50 percent time saved on identifying and processing threats, and 22 percent less time spent on unpredicted workloads. All of this translates into reduced IT costs and dramatically simplified processes, most of which are due to the concept of continuous delivery — the idea of making the release process so simple that it becomes routine, and therefore less disruptive than a traditional rollout. The end result is a better product, and ultimately a better customer experience. From the DevOps Toolbox: APM for IoT What does DevOps mean in the context of IoT? Developing for IoT is particularly difficult, as the chain of data is enhanced by finicky, sensitive, mostly simple, and sometimes paradoxical devices — like a weather sensor that can actually break if it gets wet. The sheer number of devices (both collecting the raw data and consuming the processed data), systems involved, and processes add to the complexity of IoT in general, making it one of the most challenging fields to tackle for developers today. 4 Let’s take, for example, a real-time traffic solution designed to The result is threefold: reroute commuters in a busy metropolitan area: Real-time mapping showing the bottlenecks First, we have road sensors collecting information on a number Updated bus schedules with more vehicles of vehicles passing by, and weather sensors collecting data on dispatched on the road and, for example, a temperature, humidity, barometric pressure, etc. new lane open for buses only Instant, personalized suggestions for This real-time data is bussed through to streaming analytics alternative routes based on a user’s position, engines that can process it as fast as it is produced, and the results destination, and proximity to the next bus are visualized on the spot or through another agent/party, then pushed through apps developed for, say, the SF Bay Area and offered to commuters. All the steps involved in processing data from the moment it’s collected (in this case, by a road sensor) to the moment it’s used (triggering a new bus schedule and pushed as an alert/suggestion through the customer- While the application is on, the device’s GPS collects data on its facing app) need to be monitored to ensure proper exact position and feeds it into the system. functioning. And, provided results are integrated, a smart system can be programmed not only to dynamically adapt as new information comes through, but can also inform the development team of new assets At the same time, historical data on traffic, real-time schedules, and with a real-time, accurate context for all the systems and the relative position of public transportation vehicles are fed into the applications already in place. processing hub via system integration (the fleet management systems have to talk to the personnel management systems, the weather sensor network, the road mapping system, etc.). From the DevOps Toolbox: APM for IoT 5 Deployment Deployment is arguably the most important component of DevOps in the context of IoT. Why? Because apps only live and run on a live platform — like a cloud provider — which means that’s the only place they can be launched and updated. This complicates deployments, because apart from centralized cloud platform updates of the app itself, software and firmware updates may be required concurrently on local systems (i.e., new business logic implementations or extra features on a streaming analytics platform). Sometimes, updates are also needed at the device level, further complicating matters. Luckily, a strong application performance management (APM) solution can help. We’ll dive more into how in the next section. From the DevOps Toolbox: APM for IoT 6 How can APM help Some of these network, standards, and protocol-focused operations and tools include: DevOps in the context Streamlined, continuous IT integration with other existing IT and of IoT? sensor networks: With millions of rather simple devices interacting with each other, interoperability issues emerge naturally — but may not be detected unless all unique functionalities of the hardware can be Accessibility, interoperability, collaboration monitored and subjected to dynamic baselining across the network. A system of billions of sensors working alone or together to feed Fully-centralized visibility: IoT productions and deployments need applications (both system and customer-facing) is an interoperability, a robust back-end architecture to collect and integrate data, run networking, and connectivity nightmare. That’s because sensors analytics through system apps, then feed consumer-facing apps. are very vulnerable points-of-entry, empowered with the code to System performance is as important as app performance so that perform automated operations, but easy to hack in to. apps are as accurate as possible, and visibility into it is paramount in order to inform development, automate testing, and track changes Unfortunately, we can’t yet intervene directly at the device level. that follow a device rollout. Instead, IoT development planning has to focus on security issues around data protocol, network security, and app design. To help Cloud autoscaling, with real-time analysis of application demand that detect, avoid, and fix these issues, DevOps and developers can use automatically scales up application capacity into the preferred cloud adaptable operations and tools to ensure server availability environment (using prebuilt connectors, for example). is transparent and dynamic. Collaborative incident management practices to allow continuous integration between business, IT development, and operations teams. Continuous integration is vital for most of IoT’s real-time, consumer-facing apps, as frequent checks expose issues and conflicts much earlier in the development cycle. From the DevOps Toolbox: APM for IoT 7 Automated testing and monitoring Unlike traditional development methodologies, planning deployments IoT only makes sense if the totality of related apps is handled as a holistic involving IoT devices are further complicated by: application or system that includes all devices, data transfer protocols, system applications, and consumer-facing apps. Scale — the sheer number of devices and data points ˚ collected complicates the testing process when updates Unfortunately, that’s easier said than done. require manual installations Below are a few overall challenges: Variety of systems and data formats ˚ The lack of direct access to devices ˚ Often, various parts of an IoT system constitute subsystems The lack of user feedback and operational data ˚ that may need to be evaluated — and monitored — separately. (not easily accessible to developers) For example, the totality of light sensors in a smart home can determine when and how the solar panels get repositioned,