CN115629971A - Application development system and method - Google Patents

Application development system and method Download PDF

Info

Publication number
CN115629971A
CN115629971A CN202211280173.4A CN202211280173A CN115629971A CN 115629971 A CN115629971 A CN 115629971A CN 202211280173 A CN202211280173 A CN 202211280173A CN 115629971 A CN115629971 A CN 115629971A
Authority
CN
China
Prior art keywords
debugging
application
development
container
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211280173.4A
Other languages
Chinese (zh)
Inventor
肖丹
孙大巍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Coretek Systems Inc
Original Assignee
Coretek Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Coretek Systems Inc filed Critical Coretek Systems Inc
Priority to CN202211280173.4A priority Critical patent/CN115629971A/en
Publication of CN115629971A publication Critical patent/CN115629971A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Abstract

The application provides an application development system, a development method and a device, wherein the application development system comprises: the system comprises an integrated development environment, a container arrangement platform client, a development tool and a cloud console, wherein the integrated development environment comprises an extensible development platform, and the container arrangement platform client, the development tool and the cloud console are integrated with the extensible development platform; the development tool comprises a debugging tool adopting a remote debugging mechanism and a cross compiling tool chain; the container arrangement platform cloud end is used for responding to the container arrangement platform client end to create a packaging unit, and the packaging unit comprises a container for compiling, a container for debugging or a container for running and can respectively realize compiling, remote debugging and running of the uploaded codes; the container orchestration platform cloud further comprises a continuous integration and continuous deployment module, and the continuous integration and continuous deployment module is used for executing the uploaded update codes and integrating and deploying the previous codes. By developing the application based on the application, the utilization rate of hardware in the development process and the development work efficiency can be improved.

Description

