author : Xin Xiaoliang
Interviewing guests : To Jane 、 Yanlin
Software architecture has developed so far , Experienced from monomer Architecture 、 Vertical architecture 、SOA The architecture is now based on microservices 、 The evolution of cloud native technologies such as service grid , The development of cloud native technology is unstoppable , A platitude “ Cloud native ” Will still be a hot topic in the future . And as the digital transformation accelerates , Enterprises' use of cloud will reach a new level , Cloud native architecture and cloud native applications will also continue to evolve iteratively .
Well, with the blessing of cloud native and other technologies ,2022 What are the noteworthy trends in the architecture field in ? How does yunyuansheng support the future of Architecture ? Reprinted from InfoQ Architecture headlines , Alibaba cloud MSE Person in charge: Li Yanlin ( Yanlin )、 Li Yun, senior technical expert of Alibaba cloud ( To Jane ) Be a guest together InfoQ Video Number , Share the latest trends in cloud native architecture . Complete video playback, click to read the original text to watch .
Software architecture evolution process
InfoQ: Software architecture has experienced from single architecture to SOA Architecture and then to the architecture form represented by the native micro service cloud , What are the key nodes in the middle ?
To Jane : Talking about cloud primitives today, I think we still need to review history , Go and find out what it is .
- 2000 In the year , There is no concept of virtualization yet , All you see are physical machines ;
- 2001 year VMware Born in the sky , However, a virtual machine is delivered at this time ;
- after 2006 Amazon launched IaaS( Infrastructure as a service ) platform AWS, The idea at this time is to CAPEX( Capital investment cost ) become OPEX( Operating costs ). That is, I don't need to buy a lot of machines , But when it's used, go to the cloud to buy ;
- 2009 year Heroku Put forward PaaS, At this time, it is no longer delivered by virtual machine , Turned into Buildpacks, Also began to have the concept of containerization , also 12 A set of rules for feature applications ;
- 2010 year , There is OpenStack, It is actually done through open source IaaS, The purpose is to communicate with AWS Compete , It builds building block Or a VM;
- 2013 year ,Docker The emergence of has brought great changes , At this time, delivery becomes a container .
today Cloud Native The earliest by Pivotal Put forward , Later by 2015 Established in CNCF(Cloud Native Computing Foundation) Defined .
In fact, we can obviously see some changes in the whole process , From mainframe 、Server To VM、Buildpacks, And then to the container , Isolated units are also getting smaller and smaller , From very heavy to very large, it becomes very small through the microservice software architecture . The most important purpose is to decouple . You may be right Cloud Native There are many ideas , But I think the key point is Cloud Native What is the core of , From my own perception , I think all software has a wise saying , We call it divide and rule , It can also be called decoupling , Or high cohesion and low coupling . Through continuous decoupling, it becomes a micro service , Make the whole interaction more agile . Instead of coupling individual applications together as before , It's hard to work together , It's hard to deliver .
Cloud Native Another important element is no lock-in, That is to avoid technical locking . from CNCF Define standards ,CNCF Don't directly say that something is a standard , They will think that this thing is a key component , And indicates that this component is widely adopted , It's us too CNCF Approved . In this way, more people will use , I also know that this software will have long-term maintenance , Naturally, it will be standardized , And the benefits of this standardization are no lock-in, I think it can be understood from different dimensions .
From the perspective of manufacturers , You can flexibly choose different cloud providers ; The other is for Engineers , you are here A Do business development on the company's platform , Very likely to leave A After the company, there is no way to show ,no lock-in The advantage is that employees will not be locked in a technology company , As long as you master Cloud Native technology , The position you are engaged in can be circulated in the talent market .
Yanlin : Just now Zhijian said it from the perspective of the whole software industry , Let me briefly explain my understanding from the perspective of industry .
Today's cloud native technology , Including the form of software architecture and the Internet 1.0、2.0、3.0 It has a lot to do with it . The earliest Internet 1.0 Times are static pages , At this time, the content of most websites is relatively simple , Monomer application basically adds CDN It can be solved ; As the Internet enters 2.0, Various portals 、Web Applications have sprung up , Interaction is also beginning , More interaction 、 More rendering requires higher overall technology , Single application can no longer meet the increasingly complex business needs , Software becomes complex , The scene becomes complex , The degree of digitalization of human collaboration is becoming higher and higher , This is the time to enter SOA And microservices ; After that, a relatively big change took place in the whole industry , Mobile Internet , The arrival of the third era puts forward higher requirements for real-time performance , Include “ Actively seek 、 Passive push ”. Access to information 、 More real-time rendering , Whole IT The system is also growing explosively at this stage , Higher requirements for digital systems .
With the development of Cloud Computing , In fact, with the development of cloud , stay 2015 Around the year , As just Jane said , Generalization and standardization are basically taking shape gradually , stay 2015 Years later, , Containerization of various in the industry , such as Docker、K8s Include Spring Cloud All came into being in this era , It's like this .
InfoQ: After so many years of changes in the software industry and Industry , What stage has cloud native architecture developed to now ?
To Jane : I think if you come today , It can be said that the cloud native architecture has been widely accepted by all walks of life .
With Service Mesh For example , The acceptance of service grid has increased greatly in the past year . The reason why cloud native architecture takes Service Mesh For example , Because the concept of cloud native whole has been widely accepted , For example, like the one born by Yunyuan K8s There is no doubt that it is a situation of unifying the Jianghu , And by contrast Service Mesh It's late .Service Mesh Problems that have been questioned, such as performance , Today, it has been gradually accepted , Acceptance does not mean that the performance problem has been completely solved , But we know how to make good use of .
Today, many enterprises are considering how to implement cloud native technology . I think cloud primitives, whether it's a concept or something 、 Design patterns are good , It is a combination of . I won't simply say that cloud primitives have developed to the whole process 50% or 60%, Don't use this thinking to look at it , It's about whether we can go to the cloud first , With the evolution of cloud native technology , I can also follow this rhythm .
I think the good thing is that the whole public has a good understanding of cloud native technology , Then the overall trend of cloud primary is optimistic and booming .
Yanlin : Let me talk about my understanding of this matter , First of all, from the perspective of software technology, we can say , This year you can see , Alibaba cloud and all other clouds are talking about containers Anywhere, In fact, containers have become an infrastructure , With the development of the next three to five years , Holding containers may be more than running alone ECS More on the .
From the perspective of microservices , Because we are making a two-year plan recently , You should also see some key data , For example, what is the average salary of Chinese programmers , The average wage is the labor cost , In fact, it is much higher than IT Computing power cost and resource cost . The container solves the resource scheduling cost more 、 O & M costs , Microservices are more about R & D costs 、 Synergy costs . Because if you build too many people on one code , Efficiency is very low . So the first problem is that manpower and efficiency are becoming more and more important , And with the intensification of competition in the whole industry , You have an advantage if you run fast , If you run slowly, you will miss this opportunity , The Internet industry is “ Fast fish eat slow fish ”.
Another relatively new thing in the data I focus on is the age distribution of the whole programmer ,90 It has become the core and backbone of building a digital economy , Their collaboration mode and work style are different from those of the old members . They prefer a more agile and independent collaboration model , Microservices are actually a collaboration model that is more in line with them .
At present, from the perspective of the whole industry , Microservices have become a mainstream choice . And we can see from the other two data : The first is that from the perspective of the whole industry, there are almost... Micro services every year 20% Growth of the above , In other words, tens of thousands of enterprises in the whole industry are doing the transformation of micro services every year ; The second is that in addition to the containerization and micro service transformation of Internet companies , Many traditional industries , Like retail 、 Medical care 、 Finance, etc , Digital upgrading has started one after another , Microservices have a wider application space in the whole society .
From another technical point of view , Whether it's a single application 、 Microservices , And the future service grid 、Serverless etc. , They all have their own application scenarios , Today may be due to the increase in labor costs , The overall rejuvenation requires more freedom of cooperation 、 More independent , Containers and microservices are becoming more and more important in this general trend .
InfoQ: During our chat just now, we also saw that many viewers expressed their recognition , Some landing cases are also mentioned , Do the two teachers have any relevant landing cases to share ?
There are many landing cases , Let me give you a few examples that you can talk about .
Call technology has completed the technical transformation of the whole cloud in the past few years , Containerization 、 Micro services have been done , In R & D efficiency 、 Resource utilization has been greatly improved . Now they have reached the second stage of cloud primordial , At present, the big problem is service governance , For example, elegant online and offline 、 Lossless offline , At the same time, it will also face the problem of high availability , For example, its actual scene , Online and offline integration , Higher requirements for online stability , We need a high availability system , Including current limiting 、 Downgrade 、 Fuse 、 Roll back 、 Full link grayscale . They have now reached this stage , It is also a relatively high level in service governance , It represents a case of intersection between some traditional enterprises and the Internet .
The other is SKECH , They also caught up with the digital transformation , We know that digital economy has become an irresistible trend in China , If you don't join this trend, you may be eliminated . He also contacted us to prepare the whole middle platform system , In almost a few months, Alibaba Zhongtai technology architecture has been rapidly reused , Build his entire retail system , Of course, there are some problems in this process . It's the time to build a micro service system , Before, his whole system had POS machine 、Web、App Multi terminal access , Including some traditional architectures , Part is the new microservice Architecture , In the process , The new cloud native gateway solves the security problem from intranet to extranet , For example, certificate management 、Web protective 、 Security certification, etc .
In addition, SKECH will make a big promotion , The peak is several times higher than usual , They reused Ali's high availability system , From the entrance to the back , A mechanism of end-to-end full link current limiting, degradation and fusing is made , Ensure high availability throughout the transaction . It is also practiced through the whole link voltage measurement system , The drill was successful one month in advance , Supported the whole SKECH in the double 11 E-commerce system for day trading .
A few months to build such a system , This is a bonus that the whole cloud native brings to you , I will simply share these two cases .
To Jane : Let me simply add , Today, the implementation of cloud native architecture is not a small number , Already thousands of concepts .
If you often focus on the whole industry , You can see that , Almost a little famous Internet factory , It doesn't mean you're exploring , It's already used for depth , I think there is no doubt about this .
InfoQ: In this process, or in other words, what problems will be encountered in the implementation and application of new technologies , How to deal with ?
To Jane : When we face new technology ,“ new ” Not the biggest problem .
I just think the emergence of every new technology , With it, we will re-examine the technology debt left by each enterprise in the process of development . Including previous work in Alibaba group Service Mesh to ground , What hurts me most is not whether this technology is new or not 、 Or you can't make it , But you have to spend a lot of energy and time to deal with the historical burden first .
So in the process of landing , One of the biggest pain points I see is actually the cost of transformation , Including moving the previous architecture to the cloud native , You may need to split the service, etc . Because the cloud native architecture doesn't simply mean that you move it to the container. This thing is solved , It means that we should take this opportunity , What should be microserviced should be microserviced , At least in terms of efficiency, we should reflect .
Yanlin : Let me talk about some of my specific feelings in practice , First of all, we should have an open attitude towards new technologies . for instance , Whether it's microservices or container transformation , It doesn't just change the architecture of the software , And the structure of the organization . For example, when we export Alibaba's software architecture to some traditional enterprises, we find that , Ali's whole organization is flat , Microservices are also flat and distributed , Therefore, the efficiency of cooperation is relatively high , It's an agile development model . But many organizations are still in the form of pyramids , Cross departmental collaboration will be less efficient . Of course, with the change of software architecture , The organizational structure will also change with the software architecture , You can experience this slowly .
Then when everyone takes the first step to solve the psychological problem , Indeed, we will face some problems one after another , Because there is no silver bullet in the software industry , There is no one-size-fits-all architecture , For example, microservice architecture is indeed more than 10 Personal team , exceed 5 The subsystem will have greater advantages in the whole productivity . In the process of transforming the micro service itself, more questions are about the strength of my system ? In my submission “ A master one ” It is a more suitable interval , Too detailed disassembly will bring more coordination costs and operation and maintenance costs . Of course, it doesn't mean that you can't dismantle it carefully , There are some business scenarios that deviate from the line of calculation , If it is lighter, it can be disassembled more finely , This requires experienced experts to do field segmentation .
Specifically, micro service splitting , The first problem I encountered at that time was positioning , After microservice, you will find that the log has gone to more than a dozen machines , Viewing all logs is very expensive , The cost of diagnosing a problem is also very high . Now industry link tracking , Include APM, In addition, monitoring and alarm is to solve the problems in this field .
In addition, we see a data , It's in the container 70% It is very easy to implement microservices , Why? ? Because after microservice , The deployment of your application is more detailed and more , Operation and maintenance costs will rise . Most containers solve the operation and maintenance cost through the automation mode , Achieved complementary effects . Through the evolution of containers , It solves the problem of deployment cost after the splitting of microservices .
On the whole , What I can slowly feel is , Now the threshold for the use of the whole container and micro services is much lower than before . Today, through the development of open source and cloud computing , Lower the threshold of these technologies , The rest may be more decision-makers looking for the right time . For example, I know that the business is going to grow explosively , It's getting more complicated , I want to do the evolution of cloud native architecture , Solve the problem , Something like that .
Future architecture trends and prospects
InfoQ: Can you briefly talk about the Cloud Architecture ?
To Jane : In our opinion, one important driving force of cloud native is to prevent locking , It is also something that enterprises care about and hope to have a standardization .
If it's cloudy , There will be some challenges in the current cloudy customer management . I think it will be a process , From the very beginning, we talked about going to the cloud , To cloudy 、 A hybrid cloud , These two are undoubtedly the key contents of cloud native , It will also make it easier for developers to use this technology , It is done from a developer centered perspective , Therefore, relevant technologies and products will come out one after another in the future , Including now there are some .
in addition , I understand that in the short term, you may feel that it is not so easy to use , But I think this will be better and better , This must be the focus of all cloud manufacturers , Because the focus of our development still depends on what pain points we can solve for our customers , Help customers better develop their business .
Yanlin : Cloudy may be called differently by different manufacturers , For example, cross cloud 、 A hybrid cloud , We put more emphasis on distributed cloud . What I can feel is , Why choose cloudy in the industry , We have different ideas .
Overseas, there may be some high availability demand , At home, we hope to have cheaper resources , Price war . Overseas is to take advantage of each cloud , such as AI Big data Google cloud is stronger , Tradition IDC field AWS Better , So you can mix and use , Online business in AWS, Offline on Google , And so on , In combination with .
I take this example to say , For most manufacturers, cross cloud must have a cost . Some domestic enterprises may want to choose multiple cloud manufacturers , Talk about some discounts , But the result is , After crossing the cloud, the complexity of operation and maintenance increases and the management cost increases , I learned that the domestic Internet industry has invested a lot of manpower in this aspect to smooth out .
InfoQ: We collected some community issues before , I'd like to ask what new forms of software architecture will appear in the next five years ?
To Jane : What is the architecture? I think we need to touch it first , The architecture I understand consists of three elements , The core is the concept , The second is the relationship between concepts , The third element imposed on concepts and relationships is constraints .
The emergence of cloud primitives is actually a practice of Architecture , This practice is based on what we have seen and faced in the past , Review and reflect again , Break the previous concept 、 Split , And reshape the concept , The last words of today are formed Best Practices( Best practices ), Including many design patterns, such as Sidecar、Operator wait .
If there is no new architecture concept in the next five years, it is unlikely , But subversive , Personally, I don't think I can . If you want to subvert the cloud native architecture , First, cloud native technology needs to be applied to a certain extent , Then I met the situation of more extreme pursuit . As for change , It is normal for new concepts to be put forward , The development of the industry is to constantly shape the concept , This is precisely the phenomenon and natural state of Technological Development .
Yanlin : Unless quantum computing makes a sound , I think the distributed era will exist for a long time before this era comes . Then in the long-standing era of distribution , We can feel some trends happening .
Because with the container , With microservices , The business has become stateless , Today, if the flexibility of the whole flexible scheduling is to the extreme , future Serverless It's possible . From our technical architecture this year, middleware client lightweight , The business side will Serverless De evolution of , Because the business is becoming more and more stateless . With the completion of the underlying infrastructure , Flexibility , There is the possibility of upward evolution , But from our point of view this year, that is to say, some tasks of off-line computing Serverless It will be easier . I believe that with the continuous breakthrough of basic technology , Including hardware acceleration technology, etc , Including many big factories Serverless All have a layout , Before we talked about Serverless It's all about application architecture , Now, for example, message stores have corresponding Serverless product , therefore Serverless It may be a technical idea of the future .
in addition , What I can feel is under the container , More concerned about DevOps, Solve the problem of operation and maintenance efficiency , Yunyuan solved it in the first half of his life Ops The problem of , It's about operation and maintenance , The future is more about solving Dev The problem of , Is how to make R & D more efficient , Development iterations are faster . Of course in the process , Middleware, including microservices, may solve the problems of security, trustworthiness and stability by default .
Share the growth experience of architects
InfoQ: Many programmers will encounter some bottlenecks when turning from ordinary developers to architects , What are the two teachers' experiences in the growth of architects that can be shared with you ?
To Jane : In fact, there are many things to say in the field of architects , Let me start with my thoughts , Let's share a few points , Yanlin can make a supplement .
The first thing to do as an architect is to pursue technology , Need to have some accumulation in technology , The pursuit of software design , That's what we're talking about 《 The beauty of Architecture 》.
The second point is to know how to switch perspectives , Look at things from different perspectives . My biggest feeling as an architect is , How to stand on the user 、 Look at what we are doing from the perspective of customers or users . When you look at things from the perspective of users or customers , You'll find something completely different .
In terms of my own commercialization in the past year , There is a big feeling . Whether it's developing and delivering to customers with a product , Or do an internal module , How to stand on the other side's point of view , We will find that a technical term we are familiar with feels very natural and simple , But customers or users don't think so .
Personally, I think the more important thing is the continuous upgrading of thinking , From focusing on individuals , The focus is on the larger team 、 organization , It is a process of continuous breakthrough . Be a good architect , Have the ability of continuous abstraction , Need to be pragmatic , Need to have product thinking and business thinking . Cognition goes higher and higher , You will find that technology is only part of , But I want to emphasize that don't think technology is not important , It is precisely to lay a solid foundation for basic technology , Can we have confidence to break through .
Yanlin : Just now Zhijian said very well , The switching perspective is that many people change from programmers to architects or PD、 When you're a leader , Can't make it around . Then I'll add the following thoughts on my side , I often interview , So I'll talk about some things I'm more concerned about in combination with this .
First , In terms of basic technology or software development , I prefer curious people , Interested in technology , Can continue to deepen the technology , On the contrary, technology is easy to float on the surface , It is difficult to have long-term technical precipitation . Curiosity driven , In order to further develop and go further .
second , Is to take the initiative in work . I often talk to my classmates in the team , You're not sure I'll do it for you . In the process , You can get more resources and help , Get faster growth . A lot of growth is to jump to the high area , Challenge something more difficult , In this way, you can constantly exercise yourself , Think at a higher level .
Third , Is the dimension of thinking . Just now, Zhijian mentioned the user perspective and technical perspective , Another perspective is also more important , Is the overall view .
for instance , For example, new employees look at problems 、 The problem of dismantling , Don't think too much , Can put the 10 A problem is broken down into 5 A need ,5 The first question has gone up to a level , From here 5 Find out what is unreasonable in one demand and avoid , This leads to the thinking of products , Rebalancing scheduling will exercise the input-output ratio and priority thinking when the remaining reasonable needs are completed . And when you complete a whole product , You will keep following the front and back 、 Operation, etc , In the process of cooperation, the ability will be slowly exercised . Empathy , Further up is the ability of more surrounding resources to cooperate and so on .
Just to summarize , induction 2-3 year , The deep accumulation of core technology is very important , Only with depth can we go further ; After solid technology , The second point is to cultivate product thinking , Product thinking is important , Don't just do technical ; With product thinking , The third thing to do is the coordination of upstream and downstream people , To be an architect, you need to deal with multiple roles to do things well ; The ability to plan and coordinate the future is to solve the problem , This requirement will be higher .
InfoQ: Very much the answer of the two teachers , Because of time, today's live broadcast is almost over here , Thank you very much for watching , I am also very grateful to Zhijian and Yanlin for their wonderful sharing .
Introduction to guests :
Li Yun ( flower : To Jane ), Technical director of Alibaba cloud service grid hybrid cloud products .2018 In, he began to lead the team in the development and construction of service grid technology in Alibaba group , stay QCon I have shared the technologies of cloud native and service grid for many times .
Li Yanlin ( flower : Yanlin ),Nacos PMC, Alibaba cloud MSE Product founder , Head of Alibaba cloud soft load team .
Full content video playback , Click on here see .