Leveraging OpenFunction to archive automotive data
UISEE, a leading autonomous vehicle company in China, provides driverless services for all industries and use cases. Due to massive amounts of automotive data and various storage requirements, UISEE sought to improve data archiving by using serverless architectures.
UISEE leveraged OpenFunction for data archiving, which supports both sync and async functions and a cloud agnostic architecture that simplifies Backend-as-a-Service (BaaS) integration.
“On top of OpenFunction, we’ve built a core business system for automotive data archiving. To improve business workflows, we make sync functions to receive requests and distribute tasks, and async functions to run sub tasks and return the execution results to different backends,” says Haili Zhang, Director of R&D at UISEE. The new system embraces a diversity of languages and frameworks, so that technical personnel specialized in different modules can write a combination of functions in the language of their choice.
By the numbers
Various functions in different languages to run tasks
Decoupling BaaS to adapt to diverse storage middleware
Scaling idle functions to zero replicas to minimize resource costs
UISEE is a leading autonomous vehicle company in China, providing driverless services for all industries and scenarios, and build brains for autonomous vehicles to empower an ecology of mobility and logistics.
Data archiving is a must-have feature for all online business systems, including automotive business systems. “Within UISEE, we’ve built a cloud platform on top of Kubernetes to meet business requirements for data processing,” says Haili Zhang, Director of R&D at UISEE. Because the cloud platform provides a broad range of datasets, UISEE sought to manage and process automotive data in a more sophisticated and purposeful way In most scenarios, automotive data is time-sensitive, so UISEE needed to archive and store inactive data for long-term. Specifically, the cloud platform needed a solution for the following:
- Storage requirements for diverse data types
- Varying sizes of data during different periods
- Combination of sync and async function calls for different tasks
- Complete observability of business
“The scenarios of autonomous driving are complex. For example, we’ve separate modules for object detection, environment perception, and route planning. Each module generates data of all types. Moreover, the amount of data generated fluctuates at different times of the day.”Haili Zhang, Director of R&D, UISEE
UISEE evaluated a number of solutions, including microservices. While a microservices architecture helped UISEE enable service-oriented storage for all data types, the hidden costs rapidly increased. “To improve resource utilization, we resorted to serverless services that enable autoscaling. Although common serverless solutions support scalability, they have nothing to do with the combination of sync and async function calls”, says Zhang.
OpenFunction, a cloud native open source Function as a Service (FaaS) project within CNCF, turned out to be “a perfect fit for us”, says Zhang. By introducing Knative and the Distributed Application Runtime (Dapr), OpenFunction provides runtime environments for sync and async functions.
“Basically, we use OpenFunction to run sync and async workloads. This means, we can make sync function calls to distribute tasks and async function calls to perform read/write operations on storage and return execution results.”Haili Zhang, Director of R&D, UISEE
OpenFunction consists of four major modules, and two of these – the Function and Serving modules – were of significant value to UISEE. “The Function module has helped us to convert functions to applications. For deployment, the Serving module allows us to deploy applications to different runtimes by using CRDs”, says Zhang. “OpenFunction also contributed to the observability of our business by introducing SkyWalking integration.”
“By using OpenFunction, our workflows for task distribution and data archiving have become more flexible, and our R&D personnel can better focus on the business logic instead of the underlying infrastructure. As a result, we managed to reduce the amount of boilerplate code and develop agile applications that can automatically scale.”Haili Zhang, Director of R&D, UISEE