Tag: connected devices

  • DevOps Strategies for Connected Car Development

    DevOps Strategies for Connected Car Development

    The concept of smart, connected vehicles is no longer science fiction but a day-to-day reality. These vehicles, empowered by internet connectivity and a suite of digital technologies, offer unprecedented convenience, safety and entertainment features. 

    But as the cars on our roads become smarter and more interconnected, the complexity of developing their software systems multiplies. DevOps is emerging as an indispensable strategy for organizations in the connected car industry, bringing together software development and IT operations to streamline, optimize and accelerate the development life cycle. 

    This article briefly reviews connected car technology and explores several DevOps strategies that can support connected car development. We’ll discuss how DevOps can manage the complexity of automotive software, accelerate development speed without compromising safety and provide the essential tools for efficient building, testing and deployment in a highly regulated environment.

    What Are Connected Cars?

    Connected cars are vehicles equipped with internet access, allowing them to share data with devices both inside and outside the car. Essentially, they offer a multitude of features that make the driving experience more convenient, safe and enjoyable. While this technology is still in its nascent stages, it’s rapidly evolving, and soon, connected cars will become a staple on our roads.

    These hyper-connected vehicles are part of a broader ecosystem that encompasses a network of physical objects—everything from other vehicles and traffic lights to pedestrian crosswalks and parking spaces—all connected by technology.

    The potential of connected cars is immense. They promise to transform our lives in numerous ways, from reducing traffic congestion to improving road safety and revolutionizing the way we travel.

    Key Features and Systems of Connected Cars

    Infotainment Systems

    An integral part of connected cars is the infotainment system. This comprehensive system provides both entertainment and information tailored to the driver’s needs. From navigation and music streaming to voice commands and hands-free phone calls, these systems are designed to enhance the driving experience while ensuring safety.

    Infotainment systems also offer a wide range of services, such as real-time traffic updates, weather forecasts, and points of interest. They can connect with a smartphone, allowing users to access apps, make calls and send messages without taking their eyes off the road.

    Telematics

    Telematics uses GPS and onboard diagnostics to record and transmit data about the car’s performance, location and usage. It allows for real-time tracking of the vehicle, making it particularly useful in fleet management and stolen vehicle recovery.

    Telematics data can also be used to assess driver behavior, monitor fuel efficiency, and predict maintenance needs. For instance, if the car’s engine starts showing signs of trouble, the telematics system can alert the driver and recommend a nearby service center.

    Advanced Driver-Assistance Systems (ADAS)

    Advanced driver-assistance systems (ADAS) are systems that help the driver in the driving process. These systems use sensors, cameras and radar to monitor the vehicle’s surroundings and assist the driver in various ways.

    ADAS can provide features like adaptive cruise control, lane-keeping assist and automatic emergency braking. These systems not only enhance driver comfort but also significantly improve road safety by reducing the risk of accidents.

    Vehicle-to-Everything (V2X) Communication

    Vehicle-to-everything (V2X) communication is a key technology in connected cars. It enables vehicles to communicate with any entity that may affect the vehicle and vice versa. This includes other vehicles (V2V), infrastructure (V2I), pedestrians (V2P) and networks (V2N).

    V2X communication can improve traffic flow, reduce accidents and enhance fuel efficiency. For instance, connected cars can receive information about road conditions, traffic jams or accidents ahead in real-time, allowing the driver to take appropriate action.

    Over-the-Air (OTA) Updates

    Over-the-air (OTA) updates are another key feature of connected cars. Similar to how you receive updates on your smartphone, OTA updates allow car manufacturers to update software, fix bugs or add new features remotely.

    OTA updates can improve vehicle performance, enhance security and extend the vehicle’s lifespan. They can also add new functionality, allowing the car to stay up-to-date with the latest technology without the need for a physical visit to a service center.

    Why DevOps is Essential for Connected Car Development

    Addressing the Complexity of Car Software Systems

    The connected car is a complex ecosystem of software systems. These vehicles have numerous systems that communicate with each other, the driver and the outside world. Managing the development of these systems can be a daunting task, and this is where DevOps strategies come in.

    DevOps aims to shorten the system development life cycle and provide continuous delivery with high software quality. This methodology is particularly suited to the complex software systems of connected cars, as it encourages a holistic view of the development process, ensuring that all components work together seamlessly.

    Moreover, DevOps helps to manage the complexity of car software systems by automating tasks, reducing errors and improving efficiency. The use of automated tools for configuration management, deployment and monitoring means less manual work, fewer mistakes, and quicker problem resolution.

    Enhancing Development Speed Without Compromising Safety

    One of the greatest challenges in connected car development is the need for speed. In this fast-paced industry, companies are under pressure to develop and deploy new features quickly to stay competitive. However, this must not come at the expense of safety, as any faults in the system can have dire consequences.

    With DevOps strategies for connected car development, it’s possible to enhance speed without compromising safety. The DevOps approach emphasizes a culture of rapid and frequent deployments, coupled with rigorous testing to ensure quality. By integrating development and operations, it enables teams to work together more effectively, leading to faster development cycles.

    Furthermore, the use of automation in DevOps allows for quicker detection and resolution of issues. Automated testing tools can run thousands of tests in a fraction of the time it would take a human, ensuring that any faults are identified and fixed before they can cause harm.

    Building, Testing and Deploying Efficiently in a Regulated Environment

    The automotive industry is heavily regulated, with strict safety and emission standards that must be met. These regulations add an extra layer of complexity to the development process, as they must be considered at every stage of design, testing, and deployment.

    DevOps strategies for connected car development are well-equipped to handle this challenge. By implementing a continuous integration/continuous deployment (CI/CD) pipeline, teams can ensure that all changes are tested and validated against regulatory requirements before they are deployed. This not only ensures compliance but also saves time and resources by preventing issues from reaching production.

    Additionally, DevOps encourages transparency and visibility across the development process, making it easier to demonstrate compliance to regulators. Through the use of version control systems, every change can be tracked and traced, providing a clear audit trail.

    DevOps Strategies for Connected Car Development

    Version Control for Connected Car Development

    In any software development project, version control is vital. It allows developers to track and manage changes to their code, making it easier to collaborate and preventing conflicts. In the context of connected car development, version control becomes even more critical due to the complex and interconnected nature of automotive software systems.

    Version control enables multiple teams to collaborate on projects without stepping on each other’s toes, using techniques like branching and merging. Furthermore, version control systems provide a history of changes, which is invaluable for debugging and understanding how the system has evolved over time. This can be particularly useful in a regulated industry like automotive, where there may be a need to provide an audit trail.

    Continuous Integration and Continuous Deployment (CI/CD)

    CI/CD is a core DevOps practice that involves integrating changes to the project regularly and automatically testing those changes to detect and fix problems early. The aim is to provide rapid feedback so that if a defect is introduced into the code base, it can be identified and corrected as soon as possible.

    For connected car development, a robust CI/CD pipeline is essential. It allows for fast-paced development without compromising quality or safety. By automating the build, testing and deployment processes, teams can ensure that new features and updates are delivered quickly and reliably.

    Automated Testing and Quality Assurance

    Given the complexity of connected car systems and the potential consequences of a malfunction, rigorous testing is of paramount importance. However, manual testing is time-consuming and prone to error. That’s where automated testing comes in.

    Automated testing is another key DevOps strategy for connected car development. By writing test scripts that can be run automatically, teams can save time, reduce the likelihood of human error and ensure comprehensive coverage of the system.

    Moreover, automated testing tools can be integrated into the CI/CD pipeline, allowing tests to be run every time changes are made. This provides immediate feedback on the impact of those changes and ensures that any issues are identified and addressed as early as possible.

    Infrastructure-as-Code (IaC) for Connected Car Environments

    The final piece of the DevOps puzzle is infrastructure-as-code (IaC). IaC is the practice of managing and provisioning computing infrastructure through machine-readable definition files rather than physical hardware configuration or interactive configuration tools.

    In the context of connected car development, IaC can be a powerful tool. It allows teams to create and manage their development, testing and production environments in a consistent and repeatable way. This not only enhances efficiency but also ensures that the environments are configured correctly and securely.

    Moreover, by using IaC, teams can automate the creation and teardown of environments, saving time and reducing the risk of human error. IaC also supports version control, enabling teams to track changes and roll back to a previous state if something goes wrong.

    Conclusion

    In conclusion, connected cars represent a significant advancement in the automotive industry, but they also bring a host of development challenges. By adopting DevOps strategies for connected car development, companies can navigate these challenges and unlock the full potential of this exciting technology. From managing complex software systems to ensuring rapid and safe development, DevOps offers a robust and flexible approach that is tailored to the needs of the connected car industry.

  • A DevOps Guide to IoT Technology

    A DevOps Guide to IoT Technology

    Internet-of-things (IoT) is a term used to describe the network of physical devices—from everyday household items to sophisticated industrial tools—connected to the internet, sharing and collecting data. With the advent of cheap computer chips and the ubiquity of wireless networks, it’s possible to make anything a part of the IoT. Add to that the exponential growth in artificial intelligence and machine learning, and the IoT is a truly significant part of our lives.

    The IoT allows devices to communicate and interact over the internet, and they can be remotely monitored and controlled using technologies many of us have never heard of, such as MQTT, QUIC and AMQP. The proliferation of these devices has led to an exponential increase in the amount of data we can gather, analyze and use to make more informed decisions. We’ve already seen the transformative potential of IoT in our homes, workplaces and cities, and it’s only set to increase as more and more devices come online.

    At the heart of this technology is the concept of seamless connectivity and communication. However, the rapid development and deployment of IoT devices pose significant challenges. This is where the DevOps approach comes in, offering a solution to these challenges by improving efficiency and effectiveness in the development and operation of IoT systems.

    Importance of DevOps in IoT Development and Deployment

    In the context of IoT, DevOps is crucial. IoT devices are often deployed in the field, in homes or in other environments where physical access is difficult or impossible. As such, the ability to update and manage these devices remotely is a critical necessity. DevOps methodologies enable this remote management, providing mechanisms for continuous integration and continuous delivery (CI/CD) that make it possible to push updates to devices regularly and reliably.

    Moreover, given the pace at which IoT technology is advancing, it’s crucial to be able to adapt quickly to changes and new developments. In this regard, DevOps is invaluable. By bringing together development and operations, it allows for more agile response to changes, faster issue resolution and overall better performance.

    The Role of DevOps in IoT

    Speeding Up IoT Development Cycles

    One of the key benefits of using a DevOps approach in IoT development is the ability to speed up development cycles. With traditional development practices, the time between identifying a requirement or an issue and implementing a solution can be lengthy. In contrast, DevOps practices, such as continuous integration and continuous delivery, enable rapid prototyping, development, testing and deployment of new features and updates.

    With the DevOps approach, developers and operations teams work together from the beginning of a project, collaborating closely to ensure that the software being developed is robust, reliable and meets the needs of the business. This cooperative approach, combined with automated testing and deployment processes, significantly reduces the time to market for new features and updates.

    Ensuring High-Quality, Reliable IoT Applications

    Another significant advantage of utilizing DevOps in IoT development is the increased quality and reliability of the applications being developed. With traditional software development methods, testing and quality assurance often occur after the development process. This can lead to issues being identified late in the cycle, which can be costly and time-consuming to fix.

    On the other hand, DevOps practices emphasize continuous testing throughout the development process. This means that issues can be identified and addressed much earlier, leading to higher-quality, more reliable software. In the context of IoT, where devices may be deployed in critical applications such as health care or transportation, the importance of this cannot be overstated.

    Enabling Scalability and Flexibility in IoT Systems

    Finally, DevOps plays a crucial role in enabling the scalability and flexibility of IoT systems. As the number of IoT devices continues to grow exponentially, the ability to manage and monitor these devices efficiently is becoming increasingly important. DevOps practices, such as infrastructure as code (IaC) and the use of containers and microservices, provide the tools necessary to scale and adapt IoT systems as needed.

    With IaC, the infrastructure required to run an IoT application is defined and managed as code, making it easy to replicate and scale. Containers and microservices, on the other hand, allow applications to be broken down into smaller, independent components that can be scaled individually, providing a high level of flexibility and efficiency.

    Implementing DevOps in IoT Development

    Integrating CI/CD in IoT Application Development

    Continuous integration/continuous delivery (CI/CD) is a fundamental DevOps practice that plays a vital role in IoT development. It involves automating the processes of software delivery and infrastructure changes. With CI, developers frequently merge their code changes into a central repository where automated builds and tests are run. CD takes this a step further by automating the release of these changes to the production environment.

    For IoT, integrating CI/CD can help maintain the quality of software, increase efficiency, and speed up the process of delivering software updates or new features to devices. It also ensures that any changes made can be easily rolled back, reducing the impact of any potential issues.

    Applying IaC for IoT Infrastructure Management

    Infrastructure-as-code (IaC) is another key DevOps practice that is highly relevant to IoT. IaC is the process of managing and provisioning computing infrastructure through machine-readable definition files rather than physical hardware configuration or interactive configuration tools.

    In the context of IoT, IaC can simplify the process of setting up and managing the complex infrastructure required for IoT applications. With IaC, developers can quickly and reliably replicate infrastructure setups, making it easier to scale IoT applications as the number of connected devices grows.

    Using Containers and Microservices in IoT Application Architecture

    Containers and microservices are two more DevOps practices that can significantly benefit IoT development. A container is a standalone executable package that includes everything needed to run an application, including the code, runtime, system tools, system libraries and settings. Microservices is an architectural style that structures an application as a collection of small, loosely coupled services.

    In the context of IoT, using containers and microservices can greatly simplify the process of developing, testing and deploying IoT applications. Moreover, they can enhance the scalability and flexibility of IoT systems, making it easier to adapt to changing requirements and scale as the number of connected devices grows.

    Challenges of Implementing DevOps for IoT and How to Overcome Them

    Dealing with Device and Platform Diversity

    One of the main challenges in implementing DevOps for IoT is dealing with the diversity of devices and platforms. IoT devices can range from simple sensors to complex machines, each with its own capabilities, requirements and operating systems. Moreover, these devices may communicate using different protocols and have different connectivity requirements.

    The key to addressing this diversity is to adopt a platform-agnostic approach. This involves developing software that can run on any device, regardless of its hardware or operating system. Containerization can help achieve this by providing a consistent and reproducible environment for running applications.

    Ensuring IoT Security and Privacy

    Security and privacy are significant concerns in IoT, and they can be particularly challenging in a DevOps context. The increased frequency of updates and changes that come with the DevOps approach can potentially introduce new vulnerabilities. Moreover, the interconnected nature of IoT devices means that a security breach can have far-reaching consequences.

    To address these challenges, it’s essential to integrate security practices into the DevOps process. This is often referred to as DevSecOps. This approach involves continuously monitoring and testing for security vulnerabilities throughout the development process rather than treating security as an afterthought.

    Managing IoT Data Volume and Complexity

    The sheer volume and complexity of data generated by IoT devices can also pose a challenge in a DevOps context. Traditional data management and analysis tools may not be able to handle this volume and complexity.

    To tackle this, it’s important to utilize modern data management solutions that can handle large volumes of data. Additionally, employing advanced analytics and machine learning techniques can help make sense of complex data and extract valuable insights.

    Coordinating IoT System Updates and Maintenance

    Finally, coordinating updates and maintenance for a large number of IoT devices can be a significant challenge. This is particularly true in a DevOps context, where updates and changes are frequent.

    To address this, it’s crucial to have a robust system for managing and tracking updates. Automated deployment tools can be invaluable in this regard, allowing updates to be pushed out to devices in a controlled and coordinated manner.

    Conclusion

    In conclusion, implementing DevOps in IoT development can bring significant benefits, including faster development cycles, higher-quality, reliable applications and improved scalability and flexibility. However, it also presents unique challenges that need to be effectively addressed. By understanding and properly implementing the principles and practices of DevOps, we can harness the full potential of IoT technology and drive forward innovation.

  • Chip-to-Cloud IoT: A Step Toward Web3

    Chip-to-Cloud IoT: A Step Toward Web3

    During the first six months of 2021, IoT devices were breached 1.51 billion times, a significant increase from only 639 million breaches observed for the entirety of 2020. This problem can be attributed to the widespread adoption of the internet-of-things (IoT) and the Windows Server Message Block (SMB), and neither can be avoided in the age of remote work. 

    But while these technologies offer unprecedented levels of data mobility and oversight for many interconnected digital and physical systems in industrial settings, they also make it easier for malicious actors to penetrate the very fabric of our lives if left unsecured. 

    This makes it all the more important for DevOps teams and developers to prioritize cybersecurity while creating systems for the IoT. It is important to address the inherent flaws in security like easily-breakable usernames and passwords or saving data without protection on remote access servers. 

    There is a way developers and DevOps professionals can help curb the increasing instances of cybercrime, and it’s called chip-to-cloud IoT. Let’s explore how it is emerging as a viable way to construct a safer, more valuable and more decentralized system for everyone.

    IoT: Understanding the Inherent Security Challenges

    It’s best to investigate potential cybersecurity issues that may befall your organization before finding ways to secure your IoT platforms with solutions such as a shift left security approach (meaning security is embedded in the earliest phases of the application development process) or an IoT decentralization approach, as we’ll expand on below. 

    Some common security concerns include:

    Vulnerabilities in the Software and the Firmware

    It can be challenging to guarantee the safety of IoT systems because of the following security flaws:

    • Lack of computational capacity to provide adequate built-in security
    • Inefficient access control in IoT systems
    • Insufficient funds for adequately testing and further developing the firmware’s security
    • Lack of regular patching and upgrades as a result of IoT devices’ technical and budgetary restrictions
    • Unpatchable vulnerabilities because users don’t regularly update their gadgets
    • Older devices may not be compatible with newer software updates
    • Easy accessibility means attackers could insert corrupted chips or hack via radio waves

    Possibility of Cloud Breaches

    Hackers can gain access to the data processed by your IoT system by intercepting unencrypted messages. 

    Your device might contain sensitive information such as your location, bank account information and medical records. Attackers can access critical information in many other ways, including by exploiting weakly protected communications.

    Even if every piece of data is transported to cloud storage, intruders can potentially target cloud-hosted applications. Therefore, the risk of data leaks is not just from the devices themselves but also from the cloud environments to which they are connected. That is why DevOps pros, developers and software engineers must find ways to protect the technology from the start and prevent hackers from breaching the cloud.

    Risks of Malware

    A recent survey by Zscaler revealed that smart TVs, set-top boxes and smartwatches are most susceptible to malware attacks. 

    If attackers successfully infiltrate an IoT system or insert malware, they may be able to change its functionality, acquire personal data and carry out other malicious activities that can endanger device owners and users. 

    The trouble is that manufacturers struggle to maintain proper software security to keep their devices safe. Security often takes a backseat when these gadgets are built, leaving buyers to deal with the aftermath if they get infected with malware. 

    How Chip-to-Cloud IoT Minimizes Security Risk

    There are two ways for organizations to enhance their IoT security. 

    The first step is ensuring both device manufacturers and software developers adhere to sound security principles. If the value chain is exposed, the solution must be chip-to-cloud. 

    Second, they must take an in-depth approach to protecting key technology by layering security controls to create an iron-clad IoT infrastructure.

    The chip-to-cloud architecture enables the creation of secure, low-energy networks of IoT devices that can communicate directly with cloud hosting platforms. The collective effort to build a cloud-first technology stack has been costly, inefficient and unreliable.

    Traditionally, IT professionals have used non-machine-hosted security tools like firewalls to secure IoT devices. Chip-to-cloud architecture aims to fix this underlying flaw.

    Features of Chip-to-Cloud IoT

    Onboard security and computational power are two of the most significant shortcomings of IoT devices. In addition to being more powerful and safe than previous models, IoT devices built with chip-to-cloud security are also more energy-efficient.

    Here are the features that make the chip-to-cloud technology so effective:

    • An onboard cryptography engine
    • Generator of random numbers
    • Sufficient random-access memory (RAM)

    How It Works

    Reliable software design is essential for IoT devices and other internet-connected devices. It keeps hackers from stealing your identification or duplicating your device for their ulterior motives. Chip-to-cloud delivers on all fronts. 

    These chipset characteristics confer an extra security advantage. Each IoT node is cryptographically unique, making it nearly impossible for a hacker to impersonate it and access the more extensive corporate network to which it is connected. Chip-to-cloud speeds things up by eliminating the need for traffic delays between the logic program and the edge nodes that are ready to take action on the information.

    The chip-to-cloud architecture of the internet-of-things is secure by design. New tools are being developed to provide bespoke and older equipment with data mobility capabilities, just like the current IoT. 

    Nevertheless, chip-to-cloud chipsets are always connected to the cloud. As a result, the availability of assets and the speed of digital communication across nodes, departments and facilities will be significantly improved. Chip-to-cloud IoT is a significant step forward in the evolution of the IoT toward Web3. Experts predict IoT device customers and value producers will benefit more from these design principles than centralized providers.

    Chip-to-Cloud Enables IoT Decentralization

    The traditional approach to IoT is to cover an already-existing cloud of linked devices with third-party firewalls and other security measures. Its equivalent imagery would be a single umbrella covering a family of 12—or at least attempting to do so. The protocols that govern security must be central to decentralization.

    Chip-to-cloud IoT is a powerful, uniquely secured chipset that can be installed inside each device, giving it a far greater connection in the IoT chain than the average IoT gadget.

    The cloud manager or analytics application receives data from every node in real-time using the chip-to-cloud technology. The process does not add another layer of protection; instead, it reduces the latency and loss of data packets as they travel from one destination to another.

    The Future of IoT

    In the wake of recent global events, general cloud technology and chip-to-cloud architecture are receiving huge investments. IoT can supply the data that companies and organizations need to fuel their client engagement portals, machine maintenance platforms and enterprise planning tools.

    That said, the internet-of-things will not be entirely safe even with chip-to-cloud technology. Businesses must have a security-focused culture, standards for managing new IT investments and the expertise to pick the best technology partners.

    The Web3 transition will likely be coupled with future Web3 innovations such as blockchain to improve its utility and security. Seeing how the world’s genuine value-creators use these new solid tools will be intriguing.

    Conclusion

    Considering security at the very onset of any IoT project is critical. Maintaining comprehensive cybersecurity in IoT environments is challenging due to the rising frequency of cyberattacks and increasingly complicated system vulnerabilities. 

    The safety of IoT devices is essential to the operation of many businesses—and even entire economies. Engineers are under increasing pressure to ensure that the rapidly expanding number of interconnected devices is safe. This is why chip-to-cloud technology is poised to become the next big thing in this field. Are you ready to be the change?

  • Engineering Applications for DevOps (Part 5)

    Engineering Applications for DevOps (Part 5)

    This blog series explains how to engineer applications for DevOps.

    Topics covered in this blog series:

    • Factors to decide whether an application is a good candidate for DevOps.
    • Practices to engineer designs for DevOps.
    • DevOps applied to enterprise apps and software services.
    • DevOps applied to COTS systems.
    • DevOps applied to manufactured (embedded) systems software.
    • Five levels of application maturity.

    This blog covers DevOps applied to manufactured (embedded) systems software. You can read part one here, part two here, part three here and part four here.

    DevOps Applied to Manufactured (Embedded) Systems Software

    In the late 1970s (yes, forty years ago!) as a young engineer, I was given an assignment to figure out how to accelerate the software development and delivery cycles for an innovative packet switch called SL-10, (predecessor to the more recent model called Data Packet Node [DPN]) manufactured by Northern Telecom. Each SL-10 “node” consisted of millions of lines of original embedded software source code and custom hardware configured with many interconnected processors and protocols interfacing with other nodes, host devices, and terminal devices.

    Given the complexity of the system and lack of automated build, test and deployment tools, it was taking more than twelve months to generate each release of the system, and there typically were lots of bugs even after the release. Without knowing much about DevOps (the word “DevOps” was not invented for another twenty-nine years), we proceeded to implement a continuous delivery system that included automated build, test and delivery tools and workflows.

    The result was remarkable. Lead times for releases to manufacturing were reduced more than tenfold, from twelve months to one month, and quality, measured as defects found by customers per release, also reduced tenfold. This dramatic shift in performance and capabilities made it possible for the engineering and manufacturing teams to accelerate the rate of innovation and trample the competition. The SL-10 product, and its rebranded DPN version, quickly dominated the connection-oriented packet switch market, and it became the pride of the Nortel corporation and the Canadian nation. Even cooler, I got a nifty president’s pin and promotion which paved the way for my career that led to writing a book and this series of blogs! If this real-life example is not sufficient to demonstrate that DevOps can be applied to manufactured embedded software products, then I don’t know what is.

    There have been many other examples published that show how DevOps practices applied to embedded manufactured systems have reaped similar benefits. A notable example was published in 2013 by Gary Gruver in A Practical Approach to Large-Scale Agile Development: How HP Transformed LaserJet FutureSmart Firmware.

    That is not to say that DevOps applied to manufactured software embedded systems is the same as applying DevOps to enterprise applications or COTS systems. A paper published on the CloudBees blog, Five Aspects that Make Continuous Delivery for Embedded Different, explained some of the key DevOps practices used with embedded systems.

    DevOps Benefits for Embedded Systems

    Benefits of DevOps for embedded systems are summarized as follows:

    • Retrofitting the huge code base typically found in legacy embedded software systems into a DevOps model is not easy. It is likely to be expensive, but it is almost guaranteed to be a worthwhile effort, especially if you have a longer-term vision and intend for your product to stay competitive in the future.
    • Developers of embedded software need access to massive amounts of computer resources for testing their real-time embedded code on powerful hardware simulators.
    • Developers and testers need access to physical product hardware to run their binaries for system tests that cannot be run on simulators alone. Lab-as-a-service (LaaS) systems that orchestrate testing topologies of real devices can improve sharing of critical resources. LaaS systems provide a test framework that can be integrated through APIs into a continuous delivery pipeline.
    • Long build and test processes may need to be reengineered to reduce serialized lead times into quicker build times made possible by scaling build and test resources.
    • Long compliance and conformance test processes for embedded systems need to be accelerated with automation and resource scaling.
    • Focus on continuous delivery rather than continuous deployments in which shippable product versions are frequently delivered to manufacturing for verification, but the frequency of deployments to end customers is determined by other business factors.

    What This Means

    This blog is one of a series explaining how to engineer applications to be most suitable for DevOps. This blog series explains how to engineer applications for DevOps including:

    • Factors to decide whether an application is a good candidate for DevOps.
    • Practices to engineer designs for DevOps.
    • DevOps applied to enterprise apps and software services.
    • DevOps applied to COTS systems.
    • DevOps applied to manufactured (embedded) systems software.
    • Five levels of application maturity.

    This blog covers DevOps applied to manufactured (embedded) systems software. You can read part one here, part two here, part three here and part four here.

    For more information regarding how to engineer applications for DevOps refer to my book Engineering DevOps.

  • Headless Commerce: Why E-Commerce Is Losing Its Head

    Headless Commerce: Why E-Commerce Is Losing Its Head

    How headless commerce is changing the way commerce platforms are designed and services are offered

    Within the last 15 years we’ve seen commerce technology evolve at a breakneck pace. In the early nineties, online shopping was limited to simplistic webstores built around self-contained, all-in-one software solutions. And with consumer engagement restricted to web browser access via at-home desktop computers, many assumed e-commerce would never find its way to mainstream acceptance. Fast forward to the present: E-commerce is ascendant and traditional retail has been toppled from its throne. Immersive online shopping environments establish a sense of belonging, transforming casual shoppers into lifelong brand loyalists. Seamless e-commerce experiences are tailored to specific individuals, complimented by lightning-fast fulfillment, next-day delivery and 24/7 customer service.

    As a result of these changes, self-contained software solutions have surrendered to agile commerce platform architectures offering a more open, granular approach digital customer experience management. In particular, “headless” commerce has drawn significant hype for its unique approach to commerce architecture, involving separation of a commerce platform’s front-end customer experience from back-end business processes. But just how much of a game-changer is headless and who stands to benefit most from it as this approach becomes more widespread?

    Separate the Front and Back

    Historically, the front-end and the back-end of commerce platforms were intrinsically tied at the hip. Headless commerce allows a brand to separate the front-end experience from the back-end business processes such as management of the merchant’s catalog, product pricing, promotional offers and day-to-day management activities. This separation enables marketers to embrace new channels and new customer touchpoints by removing any dependencies of new front-end releases having to be developed, deployed and managed together with the back end. It gives the front-end UX team complete creative control over what the experience should be and can be based on the needs of the brand. This is opposed to being prescribed a commerce experience that has to follow specific processes and workflows. When done effectively, headless opens up and gives the front-end customer experience designers freedom to think outside the box and build experiences that aren’t constrained in any way.

    5G is Bottom Line

    With the evolution of 5G networks and the ability to put low-cost transmitters into any device or product, the number of things in the workplace or products we own that are connected to the internet has increased significantly. A few years ago, only a few items things such as your laptop and your phone were connected to Wi-Fi. Now it’s a list of 30 or 40 things in your house that are permanently connected to your Wi-Fi. Eventually, Wi-Fi will become obsolete and everything will connect over 5G, leading to the possibility of having hundreds of connected devices just inside your home. All of those connected devices will ultimately fuel business models that can only benefit from a headless approach.

    Many of the products we buy today are becoming more connected. By being connected to the internet, businesses can provide a value-add service, whether that’s a paid subscription or something freely provided by the brand. For example, if you buy a NEST home security camera from Best Buy, you pay a one-time fee of $400. However, once you buy it there’s also a subscription for recording and storing all the video footage. This scenario is ideal for companies looking to profit from a headless commerce business model, as the product needs to continually call home to determine if it has entitlements, if the customer is up to date on their paid subscriptions and so forth.

    Headless in the Future Means Preparation in the Present

    While headless is the future, everyone isn’t fully ready. It requires budget and teams capable of using headless commerce technologies. Generally, it’s a fit for larger, well-funded enterprise organizations that have significant in-house technical capabilities, architects and their own development teams versed in building their own custom, front-end experiences. For smaller businesses, a lot of it is about future-proofing their platform technology to prepare for a solution that supports headless in the future.

    With much-misunderstood hype around the topic, headless is still a growing term and concept within the industry. It’s going to take a push from those who are creating demand for headless such as a chief architect or CTO. If you don’t have a strong IT organization that really understands the vision of how your company is going to be more agile with a headless approach, then it’s kind of a non-starter.

    Traditional commerce is becoming a thing of the past. Headless is the future and it’s going to take everything we have to pave the way.

    — Peter Sheldon

  • Security Through ‘Legisurity’: Impacts of SB-327

    Security Through ‘Legisurity’: Impacts of SB-327

    With more devices connecting to the internet every day, security through obscurity should have died a long time ago. Still, high-profile cases of devices with mass-produced default login credentials and easily cracked crypto keys persist. As a result, say hello to security through “legisurity”: California SB-327—“Information privacy: connected devices”—became law Sept. 28. How will this impact DevOps teams?

    What SB-327 Does and Doesn’t Do

    Here’s a quick look at what SB-327 does, starting with its timing and scope. The provisions go into effect Jan. 1, 2020, giving teams a little more than a year to prepare compliant connected device designs. The legislation defines a connected device as one “… capable of connecting to the Internet, directly or indirectly, and that is assigned an Internet Protocol address or Bluetooth address.” Authentication is “… a method of verifying authority of a user, process, or device to access resources in an information system.”

    The operative passage in SB-327 calls for a “reasonable security feature … appropriate to the nature and function of the device.” (Before you get too excited, it explicitly shuts the door for individuals suing manufacturers over non-compliance.) With implementation left open, the legal standard is very clear. Reasonableness is a device with features meeting either of two requirements:

    “(1) The preprogrammed password is unique to each device manufactured,

    “(2) The device contains a security feature that requires a user to generate a new means of authentication before access is granted to the device for the first time.”

    Also written into SB-327 is a list of things it does not do. The law does not extend these requirements to third-party software a user installs, and it does not force retailers or software providers to review compliance of a device. It doesn’t apply to devices sold only to federal agencies or the military, and it yields to HIPAA requirements. It does not permit manufacturers to hinder law enforcement agency access to a device with these required features.

    What Should DevOps Do Now?

    As with most first attempts at legislation, the unwritten implications of SB-327 may be even more interesting. Here are a few things I see changing for DevOps teams securing devices and infrastructure:

    • SB-327 only applies to devices sold or offered for sale in California. However, setting up California-only design efforts, supply chains and customer support would be costly. (For $20,000 cars? Sure. For $200 devices? Not so much.) Practically, I see these becoming de facto requirements nationwide by the 2020 rollout. Companies should start now to be ready.
    • If you’re a device manufacturer, you should add both requirements into your minimum viable product baseline, if you haven’t already. You’ll obviously need a strategy for assigning and tracking default passwords and a crypto key authentication method for setup connection. Customer support procedures and documentation also need to change. Consider using one-time programmable non-volatile memory or PUFs (physically unclonable functions) to establish a unique device identity.
    • On the deployment side, you’ll need added tracking for unique default passwords in your device provisioning database. Your customer support teams will need device-specific information at their fingertips to get new or factory-reset devices back online quickly. Crypto key authentication methods will be a more important criterion for device evaluation and selection.
    • If you don’t have a good UX person and an experienced pen tester on your team, hire or contract those roles right now. Simplicity with security is always going to be the right answer.

    More Laws Ahead?

    Will the debut of “legisurity” satisfy lawmakers and stem connected device breaches? My guess is this is only the beginning; SB-327 does nothing about requiring stronger passwords or thwarting more sophisticated protocol-based cyberattacks. The main point of SB-327 doesn’t seem about securing a single device, although it should help; rather, it’s trying to prevent rapid compromise of an entire population of that device. (Pro tip: whatever you do, don’t use a device’s MAC address in a simplistic algorithm, or you’ll end up like this sad, not-so-smart lock story. Cracking one device cracked them all.)

    For the more curious, here’s the entire text of SB-327, and some other analysis on legislative proposals at the federal level. What are your thoughts on SB-327, how you see it affecting DevOps, and if legislation is the right path for securing connected devices?

    — Don Dingee

  • Connected Devices and IoT: How the DevOps Approach Can Help

    Connected Devices and IoT: How the DevOps Approach Can Help

    The evolution of connected devices has brought challenges associated with the complexity and managing huge volumes of data. These devices also bring the need for a huge ecosystem of continuous software deployment across numerous application delivery endpoints, including a diversity of devices, mobile, web and others.

    There exists also the opportunity to unify operations and development, thus giving rise to the DevOps environment within the product engineering and IoT space—encompassing tools, processes and people as a single unit for more efficient and coherent working.

    DevOps accelerators and services allow intelligent automation and power the industrial IoT and consumer IoT companies with the capabilities of deployment, testing, build and continuous integration.

    It enables the organizations in connected health care, telematics, networking, security and surveillance, and home and industrial automation to accelerate their product development cycle, deliver significant cost savings via release efforts and reduced outages, enable operational scalability and improve code quality. It will enable the solution and product companies to accelerate their prototype to product cycle and decrease deployment time to days from months.

    Application reliability and availability are the ultimate measures of the success of IT. DevOps applies lean and agile practices all through the software life cycle to attain faster deployment and high-quality application development. Also, DevOps alleviates the rising complexity caused due to new computing trends including mobility, cloud and virtualization via increased automation. Now, let’s dig deeper into the importance of DevOps in the world of IoT and its applications.

    DevOps in the IoT

    The most effective DevOps transformations take a holistic approach, which means taking care of the entire organization in all aspects. This implies including all the constituents of the application, including quality assurance, operations and development teams, line managers and business owners. The constituents may also extend to compliance and security teams. The cross-functional inputs for software functionality and system requirements generates an ongoing feedback loop that helps reduce complexity and promotes engagement.

    Thus, one of the advantages of DevOps is improved collaboration and communications across the company. Deeper collaboration between quality assurance, operations and development teams follows an approach in which they all with collaborate with the client for designing a customized solution to fit their requirements and needs.

    Application testing should reproduce the function of a production system environment. Then, the DevOps teams can locate dependencies, gain knowledge on the functioning of an application when it is in the live environment and, accordingly, make adjustments to the compute environment. These processes become repeatable and iterative with automation and practice, allowing for more deployment, testing and development.

    Analytics and performance monitoring come earlier in the life cycle by moving the testing forward in the process. DevOps can develop performance analytics models which can predict quality and operational problems before deployment rather than waiting to acquire post-production performance data to examine what went wrong.

    These metrics can be utilized to establish KPIs (key performance indicators) and the production environment can be measured against them. The user experience and application performance can be improved as production metrics adhere more consistently to the key performance indicators. At this stage, sharing the data with business teams allows for adjustments to be made with less stress and faster, and accelerates the feedback loop.

    Continuous integration allows for better agility and collaboration to enhance code validation, which in turn reduces risks. The automated processes make for releases of higher quality that are easier to handle once they are in production.

    Treating the infrastructure configurations as code enables DevOps teams to handle provisioning on the fly in software and this sets the stage for the eventual migration towards a completely software-defined environment. With the emergence of the IoT, DevOps will become even more important. The precision of the services and software controlling networks, devices and sensors is critical as every device becomes interconnected in a software-defined environment.

    Conclusion

    Today, DevOps has become the main destructive force in the adoption of many technologies such as blockchain, which is the technology behind cryptocurrencies such as the bitcoin wallet. Owing to its substantial impact on business outcomes, operational efficiencies and deliverables, DevOps has become the major reason behind the evolution of IoT.

    — savaramravindra