Application development system and method
Technical Field
The present application relates to the field of computer software development technologies, and in particular, to a development system and a development method for an application.
Background
Currently, the C/C + + application program development for the Linux operating system mainly has the following two modes:
the first method is as follows: a development environment is built on a Linux operating system based on Eclipse, and the Linux operating system is used as the development environment and the running environment of C/C + + application.
The disadvantages of this approach are: the host machine can usually monopolize the development environment on the Linux operating system, and meanwhile, the development environment on the host machine can involve installing required supporting software on the host machine, such as: eclipse, dependency library, etc., can contaminate the host. Meanwhile, once the developed application program needs to run on different hardware platforms, a development environment needs to be set up again on the corresponding hardware platform, so that the utilization efficiency of hardware is low.
The second method comprises the following steps: and constructing a cross development environment of the application of the Linux operating system on the basis of Eclipse and a cross tool chain on the Windows operating system, realizing the development of the C/C + + application program on the Windows operating system, and realizing the running and debugging of the C/C + + application program on the Linux operating system.
The disadvantages of this approach are: the cross development environment is built on a Windows operating system, usually more than two sets of hardware devices (Windows devices and Linux devices) are occupied independently, for each developer, more than two sets of hardware devices need to be provided for each developer, and the hardware cost is high. Also, more hardware devices may be required, since it also involves testing of the developed application.
Therefore, in the above background, how to reduce the devices used by the developers, i.e., how to implement operations such as compiling, running, debugging, packaging, testing, etc. of the Linux C/C + + application, and the method does not cause pollution to the host, and improves the utilization rate of hardware, is a technical problem to be solved.
Disclosure of Invention
In view of the above problems in the prior art, the present application provides a development system and a development method for an application, so as to improve the utilization rate of hardware during the development process.
In order to achieve the above object, a first aspect of the present application provides a development system for an application, including an integrated development environment located on a terminal side; the integrated development environment comprises an extensible development platform, a container arrangement platform client integrated with the extensible development platform, a programming language development tool and a cloud console; the container arrangement platform client is used for requesting a container arrangement platform cloud to create a packaging unit for debugging, and a container for running an application is packaged in the packaging unit; the programming language development tool comprises a debugging tool and a cross compiling tool chain; the debugging tool is provided with a remote debugging mechanism; the cross compiling tool chain is used for realizing that application codes are compiled by the extensible development platform and uploaded to a debugging encapsulation unit of the container arrangement platform cloud end after the application codes are compiled to run; the cloud console is used for receiving debugging information generated when the compiled application codes running in the packaging unit for debugging are remotely debugged through the debugging tool.
The container arrangement platform comprises a container arrangement platform client, a container arrangement platform cloud and a debugging tool, wherein the container arrangement platform client is integrated with the extensible development platform client, the container arrangement platform cloud can be requested to create a packaging unit for debugging the container arrangement platform cloud, compiled application codes can be uploaded to the packaging unit, the corresponding connection in the packaging unit is established by means of the debugging tool with a remote debugging mechanism, and the application codes are remotely debugged through the debugging tool. In addition, the operation and the debugging are carried out in the packaging unit for debugging the container arrangement platform cloud, so that the pollution to the terminal and the container arrangement platform cloud is avoided.
A second aspect of the present application provides an application development system, including a container arrangement platform cloud, where the container arrangement platform cloud is configured to create a package unit in response to a request from a container arrangement platform client, where the created package unit includes a package unit for debugging; the debugging packaging unit provides a debugging environment, and the debugging environment is provided with a remote debugging mechanism and is used for receiving remote debugging of a debugging tool on the compiled application codes running in the debugging packaging unit and outputting debugging information generated by the remote debugging to a cloud console.
By the above, the container arrangement platform cloud can respond to the request of the container arrangement platform client to create the packaging unit for debugging of the container arrangement platform cloud, so that the compiled application codes can be uploaded to the packaging unit, the remote debugging of a debugging tool with a remote debugging mechanism is received, and the debugging information is redirected and returned, so that for each developer, only a terminal with the integrated development environment is needed to be provided for the developer, the developer can complete the operations of compiling, running, debugging, packaging, testing and the like of the application at the terminal and the shared container arrangement platform cloud, more than two sets of hardware equipment are not required to be configured for each developer, the hardware cost is reduced, and the utilization rate of hardware is improved. In addition, the operation and the debugging are carried out in the packaging unit for debugging the container arrangement platform cloud, so that the pollution to the terminal and the container arrangement platform cloud is avoided.
As an optional manner of the second aspect, the container orchestration platform cloud further includes a persistent integration and persistent deployment module, configured to implement persistent integration and persistent deployment of the updated code of the application uploaded through the programming language development tool and the previous code of the application.
Therefore, through the continuous integration and continuous deployment module, the processes of automatically integrating the updated part of the code into the original prior code (namely, the main code or the basic code), testing the integrated code and deploying the tested code into the production environment can be automatically completed. The subsequent development process of the code is simplified, and the development efficiency is improved. The updated code can be the source code of the newly added part relative to the former source code or the partially replaced source code
As an optional manner of the second aspect, the persistent integration and persistent deployment module includes a building module, a packaging module and a deployment module; the building module is used for compiling the updated codes of the applications and the application codes integrated with the prior codes of the applications; the packaging module is used for making the compiled application code as an application mirror image; the deployment module is used for deploying the application image.
Therefore, the continuous integration and continuous deployment are realized based on the building module, the packaging module and the deployment module. Optionally, the building module may include a Makefile generating module and a compiling module. Optionally, the packaging module may include a container mirror image making module, a mirror image labeling module, and a mirror image pushing module.
As an optional manner of the second aspect, the cloud of the container orchestration platform further includes a code repository, configured to store the application code, and configured to integrate the update code of the application into a previous code post-storage of the application.
Therefore, the updated code is integrated into the prior code of the application and then stored through the code warehouse, and the support of the code base is provided for continuous integration, so that the subsequent continuous integration and continuous deployment process is facilitated.
As an optional manner of the second aspect, the container orchestration platform cloud created encapsulation unit further includes at least one of: a compiling packaging unit that provides a compiling environment for the building module to execute the compiling; the test packaging unit provides a test environment for running the compiled application codes; a simulation encapsulation unit which provides a simulation environment for running the compiled application code; and the encapsulation unit for running provides a running environment for running the compiled application codes.
From the above, a plurality of package units can be created as needed to realize the different functions described above. Through each encapsulation unit, the pollution of the function that each encapsulation unit realized to container arrangement platform high in the clouds can be avoided. Moreover, each test environment and each simulation environment can be respectively multiple, so that one or more rounds of tests before being deployed to the production environment can be completed.
A third aspect of the present application provides an application development system, including the application development system of the first aspect and the application development system of any one of the second aspects.
A fourth aspect of the present application provides an application development method for performing development using the application development system according to any one of the first, second, and third aspects, the method including: compiling the application codes through a cross compiling tool chain on the extensible development platform; uploading the compiled application codes to a debugging packaging unit at the cloud end of a container arrangement platform; the debugging packaging unit requests creation to a container arrangement platform cloud end through a container arrangement platform client end, and a debugging environment provided by the debugging packaging unit is created through the cross compiling tool chain; remotely debugging the compiled application code running in the packaging unit for debugging through a debugging tool; and receiving debugging information generated by remote debugging through a cloud console.
In view of the above, this development mode has the advantageous effects of any of the first, second, and third aspects.
A fifth aspect of the present application provides an application development method for performing development using any one of the application development systems of the first, second, and third aspects, the method including: the container arrangement platform cloud end responds to a request of a container arrangement platform client end to create a packaging unit, the created packaging unit comprises a packaging unit for debugging, the packaging unit for debugging provides a debugging environment, and the debugging environment is provided with a remote debugging mechanism; when the compiled application codes run in the packaging unit for debugging, remote debugging of a debugging tool is received; and outputting debugging information generated by the remote debugging to a cloud console.
In view of the above, this development mode has the advantageous effects of any of the first, second, and third aspects.
As an optional manner of the fifth aspect, the method further includes: receiving update codes of the application uploaded through a programming language development tool; and continuously integrating and continuously deploying the updated code of the application and the prior code of the application through a continuous integration and continuous deployment module.
Therefore, through the continuous integration and continuous deployment module, the processes of automatically integrating the updated part of the code into the original prior code (namely the main code or the basic code), testing the integrated code and deploying the tested code into the production environment can be automatically completed. The subsequent development process of the code is simplified, and the development efficiency is improved.
A sixth aspect of the present application provides a computing device comprising: a communication interface, and at least one processor; wherein the at least one processor is configured to execute program instructions that, when executed by the at least one processor, cause the computing device to implement the method of any of the fourth or fifth aspects described above.
A seventh aspect of the present application provides a computer-readable storage medium having stored thereon program instructions that, when executed by a computer, cause the computer to implement the method of any of the fourth or fifth aspects described above.
Drawings
FIG. 1a is a schematic diagram of a first embodiment of a development system for the application of the present application;
FIG. 1b is a schematic diagram of a second embodiment of a development system for the application;
FIG. 1c is a schematic diagram of a third embodiment of a development system for the applications of the present application;
FIG. 2 is a schematic diagram of a fourth embodiment of a development system for applications of the present application;
FIG. 3a is a flow chart of a first embodiment of a method for developing an application of the present application;
FIG. 3b is a flow chart of a second embodiment of a method for developing an application of the present application;
FIG. 4 is a flow chart of a third embodiment of a method for developing an application of the present application;
fig. 5 is a schematic diagram of a computing device provided in an embodiment of the present application.
It should be understood that the dimensions and forms of the various blocks in the block diagrams described above are for reference only and should not be construed as exclusive of embodiments of the present invention. The relative positions and the inclusion relations among the blocks shown in the structural schematic diagram are only used for schematically representing the structural associations among the blocks, and do not limit the physical connection mode of the embodiment of the invention.
Detailed Description
The technical solution provided by the present application is further described below by referring to the drawings and the embodiments. It should be understood that the system structure and the service scenario provided in the embodiment of the present application are mainly used to illustrate possible implementation manners of the technical solutions of the present application, and should not be construed as the only limitation to the technical solutions of the present application. As can be known to those skilled in the art, with the evolution of the system structure and the appearance of new service scenarios, the technical solution provided in the present application is also applicable to similar technical problems.
It should be understood that, the development schemes of the applications provided in the embodiments of the present application, including the development system, the development method, the computing device, the computer storage medium, and the like of the applications, may not be repeated in the following description of the specific embodiments because the principles of solving the problems of these technical schemes are the same or similar, but it should be considered that these specific embodiments are mutually cited and can be mutually combined.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. In the case of inconsistency, the meaning described in the present specification or the meaning derived from the content described in the present specification shall control. In addition, the terminology used herein is for the purpose of describing embodiments of the present application only and is not intended to be limiting of the present application. To accurately describe the technical content in the present application and to accurately understand the present invention, terms used in the present specification are given the following explanation or definition before describing the specific embodiments:
1) The container technology comprises the following steps: a kernel lightweight operating system layer virtualization technique. Each container can be isolated from each other, each container has a file system, processes among the containers cannot influence each other, and the containers are decoupled from bottom hardware.
2) Distributed storage: a data storage technology is a technology for storing data on a plurality of independent devices in a distributed mode through a network, and the distributed storage resources form a virtual storage device. The method has the characteristics of reliability, usability, high access efficiency and expansibility.
3) Continuous Integration and Continuous Deployment (CI/CD): the CI/CD service can be used for automatically completing the processes of automatically integrating new codes into backbone codes (or called basic codes), testing the integrated codes and deploying the tested codes into a production environment.
Continuous Integration (CI): refers to the frequent integration of code into the backbone code. After the new code is submitted, build (built), unit test (code level test), etc. may be performed. Based on the test results, it can be determined whether the new code and the original code can be properly integrated together.
Persistent Deployment (CD): refers to the process of deploying the code generation deployable file package after the CI to the target machine. For example, it may include: the process of deployment into a TEST Environment (TEST) for testing (the testing includes using TEST case and scenario implementations to check for deviations from expected outputs), deployment into a simulation environment (Staging, which is generally a mirror image of a production environment) for testing, and deployment into a production environment (production, which is a running environment that formally provides external services, so-called a real environment) after TEST verification.
4) Compiling and debugging: compiling refers to converting source code into binary code recognizable by a computer. Debugging refers to checking an error according to a running condition after a program (which refers to compiled binary code) runs through a debugger.
5) And (3) cross compiling: in the development process of the embedded software, the roles of a host machine and a target machine are divided, the host machine is a computer for executing compiling and linking the embedded software, and the target machine is a hardware platform for running the embedded software. Cross-compilation can be understood as: the method is characterized in that the compiled program is compiled on one platform and runs on another platform, namely the compiled environment is different from the running environment.
6) Eclipse: a Java-based extensible development platform. As such, it is a framework and set of services for building a development environment through plug-in components. The plug-in set attached to Eclipse includes C/C + + Development Tooling (CDT), which can be used as an Integrated Development Environment (IDE).
7) Extension (Extension): is a key mechanism in Eclipse, and a plug-in (plug in) adds new functions to an Eclipse development platform by utilizing extension.
8) GCC: a compiler kit applicable to C/C + + compilation, the kit comprising tools comprising: a compiler (for converting source code into binary code), a pre-compiler, an assembler, a linker, an object translator, an object reader, a make tool (make is a command tool for interpreting instructions in Makefile, compilation order and rules of all files of the whole project are described in Makefile), a source debugger, etc.
9) GCC tool chain: a program is compiled from a source code to a machine for execution, and the program needs to go through a plurality of steps, such as pre-compiling, assembling and linking, wherein the tool set involved in the series of steps is called a GCC tool chain. A GCC toolchain that can implement cross-compilation may be referred to as a cross-compilation toolchain.
10 GDB): is a debugging tool in GCC and can be used for debugging C/C + + programs.
11 GDB remote debug mechanism: a technology for debugging a program of a far end by using a GDB of a local end is disclosed, wherein the local end is provided with the GDB, the far end is provided with a GDBServer, and after port connection between the GDB of the local end and the GDBServer of the far end is established, application programs on the far end are debugged by using the GDB of the local end.
12 Kubernetes: an open source container orchestration platform is used for managing distributed containerized applications in a cloud platform. The application in kubernets is packaged as a container mirror that is completely separate from the environment. Each container can be isolated from each other, each container has a file system of the container, and processes between the containers cannot influence each other.
13 Pod): is the smallest unit managed by kubernets, programs need to be deployed in containers to run, and containers need to exist in pods. A pod can be considered an encapsulating unit of containers, one or more containers may exist in a pod, and multiple containers located in a pod share the sum of network addresses and storage. The pod may be managed, including creation, modification, destruction, etc., by a kubernets client, and in particular by a pod controller in the kubernets client.
14 Namespace): the name space can be translated, is a resource in a Kubernetes system, and has the main function of realizing the resource isolation of a plurality of sets of systems. For example, two pods can be partitioned under different namespaces for isolation. Kubernetes can form a logical "group" by allocating resources inside a cluster to different namespaces, so as to facilitate isolated use and management of the resources of different groups.
15 Helm): is a packet manager for kubernets. Helm provides the functions of software deployment, deletion, upgrading and rollback application on Kubernets. Deployment of a container image or a set of container images corresponding to software may be implemented.
16 Chart: is the application packaging format of Helm. chart consists of a series of files that describe the resources required by kubernets to deploy an application, such as Service, deployment, persistentvolume, secret, configMap, etc., and places these files in a predefined directory structure, usually the entire chart is packed into a tar package, facilitating Helm Deployment.
17 QEMU: a CPU open source simulator, QEMU supports high performance expansion platform, can virtualize virtual machine with different architecture, including virtualizing arm platform (namely arm simulation environment) on x86 platform.
The development scheme of the application can be applied to development of the application, the development scheme of the application integrates technologies such as an extensible development platform (such as Eclipse), a container arrangement platform (such as Kubernets), a container technology and a cross tool chain, development and compiling processes of the application program of a programming language such as Linux C/C + + can be completed on developer equipment, and debugging, packaging and deployment of the application program can be completed on a cloud platform communicated with the developer equipment. Moreover, the method and the device realize continuous integration and continuous deployment of the update codes, and are beneficial to improving the efficiency of the development of the follow-up update codes. Therefore, the method and the device have the advantages that each developer can realize the whole development process of the application only by executing operation on one set of equipment, and compared with the method in the background technology, the method and the device effectively improve the utilization rate of hardware and improve the working efficiency. The present application will now be described in detail with reference to the accompanying drawings.
Fig. 1a shows a schematic diagram of a first embodiment of an application development system provided in the present application, including an integrated development environment 80 located on a terminal side, where the integrated development environment 80 includes an extensible development platform 81, a container orchestration platform client 82 integrated with the extensible development platform 81, a programming language development tool 83, and a cloud console 84; the container arrangement platform client 82 is configured to request the container arrangement platform cloud 20 to create a packaging unit 91 for debugging, where a container for running an application is packaged in the packaging unit; the programming language development tool 83 comprises a debugging tool 831 and a cross compiling tool chain 832; the debug tool 831 has a remote debug mechanism; the cross compiling tool chain 832 is used for enabling application codes to be compiled by the extensible development platform 81 and uploaded to a debugging encapsulation unit 91 of the container arrangement platform cloud 90 after the application codes are compiled and run; the cloud console 84 is configured to receive debugging information generated when the compiled application code running in the package unit 91 for debugging is debugged remotely through the debugging tool 831.
In some embodiments, the extensible development platform 81 may be an Eclipse development platform, or may be a MyEclipse development platform, an IntelliJ IDEA development platform, a NetBeans development platform, or the like.
In some embodiments, the container arrangement platform may be a kubernets container arrangement platform, a Rancher container arrangement platform, a Cycle container arrangement platform, an AKS container arrangement platform, or the like.
In some embodiments, the programming language development tool 83 may be a C/C + + development tool, a delphi development tool, a vc development tool, a Dev C + + development tool, or the like.
Fig. 1b is a schematic diagram illustrating a second embodiment of an application development system provided in the present application, including a container orchestration platform cloud 90, where the container orchestration platform cloud 90 is configured to create encapsulation units in response to a request from a container orchestration platform client 82, where the created encapsulation units include an encapsulation unit for debugging 91; the packaging unit 91 for debugging provides a debugging environment having a remote debugging mechanism for receiving remote debugging of the compiled application code running in the packaging unit 91 for debugging by the debugging tool 831, and outputting debugging information generated by the remote debugging to the cloud console 84.
The container arrangement platform may refer to various optional embodiments described in fig. 1a, and details are not repeated.
In some embodiments, the container orchestration platform cloud 90 further includes a persistent integration and persistent deployment module 92 for enabling persistent integration and persistent deployment of updated code of an application uploaded through a programming language development tool with prior code of the application.
In some embodiments, the persistent integration and persistent deployment module 92 includes a build module 921, a packaging module 922, and a deployment module 923; the building module 921 is configured to compile an updated code of the application and an application code of the application after integration of a previous code of the application; the packaging module 922 is configured to make the compiled application code as an application image; the deployment module 923 is configured to deploy the application image.
In some embodiments, the container orchestration platform cloud 90 further comprises a code repository 93 for storing the application code and for integrating update code of the application into a prior code post-storage of the application. In some embodiments, the code repository 93 may be, for example, a git repository or a svn repository, among others.
In some embodiments, the container orchestration platform cloud 90 creates encapsulation units that further include at least one of: a compiling packaging unit that provides a compiling environment for the building module to execute the compiling; the test encapsulation unit provides a test environment for running the compiled application codes; the encapsulation unit for simulation provides a simulation environment for running the compiled application codes; and the encapsulation unit for running provides a running environment for running the compiled application codes. In some embodiments, the test packaging unit can be multiple to perform different tests.
In some embodiments, the cloud 90 of the container orchestration platform further includes a container image repository 94 for storing a container image implementing the above functions or modules, where the container image is invoked to perform the corresponding function, and the container image includes at least one of: container mirroring for performing persistent integration with persistent deployment, container mirroring for making application mirroring, container mirroring for debugging applications, container mirroring for running applications, container mirroring for testing applications, and the like.
Fig. 1c is a schematic diagram illustrating a third embodiment of an application development system provided in the present application, where the application development system includes an integrated development environment 80 located on a terminal side and a container orchestration platform cloud 90. The integrated development environment 80 can be referred to the first embodiment, and the container arrangement platform cloud 90 can be referred to the second embodiment and the optional embodiments, which are not described again.
Fig. 2 shows a schematic diagram of a fourth embodiment of an application development system provided in the present application, in which the application development system includes an integrated development environment 10 and a kubernets cloud 20, where the integrated development environment 10 is an implementable manner of the first embodiment of the application development system, and the kubernets cloud 20 is an implementable manner of the second embodiment of the application development system, where:
an integrated development environment 10, which may include an Eclipse development platform 11, a kubernets client 12 integrated with the Eclipse development platform 11, a C/C + + development tool (CDT) 13, a cloud console 14.
In some embodiments, the Eclipse development platform 11 may integrate a kubernets client 12, a CDT13 or a cloud console 14 by way of a plug-in. In some embodiments, the kubernets client 12, CDT13, or cloud console 14 may be added as a plug-in to the Eclipse development platform 11 based on the Extension mechanism of the console (console) provided by Eclipse.
In some embodiments, the kubernets client 12 is configured to send a corresponding instruction to the kubernets cloud 20 to apply for, modify, and destroy resources in the kubernets cloud 20, where the resources include a Namespace (Namespace), pod within the Namespace, and the like.
In some embodiments, the CDT13 includes a debugging tool (GDB) 131 and a cross-compiling tool chain 132, where the GDB131 has a remote debugging mechanism, and can automatically connect with a GDBServer running in the kubernets cloud 20 when a debugging session is started in the Eclipse development platform 11, so as to implement remote debugging of an application. The cross-compiling tool chain 132 is configured to enable the compiled code to be uploaded to a pod of the kubernets cloud 20 through the kubernets client 12 to run after the code is compiled in the cross-compiling tool chain 132 of the Eclipse development platform 11, and further enable a user to bind a compiling tool chain of a corresponding version (such as an arm/x86 version) through a selected running hardware platform of the application when creating a Linux C/C + + application project. Through the GDB131 and the cross compiling tool chain 132 with the remote debugging mechanism, the compiled codes can be uploaded to the pod of the Kubernets cloud 20 through the Kubernets client 12 to run after being compiled in the cross compiling tool chain 132 of the Eclipse development platform 11, and the GDB131 of the integrated development environment 10 can be used for remotely debugging the codes running in the Kubernets cloud 20 pod.
In some embodiments, when a C/C + + application is debugged in the Eclipse development platform 11, i.e., when the GDB131 is used to start remote debugging, the kubernets client 12 is triggered to automatically send a corresponding instruction to the kubernets cloud 20, so that the kubernets cloud 20 provides a corresponding pod resource to run compiled codes, and when the debugging is started, the GDB131 is automatically connected with the GDBServer running in the pod of the kubernets cloud 20, so as to implement remote debugging of the C/C + + application.
In some embodiments, the cloud console 14 is configured to display output information during a remote debugging process. Specifically, during the remote debugging process, runtime output information of the application in the kubernets cloud 20 is redirected to the cloud console 14 for output.
A kubernets cloud 20, which may include pods created in response to instructions from the kubernets client 12, and optionally, a CI/CD module 22, a code repository 23, or a container mirror repository 24.
In some embodiments, the pod created in the kubernets cloud 20, divided by purpose, may include at least one of: the pod for debugging 211, the pod for compiling 212, the pod for testing 213, the pod for simulation 214, the pod for running 215 and the like, wherein when the pod is created, each pod can be distributed in different or same namespaces (Namespace) according to the requirement of isolation or not. The above-mentioned each pod is specifically described as follows:
pod211 provides the debugging environment for debugging, and this debugging environment has adopted the remote debugging mechanism, including GDBServer, is used for realizing passing through after GDB131 of CDT13 connects GDBServer, carries out remote debugging to the code after the compilation in pod211 for this debugging to and give with debugging information redirection output high in the clouds control cabinet 14. Which may be created by cross-compiling tool chain 132.
The compile pod212 provides a compile environment for compiling the program source code uploaded through the CDT, which may be compilation in a CI/CD process. Wherein the compilation environment is provided by the CI/CD module 22.
The test pod213 provides a test environment for performing tests on the compiled code, for example, the test environment has corresponding test cases therein for testing the running of the application. There may be multiple test pods 213, each with a different test case. The test environment and the simulation environment are both set up by referring to the operating environment or are the same as the operating environment.
The simulation pod214 provides a simulation environment for providing a simulated real execution environment (or referred to as a production environment) for the compiled code to further test the compiled code.
The runtime pod215 provides a runtime environment, i.e., a production environment, which is an environment for the real runtime of the debugged code.
In some embodiments, the CI/CD module 22 is configured to perform integration and deployment of updated code uploaded by the integrated development environment 10 with prior code, where the updated source code may be source code that is a newly added portion of the prior source code or a partially replaced source code. Wherein the CD/CD module 22 may include a build (built) module 221, a packaging module 222, and a deployment module 223, wherein:
the building module 221 is configured to compile the code after the update code is integrated with the previous code.
The packaging module 222 is configured to make the compiled code into an application image.
The deployment module 223 is configured to deploy the application image to the runtime environment. Wherein the deployment module 223 may be implemented by a Helm tool.
In some embodiments, the building module 221 may include a Makefile generating module 2211 and a compiling module 2212, where:
the Makefile generating module 2211 is configured to generate a Makefile according to the configuration information in the application project (project) of the code. The makefile file describes the compilation sequence and compilation rules of all files of the whole application project (the files are respectively placed in a plurality of directories according to types, functions and modules of source codes of the files), for example, rules that which files need to be compiled first, which files need to be compiled later and which files need to be recompiled are described.
The compiling module 2212 is configured to perform compiling according to the makefile to generate an executable binary code.
In some embodiments, the packaging module 222 may include a container mirroring module 2221, a mirroring tagging module 2222, and a mirroring pushing module 2223, where:
the container mirror image making module 2221 is configured to make a file of the compiled binary code into a container mirror image.
Mirror tagging module 2222 is configured to tag the container mirror with a tag (tag), such as a mirror Identification (ID), version number, etc.
The mirror pushing module 2223 is used for pushing the labeled container mirror to the container mirror warehouse 24 for saving.
In some embodiments, the packaging module 222 is further configured to package the char file related to the deployment of the application, and may push the Chart file to a Chart warehouse for storage. Where chart is a collection of files describing the resources needed to deploy a container image of a binary code application, placed in a predefined directory structure.
In some embodiments, code repository 23 is used to store the code, configuration files, etc. data for each application project and to merge the updated code into the prior code store. In some embodiments, the code repository may use, for example, a git repository or a svn repository, among others.
In some embodiments, the container mirror repository 24 is configured to store a container mirror that implements the above functions or modules, and the container mirror is invoked to perform the corresponding function, and the container mirror includes at least one of: container images for performing CI/CD, container images for making application images, container images for debugging applications, container images for running applications, container images for testing applications, etc.
In some embodiments, the kubernets cloud 20 may employ a distributed storage system, with which code repository 23, container mirror repository 24, and process files may be stored.
The embodiment of the application also provides a corresponding method for application development, and the implementation of the method is based on the application development system, which is detailed below.
As shown in fig. 3a, a first embodiment of the application development method of the present application may be developed by using the application development system described in any of the embodiments, and the application development method may include the following steps S11 to S14:
s11: and compiling the application code in the extensible development platform through a cross compiling tool chain.
In some embodiments, the application code may be written by a programming language development tool, and based on the function of the programming language development tool, a user may write the code directly or in combination with a visual drag-type programming mode.
S12: uploading the compiled application codes to a debugging packaging unit at the cloud end of the container arrangement platform; the debugging packaging unit requests creation to a container arrangement platform cloud end through a container arrangement platform client end, and a debugging environment provided by the debugging packaging unit is created through the cross compiling tool chain.
In some embodiments, the creation of the wrapper unit for debugging may be performed automatically when a user initiates debugging through the extensible development platform, and the creation of the debugging environment provided by the wrapper unit for debugging may be automatically created by a cross-compilation toolchain.
In some embodiments, when creating the debugging environment, the corresponding creation may be performed according to the running environment of the application selected by the user when the user creates the application project (project) by using the programming language development tool, where the running environment may be an arm platform, an X86 platform, or the like.
S13: and remotely debugging the compiled application code running in the packaging unit for debugging through a debugging tool.
In some embodiments, the debugging tool may be a debugging client, the debugging package unit has a corresponding debugging server, and the debugging client of the debugging tool may automatically establish a connection with the corresponding debugging server in the debugging package unit, thereby implementing remote debugging.
S14: and receiving debugging information generated by remote debugging through a cloud console.
In some embodiments, the debug information generated by the remote debugging is output to the cloud console in a redirected manner.
As shown in fig. 3b, a second embodiment of the application development method of the present application may be developed by using the application development system described in any of the above embodiments, and the application development method may include the following steps S21 to S23:
s21: the container arrangement platform cloud end responds to a request of a container arrangement platform client end to create a packaging unit, the created packaging unit comprises a packaging unit for debugging, the packaging unit for debugging provides a debugging environment, and the debugging environment is provided with a remote debugging mechanism.
In some embodiments, debugging the debug environment provided by the packaging unit is created by the cross-compilation toolchain.
S22: and receiving remote debugging of a debugging tool when the compiled application code runs in the packaging unit for debugging.
In some embodiments, the package units for debugging have corresponding debugging service terminals, and the debugging client of the debugging tool can automatically establish connection with the corresponding debugging service terminals in the package units for debugging, thereby implementing remote debugging.
S23: and outputting debugging information generated by the remote debugging to a cloud console.
In some embodiments, further comprising: receiving update codes of the application uploaded through a programming language development tool; and continuously integrating and continuously deploying the updated code of the application and the prior code of the application through a continuous integration and continuous deployment module.
Fig. 4 shows a third embodiment of an application development method provided in the embodiment of the present application. In this embodiment, the integrated development environment is deployed on a local terminal side, for example, in a computer used by a user, and the kubernets cloud is deployed in a cloud, for example, in a network-side server or a cluster server.
In the third embodiment of the application development method, a Linux C/C + + application project developed by a user is taken as an example for explanation, wherein steps S110 to S170 are a development process of basic codes, and steps S210 to S290 are a development process of subsequent new codes, and the two parts can respectively correspond to different stages of application development and can be respectively and independently used. Referring to the flowchart shown in fig. 4, and in combination with the application development system shown in fig. 2, the application development method provided in this embodiment includes the following steps:
s110: in a local integrated development environment, a user writes a source code of a Linux C/C + + application by means of a CDT development tool of an Eclipse development platform, and performs compilation locally through a cross compilation tool chain of the CDT development tool after the source code writing is completed, so that the application in a binary code form to be debugged is generated.
When the user creates the Linux C/C + + application project (project) by using a CDT development tool, the user can select the running environment of the subsequent application. In this embodiment, the user selects the operating environment as an arm platform, and based on the selection of the user, the CDT development tool uses a cross-compilation toolchain adapted to the version of the arm platform.
S120: when a user starts debugging through an Eclipse development platform, firstly, a Kubernets client applies for resources such as a Name space (Name space), a pod and the like to the Kubernets cloud, so that the Name space is created by the Kubernets cloud, and the pod is created in the Name space, wherein the pod created in the step is used for debugging and is called a pod for debugging; and creating a running environment for debugging and running the binary code application in the debugging pod by a cross-compiling tool chain, for example, creating an arm platform running environment.
The above process of this step may be automatically triggered to be executed when debugging is started, or may be manually executed step by a user. In addition, the user can modify and destroy resources such as a name space or pod created by a Kubernets cloud through the Kubernets client.
When the kubernets cloud is a system based on an X86 platform, the cross compiling tool chain can call the QEMU to create a simulation environment of the arm platform in the debugging pod when the running environment of the arm platform is created in the debugging pod.
After the operating environment is created, a container image can be further generated based on the created operating environment and stored in an image warehouse, which is referred to as a container image for debugging applications, so that the image can be directly acquired from the image warehouse for use in the subsequent CI/CD process.
In some embodiments, before step S110, this step may also be performed in advance to generate a container image for debugging the application, and the container image is stored in an image repository, and after the step S110 is performed, the container image may be directly obtained from the image repository and released to a pod as a running environment for debugging and running the binary code application.
S130: and uploading the binary code application to be debugged to a debugging pod created by the Kubernetes cloud.
S140: and (4) starting GDBServer in the pod for debugging at the Kubernets cloud, and locally starting a GDB debugging tool to connect the cloud GDBServer, wherein after the connection is established, the application of remote debugging of the binary codes of the Kubernets cloud by using the local GDB debugging tool can be realized.
When the GDB debugging tool is started in the local Eclipse, the connection of the GDBServer running in the pod for debugging can be automatically requested to be established.
The method comprises the steps that when a user uses a local GDB debugging tool to remotely debug binary code application, the binary code application runs in the running environment of the arm platform of the pod in a Kubernetes cloud, output information during running is redirected to a cloud console of a local integrated development environment to be output, and the user modifies the local source code based on the information output in the cloud console until debugging is passed.
S150: after the debugging is completed, the binary code after the Kubernetes cloud debugging can be applied and manufactured into a container mirror image, and the container mirror image is labeled and then pushed to a container mirror image warehouse for storage. The container image may include, in addition to the binary code application, dependencies (e.g., dependency libraries, configuration parameters, etc.) required by the application.
The binary code application may be manufactured as a container mirror by using a container mirror manufacturing module, which may be specifically referred to as the description of the container mirror manufacturing module in step S240.
The corresponding source code can also be submitted to a code warehouse of a Kubernets cloud so as to facilitate the subsequent CI/CD process. The configuration information (such as file directory, library file directory, etc.) of the Linux C/C + + application item can be included.
Wherein, this step can also include: and calling a Helm tool, packaging the Chart files related to the application, and pushing the Chart files to a Chart warehouse for storage, for example, packaging the Chart files into a package file in a tar format. The Chart file describes resources required by Kubernets for deploying the application, and the Chart file is deployed together when the container mirror image of the binary code application is deployed in the subsequent steps.
S160: and releasing the container mirror images manufactured in the step S150 to a test environment and a simulation environment in sequence for operation, and completing one or more rounds of tests before deployment to a production environment.
The test environments and the simulation environments may be multiple and may be created in different pods of the kubernets cloud, and the specific creation process may refer to step S120 and is not described again.
S170: after the test is finished, deploying the container mirror image in the step S150 to a production environment by calling a hellm tool, and finishing the deployment of the Linux C/C + + application.
The production environment may be located in a device running the developed Linux C/C + + application, for example, a certain industrial personal computer, a certain terminal device. In other embodiments, the production environment may be located in a cloud for operations pod from the kubernets cloud.
S210: when the codes need to be updated continuously, in a local integrated development environment, a user writes the update source codes of the Linux C/C + + application by means of a CDT development tool of an Eclipse development platform, and then submits the update source codes to a code warehouse of a Kubernetes cloud through the CDT development tool.
The updated source code may be source code that is a newly added portion of source code relative to the previous time, or may be partially replaced source code.
S220: and after the updated source code is submitted to a code warehouse of a Kubernetes cloud, the operation of merging the updated source code into the prior basic source code is completed on the code warehouse side.
S230: and (3) executing a build (built) process on the merged source code by a CI/CD module of the Kubernets cloud, namely compiling the source code into executable binary code. In this implementation, the building process can be implemented by the building blocks of the CI/CD module.
In this embodiment, the steps may be as follows:
firstly, the CI/CD module acquires the configuration information in the Linux C/C + + application project from a code warehouse, and a makefile is generated according to the configuration information. The makefile file describes the compilation sequence and compilation rules of all files of the whole application project (the files are respectively placed in a plurality of directories according to types, functions and modules of source codes of the files), for example, rules that which files need to be compiled first, which files need to be compiled later and which files need to be recompiled are described.
Then, compiling the merged source code based on the makefile, and compiling the source code into binary code.
S240: and the CI/CD module makes the file of the compiled binary code into a container mirror image, marks the container mirror image and then pushes the container mirror image to a container mirror image warehouse for storage. In this embodiment, the steps may be as follows:
firstly, the CI/CD module calls a container mirror image making module, and the container mirror image making module makes the file of the binary code into a container mirror image. The container mirror image making module can be implemented in a container mirror image making file (Dockerfile) which records a script for making a file of binary codes into a container mirror image. And the container mirror image making file can be stored in a container mirror image warehouse in a container mirror image mode so as to be called and executed by the CI/CD module.
The generated container image is then tagged (tag), e.g., with an image Identification (ID), version number, etc.
And then pushing the labeled container mirror image to a container mirror image warehouse for storage.
Wherein, this step can also include: and calling a Helm tool, packaging the Chart file related to the application, and pushing the Chart file to a Chart warehouse for storage, for example, packaging the Chart file into a package file in a tar format. The Chart file describes resources required by Kubernets for deploying the application, and the Chart file is deployed together when the container mirror image of the binary code application is deployed in the subsequent steps.
In addition, if the chart file to be used is the same as the previously stored one, for example, the chart file in step S150, the chart file does not need to be packaged separately in this step, and the container image of the binary code application can be deployed by directly using the previously packaged chart file in the subsequent step.
S250: and the CI/CD module sequentially releases the container images generated in the step S240 to a test environment and a simulation environment for operation, and completes one or more rounds of tests before the container images are deployed to a production environment.
S260: after the test is completed, deploying the container mirror image generated in the step S240 to a production environment by calling a hellm tool, and completing the continuous integration and continuous deployment of the Linux C/C + + application. And when the deployment is carried out, the chart file can be acquired and deployed together.
The CI/CD module can be realized in a container mirror image mode and stored in a container mirror image warehouse, and when the CI/CD needs to be executed, the CI/CD container mirror image is read from the mirror image warehouse and executed.
It can be seen from the above embodiment that, by combining the Eclipse development platform, the GCC toolchain, the Kubernetes cloud computing platform, the container technology and the distributed storage, the invention can simultaneously support operations such as compiling, running, debugging, packaging, testing and the like aiming at the Linux C/C + + application on one set of equipment, thereby greatly improving the utilization rate of hardware, reducing the development difficulty of the Linux C/C + + application, and improving the work efficiency.
Fig. 5 is a schematic structural diagram of a computing device 500 according to an embodiment of the present disclosure. The computing device may be a terminal, or may be a chip or a system of chips inside the terminal as various alternative embodiments for executing the method. As shown in fig. 5, the computing device 500 includes: processor 510, memory 520, communication interface 530.
It should be appreciated that the communication interface 530 in the computing device 500 shown in fig. 5 may be used for communicating with other devices, and may specifically include one or more transceiver circuits or interface circuits.
The processor 510 may be coupled to the memory 520, among other things. The memory 520 may be used to store the program codes and data. Therefore, the memory 520 may be a storage unit inside the processor 510, may be an external storage unit independent of the processor 510, or may be a component including a storage unit inside the processor 510 and an external storage unit independent of the processor 510.
Optionally, computing device 500 may also include a bus. The memory 520 and the communication interface 530 may be connected to the processor 510 via a bus. The bus may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, a line without arrows is used in FIG. 5, but does not indicate only one bus or one type of bus.
It should be understood that, in the embodiment of the present application, the processor 510 may adopt a Central Processing Unit (CPU). The processor may also be other general purpose processors, digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. Or the processor 510 may employ one or more integrated circuits for executing related programs to implement the technical solutions provided in the embodiments of the present application.
The memory 520 may include both read-only memory and random-access memory and provides instructions and data to the processor 510. A portion of processor 510 may also include non-volatile random access memory. For example, processor 510 may also store information of the device type.
When the computing device 500 is running, the processor 510 executes the computer-executable instructions in the memory 520 to perform any of the operational steps of the above-described methods and any optional embodiment thereof.
It should be understood that the computing device 500 according to the embodiment of the present application may correspond to a corresponding main body for executing the method according to the embodiments of the present application, and the above and other operations and/or functions of each module in the computing device 500 are respectively for implementing corresponding flows of each method of the embodiment, and are not described herein again for brevity.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the technical solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions may be stored in a computer-readable storage medium if they are implemented in the form of software functional units and sold or used as separate products. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, an optical disk, or other various media capable of storing program codes.
The present application further provides a computer-readable storage medium, on which a computer program is stored, where the computer program is used for executing the method when executed by a processor, and the method includes at least one of the solutions described in the foregoing embodiments.
The computer storage media of embodiments of the present application may take any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
Additionally, the terms first, second, third and the like in the description and in the claims, or module A, module B, module C and the like are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order, it being understood that specific orders or sequences may be interchanged where permissible to effect embodiments of the application described herein in other sequences than illustrated or described herein.
In the above description, reference numerals indicating steps such as S110, S120 \ 8230 \8230 \ 8230, etc. do not necessarily indicate that the steps are performed, and the order of the front and rear steps may be interchanged or performed simultaneously, where the case allows.
The term "comprising" as used in the specification and claims should not be construed as being limited to the contents listed thereafter; it does not exclude other elements or steps. It is thus to be interpreted as specifying the presence of the stated features, integers, steps or components as referred to, but does not preclude the presence or addition of one or more other features, integers, steps or components, or groups thereof. Thus, the expression "an apparatus comprising the devices a and B" should not be limited to an apparatus consisting of only the components a and B.
Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the application. Thus, appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments, as would be apparent to one of ordinary skill in the art from this disclosure.
It is to be noted that the foregoing is only illustrative of the preferred embodiments of the present application and the technical principles employed. It will be understood by those skilled in the art that the present application is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the application. Therefore, although the present application has been described in more detail through the above embodiments, the present application is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present application, and all such equivalent embodiments are encompassed in the scope of the present application.

