2019 the development status and trends of Java in China
Author | Zhang Xiaonan
Introduction: InfoQ released the “2019 China Java Trends Report”, reflecting the uniqueness of Java’s development in China, and hopes that everyone has a correct understanding of Java.
Two months ago, InfoQ English published a
2019 Java Development Trend Report
, which analyzed the development status of Java’s 20-year history language from the perspective of technology adoption life cycle. After the release of this report, there were several problems that we didn’t expect: First, some developers have deep doubts about Java. Some people say, “Is it worth investigating Java now?” Some people say that “Java has fallen behind.” The language has been for many years. Second, some people feel that this report is not grounded and does not show the development of Java in China.
For these two reasons, we decided to plan and write this “2019 China Java Trend Report” to reflect the uniqueness of Java development in China, and hope that everyone has a correct understanding of Java: neither kill And don’t demonize.
It goes without saying that this Java development trend report in China is better than the English station report, whether it is participating in experts or in terms of presentation. Experts from Ali, Tencent, Huawei, Meituan, Today’s headlines, Xiaomi, Red Hat… A number of leading companies in technology practice, including not only Java, JVM, Java EE mainstream framework, but also Java application practices of various enterprises. Interviews and reviews of Java trends. In addition, we launched a Java developer survey in the InfoQ community to present the developer’s Java usage in this trend report. Ok, let’s not say much, cut into the topic.
Experts involved in this trend report
- Yang Xiaofeng, Java Technology Specialist, OpenJDK Committer
- Li Sanhong, Ali / ant Java technology leader, Ali cloud intelligent senior technical expert
- Pony, Alibaba Apache Dubbo PMC and Spring-Cloud-Alibaba Architect
- Tian Xiaoliang, Chief Engineer of Huawei Cloud ServiceStage and Apache ServiceComb PMC
- Shan Zhihao, head of Tencent TARS open source project
- Wu Ge, the US team commented on senior technical experts
- Chen Chuhui, Chief Architect of Red Hat AppDev, Open Source Technical Specialist
- Wang Shichong, byte beat big data engineer, Scala programmer
- Zhang Tao, Kotlin expert, Android technical expert, open source lab blogger
- Huang Fei, Technical Director , Xiaomi Internet Business Department
Java technology adoption life cycle overview
This China Java technology adoption life cycle overview map is the essence of this trend report, the conclusion comes from the judgment of experts. In some respects, the opinions of experts are surprisingly consistent. Of course, there are also many experts who have different opinions. It can be said that the golden sentence is frequent and sparkling.
Technology adoption life cycle
- Early adopter
- Early public
- Late public
The technology adoption life cycle is a concept put forward by American high-tech marketing guru Jeffrey Moore in his book “Crossing the Divide.” The technology adoption life cycle is a model used to measure the user’s acceptance of a new technology. It believes that a new technology, from the beginning to the end, will inevitably experience innovators, early adopters, early public, and late The stage of the public.
Although there will be cracks between each group, the crack between the early adopters and the early public is the biggest. This crack is the legendary “gap”. It only crosses this gap and penetrates into the early masses. It is equal to entering the mainstream market.
1. Java 13 is in the innovator phase, Java 11 is in the early adopter phase, and Java 8 is in the late public phase.
- Java 11 will be the most likely option for future Java users;
- If a company does not have such high requirements for large stack GC capabilities and delayed SLAs, there is not enough motivation to make related upgrades, and there is no technical force to solve practical problems such as version evaluation and compatibility correction;
- The promotion of the new version of Java in China is not enough. If many companies do not see the dividend of technology upgrade, it will inevitably affect the enthusiasm of the upgrade.
2. OpenJDK is in the innovator stage.
- Although many domestic head vendors are customizing OpenJDK, the current custom OpenJDK is still limited in scope, and the main use is Oracle JDK (according to the JVM Ecosystem Report 2018 survey, 70% of developers choose to use Oracle JDK, 21 % of developers choose to use OpenJDK);
- Whether manufacturers are turning to OpenJDK, another important consideration is whether they are willing to pay for OracleJDK. If not, OpenJDK may gradually replace Oracle JDK in the future. At present, domestic head vendors have some action on OpenJDK;
(for participating in OpenJDK) For the domestic head manufacturers, they may be more positive, they define OpenJDK in the early stage of the public)
- The competitive landscape of public and private clouds in the public has profoundly affected the competitive landscape on OpenJDK;
- OpenJDK is likely to be considered a second-best choice.
3. Non-Hotspot JDK production practices – Graal VM, IBM OpenJ9 are in the early adopter phase.
- Graal VM is still unaware of its compatibility and clear commercialization terms;
- Some of Graal VM’s technologies, such as the JIT engine based on the Java language development, may become the underlying technology of OpenJDK in the future;
- At home, it is suspected that Graal VM and IBM OpenJ9 will be less likely to enter universal production practices.
4. Lambda /Stream is in the late stage of mass and the Vector API is in the innovator stage.
- The Lambda syntax and the Stream API are also widely used in the daily work of developers, and there is no tendency to see the syntax fall back;
- Cutting-edge features such as the Vector API, limited companies with capabilities, and inhibiting companies or scenarios that require them.
5. Kotlin is in the early public phase, and Scala and Groovy are in the late public phase.
- Groovy is fast becoming the yellow flower of tomorrow, and the light of the past is gradually replaced by the rising star Kotlin;
- Scala is enough to be the king in the right field, and mainstream mainstream is not that important;
- Kotlin was strongly pushed by Google, and Google’s support was basically successful, but he still expressed doubts about Kotlin’s future development space;
- Many articles on the Internet are advocating that Kotlin will eventually replace Java as the next-generation JVM mainstream language, but from its inception to the present, it seems that no language can replace Java.
6. Microservices Framework: Spring Boot and Spring Cloud enter the late public phase; ServiceComb is in the early adopter phase; Apache Dubbo is in the late public phase; and Tars is in the early public phase.
- Microservice technology is between the early public and the late public. The new microservice development framework requires technological breakthroughs and innovations, otherwise it is difficult to have a place;
- Java is no longer the only choice for microservices;
- In today’s technology diversification, supporting a multi-language microservice development framework is a must.
Technology adoption life cycle interpretation
In the previous chapter, we have already thrown out the opinions and conclusions of the experts, but there are still some important reasons behind the conclusions, so this chapter follows Java/JVM, different levels of mainstream frameworks, and microservices. Three parts, one by one.
In fact, in terms of the Java version, the views of the experts are exactly the same: Java 13 is in the innovator stage, Java 11 is in the early adopter stage, and Java 8 is in the late stage of the public.
In InfoQ’s Java usage version survey for developers, there is no suspense. Among the developers who participated in the survey, 88.7% are using the Java8 version. Only 35% of these people have upgrade plans, and the remaining 65% do not have an upgrade plan.
Yang Xiaofeng believes that this situation is also normal: Java8 will still be the main body of production for the foreseeable future, and it is reasonable to put it in the late stage of mass. However, for many head vendors, Java11 or subsequent versions may have a certain scale of production deployment. He believes that this trend will only occur in the head company. If a company has less requirements for large stack GC capabilities and delayed SLAs, there is not enough motivation to do the relevant upgrades, and there is no technical force to solve the version evaluation and compatibility. Real problems such as sexual corrections. So the conclusion is: Java11 is in the early adopter phase.
Huang Fei added: It is precisely because Java11 is in the early adopter stage, so there is less relevant information, and there will be higher learning costs when encountering problems. For example, JFR supports 11 and JMC has weak analysis ability for Java11. .
For Java 13, Xiaoma believes that the changes in the new GC algorithm and the Socket implementation are still very exciting, so Java 13 ranks among the innovators.
For Java upgrades, Oracle announced that it will update a large Java version every six months starting with Java 9 – Java 11 is a Long-Term – Support (LTS) version, and Java 9 and 10 are a transitional version (non‐LTS) Therefore, Chen Chuhui does not recommend users to use Java 9, 10 in production. In his view, the relative risk of small version upgrades is relatively small, and large version changes may require a lot of code changes, which is why so many people still insist on using Java8, instead of updating Java 11, 12, Or 13 reasons.
Li Sanhong’s explanation is more detailed for the reasons why developers are not motivated to upgrade Java. He thinks there are two reasons:
- Agile underlying architecture supports software upgrades, and enterprise emphasis on the underlying architecture is also a key reason for Java upgrades. China’s corporate business is developing very fast, but in fact, many support and attention to the underlying architecture is not enough. Whether the underlying architecture is uniformly controlled within the enterprise, whether it is easy to support the grayscale of different software versions, and can pass the effective pre-testing, covering the uncertainty caused by software upgrade incompatibility, which tests the software upgrade. Difficulty.
- On the other hand, if the company does not enjoy the benefits of technology upgrades, including performance and programming efficiency, it will inevitably affect the enthusiasm of the upgrade.
According to the InfoQ developer-oriented research, 56% of developers believe that the current major business challenges can be solved by the new features and development direction of Java. 24% of developers are not. This also shows from another level that Java is often too slow to be spoofed, but the adoption of the new version is not very positive, which may reflect some disconnect between the development of Java/JVM and the actual needs of developers.
OpenJDK custom or public release
Since Oracle announced at the beginning of 2019 that Oracle JDK 8 and higher is no longer free on the server side, OpenJDK is the option for most Java users. According to the JVM Ecosystem Report 2018, 70% of developers choose to use the Oracle JDK, and 21% choose to use OpenJDK.
Chen Chuhui also introduced the domestic situation: At present, the most used developers in China are still Oracle JDK, followed by IBM JDK, and some enterprises adopt OpenJDK. Report link: https://snyk.io/blog/jvm-ecosystem-report-2018/
For OpenJDK’s technology adoption lifecycle division, experts have some inconsistencies in opinion. Yang Xiaofeng believes that although many domestic head vendors are customizing OpenJDK, the current custom OpenJDK is limited in scope, which is consistent with the above data. So he will put OpenJDK in the innovator stage.
However, for domestic manufacturers participating in OpenJDK, it may be more positive. In Li Sanhong’s view: whether the manufacturer turned to OpenJDK, there is another important consideration is whether they are willing to pay to use OracleJDK. If not, OpenJDK may gradually replace Oracle JDK in the future. At present, domestic head manufacturers have some action on OpenJDK. So he defined OpenJDK in the early public phase. Alibaba uses and open source OpenJDK long-term support version of Dragonwell. Currently, most of Alibaba’s applications run on Dragonwell 8, and some are already running on Dragonwell 11.
According to Wu Ge from the US group, the US group is currently testing the OpenJDK-based MtJDK as the basic service of the US group JDK. In addition, the US Mission will mainly focus on the upgrade of Redhat and Amazon. Since Azul did not disclose the OpenJDK source code, the US Mission did not develop based on Azul.
Huang Fei from Xiaomi also introduced the application of Xiaomi to OpenJDK: Xiaomi mainly uses OpenJDK8 and 11 versions, and currently mainly uses OpenJDK.
From the perspective of the existing OpenJDK camp, there are currently two categories, one is IT and cloud vendors, they provide release and release versions of OpenJDK – Amazon, Redhat, Azul, Alibaba, Tencent are all produced by themselves (except Microsoft distributes Azul); in addition, the strong technical demand leads to companies that have their own custom OpenJDK. Their OpenJDK products are more difficult to break through the scope of internal use, such as the US group and Xiaomi who interviewed us.
For such a camp division, Yang Xiaofeng has a point of view: from the perspective of the competition pattern of the OpenJDK release, it will eventually evolve into a cloud pattern, which will be the head cloud vendors or software vendors that cooperate with them. In other words, the competitive landscape of public and private clouds in the public has profoundly affected the competitive landscape on OpenJDK. After all, for the enterprise, OpenJDK also needs to be profitable. Without a wide user base and peer-to-peer benefits, it is difficult to support the long-term evolution of the underlying software.
We have thrown the above opinions to the interviewee of the IT company and the cloud vendor camp Li Sanhong. In his view: in the case of Java charges, OpenJDK must be the general trend, Java will be more open and deep involved. OpenJDK is also going to drive Java through the community. In addition, under the current cloud trend of enterprises, if the customer’s existing system is written in Java, it is necessary for cloud vendors to consider how to make Java when providing services to customers. The ecology is getting better, which is also in line with the customer’s demands.
However, Yang Xiaofeng also said: From the perspective of enterprise IT decision-making, a considerable number of enterprises pay more attention to long-term credible support, timely security vulnerabilities and bug fixes. There will also be considerable companies that will decide the risk at their own risk, get the free and free OpenJDK distribution directly, and will not purchase support services, even without considering upgrading the JDK. Until today, historical versions such as JDK 7 still have considerable market share. Explain this.
Non-Hotspot JDK Production Practices – Graal VM, IBM OpenJ9
Graal VM is listed as an early adopter stage, and Li Sanhong said: Graal VM has been used on a large scale in the Oracle Cloud production environment, and TCK is compatible. It is worth mentioning that the static compilation of SVM under the Graal VM creates some incompatibilities in the Java language, which is also a concern for the entire community. How can I make SVM/static compilation into the Java Language/JVM Specification? It is worthy of attention.
Yang Xiaofeng’s view is even more extreme: at home, it is suspected that Graal VM and IBM OpenJ9 will be less likely to enter universal production practices. It is suspected that they may not go to the next stage and it is difficult to cross the technological divide. Referring to the reasons, he believes that mainly domestic companies are mostly emphasizing the speed of business innovation, and there is no patience and business necessity to do such deep underlying updates. Moreover, from a technical point of view, before the dynamic feature support and other requirements have no smooth solution, the migration is very difficult, which will bring high development and operation and maintenance costs.
Therefore, for domestic ordinary enterprise users, there is no value of separate attention. The more realistic technology adoption path in the future is that users use the OpenJDK main branch that integrates the advanced technology of Graal VM. Similarly, IBM OpenJ9 has a lot of unique technologies. If you can merge into the main branch of OpenJDK, you can create universal production value, otherwise it will be limited to the user group such as IBM middleware. In addition, the specific information for subscribing to the Graal VM service may be explained in Code One this year, and everyone is interested to pay attention.
Lambda /Stream, Vector API and other syntax and features
For grammar and features such as Lambda /Stream, interview research experts believe that it should be classified in the late public stage. Xiaoma Ge believes that these grammars and features are widely used in the daily work of developers, and there is no tendency to see the grammar fall back. Wu Ge said: Within the US group, Lambda and Stream expressions have been used extensively.
For the front-end version features such as the Vector API, Yang Xiaofeng believes that it is only in the prototype stage of individual head companies and should be classified as an innovator.
For Kotlin and Scala, we also interviewed two experts in the field of Kotlin and Scala.
At the Google I/O conference in May of this year, Google officially announced that Kotlin is the language of choice for Android application developers. Does this mean that the era of Java’s absolute dominance in Android development is gone?
Although he is a Kotlin expert, Zhang Tao’s point of view is very rational and objective. He said that every few years there will be a language claim to replace Java, but from birth to now, it seems that no language can replace it. This is mainly due to the solid position of Java on the server side, no language can achieve the perfect community, user base and tripartite library support of Java.
Zhang Tao believes that Kotlin should be in the early stage of transition from the early public to the late public. In the next year or two, most of the JVM platform developers will start using Kotlin.
At the end of 2017, Zhang Tao had conducted a survey and invited nearly 1,000 Android developers to find out if Kotlin was used in their projects. The result was that 30% used Kotlin, 60% had heard of Kotlin, and more than 80 had never heard of it. He believes that 90% of domestic Android apps should include Kotlin code.
InfoQ has previously conducted an interview with byte beat big data engineer, Scala programmer Wang Shipeng and several other experts from the Scala community to understand the development of Scala in China. For some people who think that Scala is difficult to become mainstream, Wang Shiphong said: Why does Scala have to become mainstream? It is enough to be the king in the field that suits you. The mainstream is not so important.
Wang Shichong puts Scala in the early stage of mass or late stage: Scala will be a niche for the foreseeable future – a small number of people love it very much; there are a small number of teams or companies that use it; most people only hear about it. Just pass it. Whether it is at home or abroad, Scala is not a mainstream language. However, some companies with a high level of teamwork are still using Scala to do things.
Examples of fame are Twitter, LinkedIn, Verizon, and more. In the financial industry, there are Morgan Stanley, Standard Chartered, etc. (but they are typical of making a fortune, and rarely publicize their technology selection). And many of Silicon Valley’s startup teams used Scala early for rapid development. In China, except for some teams of Xiaomi, Ali and Tencent, and startups like GrowingIO, Water Drop, and some advertising companies, most developers use Scala for Spark development. Because there is no typical, charismatic big company to dominate, Scala is doing a good job in the community.
Micro-service frameworks such as Spring Boot/Cloud, Apache Dubbo, TARS, ServiceComb
For the microservices framework technology to adopt the life cycle division, we interviewed and surveyed several experts from Ali, Tencent, Huawei and other major manufacturers, each of which has its own microservices framework solution. However, the king of the microservices framework is still not the Spring Boot and the Spring Cloud. For this, everyone has reached a consensus that Spring Boot/Cloud is in the late adopter phase and has a large number of users. According to InfoQ’s research for developers, the developers who choose Spring Boot/Cloud account for 70%; the second is Apache Dubbo, which accounts for 20%; the proportion of other micro-service frameworks is not too high.
Tian Xiaoliang said: The Spring Cloud community is still booming and has begun to create business opportunities for cloud vendors. How to integrate with Spring Cloud has become one of the key issues that cloud vendors have to solve.
Although more and more companies have chosen ServiceComb for microservice transformation and have achieved success, they have not spread to the early public stage. ServiceComb’s microservices framework and Service Mesh can be combined to give users a flexible choice.
Java is still the most popular language, but companies are finally able to choose other languages for microservice development. At the same time, Spring Cloud components can be plugged into ServiceComb to help Spring Cloud users smoothly transition to multiple languages. Java is no longer the only choice for microservices.
Apache Dubbo didn’t call this name at first. Dubbo was originally a system inside Ali. The Dubbo project was rebuilt in 2010. At the beginning of 2018, the Dubbo project officially entered the Apache incubator. In the eyes of Pony, Apache Dubbo is in the late stage of mass, but the latest Apache Dubbo ECO System (Ecosystem) is a Cloud Native solution based on Apache Dubbo. It is not yet flourishing and is in the innovator camp.
For Apache Dubbo, Huang Fei said: It can be regarded as one of the leaders in the field of RPC middleware. Apache Dubbo’s service registration and discovery, service governance is relatively complete, support for grayscale publishing, intelligent load balancing strategy, visualized service management and operation and maintenance tools for developers to get started. It can be said that Dubbo/Dubbox has already made its mark in the RPC framework/microservices field and even has some advantages in some aspects.
TARS is called Tencent Application Framework (TAF) within Tencent. It is Tencent’s most widely used and widely used microservice development framework, and has been widely used in Tencent for more than ten years. In mid-2017, Tencent officially opened TARS open source, and became a Linux Foundation open source project one year after open source. Because of the open source late compared to other microservices projects, many community development dividends have been missed.
For TARS, according to Shan Zhihao, different microservice mainstream frameworks can meet different application pain points, and TARS is natively focused on multi-language and high performance. He believes that TARS has been widely used by large Internet companies and has entered a gap in the early stage of the early adopter phase.
Java application practice
InfoQ: Is the JDK version used by your enterprise using an OpenJDK release? How do you view the development of OpenJDK in China? (If not, reason and follow-up plan?)
Alibaba Li Sanhong : At present, most of Alibaba’s applications run in Dragonwell 8, and some are already running in Dragonwell. We are gradually pushing upgrades from Java8 to Java11 to fully enjoy the technology dividend.
US Mission Wu Ge: The US Mission mainly uses Java8 at this stage, and a small part is Java7. Some core teams are experimenting with Java 11. The development version JDK adopted within the US group is mainly the Oracle JDK. Our JDK version on the server is mainly Meituan’s own MtJDK and Oracle JDK. At this stage, the US team is testing the OpenJDK-based MtJDK as the JDK basic service.
MtJDK is built primarily on OpenJDK and is currently maintained for patch and security. At this stage, testing and application are carried out within a specific line of business. In the future, with the basic service upgrades such as Serverless, MtJDK will deeply customize the isolation between JDK startup performance and enhanced applications.
Xiaomi Huangfei : Xiaomi mainly uses OpenJDK8 and 11 versions. At present, OpenJDK is mainly used mainly. The main business concern is whether this version is long-term support; whether there are more efficient and easy-to-use features, such as GC algorithm upgrade from CMS, G1 to ZGC, etc.; whether the open source community is active; Whether there is enough information and discussion on the problems encountered.
As the most widely used language, Java has made great progress in recent years, both in terms of grammar ease of use and performance. Absorbing the idea of functional programming, lambda expressions, Parallem stream, Var variables, etc. improve the efficiency of the developer and the simplicity of the code. ZGC is undoubtedly a major improvement that solves Java’s natural GC problems to some extent.
InfoQ: What is your company’s current strategy for supporting the Java technology stack? What are the plans and goals? What are the relevant core pain points or business needs?
Tencent’s single- handedness : Tencent’s leading developer is C++, and there are a large number of Node.Js, Golang, Java, PHP, Python developers, and of course a small number of Rust, C# developers. Most of the backends of our massive users use C++ and Golang. Java is widely used in front-end and big data, and is also widely used in the delivery of ToB.
Because Tencent’s developers use a variety of development languages, and different development languages have different advantages in different fields, the current problem to be solved is the service interoperability problem of multi-language development. A set of micro-service development frameworks supporting multi-language is a necessity. TARS was born in this multi-language background.
US Mission Wu Ge: Meituan’s Java technology stack strategy is stable and promotes technology upgrades on a stable basis. The core pain point of Java is to rely on the upgrade. When a jar package is upgraded, a service upgrade must be performed for one service, and the overall upgrade cannot be automated. Therefore, for the US group, the problem of related dependency upgrade is being solved.
Red Hat Chen Chuhui: Red Hat mainly uses the popular Java technology stack. Most of the projects are developed in Java, mainly because Java is mature, there are many mature technical frameworks that can be used directly, and there are many similar code that can be reused, and it is easier to find technicians who are familiar with Java. This will be faster and more efficient, and the cost will be lower.
InfoQ: Please tell us if your business has implemented microservices? If so, what is the ratio in the overall system architecture? If not, is there a plan?
Alibaba.com: Most applications have implemented a microservices architecture, with more than 80% of microservices.
Tencent Shanzhihao: As early as 2008, Tencent has begun to practice the concept of mass service with “big system and small work”. A large number of services have been developed following the micro-service concept. Because Tencent wants to support rapid iteration and agile R&D, the proportion of microservices is over 95%. The core business module is 100% microservices because it has to support huge traffic for a large number of users. Tencent’s internal microservices developed using TARS have hundreds of thousands of nodes. In terms of scale, it is one of the largest microservice clusters in the world.
US Mission Wu Ge: The US Mission began the evolution of the microservices architecture in 2015, and the core system has been 100% micro-serviced.
Red Hat Chen Chuhui: Microservices practice has been carried out, accounting for no more than 30% of the overall system architecture.
Huawei Tian Xiaoliang: All services of Huawei Cloud adopt microservice architecture, but not all services use some kind of microservice solution—such as ServiceComb, Istio or Spring cloud. Each service mainly implements microservice design mode. However, almost all application services use the kubernetes cluster of Huawei Cloud Container Service (CCE).
InfoQ: What is the main microservices framework you use? How to judge the development of technology in this field in China? Do you think that the competition for the micro-service mainstream framework is settled?
Alibaba.com: Since the beginning of 2015, Alibaba Group’s application architecture has gradually evolved from SOA to microservices. The microservices framework used mainly focuses on Spring Boot / Spring Cloud and Apache Dubbo (HSF), covering all Java intermediates. Core infrastructure, over 90% of internal systems, and Alibaba Cloud merchant applications.
At the same time, based on the Spring Cloud API, Alibaba has derived and open sourced a new microservices framework – Spring Cloud Alibaba, and is moving towards the next generation of “cloud native” architecture. More and more applications are beginning to try frontiers such as Serverless and Service Mesh. technology. I believe that the future micro-service will provide more choices in different languages and platforms. As for who is the king or mainstream framework at the time, the answer to this question is no longer important.
Tencent’s single- handedness : Different micro-service mainstream frameworks can meet the application pain points, such as SpringCloud and Dubbo, which focus on Java. TARS focuses on multi-language and high-performance, and fully utilizes C++’s high performance, Go performance and efficiency. Java’s versatile, Python-rich base libraries, especially AI, Node.Js, and PHP are all convenient for the Web.
At present, the open source micro-service frameworks of China and the United States (Tencent’s TARS, Ali’s Dubbo, Baidu’s brpc, Google’s gRPC, Facebook’s Thrift, Pivotal’s SpringCloud) can basically cover the pain points of all users, and enterprises directly choose from the open source community. The development framework that can solve your own pain points can be.
US Mission Wu Ge: mainly using self-developed OCTO and Pigeon, is now developing Service Mesh services. At present, the domestic main is based on Dubbo, Spring Cloud, Google gRPC as the basis for secondary packaging, the mainstream framework selection has been relatively mature.
Red Hat Chen Chuhui: It mainly uses the Spring Cloud microservices framework and also studies Service Mesh (Istio). Since the existing microservices framework requires too much developer involvement and requires a lot of development, I am currently optimistic about Istio. However, because Istio is not mature enough, everyone is still in the pre-research stage.
Huawei Tian Xiaoliang: Many of Huawei’s cloud services and internal projects use ServiceComb’s microservice solutions, such as consumer cloud, which runs thousands of microservice instances around the world to serve mobile phone users. In addition, Huawei’s audio and video services also run thousands of micro-service instances to provide video calls, audio and video decoding services. And we also provide solutions to the community (via ServiceComb) and commercial users (via ServiceStage).
InfoQ: How do you view the development status and development prospects of Service Mesh in China?
Alibaba Pony: Personal opinion on Service Mesh is optimistic and cautious. On the one hand, as a practitioner, there is always a curious attitude towards technology. On the other hand, there are some idealisms in the design of this technology, such as performance loss and stability, and the typical problems in distributed scenarios have not been solved and improved, such as data consistency, distributed transactions and so on.
As far as I know, many domestic Internet companies, such as Alibaba, Ant Financial, and Meituan, have begun to pilot Service Mesh in the production environment, which sounds like a good thing. The cutting-edge technology always requires someone to explore. If it succeeds, the predecessors plant trees and the descendants take the cold. As for its success, it depends mainly on whether the market is willing to pay.
US Mission Wu Ge: Future Service Mesh will shine in cross-language scenarios. Service Mesh is mainly based on the development of pain points under the cloud platform and multi-technology stack scenarios, and there will be no explosive growth in a short period of time. However, based on the increase of the native cloud architecture system, the future Service Mesh will continue to evolve and eventually become the network infrastructure service under the cloud native architecture.
Tencent’s single-handedness: Service Mesh is still in the early stages of development, and its concept design has determined its performance and maintainability will be its most prominent short board. However, some companies, including Tencent, have already adopted early adopters, and there are also a small number of non-essential non-core businesses running around. Service Mesh has a beautiful architectural concept, but the performance is really worrying, and the community ecology needs at least three years of development time.
Huawei Tian Xiaoliang: In the big environment, the challenge for traditional enterprises is still how the business system transforms into microservices to build its own business platform, in which the microservices framework is a means. In order to seek faster micro-services, developers will avoid learning a steep development framework and switch to using Service Mesh. Developers will combine their lightweight SDKs (such as docking monitoring systems, configuration management, AI platforms, rather than microservices frameworks) with Service Mesh to implement their own business systems, freeing themselves from heavy architectural work. This development process seems to me to take about 2-3 years.
Moreover, in my opinion, it is not Service Mesh that is finally on the stage, but the Serverless platform supported by Service Mesh. The user does not realize the complexity of Service Mesh technology, otherwise it will face a more cumbersome foundation than the development framework. Facility operation and maintenance challenges. So Service Mesh is actually tied to the development of Serverless. The popularity and use of Serverless will inevitably help Service Mesh evolve.
InfoQ: What do you think about the current development of Java?
Yang Xiaofeng: For the foreseeable future, Java is still the core technology stack of enterprise software, big data, e-commerce and so on. However, the current Java/JVM capabilities have certain limitations in the cloud era. For example, in the cloud-free scenarios such as serverless and microservices, Java/JVM has certain shortcomings.
In addition, the slow adoption of the new version of Java itself indicates that there is a certain degree of disconnect between Java innovation and actual needs – on the one hand, a large number of innovations will bring compatibility and version confusion; in addition, the advantages brought by innovation will require The increase in development and operation costs has also offset the value of some innovations.
But will Java be replaced? It should or not. At present, there is no real rival in Java, tools, libraries, etc., but the biggest threat is whether the new wave of demand is related to you. We can look at the trend of new Java projects on GitHub, to a certain extent to prove the solid fundamentals of Java and the hidden concerns.
Alibaba Li Sanhong: From a technical point of view, the development of Java (JDK) for more than 20 years has been trying to strike the best balance between Productivity and Performance. Java is a statically typed language, but for productivity provides a large number of dynamic features such as Bytecode Instrument, Dynamic Class Loading, Metaprogramming (Annotation, Reflection , these form a Java cornerstone technology in operation and maintenance, production monitoring and other fields.
And because Java A large number of dynamic features make it criticized for cloud-native, Serverless computing Memory Footprint, Startup. This is also the entire Java community, including the problems that Alibaba Dragonwell is trying to solve.
Alibaba Pony: Java still has the ability to win in the programming language list, but it has declined slightly in overall proportion. Personally, this trend will continue in the future. The reason is that, on the one hand, due to the short- and medium-term effects of the new language, on the one hand, Java programming complexity is not significantly reduced, such as I / O processing, concurrent / parallel computing, and class loading. Furthermore, the interaction between Java and the operating system is still insufficient. Although Java 9 has provided a lot of APIs, there is not enough understanding and use. Java is clearly less than the GO language in this regard.
From a linguistic perspective, Java is merging into mainstream non-Java languages. The key to solving the gap is grammatical changes, such as Java 8 Lambda expressions and Java 10’s local variable types ( var ). Personally think that this is a good thing. In the future, the front and back ends are not separated and infiltrated, and each language is a benign development.
In addition, individuals are looking forward to GraalVM changes to Java. Traditional Java applications must rely on the JVM process to load bytecodes and interpret execution. There is no guarantee that all code can be programmed at runtime, and there will be runtime compiles. The performance overhead is incurred, which affects the start and stop time of the JVM. Simply put, this approach is not enough Native, and may not be friendly enough for the cloud. If the community version of GraalVM in the future can be “close to the people” like OpenJDK, then Java changes will be disruptive.
US Mission Wu Ge: At present, Java has developed into a huge monster. There is basically no breakthrough in language, and more is reference and compatibility. With the upgrade of the GC algorithm and the replacement of compilers, there is still a battle for the next generation of language challenges such as Go.
Tencent’s single-handedness: There is no doubt that the Java language is still full of energy, but in some respects it has lost its advantages, such as the more active Go language in the cloud native field. A multi-language world will surely coexist and replace. Looking back at the historical development process, it takes a decade for a language to appear from the beginning to the early stage of mass use. The development language that can survive after ten years of tempering must have a strong vitality, and there will be different enterprises to build their ecology. . As mentioned above: different languages will continue to develop at their own advantages and form strong competition barriers.
Byte Beating Wang Shichong : The Scala language currently has two large target operating platforms – JVM and JS, so Scala as a language and ecology does not dare to fully invest in a single target platform. Although the JVM itself is constantly evolving, Java has been overtaken by multiple languages on the same platform, such as Kotlin, Clojure, and Groovy.
Report participant introduction
Yang Xiaofeng, Java technical expert, OpenJDK Committer.
Li Sanhong, Aliyun Intelligent Senior Technical Expert, joined Ant Financial in 2014. He is currently the head of Ali/Ant Java Technology and has more than 10 years of Java development experience. Active in the Java technology community, he has several technology patents in the Java virtual machine space.
Xiaoma Ge (@mercyblitz), author of Spring Boot Programming Thoughts, Apache Dubbo PMC and Spring-Cloud-Alibaba Architect.
Tian Xiaoliang, Huawei Cloud ServiceStage Principal Engineer and Apache ServiceComb PMC, 7 years of experience in the field of cloud computing, has many years of practical experience in PaaS, hybrid cloud, DevOps, microservices, APM.
Shan Zhihao, a member of the Tencent Technical Committee and the Tencent Open Source Office, is responsible for the open source ecosystem of the microservices framework TARS and donates the project to the Linux Foundation. Yunyuan Production Industry Alliance Expert Consultant, DevOps Standards Expert, GOPS Conference Bureau.
Wu Ge, a senior technical expert at the US Mission, is now mainly responsible for the system architecture work of the US team.
Chen Chuhui, chief architect of Red Hat AppDev, open source technology expert, familiar with a variety of open source middleware, long-term working in internationally renowned software companies, 20 years of middleware work experience, rich in telecommunications operators, government companies, finance and other industries Experience in system integration and IT project management, with rich first-line practical experience.
Wang Shiphong,Bytes beat big data engineer, Scala programmer. Translated with “Reactive Design Patterns”. Mainly focused on the implementation of reactive architecture based on Scala and related applications. Previously engaged in the development of real-time data stream analysis systems for small and medium-sized enterprises. The 4th Ali Middleware Performance Competition Winner, the first Alibaba Cloud PolarDB performance season.
Zhang Tao, the net name kymjs, Android technical expert, “open source lab” blogger, Kotlin technology promoter, began to contact and use the Kotlin language four years ago. Brought the team, done the architecture, wrote the application, and worked as an open source community. He has worked in Shanghai, Hungry, and Ctrip, and is currently responsible for mobile development management in a living hall.
Huang Fei, technical director of Xiaomi Internet Business Department, has extensive experience in realizing the commercialization of the Internet. He is responsible for the research and development of Xiaomi Internet advertising business engine and algorithm architecture engineering. He has many years of practical experience in the high concurrent distributed recommendation system.
Special thanks: Thanks to Teacher Yang Xiaofeng for participating in the preliminary planning of this report, and giving professional advice and guidance during the report writing process.
“Alibaba Cloud’s original WeChat public account (ID: Alicloudnative) focuses on micro-services, Serverless, containers, Service Mesh and other technical fields, focusing on the trend of cloud native popular technology, the large-scale implementation of cloud natives, and the most understanding of cloud native developers. Technical public number.”