Summary: Becoming an architect is probably one of the technical pursuits of many developers. So how do you understand architecture? What is the role and capabilities of the architect? What challenges do you face along the way as an architect? In this article, author Dorian shares his thoughts and practices on architecture and architects, hoping to inspire students.

The authors | delay source | ali technology to the public

My name is Daoyan. I joined Ali in 2014 and have been working in Ali Communications for nearly two years. I joined the business platform team at the end of 2016. The first thing the Leader asked me to do was to solve the problem of promotion, and the second thing was to solve the problem of safety production.

I took this proposition to the business platform and began the rest of the story. This article shares some of this and the thinking behind it, as well as some of my thoughts on architects.

I. My understanding of technical architecture

The top design

The country has a five-year plan every five years, which is actually a very clear top-level structure design at the whole level of the country. It is a macro structure design for major construction projects of the national economy and productivity, which is also an architecture design in essence. In this, what to do must be very clearly defined, what to achieve the results must be very clearly defined.

The guarantee of Singles’ Day also needs to be designed. Singles Day itself is a business event. Because of its large scale, it needs a lot of technology to support it. In technology, we may consider low cost, high efficiency and high stability, and we also need to introduce more new technologies to support them. We also need to integrate these things well, and design the architecture well, so that the architecture can smoothly support the business.

Physical architecture

We have a unitary structure, and of course many companies have similar structures. But there are some essential differences between Ali’s unitary architecture and other architectures.

What is the goal of Ali’s current unitary structure? By deploying remote units, the production flow can be completely run in an independent machine room thousands of miles away, so as to continuously run the business. These few sentences contain many key points, one is remote, the second is thousands of miles away, the third is independence, the fourth is continuity.

The chief designer of the unitalized architecture is Bi Xuan, because our business is very related to the unitalized architecture, so we need to fully grasp and understand it before we can move forward.

Application architecture

At present, it is called Star Huan, which is more widely used in the middle platform. The essential purpose of Star Huan to achieve the architecture is to abstract the simple code co-construction mode into the horizontal and vertical business package mode, so as to achieve separation between business and business, and separation between business and platform.

What is the problem behind this? We used to support more than 50 BU members, commodities, transactions, marketing, capital, payment, inventory reverse and other businesses by means of co-construction. In fact, if else is everywhere in each business, which makes it difficult to merge codes, develop them, test them, and launch them. The whole process is very painful. So when we did the architecture of the star ring in 2015, we were trying to make these things less painful and solve these problems slowly.

What is the role of the architect

Let me share my thoughts on the role of the architect.

Shapes come loose but spirits do not come loose

Architecture is something that exists in every line of business, and some of the technical students themselves are architects. A long time ago, Ali had a special position of architect, who was dedicated to doing the architecture, but the architect was no longer doing it. It doesn’t solve concrete, real, practical problems because it’s so off the ground. But now, Alibaba has a growing number of architects whose value lies in abstracting these technical problems and solving them. So the first point is that the spirit does not come apart. Excellent technical students have been using the sense of architecture to solve practical technical and business problems, which is essentially different from ordinary technical students. He didn’t just solve this problem, he might solve this kind of problem, using the idea of architecture to solve the problem.

prospective

Why can you solve this problem and solve this kind of problem? There must be a need for you to see more, think more, behind this is a lot of practice and knowledge accumulation, and is standing on the shoulders of the past.

Ali e-commerce system was established very early, our generation to do the architecture in it, are standing on the shoulders of the previous generation. To see why the previous generation design this way, to think or talk to him, learn from his good things. Now we may encounter new problems and solve some new problems through other methods, which requires the accumulation of practice and knowledge.

It’s important to get in touch with more people and things and to solve new problems in new ways. Don’t just look at the code for a month, look for the real business, your upstream, downstream, partners. For example, I came to the business platform in December 2016 for Singles’ Day. I spent three months talking about Singles’ Day with the battle-leader and important people of the annual Singles’ Day. How do they understand, how do they think, what do they think is wrong. I asked them again for some advice on what I should do. In the process of chatting with them, we know what kind of promotion we need to do and what the key points are, which are some precious wealth.