Claims (10)

1. An application development system is characterized by comprising an integrated development environment located on a terminal side;
the integrated development environment comprises an extensible development platform, a container arrangement platform client integrated with the extensible development platform, a programming language development tool and a cloud console;
the container arrangement platform client is used for requesting a container arrangement platform cloud to create a packaging unit for debugging, and a container for running an application is packaged in the packaging unit;
the programming language development tool comprises a debugging tool and a cross compiling tool chain; the debugging tool is provided with a remote debugging mechanism; the cross compiling tool chain is used for realizing that application codes are compiled by the extensible development platform and uploaded to a debugging encapsulation unit of the container arrangement platform cloud end after the application codes are compiled to run;
the cloud console is used for receiving debugging information generated when the compiled application codes running in the packaging unit for debugging are remotely debugged through the debugging tool.
2. An application development system is characterized by comprising a container arrangement platform cloud end,
the container arrangement platform cloud is used for responding to a request of a container arrangement platform client to create a packaging unit, and the created packaging unit comprises a packaging unit for debugging;
the debugging packaging unit provides a debugging environment, and the debugging environment is provided with a remote debugging mechanism and is used for receiving remote debugging of a debugging tool on the compiled application codes running in the debugging packaging unit and outputting debugging information generated by the remote debugging to a cloud console.
3. The system of claim 2, wherein the container orchestration platform cloud further comprises a persistent integration and persistent deployment module configured to enable persistent integration and persistent deployment of updated code of the application uploaded via a programming language development tool with previous code of the application.
4. The system of claim 3, wherein the persistent integration and persistent deployment module comprises a build module, a packaging module, and a deployment module;
the building module is used for compiling the updated codes of the applications and the application codes integrated with the prior codes of the applications;
the packaging module is used for making the compiled application code as an application mirror image;
the deployment module is used for deploying the application image.
5. The system of claim 4, wherein the container orchestration platform cloud further comprises a code repository to store the application code and to integrate update code for the application into a prior code post-storage of the application.
6. The system of claim 4 or 5, wherein the container orchestration platform cloud created encapsulation unit further comprises at least one of:
a compiling packaging unit that provides a compiling environment for the building module to execute the compiling;
the test packaging unit provides a test environment for running the compiled application codes;
the encapsulation unit for simulation provides a simulation environment for running the compiled application codes;
and the encapsulation unit for running provides a running environment for running the compiled application codes.
7. An application development system comprising the application development system of claim 1 and the application development system of any one of claims 2 to 6.
8. An application development method developed using the application development system according to any one of claims 1 to 7, the method comprising:
compiling the application code by a cross compiling tool chain on an extensible development platform;
uploading the compiled application codes to a debugging packaging unit at the cloud end of a container arrangement platform; the debugging packaging unit requests creation to a container arrangement platform cloud end through a container arrangement platform client end, and a debugging environment provided by the debugging packaging unit is created through the cross compiling tool chain;
remotely debugging the compiled application code running in the packaging unit for debugging through a debugging tool;
and receiving debugging information generated by remote debugging through a cloud console.
9. An application development method developed using the application development system according to any one of claims 1 to 7, the method comprising:
the container arrangement platform cloud end responds to a request of a container arrangement platform client end to create a packaging unit, the created packaging unit comprises a packaging unit for debugging, the packaging unit for debugging provides a debugging environment, and the debugging environment is provided with a remote debugging mechanism;
when the compiled application codes run in the packaging unit for debugging, remote debugging of a debugging tool is received;
and outputting debugging information generated by the remote debugging to a cloud console.
10. The method of claim 9, further comprising:
receiving update codes of the application uploaded through a programming language development tool;
and continuously integrating and continuously deploying the updated code of the application and the prior code of the application through a continuous integration and continuous deployment module.
CN202211280173.4A 2022-10-19 2022-10-19 Application development system and method Pending CN115629971A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211280173.4A CN115629971A (en) 2022-10-19 2022-10-19 Application development system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211280173.4A CN115629971A (en) 2022-10-19 2022-10-19 Application development system and method

