Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete. It should be understood that the drawings and the embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings. The embodiments and features of the embodiments in the present disclosure may be combined with each other without conflict.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
FIG. 1 illustrates a flow 100 of some embodiments of an autopilot software image deployment method according to the present disclosure. The process 100 of the autopilot software mirror deployment method includes the following steps:
step 101, responding to the received automatic driving software mirror image deployment instruction, and sending an access application to a main service end.
In some embodiments, an executive agent of the automated driving software mirror deployment method may issue an access application to the primary service end in response to receiving an automated driving software mirror deployment instruction. Wherein the autopilot software image deployment instruction may be an instruction to deploy for compiling an autopilot software image. The access application can be used for sending an access authorization request to the main service end so as to obtain data from the main service end. Additionally, the autopilot software image deployment instruction may include an autopilot software image version number. The autopilot software image version number described above may be used to characterize the version of the autopilot software image desired to be deployed.
In practice, the autopilot software image deployment instruction may be issued by a human operating the current network node through the physical host of the current network node. Thus, a free deployment can be achieved for different network nodes. The automatic driving software mirror image deployment instruction can also be sent by an operation main service end. So that all network nodes can be deployed synchronously. Thus, it may be used to improve the efficiency of autopilot software mirror deployment.
Optionally, before sending the access application to the main service end, the execution main body may further determine whether the version of the autopilot software image of the current network node is the same as the version of the autopilot software image included in the autopilot software image deployment instruction. If the difference is not the same, an access application can be sent to the main service end for the mirror image deployment of the automatic driving software. If so, no redeployment is needed. Therefore, the resource occupation of the main service end can be reduced. Furthermore, the efficiency reduction of the mirror image deployment of the automatic driving software can be further improved.
As an example, the main service end may be a prebuilt Harbor (container mirror warehouse) service end program.
And 102, responding to the received access application passing information returned by the main service terminal, and acquiring a target compilation environment mirror image container file from the main service terminal.
In some embodiments, the execution subject may obtain the target compilation environment image container file from the main service end in response to receiving the access application passing information returned by the main service end. The target compilation environment image container file may include a target software data volume and a target software transfer port number. The access application can represent that the execution main body is successfully connected with the main service end in a communication mode through information. And acquiring a target compilation environment image container file corresponding to the automatic driving software image version number from the main service terminal. The target software data volume and the target software transmission port number may be used to obtain a target compilation environment mirror image container file from the primary service side.
Step 103, starting a target compilation environment mirror container corresponding to the target compilation environment mirror container file to enter a container environment of the target compilation environment container, and acquiring an automatic driving software package based on the target compilation environment mirror container file including a target software data volume and a target software transmission port number.
In some embodiments, the execution subject may start a target compilation environment image container corresponding to the target compilation environment image container file to enter a container environment of the target compilation environment container, and obtain the autopilot software package based on that the target compilation environment image container file includes a target software data volume and a target software transmission port number. And starting the target compilation environment image container corresponding to the target compilation environment image container file through a preset starting command to enter the container environment of the target compilation environment container.
As an example, the start command may be a command of docker (application container engine).
In some optional implementation manners of some embodiments, the obtaining, by the execution subject, an autopilot software package based on that the target compilation environment image container file includes a target software data volume and a target software transmission port number may include:
and acquiring an automatic driving software package corresponding to the target software data volume from the port corresponding to the target compiling environment mirror image container file and the target software transmission port number. Wherein the target software transport port number can be used to uniquely identify a port. The target software data volume may include a path of the autopilot package at the primary service end. The autopilot software package may be an autopilot compilation environment image or an autopilot application.
And 104, compiling the automatic driving software package to obtain an automatic driving software mirror image container file.
In some embodiments, the execution subject may compile the autopilot software package to obtain an autopilot software image container file.
In some optional implementation manners of some embodiments, the compiling, by the execution main body, the automatic driving software package to obtain an automatic driving software image container file may include the following steps:
in a first step, a mirrored container compilation toolchain for compilation is installed. Wherein, the mirror container compiling tool chain for compiling can be installed through a preset installation command. Here, the mirror container compilation toolchain for compilation may be preset, or may be obtained from the main service end. And secondly, compiling the automatic driving software package by using the mirror image container compiling tool chain under the container environment of the target compiling environment container to obtain an automatic driving software mirror image container file. Wherein the mirrored container compilation toolchain may be a toolchain for compiling, mirrored containers.
And 105, sending the automatic driving software mirror image container file to a main service end to complete automatic driving software mirror image deployment.
In some embodiments, the execution subject may send the autopilot software image container file to the primary service end to complete the autopilot software image deployment. And the automatic driving software mirror image deployment progress and result can be fed back to the main service end through sending. Therefore, the centralized management and control of the compiling environment images of different sub-network nodes by the main service side can be facilitated. Thus, a synchronized deployment compilation environment is facilitated. Further, it may be useful to improve the efficiency of automated driving software mirror deployment.
Optionally, the executing main body may further perform the following steps:
the method comprises the steps of firstly, responding to received automatic driving software upgrading information, determining software version numbers corresponding to all software identifications in a software identification group included in the automatic driving software upgrading information, and obtaining a software version number set. The software upgrading information also comprises a set of software upgrading version numbers. The automatic driving software upgrading information can also be sent by the main service end and used for upgrading the automatic driving software of each network node. Each software identifier in the set of software identifiers included in the autopilot software upgrade information may be a unique identifier of the software that needs to be upgraded. The version number of the same software as the software identifier in the version number of each software in the current network node can be determined as the software version number, so as to obtain a software version number set.
And secondly, determining the software upgrading version number matched with each software version number in the software version number set in the software upgrading version number set as a target software upgrading version number to obtain a target software upgrading version number group. The matching can be that the software version number and the software upgrade version number represent the same software, and the software upgrade version number is greater than the software version number.
And thirdly, acquiring a target software image environment container group corresponding to each target software upgrading version number in the target software upgrading version number group from the software management server side. The software management server may be a server for automatically managing software.
As an example, the software management server may be a k8s (kubernets) container cluster management system.
And fourthly, based on the target software mirror image environment container group, upgrading the automatic driving software corresponding to each target software upgrading version number in the target software upgrading version number group to obtain upgraded automatic driving software, and obtaining an upgraded automatic driving software group.
In some optional implementation manners of some embodiments, the executing body, based on the target software image environment container group, performs an upgrade operation on the autopilot software corresponding to each target software upgrade version number in the target software upgrade version number group to obtain upgraded autopilot software, and the upgrade operation includes:
firstly, starting a target software image environment container corresponding to the target software upgrading version number in the target software image environment container group as a target software upgrading environment. Each target software image environment container in the target software image environment container group comprises a target soft image. And starting the target software image environment container corresponding to the target software upgrading version number in the target software image environment container group through the starting command to serve as the target software upgrading environment.
And secondly, compiling the target soft mirror image contained in the target software mirror image environment container corresponding to the target software upgrading version number under the target software upgrading environment to obtain upgraded automatic driving software. And the compiling is to upgrade the automatic driving software corresponding to each target software upgrading version number in the target software upgrading version number group. And compiling the target soft mirror image included in the target software mirror image environment container corresponding to the target software upgrading version number through the mirror image container compiling tool chain to obtain upgraded automatic driving software.
Optionally, the executing main body may further perform the following steps:
the first step is to determine the upgrading state and the program running state of each upgraded automatic driving software in the upgraded automatic driving software group so as to generate an upgrading result, and obtain an upgrading result set. Wherein the upgrade status may be a status of an upgrade process of the autopilot software. The program operating state may be an operating state of the autopilot software after an upgrade.
As an example, the upgrade status may be: "upgrade successful" or "not upgrade successful". The program run state may be: "normal operation" or "abnormal operation".
And secondly, storing the upgrading result set and the target software upgrading version number group as upgrading record data. The storage can facilitate the centralized management and control of the compiling environment mirror image of each network node by the main service terminal.
The above steps and their related contents are used as an invention point of the embodiments of the present disclosure, and a second technical problem mentioned in the background art is solved, namely, the editing environments of different platforms of the network node are not isolated, and when the autopilot software image deployment is performed, the compiling environments corresponding to all the platforms need to be redeployed, thereby causing a large amount of computing resources to be occupied and reducing the efficiency of autopilot software image deployment. Factors that lead to the need to occupy a large amount of computing resources and also reduce the efficiency of automated driving software image deployment are often as follows: editing environments of different platforms of the network node are not isolated, and when the automatic driving software mirror image is deployed, compiling environments corresponding to all the platforms need to be redeployed. If the factors are solved, the occupation of computing resources can be reduced, and the efficiency of automatic driving software mirror image deployment is further reduced. To achieve this, first, by compiling the target soft mirror image in a container environment, the different environments can be made to have no influence on each other. Therefore, the purpose of isolating different software compiling environments is achieved. Furthermore, the situation that the upgrading operation is carried out on the environment which does not need to be upgraded in the deployment process is avoided. Thus, the occupation of computing resources can be reduced. Then, a software management server is introduced for centralized control of compiling environment containers of various versions, so that software mirror images or compiling environments of network nodes can be automatically upgraded. Further, the efficiency of automated driving software mirror deployment may also be improved.
The above embodiments of the present disclosure have the following advantages: by the aid of the automatic driving software mirror image deployment method, automatic driving software mirror image deployment efficiency can be improved. Specifically, the reasons for the reduced efficiency of the autopilot software mirror deployment are: compiling environment images of different sub-network nodes are not managed and controlled in a centralized mode, if the sub-network nodes in batches need to be deployed with automatic driving software images, the situation that manual operation time points are different exists, and therefore compiling environments cannot be deployed synchronously for different network nodes. Based on this, according to the automatic driving software mirror image deployment method of some embodiments of the present disclosure, first, in response to receiving an automatic driving software mirror image deployment instruction, an access application is issued to a main service end. The system can be used for centralized management and control of the automatic driving software mirror image by introducing the main service end. And then, responding to the received access application passing information returned by the main service terminal, and acquiring a target compilation environment mirror image container file from the main service terminal, wherein the target compilation environment mirror image container file comprises a target software data volume and a target software transmission port number. Here, all sub-network nodes can be used for autopilot software image deployment by obtaining a target compilation environment image container file. And then, starting a target compilation environment mirror container corresponding to the target compilation environment mirror container file to enter a container environment of the target compilation environment container, and acquiring an automatic driving software package based on the target compilation environment mirror container file comprising a target software data volume and a target software transmission port number. By starting the target compilation environment mirror container and entering the container environment of the target compilation environment container, other environments of the current sub-network node can be prevented from being damaged. And then compiling the automatic driving software package to obtain an automatic driving software mirror image container file. Therefore, the automatic driving software mirror deployment of the current network node can be completed. And finally, sending the automatic driving software mirror image container file to the main service end to complete automatic driving software mirror image deployment. Here, the automatic driving software mirror image container file is sent to the main service end again, so that the main service end can control the progress of the automatic driving software mirror image deployment of each network node. So that the individual network nodes can be further regulated. Therefore, when the batch of sub-network nodes need to be deployed with the automatic driving software mirror images, synchronous deployment and compiling environments can be performed on different network nodes at the same time. And furthermore, the efficiency of mirror image deployment of the automatic driving software is improved.
With further reference to fig. 2, as an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of an autopilot software image deployment apparatus, which correspond to those method embodiments shown in fig. 1, and which may be applied in various electronic devices in particular.
As shown in FIG. 2, the autopilot software image deployment apparatus 200 of some embodiments includes: a first sending unit 201, a first obtaining unit 202, a startup and obtaining unit 203, a compiling unit 204 and a second sending unit 205. The first sending unit 201 is configured to send an access application to the main service end in response to receiving the automatic driving software mirror image deployment instruction; a first obtaining unit 202, configured to, in response to receiving access application passing information returned by the primary service side, obtain a target compilation environment image container file from the primary service side, where the target compilation environment image container file includes a target software data volume and a target software transmission port number; a starting and obtaining unit 203 configured to start a target compilation environment image container corresponding to the target compilation environment image container file to enter a container environment of the target compilation environment container, and obtain an autopilot software package based on the target compilation environment image container file including a target software data volume and a target software transmission port number; a compiling unit 204 configured to compile the autopilot software package to obtain an autopilot software mirror image container file; a second sending unit 205, configured to send the automated driving software image container file to the primary service end to complete the automated driving software image deployment.
It will be appreciated that the units described in the apparatus 200 correspond to the various steps in the method described with reference to figure 1. Thus, the operations, features and resulting advantages described above with respect to the method are also applicable to the apparatus 200 and the units included therein, and are not described herein again.
Referring now to FIG. 3, a block diagram of an electronic device 300 suitable for use in implementing some embodiments of the present disclosure is shown. The electronic device shown in fig. 3 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 3, the electronic device 300 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 301 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM) 302 or a program loaded from a storage means 308 into a Random Access Memory (RAM) 303. In the RAM 303, various programs and data necessary for the operation of the electronic apparatus 300 are also stored. The processing device 301, the ROM 302, and the RAM 303 are connected to each other via a bus 304. An input/output (I/O) interface 305 is also connected to bus 304.
Generally, the following devices may be connected to the I/O interface 305: input devices 306 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 307 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage devices 308 including, for example, magnetic tape, hard disk, etc.; and a communication device 309. The communication means 309 may allow the electronic device 300 to communicate with other devices, wireless or wired, to exchange data. While fig. 3 illustrates an electronic device 300 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may be alternatively implemented or provided. Each block shown in fig. 3 may represent one device or may represent multiple devices, as desired.
In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In some such embodiments, the computer program may be downloaded and installed from a network through the communication device 309, or installed from the storage device 308, or installed from the ROM 302. The computer program, when executed by the processing apparatus 301, performs the above-described functions defined in the methods of some embodiments of the present disclosure.
It should be noted that the computer readable medium described above in some embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. 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 of the computer readable storage medium may include, but are not limited to: 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 some embodiments of the disclosure, 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. In some embodiments of the present disclosure, however, 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 any of a variety of 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: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may interconnect with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the apparatus described above; or may exist separately without being assembled into the electronic device. The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: responding to the received automatic driving software mirror image deployment instruction, and sending an access application to a main service end; responding to the received access application passing information returned by the main service terminal, and acquiring a target compilation environment mirror image container file from the main service terminal, wherein the target compilation environment mirror image container file comprises a target software data volume and a target software transmission port number; starting a target compilation environment mirror container corresponding to the target compilation environment mirror container file to enter a container environment of the target compilation environment container, and acquiring an automatic driving software package based on the target compilation environment mirror container file comprising a target software data volume and a target software transmission port number; compiling the automatic driving software package to obtain an automatic driving software mirror image container file; and sending the automatic driving software mirror image container file to the main service end to complete automatic driving software mirror image deployment.
Computer program code for carrying out operations for embodiments of the present disclosure 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).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in some embodiments of the present disclosure may be implemented by software, and may also be implemented by hardware. The described units may also be provided in a processor, and may be described as: a processor includes a first sending unit, a first obtaining unit, a starting and obtaining unit, a compiling unit, and a second sending unit. The names of these units do not in some cases form a limitation on the unit itself, for example, the first sending unit may also be described as "unit issuing an access request to the primary service end".
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), application Specific Integrated Circuits (ASICs), application Specific Standard Products (ASSPs), systems on a chip (SOCs), complex Programmable Logic Devices (CPLDs), and the like.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the embodiments of the present disclosure is not limited to the specific combinations of the above-mentioned features, and other embodiments in which the above-mentioned features or their equivalents are combined arbitrarily without departing from the spirit of the invention are also encompassed. For example, the above features and (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure are mutually replaced to form the technical solution.