Solve complex problems

Good architects solve complex problems. Only complex problems require more different or newer technologies to be completely solved. High concurrency and high availability are the basic problems faced by Ali e-commerce, but the architects should have different solutions of high concurrency and high stability.

The most urgent issues of the moment, such as user experience, efficiency, and low cost, are actually very complex. Many students want to solve this problem, many ways to solve it, but the overall effect is not particularly obvious. Because it has a long link, which means more business and more people, you have to think about it in a new way. At the same time, users are stratified and there are more technical people inside, which forces us to simplify complex problems, so I would define complex problem solving as a typical role of the architect.

What capabilities do architects need

What capabilities do architects need? I refer to the share of some students outside, and conclude that it is to find problems, analyze and define problems, and solve problems.

Found the problem

For local and global problems, we need to have a vision of discovery, but also the ability to find out what has not happened, which needs to treat the symptoms, which needs to treat the root cause, this is the basic judgment to find problems. Now the system may not have major problems, but you should have a vision for discovery, if these problems are not solved, the business may encounter more serious problems in the future. Architects look at problems in a different way. They look not just at the problem in front of them, but at what’s behind the problem, what’s behind the problem, how can I solve a problem in an abstract way. After thinking well, I will solve the current problem first, other problems in an abstract way to solve it.

Define and analyze the problem

Ali does not lack students who can solve problems, but students who can define problems. How do you know this is a problem and define it clearly. It is necessary to abstract and summarize the problems found, define the basic elements of the problems, and define the short-term and long-term solutions of the problems, so as to promote the overall progress of technology.

Defining the problem is very demanding. When solving business and technical problems, we also need to have the ability to analyze and define problems. If we define a problem clearly, we can really push the business forward.

To solve the problem

Problem solving requires implementing paths and solutions, working with the team and upstream and downstream to drive problem solving. The problem the architecture is trying to solve must not be a local problem, must be a global problem. The architect is bound to encounter a wide variety of roles and links, and he must have the ability to define the solution to the problem and the path to implementation, while working with the team. He can’t keep his head down, he really has to look up, and he has to have good communication skills. Only by reaching consensus with all his classmates can he move forward.

The first is that communication skills are critical. How do you make that clear, get to the point, and at the same time help make a real difference upstream and downstream. The second point is that architects need to be able to put out fires, not just in the present, but in the future, and they need to be able to put out fires.

I was working on a CRM system before I came to Ali. Later, I had to solve a lot of business problems, to abstract it out, to do the basic platform under the business problems. Later, I found that if I want to solve the problem of the basic platform more thoroughly, I need to do the following middleware, so that the layers of depth will open the whole link to understand.

Since I arrived at the service platform in 2017, I have learned a lot, including its system link, data link, entire call link, its relationship with the underlying system, and what problems it may encounter. This problem may occur now, and will there be other problems in future operation? Through the fire fighting process, the accumulation of understanding of the system. Therefore, each accumulation of the past is of great help to solve the present problem, and each problem can be solved to make oneself have a deeper understanding of the overall situation.

Four, the architect’s challenge

Global perspective

For example, when you see the service function of “membership”, you should not only see the function itself, you should see what is the business of membership and who is using membership, which is called the global situation. At the same time, the most used members are shopping guides and transactions, login is only a small member itself business function. Based on members, we have shopping guides and transactions. If we put these things together, we can fully understand what members provide. We must have a global perspective.

Technical breadth

Ali’s technology is very complicated. It is really a great student who can work in Ali and completely touch the whole technology stack of Ali. For example, we may need to understand the terminal, such as IOS, Android, PC, and CDN, network, access layer, service discovery, service routing, HSF, etc. Databases include storage synchronization, multiwrite, and messaging middleware. These are technologies and products that students use, but not only do architects use them, but architects really want to play with them and get to know them inside and out, and that’s the point.

To give you an example, like the database composition of strong synchronization, on our subsequent technical architecture evolution and business improvement have a great impact, this time we should have a global understanding of the database.

Oracle databases were used a lot in 2009. At that time, I did not do database-related business, but in order to thoroughly study Oracle database, I learned a lot of contents related to Oracle database. Understand the logic inside, know its development state, running state, management state, etc. All knowledge is continuous. Later, when I come to Ali, it may take only a few hours to fully understand the current Ali database.

Breadth of technology depends very much on accumulation. You must take the question to think, at this time you have the memory, have the accumulation, slowly your skill breadth will be deeper and deeper. You have to understand the database, you have to understand the underlying network, so we have to have a further understanding of the network, CDN.

In 2009, I spent about two years to learn the network, and had a relatively comprehensive understanding of switches, routers, backbone networks, metropolitan networks, how operators build networks, and how self-built IDC build networks, including how to interact with the network every day, why retransmission high? Why the latency is high, TCP/IP layer 4 below the IP layer 3 is how to operate, IP layer below the MAC layer is how to operate, we need to have a deep understanding of.

The accumulation is most valuable when it comes to fighting fires. When I go to fight a fire, I will not use the current platform tools. I can directly use TCP code to catch the original post, and I can immediately analyze a lot of problems. This is the accumulation of daily, slowly you will have a big picture of the understanding.

When the whole core system goes cloud in 2019, it is also related to the breadth of technology. What changes have taken place in our cloud? The whole base to the cloud, computing, storage, network all to the cloud up, that to understand the cloud ah. In 2018, I basically know all the cloud products of Aliyun, and then I will have an essential understanding of Aliyun’s network and technology.

The architect must have breadth of technology. We must learn to accumulate, accumulate to a certain extent, you will be self-taught. For example, you know about the Internet, databases, and then you know about disk 30%. When this knowledge becomes systematic, you will be able to digest and understand the relevance behind different technical points, which will be a great help to your personal ability and cognitive level.

Continuous learning

Technological upgrades and changes are taking place all the time. Only through continuous learning can we have a new understanding of the old structure and produce new solutions to the old problems. Learn about what’s happening in the industry, what the key projects and people in the field are doing, learn about their techniques, learn about their papers. I used to spend about 2 to 3 hours a day studying, and those few hours of study time was the most relaxing time for me, I didn’t have to think too much.

Learning is not to say to blind learning, there must be a systematic. First of all, you should systematically learn the things related to your job, from the bottom to the top systematically. After learning, you will have a new and different understanding. Take your ideas to your team and to your supervisor.

There’s also the need to read the paper. Both OLTP and OLAP have very good papers related to data. Read the paper and then see what other people think of it. Be sure to see some good things, work related can see, to learn every day. Spend two or three hours a day studying and after three years you will know you are different from everyone else. Someone once said: you can put in 10,000 hours in an industry, you will make a substantial difference from others. But in our field, 1,000 hours makes a difference.

Understand the business

This must be put into practice. It is not that the business cannot do without the architecture, but that the architecture cannot do without the business. Only the trinity of business, architecture and technology can achieve the best results. We usually study, practice in the process of sharpening the knife, but you can not say that you are sharpening the knife every day, must use this knife. This is the combination with the business, with a different way of thinking to solve the actual business problems, will bring lower costs, higher efficiency.

The results of

To translate technological advancements into business advancements, forget the ass. This “get your ass off” is that you do a lot of things that you can’t do alone, complex, big things need to work with more people. If you do something for yourself, like KPIs, I tell you, you can do it once or twice, but no one will cooperate with you after that. You have to get your ass out of your head in order to slowly get this thing done and really get the results you want.

Meet the mountain road, meet the water bridge, this is the determination. In many cases, problems are really difficult to solve and require coordination among more people. Many may give up. We are currently upgrading the architecture, using home-made chips, full link from bottom to top. If one side doesn’t cooperate, it will be difficult to move forward. From April to the end of July, it was blocked twice, and the third time if it could not be carried on, the matter would be completely closed. We got the whole team together and told each other we had to get this done. When we meet mountains and water to build Bridges, we should work together to solve problems. We should be determined and decisive.

The original link

This article is the original content of Aliyun, shall not be reproduced without permission.