Publications (1)

Publication Number Publication Date
CN115629971A true CN115629971A (en) 2023-01-20

Family

ID=84906241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211280173.4A Pending CN115629971A (en) 2022-10-19 2022-10-19 Application development system and method

Country Status (1)

Country Link
CN (1) CN115629971A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302366A (en) * 2023-05-26 2023-06-23 阿里巴巴(中国)有限公司 Terminal development-oriented XR application development system, method, equipment and medium
CN116578280A (en) * 2023-07-12 2023-08-11 北京麟卓信息科技有限公司 Heterogeneous software application development system and method
CN116627446A (en) * 2023-07-25 2023-08-22 华控清交信息科技(北京)有限公司 Method and device for deploying application on k8s container cluster and electronic equipment
CN116860324A (en) * 2023-09-01 2023-10-10 深圳代码兄弟技术有限公司 Development data processing method, development data processing apparatus, and readable storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302366A (en) * 2023-05-26 2023-06-23 阿里巴巴(中国)有限公司 Terminal development-oriented XR application development system, method, equipment and medium
CN116302366B (en) * 2023-05-26 2023-10-20 阿里巴巴(中国)有限公司 Terminal development-oriented XR application development system, method, equipment and medium
CN116578280A (en) * 2023-07-12 2023-08-11 北京麟卓信息科技有限公司 Heterogeneous software application development system and method
CN116578280B (en) * 2023-07-12 2023-09-15 北京麟卓信息科技有限公司 Heterogeneous software application development system and method
CN116627446A (en) * 2023-07-25 2023-08-22 华控清交信息科技(北京)有限公司 Method and device for deploying application on k8s container cluster and electronic equipment
CN116860324A (en) * 2023-09-01 2023-10-10 深圳代码兄弟技术有限公司 Development data processing method, development data processing apparatus, and readable storage medium
CN116860324B (en) * 2023-09-01 2023-12-05 深圳代码兄弟技术有限公司 Development data processing method, development data processing apparatus, and readable storage medium

