Today, I will share the exploration and practice of Feflow in cloud engineering, which will be expanded from the following four aspects.
What is front-end engineering
First, let’s look at why front-end engineering is necessary. The first scenario is when the team has a large number of new projects, especially many similar projects, such as operations. At this time, there must be a large number of reusable modules, if there is no engineering, there will be a lot of repeated work every time, the overall research and development efficiency is very low. As the development of the team expands, the technical level of the team members is uneven, and there will be some differences in the development; In addition, the project handover often relies on perfect documents, but this is uncontrollable. Once I encountered a project that took a long time to start, the development experience was very poor. So we need engineering to help us solve these problems.
For the definition of engineering, we can understand it as improving efficiency and reducing cost. In development, we can start from quality, efficiency and performance.
So how does the IVWEB team do engineering? First of all, in terms of quality, we define development specifications, utility tools for code inspection and release inspection; And through the general basic optimization of the project and SSR, PWA default support to improve performance; Efficiency is improved through scaffolding, packaging of business components, and support of common tools.
All of the above are supported by Feflow, which runs through the whole RESEARCH and development process, providing the ability to create and develop projects, supporting custom plug-ins to integrate various capabilities, and at the same time opening up various basic platforms to better support research and development.
The cloud brings opportunities
The cloud has grown by leaps and bounds in recent years, and when we think of clouds we think of K8S, Docker, Serverless, and more. As the cloud grows, so does our daily development.
For example, in local development, we used to need to prepare different development environments for various projects, and there would be interaction between packages. Now we can use Docker to prepare various environments. Now you can use Docker to isolate the environment, and use Git hooks to automatically trigger deployment. In the past, when we dealt with sudden traffic, we applied for machine capacity expansion, but when the traffic returned to normal, we had to refund (cost problem). With K8S and Docker, automatic capacity expansion and contraction could be realized, which greatly reduced the operation and maintenance cost of human workers.
At the same time, there is small program cloud development, which helps us to quickly start a service, and provides free storage; And the emergence of cloud functions, a simple service can be quickly launched, while also providing automatic expansion, very convenient. In addition, In recent years, WebIDE has become increasingly popular, known as the next generation of development mode. At present, the mainstream such as Tencent CODING, Huawei Cloud IDE, Monaco, etc., so what can engineering do in the cloud era?
Feflow on cloud
First of all, let’s recall the scene at the beginning of this year when the epidemic first emerged. People were locked in their homes and the biggest problem was how to go to work normally. If you bring your own computer, it is natural to start work at any time, of course, there are some enterprises “welfare” is better, some people mail computers to everyone, and some students do not bring computers or temporarily closed, looking for a computer, to prepare the environment a lot of preparation, found that the computer card is not good, very painful. Now that there are clouds and Webides, is it possible to make a remote development environment? We use cloud server and CS cluster of CODING to build the service, so developers can develop in the browser only through identity verification, almost no environment configuration, and computer performance is not affected.
How do you use engineering in this way? First, WebIDE also supports command-line operations, so we integrate Feflow by default when we create the development space and initialize the basic configuration so that users can use the engineering capabilities provided by Feflow just as they would from the local command line.
At the same time, it provides a visual way to make input and output more convenient and call tools more convenient, which greatly improves the user experience.
In this process, we also encountered a series of problems. First, the scaffolding needed to convert the input and output of the command line into a form, and there was data verification. Currently, JSON Schema is the most common data conversion form in the industry, which provides rich form display and data verification capabilities, strong versatility and low learning cost.
With the increasing number of users, some students in terminals and background also appeal for a unified tool chain, but the diversity of languages has become the biggest obstacle, so how to support tools in different languages has become a top priority, and it should also be universal and extensible.
The first is about command invocation. Almost any tool can be invoked from the command line, so Feflow can invoke the tool from the command line by configuring the tool to invoke statements in different operating systems.
Then there is the language dependency of the tool. Every language tool needs the support of the locale. Therefore, following the dependency mode of NPM package, when installing the tool, the language it depends on is also installed through the Feflow plug-in, and other dependency tools can be installed at the same time. Git tag is synchronized to the tool version using NPM package management.
Finally, a set of new development mode was formed. From git to WebIDE, Feflow provided the engineering capability of the r&d process, and then released to the online network through cloud tools such as Docker. There is no need to prepare a development environment, no need to worry about platform differences and language differences.
summary
Briefly summarize the following three points
1. Engineering is more than instrumentalization
Engineering can cover the whole r&d process, including tool building, specification formulation, process standards, etc.
2. Front-end engineering goes beyond the front end
Well engineered, it can also be applied to other ends.
3. Engineering can move with The Times
In the face of the arrival of the cloud, engineering can go to the cloud in a variety of ways, and there are more new things in the future, engineering can also be effectively combined.
Finally, there is a hope for the future development. As long as we have electronic devices, such as mobile phones, tablets and computers, we can start coding anytime and anywhere without worrying about those “external things”.
IVWEB!! Recruit!!!!! People!!!!!
The author’s team, Tencent Hotspot IVWEB, is looking for front-end engineers
IVWEB team is a professional front-end team of Tencent, with the aim of “excellent Web, full stack RESEARCH and development”, responsible for Tencent mobile live products NOW live, Tencent live, QQ class, voice friends, hand Q near Tencent live platform research and development.
The team organized and held four TLC conferences. Team members have participated in Qcon, ArchSummit, JsConf, GMTC, Open Source China and other industry technology sharing conferences. In addition, the team has trained several StuQ instructors.
What are we doing
Feflow
Feflow is a front-end workflow and specification tool for improving development efficiency. The latest version is V0.22.3, currently in alpha and hosted on Github: Tencent/ Feflow. At present, it has been used by more than 100 teams in Tencent, with more than 1500 internal users, contributing to the front-end development efficiency.
Aegis
Aegis is a one-stop front-end monitoring solution, covering log reporting, error monitoring, performance monitoring, resource speed measurement and other functions. Aegis is committed to protecting the health and performance of your project from all aspects with the capacity of 100 billion data streams per day and the maximum throughput of 10 million data per minute.
TLC assembly
Has held four sessions of tencent live broadcast of the conference, is read by the tencent team meticulously and sponsored by the IVWEB team oriented technology in the field of global big front end assembly, to improve and promote the whole front end, outside information, audio and video, broadcast, and technological innovation in the field of image processing such as communication, aims to build a high quality, high standard of professional exchange meeting.
About welfare and team life
Technology sharing within the team
Dinner parties are built every now and then
Barbecue, barbecue, seafood, Japanese everything
996? Nonexistent, weekend overwork also is bound to have adjust rest
About you
We want you to:
- Bachelor degree or above, more than 2 years working experience;
- Proficient in HTML, CSS, JavaScript to build high-performance Web applications;
- Understanding of Web standards and compatibility, practical knowledge and experience with usability related knowledge;
- Proficient in using at least one mainstream JS framework, with good code style, interface design and program architecture ability;
- Master a server-side programming language, have a certain understanding of OOP;
- Clear thinking, initiative, good communication skills and team work spirit.
If you are interested in joining us, please prepare your resume and send it to us:
Please indicate your name and application in the title, thank you very much for your cooperation ~~~(please use PDF format for your resume)