“Cloud native” is now a word that has been sung all over the country. Compared with its previous generation term “cloud computing”, cloud native puts more emphasis on “the application grows on the cloud”.
Virtualization was proposed in the late 1950s. Now it seems that it has become the cornerstone of cloud computing infrastructure. Cloud computing has been developed for nearly 60 years. During this period, various cloud related technologies continue to appear. PAAS, IAAs and SaaS are the first batch of practical applications based on cloud concepts, and then FAAS, baas and serverless are also adding new power to the cloud.
In this process, in order to achieve the emerging idea of “cloud first” when building applications, the concept of cloud native came into being. Cloud native refers to making corresponding considerations about the original cloud environment when designing applications, so as to make full use of and give full play to various capabilities of the cloud platform, including low cost, pay on demand, system elasticity, scalability, high manageability, business logic decoupling, etc.
The Linux foundation has specially established the cloud native Computing Foundation (CNCF) to develop cloud native technology. With the rapid development of cloud native in recent years, CNCF has now become the most authoritative organization in this field. At the beginning of this year, the Linux foundation established the tars foundation to develop the most core cloud native micro service technology. Now, micro service has become the most popular technology architecture on the cloud. Jim zemlin, executive director of Linux foundation, said that CNCF foundation and tars foundation are the two core open source foundations of Linux foundation to develop cloud technology open source ecology.
The “cloudnative + open source virtual summit China 2020 China online summit” hosted by CNCF is in progress. The three-day conference will bring hundreds of sharing. The content will cover all aspects of cloud native, including micro service architecture, container, observability, storage, security, identity, strategy, open source ecology, network and CI / CD.
Among them, the micro service architecture attracts our most attention, not only because of the popularity of micro services in recent years, but also because at this conference, the “tars foundation” built around the domestic open source project tars introduced its relevant information comprehensively for the first time.
In the keynote speech on the evening of the 30th, Shan Zhihao, chairman of the tars foundation, shared the tars Foundation: a new generation of massive micro service open source ecology, which opened the mystery of the foundation for us, announced the vision and mission of the tars foundation and the panorama of open source ecology for the first time, and also released four open source projects newly entered the tars foundation.
“Tars foundation is the representative of the open source ecosystem of microservices in the Linux foundation. It faces the whole open source ecosystem of microservices, not just the tars project first opened by Tencent. At present, the tars foundation has more than 30 open source projects. ” Shan Zhihao first stressed the position of tars foundation.
As for what is called “massive micro services”, Zhang Zhidong, former CTO of Tencent, once defined the massive services of the Internet in three dimensions: more than 10 million online, more than 10 billion index and more than 10 billion data. Tars has been polished in Tencent for ten years, and has been widely used in hundreds of core businesses such as Tencent’s social networking, video, games, maps, application treasure and housekeeper. The scale of micro services has reached one million, which is the way to practice massive services.
Microservice has become the core technology of cloud native
From the 1960s to 1970s, software developers usually used single architecture for software development on mainframes and minicomputers. No application can meet the needs of most end users. The vertical industry used less software code and simpler interfaces with other applications, and scalability was not a priority at that time.
With the development of the Internet, developers gradually separate the service layer from the single architecture, and gradually produce RPC and C / S architecture.
However, the architecture at that time was still unable to cope with the growing data traffic, let alone the needs of large enterprises. Since the mid-1990s, distributed architecture has become popular, and service-oriented architecture (SOA) is becoming more and more dominant.
At the beginning of the 21st century, microservice architecture began to appear, and a series of frameworks based on microservice architecture emerged. Microservice architecture has also developed rapidly in recent years. At present, it has entered a new stage. Now we talk more about service mesh and serverless, which are inseparable from microservices.
The emergence of microservice architecture provides a new solution to deal with rapidly changing business requirements and lengthy development cycle. It responds to rapidly changing business requirements with modular thinking and decouples subsystems, businesses, databases and even development teams between systems. Microservice architecture uses ideas such as automated deployment, automated business monitoring and early warning, call chain monitoring, containerization, and agile development to speed up the software development cycle and achieve faster and higher quality delivery, which has become one of the most popular architecture styles at present.
Taking the trend of Google search “microservice” as an example, Shan Zhihao showed the development momentum of microservices:
Why the tars foundation
Microservice architecture is never just about RPC. Just as tars project is not just an RPC framework, developers often say that it is not difficult to adopt microservices. What is difficult is microservice governance, which means the importance and complexity of service governance in microservice architecture.
Service governance is a big problem that will be encountered when adopting microservices. Shan Zhihao introduced that in the distributed microservice architecture, the system needs to consider specific links such as service discovery, load balancing, current limiting, fusing, timeout, retry and service tracking. There can be no errors in each link, and the governance is not simple.
In addition, the adoption of microservice architecture will also face the following major challenges:
- Difficult to develop: microservices are mostly called across servers or even across computer rooms. Developers need to deal with thorny problems such as timeout and network exceptions.
- Multilingual communication: there are many development languages now. Different programmers have their own preferences, which is difficult to unify. Front end, back end, different technology stacks, different development languages, their interoperability is also a big problem.
- Performance issues: referring to Google Trends, the search for “high performance” in the IT industry has been high. With the increase of users, traffic and service call chain, the performance needs to be guaranteed in the face of massive requests.
- Data consistency: the service finally needs landing data, and the consistency of data transmission, storage and transaction processing needs to be guaranteed.
The Linux foundation believes that a good microservice architecture needs to have the following characteristics:
- Is agile development of Devops best practices
- Have complete and comprehensive service management ability
- Support multiple programming languages
- High enough performance and high enough scalability
According to Shan Zhihao, it is precisely because of the characteristics of the tars project itself, its ability to solve these problems and its surrounding ecological potential that the Linux foundation announced the establishment of the tars sub foundation on March 10 this year, which is dedicated to building a healthy and open microservice open source ecology and trying to solve the problems mentioned above.
“The vision of the tars foundation is to build a neutral non-profit organization for the open source microservice project, so that any industry can quickly transform ideas and ideas into large-scale applications and go online quickly.” Shan Zhihao specifically explained the significance of tars Foundation:
Tars foundation is committed to solving possible problems in the use of microservices, including reducing the difficulty of development and service governance. It aims to solve the problems of Multi Programming Language interoperability, data transmission and data storage consistency, and ensure high performance while supporting massive requests.
At the same time, tars Foundation hopes to absorb upstream and downstream open source projects to establish a better micro service ecosystem. Including but not limited to infrastructure, storage, development framework, service governance, Devops and applications based on any programming language.
Tars foundation micro service open source ecology
First of all, as the first open source project of tars foundation, tars project has been applied in Tencent for 12 years and polished for more than 10 years. At present, there are more than 100 products using it. It is widely used in hundreds of core businesses such as Tencent’s online social networking, financial services, edge computing, automobile, video, games, maps, application market and security.
Shan Zhihao comprehensively introduced the capabilities of tars:
- Support multiple programming languages, including C + +, golang, Java, node.js, PHP and python
- Various CI / CD tools can be combined
- Services can be deployed on physical machines, virtual machines, containers and k8s, and data can be stored in cache, database or file system
- Support a variety of protocols, such as self-developed tars protocol and tup protocol, as well as SSL, HTTP, Pb, etc. commonly used in the industry. In addition, you can customize the protocol
- Synchronous, asynchronous and one-way RPC calls can be made
- Support rich service governance functions, including but not limited to service registration / discovery, load balancing, custom monitoring, logging, overload protection, fuse mechanism, IDC set, etc
- Support various applications, such as deep learning, edge computing and API gateway
“This can help developers and enterprises quickly build their own stable and reliable distributed applications in the form of microservices, so that developers can only focus on business logic and improve operation efficiency.”
In the three years since the tars project was open source, “at the software level, the community version has maintained stable iteration, supported the development and governance of microservices in multiple development languages, clients and servers, and also transplanted to the arm ecology at the hardware level.”
In addition to the tars project itself, the tars foundation is also developing rapidly. In the past few months, it has gathered more than 30 open source projects, 7 member organizations, and has been adopted by more than 100 companies / enterprises covering games, live video, Internet tools, entertainment, transportation, social networks and Finance.
During the sharing, Shan Zhihao also announced four open source projects that have recently joined the tars Foundation: test related projectsTARS BenchmarkAndTARS JMeter, service gatewayTARS Gateway, and this heavy launchTARS K8S。
K8s is now the de facto standard for container orchestration. Combined with the data processing and service governance capabilities of tars, it has become a cloud native micro service governance scheme, which is the tars k8s project launched this time. The specific information has not been disclosed, but Shan Zhihao said that there will be core developers to deeply analyze the project in the round table on the second day of the conference.
Tars gateway is a set of general API gateway developed based on tars framework. The request uses HTTP protocol. The back end supports tars tup & tars tars protocol, tars JSON protocol and HTTP protocol at the same time. In addition to protocol forwarding, it also supports functions such as flow control and black-and-white list.
The other two projects are from tars open lab, which is the open source Laboratory for the future of tars foundation. It mainly carries out research on testing, integration and compatibility. Tars JMeter and tars benchmark are the two test tools incubated from them.
Tars JMeter is a JMeter test plug-in customized for the privatization of tars protocol. It has the characteristics of strong ease of use, supporting distribution, supporting complex scenarios and data monitoring; Tars benchmark is a codeless pressure measurement tool specially tailored for tars service. It has the characteristics of ease of use, high performance, scalability, support for dynamic random and real-time data feedback.
Finally, Shan Zhihao disclosed the landscape of tars foundation for the first time:
The bottom-up levels are:
- Basic layer: basic architecture (different architecture chips, clouds, containers), basic development language
- Storage layer and protocol layer: storage (cache, database, big data, file system), protocol
- Logical platform layer: framework, service discovery, service mesh, log, monitoring, configuration and tracking
- Application layer and business layer: API gateway, business, deep learning, edge computing, tars lab, Devops
The open source micro service ecology of tars foundation is still developing. We hope it can grow rapidly. As Shan Zhihao said: building a new generation of massive open source micro service ecology and a perfect micro service ecology is our ultimate goal.