Similar Documents

Publication Publication Date Title
CN115629971A (en) Application development system and method
JP6122493B2 (en) Adaptively portable library
CN107291480B (en) Function calling method and device
US9134966B2 (en) Management of mixed programming languages for a simulation environment
US9183007B2 (en) Dynamic determination of application server runtime classloading
US10331425B2 (en) Automated source code adaption to inject features between platform versions
WO2017151546A1 (en) Method and apparatus for loading multiple differing versions of a native library into a native environment
CN100492387C (en) Method and system for software protected development based on Keil C51
US8893100B2 (en) Return address optimisation for a dynamic code translator
WO2022148390A1 (en) Methods for deploying, updating and calling smart contract in blockchain
Liu Android native development kit cookbook
Cinar et al. Pro Android C++ with the NDK
US20110209004A1 (en) Integrating templates into tests
CN109542464B (en) Development and deployment system, method and storage medium of IoT (Internet of things) equipment script program
CN109558121A (en) Development approach, device, equipment and the storage medium of interface drive program
US10552135B1 (en) Reducing a size of an application package
US10884720B2 (en) Memory ordering annotations for binary emulation
US11573787B1 (en) Hot reloading a running application with an unsaved source code change
US11347523B2 (en) Updated shared library reloading without stopping the execution of an application
US9646118B1 (en) Linking of simulators into a circuit design tool
Haja et al. Location, proximity, affinity–the key factors in FaaS
CN101593257B (en) System and method for protecting software based on.Net virtual machine
Joseph et al. Software Framework Of An All-In-One Transpiler For Development Of WORA Applicatons
CN113467861A (en) File calling method and device, storage medium and electronic equipment
US10359998B2 (en) Runstream generator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination