TARS Microservices Extended to the ARM Architecture
The Linux Foundation sponsored this post.
Tencent, an internet-based platform company, has developed TARS microservices for ARM CPU architectures.
TARS, a mature open source remote procedure call (RPC) framework is widely used by developers as a toolbox for quickly building systems and automatically generating code. Developers now have access to code development and generation for ARM-based servers. The TARS microservices for ARM are also now accessible through the Akraino Blueprint ecosystem.
In this post, we describe the basic systems architecture and deployment scenarios for TARS in 4G and 5G networks, which will be the initial target verticals for the ARM architecture port.
TARS ARM Architecture Port Overview
TARS is designed to support multiple programming languages, including C++, Golang, Java, Node.js, PHP and Python, which allow ARM developers and enterprises to build on ARM-based systems to build stable and reliable distributed applications quickly. The framework has been developed and hardened within Tencent for more than 10 years, where it has been widely used in Tencent’s social media, video, e-sports, online games, mapping, application markets, and security, as well as hundreds of other core businesses.
As a result of TARS’ internal development within Tencent, the project was donated to the Linux Foundation in June 2018. To date, the scale of TARS microservices deployments has reached one million, using the industry-standard DevOps philosophy and Tencent’s service approach.
Tencent has been working with ARM over the last year to port TARS microservices to the ARM architecture fully, and the first two ARM-based deployments will focus on AR/VR and autonomous vehicle use cases for internal Tencent use. These solutions represent a market opportunity to scale TARS beyond traditional applications for next-generation applications, thus meeting the demands of many more enterprises and individual users.
From a systems architecture perspective, the TARS microservices blueprint consists of four primary layers:
- Hardware Layer: TARS runs on top of widely available community hardware, with extensive support for servers based on multiple architectures, including ARM Neoverse platforms.
- IaaS Layer: TARS can be deployed in virtual environments as well. Virtual Machine, Containers, as well as other IaaS mainstream software platforms (such as OpenStack, Kubernetes, et al.), are also supported.
- PaaS Layer: TARS can be deployed as the microservice framework for a Platform as a Service blueprint. TARS can provide high-performance RPC calls, deploy microservices in larger scale-out scenarios efficiently, and supply easy-to-understand service monitoring features.
- SaaS Layer: TARS can be used as components within an application deployed as Software as a Service, depending on individual use cases.
From a network architecture perspective, the TARS microservices blueprint can be deployed in both 4G and 5G networks. Two key points to note:
Data offload to edge MEC platforms. Data offload policy is configurable based on different applications.
Edges can communicate with other edges as well as remote data centers. In some use cases, the volume of data processed on a single edge cannot address an application’s unique requirements — in which case, data can be collected from different edges to determine a “conclusion” for the application.
TARS can quickly build systems and automatically generate code, taking into account ease of use and high performance. At the same time, TARS supports multiple programming languages, including C++, Golang, Java, Node.js, PHP, and Python. TARS can help developers and enterprises to quickly build their own stable and reliable distributed applications in a microservices manner, in order to focus on business logic to effectively improve operational efficiency.