Author: OpenYurt Community
background
In 2021, COPU, the Chinese Open Source Software Promotion Alliance, took the lead in publishing the “Blue Book of Open Source Development in China 2021”, which covers the overall situation analysis, developer analysis, project analysis and field cases of open source in today’s world, and draws an “open source digital ecological map”. It gives us a comprehensive view of China’s power in open source. According to the report, Alibaba ranks first among domestic enterprises in terms of open source activity, some of which are even the sum of other companies, and has also done well in terms of community/openness.
In the same year, in the second “Open Source Software Supply Chain Lighting Plan Series summer Activities”, namely “Open Source Summer”, initiated by the Institute of Software of The Chinese Academy of Sciences for college students, a total of 14 open source projects of aliyun’s original open source family joined the activities. By actively participating in the activities, students experienced the real world software development under the guidance of top open source instructors, felt the charm of open source technology construction, and contributed to the vigorous development of excellent open source software community in China.
While from the “summer” of the open source has been rectified, by ali cloud native OpenYurt open source project, with its non-intrusive design, deployment, the silky experience, have been mentioned many times in the process of “ease of use, community” active atmosphere of open, and the development of the promising direction still attracts more and more love open source partners involved. In “Open Source Summer – OpenYurt Experience Center”, students can quickly get started and participate in projects to solve practical problems in a low threshold way. As they transition from bystander to community contributor, let’s take a look at what they really felt and what they learned unexpectedly through our interviews.
Interview questions and answers
Chen Tao, Liu Jiawen, Chen Lu, Chen Lu, And Liu Jiawen are graduate students of The School of Software, Zhejiang University and Tongji University
1. Please introduce yourself and let everyone know you well
Chen Tao: Hello, everyone. My name is Chen Tao. I am a postgraduate student in Software engineering at Zhejiang University. Liu Jiawen: Hello, everyone. My name is Liu Jiawen. I am currently a second-year graduate student in The School of Software, Zhejiang University. Chen Lu: Hi, everyone, I’m Chen Lu. Now I am a graduate student of tongji University Software School.
2. Do you have any hobbies? Since when do you like programming? And how to access the “open source” culture?
Chen Tao: My hobbies are reading, watching movies and running. Aside from the computer courses in high school, I really understand deep programming because I chose software engineering as my undergraduate major. As xiaobai, I encountered many difficulties in the process of establishing “communication” with the computer at first, but with the continuous expansion of professional knowledge, I gradually fell in love with the direct and logical man-machine communication way of programming.
Computing technology development changes with each passing day, many technical problems may not be you can find in the book, in the process of problem solving, will naturally come into contact with the open source project, because you meet problem may be resolved in the latest discussion, the openness and sharing of open source culture, and I think the rapid development of computer technology important source of innovation.
Liu Jiawen: Daily in addition to moving bricks, is generally brush drama. Programming is due to professional reasons, slowly contact, when there is output, it will bring positive feedback, prompting me to constantly learn new knowledge. In the process, you come across open source projects.
Chen Lu: I like reading, table tennis, watching TV dramas and basketball. I got into programming because I chose to major in computer science in college. However, fortunately, I found that the major I had chosen by mistake was in line with my nerdy temperament.
Contact open source nature is also “toss” on the road a natural thing. I set up a blog on the server, tried my personal RSS service, searched StackOverflow for answers after stomp holes, raised an issue on GitHub, and sometimes wrote my own PR when I encountered a problem that couldn’t be solved. In the process, you are unwittingly involved in the open source community.
3. Why do you choose to participate in “Open Source Summer” and what do you hope to gain?
Chen Tao: I used to dive in the community, mostly looking for “wheels” to solve problems, but I always had the idea of building wheels in my mind, and I also hoped to change from a bystander to a contributor in the process of participating in open Source Summer.
Jw: I was already working with the OpenYurt community before I came to Open Source Summer, and then I saw that OpenYurt was also participating in Open Source Summer, so I chose to participate in this event. On the one hand, I want to know more about the technology, on the other hand, I want to be more active in contributing to the community.
Chen Lu: “Open Source Summer” was sponsored by amway. At the beginning, I just took part in this activity with the mentality of trying to find something for myself to do in the summer vacation. Now it seems that the harvest from this activity is far beyond my initial expectation.
4. Did you know About OpenYurt before joining open Source Summer? Why OpenYurt among many projects?
Chen Tao: As the graduate student majored in edge computing, I focused on projects related to edge computing. I chose OpenYurt because of its non-invasive design idea. When I first came into contact with OpenYurt, I only used Docker and Kubernetes. Initially, I would subconsciously feel that it would be complicated to use projects involving edge, but the deployment and use process is very smooth, which is well integrated with cloud native technologies such as Kubernetes and containers. I think it’s a good design pattern to be able to accommodate cloud native features while supporting many edge features and scenarios.
Chen Lu: Before participating in the event, I was completely a marginal cloud native field, only a few technical articles about OpenYurt, OpenYurt to me is still in a state of “half-cover”. By choosing OpenYurt, I hope to “see the world” in a new field and develop a new map through this project.
5. How do you view the technical value of the edge cloud in which OpenYurt is located?
Chen Tao: With the continuous sinking of cloud computing capacity, it has become a trend to bring in scattered but abundant edge computing resources. Meanwhile, cloud native technology, as a series of technologies born under the cloud background, can make full use of cloud computing resources and has gradually become the standard. Therefore, in the process of managing edge devices, it is a very challenging and valuable direction to make use of cloud native technology to shield the differences of underlying devices and unify the environment above and below the cloud.
Liu: Compared to other solutions, OpenYurt is easy to use for both developers and users because it is non-invasive to Kubernetes. In addition, OpenYurt also designs various solutions to solve the problems of edge scenarios, providing different solutions to the problems in the field of edge cloud native.
Chen Lu: OpenYurt is committed to creating an infrastructure platform for the edge cloud native field. Because Kubernetes, the de facto standard for cloud native, was originally designed for data centers, it did not consider the special needs of many edge scenarios (such as unstable network environments, etc.). What OpenYurt is doing is making some non-intrusive improvements and extensions to Kubernetes for such scenarios.
6. Did you encounter any difficulties when you first started the project of OpenYurt? If so, please expand the introduction ~
Chen Tao: At the beginning of the difficulties mainly in the source code reading, this is the first time I face a larger architecture, in the face of many components, do not know where to start, may see a feature in the process, will float to the other code, and even read to forget the previous code…… It was frustrating for me as a beginner, but I think it’s a part of every new project you have to go through. Later slowly familiar with the process also gradually produced some of their own experience, for example: grasp the main context, do not indulge in unimportant details; Smart use of debugging, in the running process can be a good observation of the running logic; And take lots of notes, jotting down key points and thoughts.
Liu Jiawen: When I first got started, I encountered difficulties mainly in the construction of clusters. At that time, the tools of community cluster construction were relatively simple, and the problems encountered in the process still needed to be manually investigated. However, the community tools are now well developed and friendly to novices.
Chen Lu: To be frank, OpenYurt has a certain learning cost. First of all, it requires a basic understanding of Kubernetes. To understand its design background, it also needs to combine some knowledge of edge computing. Then, it needs at least a distributed environment and some hands-on ability to get started. Of course, the community is aware of these issues now. For example, the experience Center project I’m working on is trying to lower the barriers to use OpenYurt.
7. We have learned that your main contribution is the OpenYurt Developer Experience Center. Please introduce this component to us, including the design background, implementation method, challenges faced, problems solved, etc
Chen tao: Since open source, OpenYurt has attracted many developers and users who pay attention to the edge computing field. However, due to the different background of users, they may lack the relevant knowledge in the cloud computing field such as Kubernetes. When using and building OpenYurt clusters, various problems will occur. The capabilities of OpenYurt cannot be utilized.
In this context, the OpenYurt community considers launching an OpenYurt experience center. Users only need to apply for an account through the experience center, and then they can get and connect to an OpenYurt cluster. At the same time, because experience accounts are not in the production environment and to improve resource utilization, the OpenYurt experience center uses the soft multi-lease technology to enable multiple tenants to share an OpenYurt cluster, ensuring resource isolation and security when users see a complete OpenYurt cluster.
In this project, I was mainly responsible for the development of operator to manage the life cycle of tenants and related resources, including the design of tenant CRD, the development of controller and the issuance of tenant certificates. Among them, the most impressive challenge may involve the tenant certificate, because to authenticate the tenant, the relevant tenant information must be added to the certificate, so it needs to sort out the whole Kubernetes and OpenYurt certificate management logic in a short time, and at the same time design in a non-intrusive situation, complete the injection of authentication information. It took a long time at the time.
Liu Jiaben: The OpenYurt experience center is composed of several parts. I am mainly responsible for the design and development of multi-rent components. Simply speaking, I check and modify the requests of tenants according to their information in the requests, so that tenants cannot see the resources of other tenants.
In the process of design and development, various requests of tenants and how to process corresponding requests should be considered comprehensively, so that the experience center can have higher security for tenants. In addition, in order to realize the whole process of request processing, but also need to have a detailed understanding of the process of API-Server request processing, so it requires a short period of time to read the source code of API-Server, and can master the use. It was a big challenge for me.
Chen Lu: The architecture of the experience center is relatively complex. For specific design and implementation, please refer to the introduction document of OpenYurt Experience Center [1]. I’m mainly responsible for the Yurt-Dashboard part of it, which is actually a Web application with both front and back ends. As the development of both the front and back end of the project was completed by me alone, I had high requirements on my development ability. Trivial issues have also been encountered in the design and implementation process, and here is an example:
How to design Kubernetes API Client? In order to make more convenient use of the access to Kubernetes API provided by client-Go in the project, how to design a set of access interfaces that meet the ease of use and scalability? This problem has bothered me for a long time. I reconstructed several versions of the logic of this part, hoping to find a reasonable solution.
A. Directly invoke the interface functions provided in client-Go to abstract common functions without encapsulating classes. B. Abstract a resourceClient class through which all access requests are sent. (Poor scalability, different resources need different request logic to distinguish through switch, does not meet the design principle of expansion over modification) C. Define a Client class for each resource, putting all resource sharing logic into the baseClient base class. (With certain redundancy and strong expansibility)
In addition, different from the toy project of “defense programming” that I was familiar with before, this project will eventually be put on line for actual users to try out. Such pressure of facing users put forward high requirements on my standardization of coding and rationality of design. In the development process, many places need to carefully consider whether it is realistic, whether it will affect the system availability, whether it will affect the system scalability. There’s a famous saying in software development, “Make it work, Make it right, Make it fast.” If most of my previous development experience was in the “make it work” phase, this project allowed me to take a higher level and try to think from the perspective of “make it right, make it fast”. Of course, limited by my personal level, the final implementation is only satisfactory, but I am very grateful to have such a precious opportunity in the open Source Summer project.
8. It has been more than half a year since the open Source Summer of 2021. What motivates you to stay in the OpenYurt community and contribute?
Chen Tao: In addition to its own research direction, but also because of the active and open atmosphere of the community, promising development direction. In the OpenYurt community, you can find the points you are interested in and get deeply involved. From solving some good-first-issues at the beginning to assuming important features and being recognized, you can gain a great sense of achievement.
Liu Jiawen: On the one hand, because my research direction is edge cloud native, my daily study and work are all around this content. On the other hand, choosing a high-quality open source project and continuing to contribute will also give you a sense of accomplishment.
Chen Lu: The driving force is of course the iterative needs of the experience center. Ha ha, just kidding. I think OpenYurt has a great community atmosphere that people enjoy, which can be summed up as “a group of professional people who trust each other and do something worthwhile”.
9. Looking back, did your contribution to the OpenYurt community live up to your expectations for open Source Summer? Do you have any surprises or interesting stories to share?
Chen Tao: It has achieved my expectation perfectly, that is, from a spectator to a participant. Unexpected harvest is likely to be in the process of code and document is continuously review, more and more specifications, before may not focus too much on this aspect, but to participate in the OpenYurt later, in the process of writing your own code will unconsciously consider ease of use, portability, etc., I think this is my a big harvest.
Liu Jiawen: unexpected harvest, should be at the beginning of the registration of this activity, thought only for the needs of development, the end of the project is the end. Unexpectedly, after the event and after, the community continued to follow our project, giving us the opportunity to share. This constant feedback makes open source even more attractive to me.
Chen Lu: As mentioned before, the harvest from this project is far beyond my expectation. In the process of completing the project, two mentors changpu and Xinsheng gave me a lot of help. They gave me a lot of positive feedback and effective suggestions in system design, prototype design, specific implementation details and other aspects. Moreover, they took pains to help me answer some silly questions as a beginner of Kubernetes. The project could not have been completed without their guidance and help. In addition, since this project also involves the cooperation with Chen Tao and Jia Wen, we will have regular SYNC meeting to synchronize the progress. The experience of analyzing and solving problems together was also very pleasant, which made me know these new friends.
10. Finally, do you have anything to say to those of you who are contributing to the open Source community or participating in open Source Summer?
Chen tao: through this experience, I realized that, in the process of participating in open source, is not just simply solve the problem, because of the characteristic of the open source project, all of the code check-ins to take into account the readability, extensibility, etc., including the specification code, how to design can be more elegant and general, and written related documents and so on all aspects of the project. In the process of constant review and modification of codes and documents, I will greatly improve my ability to participate in cooperation in complex projects.
Liu Jiawen: I think for students who have participated in the open source community contribution, they may pay more attention to actively participate in the community discussion and enhance their participation in the community. For those students who have not participated in the contribution, take me as an example, I did not know what to contribute to the community and how to contribute. Based on my own experience, if there are students participating in open source around me, you can ask more; if not, you can also boldly submit an issue in the community for help.
Chen Lu: Don’t worry too much. Relax. The threshold for community participation is definitely not as high as you think. Participate in a discussion, propose a typO PR, and you are making your community a better place. And once you get past the initial strangeness, the community will eventually reward you in unexpected ways.
About OpenYurt
OpenYurt is built based on native Kubernetes, which was open source by Ali Cloud in May 2020 and selected into CNCF SandBox project in September of the same year. It is the industry’s first non-invasive edge computing cloud native open source platform.
OpenYurt flagship “cloud edge integration”, the concept of edge to calculate the complicated network environment of the scene, large-scale application delivery, operational difficulties such as pain points, provides the edge autonomy, cloud edge operational channel, unitized deployment, one-click cluster conversion ability, through the cloud edge node unified management, make the edge nodes have the same capacity with the clouds, Help developers easily complete large-scale application delivery, operation and maintenance, and control on massive edge resources.
In the past two years, OpenYurt has realized the whole network coverage and local coverage of the whole scene implementation, the whole network coverage of application scenarios such as CDN, audio and video live, Internet of Things, logistics, industrial brain, urban brain, etc. Local coverage of application scenarios and cases such as AliyunLinkedge, Youku, Hema, AIBox, Intime Mall, etc.
Welcome to the OpenYurt Experience Center
As an edge cloud native project, OpenYurt involves both edge computing and cloud native. Many edge computing developers are not familiar with cloud native knowledge. In order to lower the threshold of OpenYurt usage and help more developers to quickly learn OpenYurt, the community launched the OpenYurt Experience Center platform. New users who want to try out OpenYurt’s capabilities do not need to build an OpenYurt cluster from scratch. They can apply for a test account on the platform and immediately have an OpenYurt cluster available.
A link to the
[1]OpenYurt experience Center: OpenYurt. IO/Docs /instal…
[2] OpenYurt 官网 : OpenYurt. IO /en-us/
Click here to learn about the OpenYurt project now! Release the latest information of cloud native technology, collect the most complete content of cloud native technology, hold cloud native activities and live broadcast regularly, and release ali products and user best practices. Explore the cloud native technology with you and share the cloud native content you need.
Pay attention to [Alibaba Cloud native] public account, get more cloud native real-time information!