Developer Tools Build tools products around the developer’s entire life cycle

https://developer.aliyun.com/…

Cloud development means developers can complete coding, testing, release and other R&D processes based on the cloud platform. A complete cloud development platform not only provides a cloud coding environment, but also provides a set of research and development tools and supporting facilities, so that developers can complete the full life cycle management of application requirements, coding, testing, operation and maintenance in the cloud.

Traditional local development issues

As shown in the figure below, in the traditional development mode, enterprise R&D personnel usually complete the writing and testing of the code locally, and then push the code to the remote server. After a series of construction and integration, the code is finally released to the production environment, and the online operation and maintenance system is continuously used to complete the monitoring, operation and maintenance of the online system. At the same time, companies will also collect some of the key data in the development process, used to measure the effectiveness of the team and individual.

As hardware and software technologies change and companies grow larger, in order to adapt to this change:

  • Companies need to constantly equip their R&D staff with appropriate local R&D tools (e.g., multi-core and high-memory computers, Mac laptops), which can be expensive and need to be updated regularly.
  • New employees need to configure a complex local development environment, install specific software and plug-ins, and be familiar with the R&D process of the project and various online systems before the formal start of development. Due to network configuration and other problems, some projects may not be able to be started locally in the first time, which will delay a lot of additional configuration and debugging time.
  • The company needs to invest a lot of resources to build the efficiency measurement system and security control system that match the needs of managers. Moreover, because the cloud system naturally has weak control over the developers’ local environment, the effect can only be satisfactory. Alibaba is no exception. With the rapid development of various businesses and the rapid expansion of staff in recent years, how to solve similar problems in the development process has become an urgent issue. As an emerging technology, cloud research and development has unique advantages that can be used to solve the above problems.

Typical application case of cloud development

Case 1: Development of front-end components

Inside Ali, there are a large number of front-end projects based on Node.js. These front-end projects generally adopt the modular organization mode, and generate numerous modules (or components) in the development process as the demand iteration. At the same time, some front-end projects will invite business parties to participate in co-construction, that is, the team proposing functional requirements will develop components by themselves under large standards, release them online, and integrate their own scenes in the platform.

In this context, component development is highly abstract, and most of the steps can be completed with the assistance of tools (as shown in the figure below, business developers only need to pay attention to their business logic), which not only improves the R&D efficiency, but also improves the quality of component development.

Development process of front-end components:

Cloud development works right out of the box to solve similar problems. Developers open the browser is a well configured environment, to achieve zero configuration start; The environment configuration can be maintained by senior colleagues on the project team, configuring the system version, application runtime, SDK, and IDE plug-in collection for a particular project. Instead of using local development tools, cloud development can:

  • Transition of the R&D process, from component creation to final release in one go, instead of jumping back and forth across multiple platform tools;
  • Shields user operating system differences, provides a unified research and development environment, does not have to solve Windows/Mac differences, do not have to worry about the local version of Node.js;
  • All environments are pre-loaded with the necessary development enhancement tools, such as: specification scan and repair tools, preview debugging tools, each environment release tools, etc.
  • Free up the local disk space without worrying about the disk being filled by node_modules.

    Case 2. Code security control and digital measurement of R&D process

    In the research and development scenarios of government affairs, finance and some high-tech enterprises, the security control requirements for codes are extremely strict. But in recent years, the company’s internal source code leaks happen from time to time, some are clearly priced for sale, priced at hundreds of thousands of dollars or even millions of dollars; Some are publicly available on the Internet, where anyone can access and download them. Once such incidents occur, it will directly or indirectly cause the disclosure of business information and damage to the company’s reputation.

When using local development, the transfer environment of the source code, the local persistence medium is not under control, and there seems to be nothing to be done about the behavior of the employee who intends to leak the source code. When using the cloud development, everything is easily solved: developers can directly open the web page from the code base or demand to start the cloud development. During the development process, the code does not fall on the local disk, which can not only reduce the transmission risk, but also avoid the possibility that the staff’s local environment is implanted with Trojan horse and the source code may be leaked without their knowledge. At the same time, in the cloud development environment, users’ browsing and copying behaviors can be controlled to different degrees. Combined with alarms and automatic system interception, the risk of source code leakage can be effectively reduced.

In Alibaba, when it comes to projects with high confidentiality requirements, or when external members of the enterprise participate in projects with code confidentiality requirements, we will recommend the project team to use the cloud for research and development, so as to effectively prevent the leakage of source code.

In addition, as more and more enterprises enter the stage of digital transformation, managers expect to see the input and output of employees in a more comprehensive way, and make more timely adjustments and improvements in terms of project personnel distribution and R&D process efficiency. In the past, all digital information relied on manual feedback and statistics, and whether the feedback was accurate and whether there were mistakes in the statistical process would directly affect the judgment of the management. But if you move the research and development process to the cloud, all the research and development process data can be born and used in the cloud, it will be easier to improve the efficiency of research and development with the help of digital.

Within Alibaba, it is common for a team member to lead multiple external members to complete a project. When it is necessary to evaluate the performance of external members of an enterprise, the traditional evaluation method usually refers to indicators such as the number of requirements to be completed and the rate of code defects, etc. However, in actual work, the requirements vary greatly and are difficult to be easy. Therefore, it is difficult to make the evaluation completely based on the result indicators to be fair and just and make excellent employees stand out. With the help of cloud development, all the data in the research and development process can be transparent, such as the coding duration of each requirement, The Times of interim release, the ratio of process code to final effective code, the code output per unit time, etc. By combining R&D process data, performance evaluation can also be made more transparent and fair.

conclusion

Cloud development is characterized by flexible customization and out-of-the-box use. With the help of these two characteristics, we can innovatively solve the intractable problems in the traditional local development process. In addition to the above two cases, we believe that the current scenarios suitable for the implementation of cloud development can also be:

1. Lightweight code development in cloud native scenes, such as Serverless scenes, in which developers only need to centralize the writing of business logic, a large number of framework codes have been hidden by default, and debugging and deployment methods are different from traditional R&D processes, which are more suitable for the implementation of cloud development. 2. All kinds of vertical scenes, such scenes usually require targeted customization to get through with specific online systems. As long as we can make good use of the flexible customization characteristics of cloud development, it is expected to achieve a 10-fold improvement in the development stage.