What Is a Microservices Architecture?
In software development, a microservices architecture — also known simply as microservices — refers to an architectural approach where complex software systems are broken down into small, independent services.
To understand microservices, it is essential to first understand what is meant by services. A service is a software functionality or a set of functionalities that performs a task automatically, reacts to events or fulfills data requests from other software.
A video streaming website, for example, employs a variety of services. The site’s search tool is a service that connects to a database with titles and relevant keywords to return the most relevant results. The site’s media player is a separate service that enables high-quality video playback and provides the viewer with various options, such as their preferred language. The algorithm that recommends other videos to watch is another service that analyzes customer actions to improve the user experience.
In a microservices architecture, these services are independently deployable and flexibly managed — allowing developers to make changes to the search tool, for example, without affecting the media player, and vice versa.
Monolithic architectures are more interdependent and less flexible than microservices.
Are microservices just small services?
Despite what the name suggests, a microservice is not just a smaller service. Microservices takes the concept of services and integrates it into software development. Instead of the traditional, monolithic approach, where all deployable parts are contained within a single electronic control unit or application, a microservices architecture can use standardized software packages called containers — built independently using software development kits (SDK) — to enable segmentation which allows pieces of the functionality to be independently deployed, updated and managed as services would be. And application programming interfaces (APIs) connect the services by enabling applications or parts of applications to talk to each other.
Microservices in automotive
A microservices architecture provides numerous benefits in the automotive world by standardizing software development and helping OEMs continuously integrate and continuously deploy new software — which is essential to enabling the software-defined vehicles of tomorrow.
From windshield wiper speed to radio controls to automatic emergency braking, every feature and function within a vehicle represents a service or group of services working together. Software independence is essential in automotive environments, where updates to safety-critical and non-safety critical systems must be kept separate. As manufacturers integrate legacy systems, they must ensure that they do not invalidate existing safety functions and that they keep in line with the ISO 26262 industry standard for automotive functional safety.
When designed correctly, a microservices architecture can help OEMs achieve functional safety more quickly and efficiently. Testing and debugging each service independently of the others improves overall software quality, safety and reliability. This approach also enables faster software updates by making it easier for OEMs to fix bugs and address security vulnerabilities.
Additional benefits of a microservices architecture
In traditional vehicle architectures, the software and hardware are tightly coupled, which makes it difficult to upgrade components. Strong dependencies between software parts also make it challenging to exchange parts of the code without breaking existing functionality. With a microservices architecture, the software is abstracted from the hardware and other programs — while hardware-dependent pieces are encapsulated independently — allowing OEMs to replace the software without affecting the underlying hardware or other software functionality.
A microservices architecture improves communication between programs by providing well-defined APIs for services to communicate with each other. Segmentation makes it easier to develop and deploy new features through over-the-air updates, even after a vehicle has been sold — providing OEMs with additional revenue streams and improving customer satisfaction.
Another benefit of a microservices architecture is that it opens up new opportunities for innovation by making it easier for third-party developers to build applications. With a standardized set of APIs available from the SDK, third-party developers can independently build and integrate with the vehicle’s software without needing to understand the intricacies of the underlying hardware.
In 2022, Aptiv acquired Wind River, a global leader in delivering software for mission-critical intelligent systems, allowing us to take advantage of their proven solutions which are ideally suited to support next-generation vehicle architectures through software abstraction and a cloud-native approach. A microservices architecture is complex and requires a suitable integrated development environment to manage — such as Wind River Studio. As the only provider of an integrated vehicle brain and nervous system, Aptiv is well equipped to help OEMs adopt a microservices architecture that meets their safety requirements and deliver the best possible experience for their customers.