By Teo Bobirnila
Reflecting back on the recent Embedded Linux Conference Europe (ELC), after looking back at my notes and checking out the recorded sessions, I truly appreciated the overwhelming amount of innovation that was presented. As I further considered the many learnings from the event, it made me think about the concept of flexibility – specifically, the urgent need for it. For example, a development team working on a project based on Wind River Linux may encounter challenges like any other project, however, compromises or obstacles can be overcome by leveraging the extended product portfolio at Wind River and the expertise of our professional services and customer success teams.
Security vs. Performance
The topic of security is always front and center at Wind River, present at every phase of product development, from design and testing to delivery and maintenance. The fixes we provide for common vulnerabilities and exposures (CVEs) might impact performance, so a team may need to adjust their product architecture after deployment, to make sure they address security vulnerabilities and exposures. This is why we ensure full validation and benchmarking, to disclose any potential performance impact for the fixes we provide. You may see these scenarios as annoying hurdles, but in a world of constant change, it is imperative to be able to adjust quickly. We provide our users all details and support to make the right decision for their project.
Cloud Native vs. Edge Native
As more devices connect to the network, it is becoming impossible to architect and develop for a silo. The next device you are building must be aware of its presence in the network and must be able to interact with other devices. In this case, app developer face a struggle to pack all their features in their application, but also make it scalable to run in the cloud or at the edge. Scalability comes with challenges at the architecture level, the programming language and the overall design. In one of the presentations, there was a clear distinction between cloud-native and edge-native applications, as two distinct development paradigms. In most other sessions, the goals were to achieve scalability and move/transition application from the edge to cloud and vice-versa, using container technologies, making the underlying hardware and operating system redundant.
Technical Challenges vs. Ethical Issues
The rise of artificial intelligence and machine learning exposes silent threats that leverage these technologies for immoral or unlawful usage. Examples include the use of machine learning algorithms and data for easier documentation writing to be exploited into writing and propagating false-news. Image recognition AI used to identify endangered species in pictures of their natural habitat was easily leveraged to create deep fake imagery, based on virtually any person's picture. The bleeding edge of innovation provides easy solutions for previously hard problems, but this also triggers new use cases that were not architected or anticipated. For any new technology we build, we must be able to address potential negative consequences.
CI/CD versus LTS
With all the points made earlier, there is constant need to always be up-to-date on latest technologies, incorporate the latest fixes and address potential CVEs as soon as they are uncovered. The need for continuous integration is here, and the potential for continuous delivery and deployment will change the paradigm in which we consume software today. At the same time, we must consider the long-term stable and long-term supported approaches as a foundation for devices that must not fail, with certified components and fail-safe mechanisms.
We’re on a quest to continuously adopt and improve innovative processes that define the future of a software defined world. At the same time, we’re ready to face the new obstacles, address the unexpected, and challenge the unknown in order to help our customers build critical systems that simply must work.