WO2024040930A1 - Software deployment architecture management method and related device - Google Patents

Software deployment architecture management method and related device Download PDF

Info

Publication number
WO2024040930A1
WO2024040930A1 PCT/CN2023/081000 CN2023081000W WO2024040930A1 WO 2024040930 A1 WO2024040930 A1 WO 2024040930A1 CN 2023081000 W CN2023081000 W CN 2023081000W WO 2024040930 A1 WO2024040930 A1 WO 2024040930A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
model
architecture
metadata
management system
Prior art date
Application number
PCT/CN2023/081000
Other languages
French (fr)
Chinese (zh)
Inventor
曾正阳
李款
叶锋
Original Assignee
华为云计算技术有限公司
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
Priority claimed from CN202211520292.2A external-priority patent/CN117667664A/en
Application filed by 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2024040930A1 publication Critical patent/WO2024040930A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Definitions

  • the present application relates to the field of software management technology, and in particular to a management method, system, computing device cluster, computer-readable storage medium and computer program product for a software deployment architecture.
  • the software development process includes architects designing software architecture and developers developing software based on the software deployment architecture designed by architects. As the software industry continues to iterate and upgrade, architects often need to maintain the overall life cycle of software, specifically including the various stages of software deployment architecture design, software development, operation and maintenance.
  • the key to maintaining the overall life cycle of software lies in the care of the software deployment architecture.
  • the care of software deployment architecture includes checking the consistency of software deployment architecture in different stages (such as design stage and operation stage), monitoring possible architectural risks in a timely manner and sending alarms.
  • this application provides a software deployment method.
  • This method uses the same language to generate architectural element relationship models of software deployment architectures at different stages, which reduces the difficulty of comparison, improves the accuracy of comparison, and can realize automation. Comparison overcomes the disadvantages of manual comparison, supports early warning, avoids major impact on the production environment, and ensures business reliability and stability.
  • This application also provides a management system for software deployment architecture, a computing device cluster, a computer-readable storage medium, and a computer program product corresponding to the above method.
  • this application provides a management method for software deployment architecture.
  • the method is performed by a management system of the software deployment architecture.
  • the management system may be a software system, and the software system may be a software development platform such as an integrated development environment (Integrated Development Environment, IDE), or a plug-in that depends on the software development platform.
  • the software system can be deployed in a computing device cluster, such as a computing device cluster in a cloud environment or a computing device cluster in a local computing center.
  • the computing device cluster executes the program code of the software system, thereby executing the management method of the software deployment architecture of this application.
  • the management system may also be a hardware system, such as a computing device cluster with the management capability of the software deployment architecture. When the hardware system is running, the management method of the software deployment architecture of the present application is executed.
  • the management system can obtain the metadata of the software, and then the management system generates architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software through the same language, and then the management system generates architectural element relationship models based on the software at different stages. Compare the architectural element relationship models of the deployment architecture to obtain the comparison results of the software deployment architecture. Among them, the comparison results of the software deployment architecture include the comparison results of the architecture element relationship models.
  • the management system uses the same language to generate architectural element relationship models of the software deployment architecture at different stages, which reduces the difficulty of comparison, improves the accuracy of comparison, and can realize automated comparison and overcome the disadvantages of manual comparison. , supports early warning to avoid major impact on the production environment and ensure business reliability and stability.
  • the metadata of software can be different at different stages.
  • the management system can obtain the metadata of the software in the design phase and the metadata of the software in the running phase.
  • the management system can compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the second architecture in the architectural element relationship model of the second software deployment architecture. Compare the dependencies of elements.
  • the first software deployment architecture is the software deployment architecture in the design stage.
  • the second software deployment architecture is the software deployment architecture of the running phase.
  • the first architectural element is the architectural element corresponding to the metadata of the software in the design phase
  • the second architectural element is the architectural element corresponding to the metadata of the software in the running phase.
  • This method can specifically compare the dependencies of the first architectural element in the architectural element relationship model of the first software deployment architecture and the dependencies of the second architectural element in the architectural element model of the second software deployment architecture based on metadata at different stages. relationship, which can improve comparison efficiency.
  • the management system in response to different metadata in different stages, can establish a mapping relationship between the metadata of the software in the design stage and the metadata in the runtime.
  • the design state element "system” can be mapped to the runtime metadata.
  • the state element "application” is bound, and the design state element “service” is bound to the running state element "sub-application”. This lays a solid foundation for the subsequent comparison between the design state and the running state of the deployment architecture.
  • the metadata of the software can also be the same at different stages of the software's life cycle. For example, when architects design the architecture, they first design the metadata of the software (for example, a service) based on the Configuration Management Database (CMDB), then perform architecture design based on this metadata to obtain the deployment model and process model. In this way, the metadata of the software in the design phase and the metadata of the software in the runtime phase can be regarded as the same. Since the metadata are the same, the management system does not need to perform the steps of establishing a mapping relationship between metadata, thus improving the comparison efficiency.
  • CMDB Configuration Management Database
  • the metadata of the software in the design phase includes the process model.
  • the process model describes the architectural elements and calling relationships in the design phase.
  • the metadata of the software in the running phase includes call chain information.
  • the call chain information describes the running phase.
  • the management system can generate the architectural element relationship model in the design phase based on the process model, and use the same language to generate the architectural element relationship model in the running phase based on the call chain information.
  • This method converts each service element information and calling relationship in the process model into a unified architecture element data relationship model. At the same time, it obtains the service architecture elements and calling relationships from the call chain information such as the call chain topology map, and also converts it into a data relationship model. Unify the comparison language to lay the foundation for automatic comparison of architectures.
  • the management system may generate at least one of a first dependency table or a first dependency graph based on the dependency of the first architectural element in the architectural element relationship model of the first software deployment architecture. or more, and the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture, Generate at least one or more of the second dependency table or the second dependency graph. The management system then compares the first dependency relationship table with the second dependency relationship table, and/or compares the first dependency relationship graph with the second dependency relationship graph.
  • comparison based on dependency graphs or dependency tables can improve comparison efficiency; on the other hand, comparison results can be displayed intuitively through dependency graphs or dependency tables.
  • the management system displays the architecture element relationship model comparison results in the dependency table or the dependency graph. For example, the management system can flag inconsistencies or missing areas in a dependency table or dependency diagram. This allows users to quickly view the differences in software deployment architecture at different stages and helps with subsequent decision-making.
  • the same language includes a domain-specific language DSL.
  • different domains can have different domain-specific languages.
  • the field-specific language can be JS Object Notation (JSON), and in other fields, the field-specific language can be Structured Query Language (SQL).
  • This method uses a unified domain-specific language to convert metadata at different stages into a unified language model, thereby realizing automatic model comparison. This can achieve automatic consistent care of the software deployment architecture, improve care efficiency, and reduce costs. the cost of care.
  • the management system can generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase, and then the management system can compare The first model tree and the second model tree obtain a model tree comparison result.
  • the comparison result of the software deployment architecture includes the model tree comparison result.
  • this method can achieve multi-level data comparison, including comparison at the environment, application, component, instance and other levels.
  • the metadata of the software in the design phase includes a deployment model
  • the deployment model describes architectural elements and the environment in which the architectural elements are located
  • the metadata of the software in the running phase includes a resource management model.
  • the management system may generate a first model tree based on the architectural elements in the deployment model and the environment in which the architectural elements are located.
  • the first model tree is an environment component model tree.
  • the management system performs instantiation based on the resource management model and the call chain information to generate a second model tree.
  • the second model tree is an environment component model tree.
  • This method realizes the comparison of the deployment model and the resource management model by converting the deployment model in the design stage and the resource management model in the operation stage into model trees respectively. In this way, it can be found that there are inconsistencies between the structure of the deployment model and the structure of the running components. Sexual issues.
  • this application provides a management system for software deployment architecture.
  • the system includes:
  • Interaction module used to obtain metadata of software
  • a model generation module configured to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software through the same language based on the metadata of the software;
  • a comparison module configured to compare according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture.
  • the comparison results of the software deployment architecture include the comparison of the architectural element relationship models. to the results.
  • the interactive module is specifically used to:
  • the comparison module is specifically used for:
  • the first software deployment architecture is The software deployment architecture in the design phase
  • the second software deployment architecture is the software deployment architecture in the running phase
  • the first architecture element is the architecture element corresponding to the metadata of the software in the design phase
  • the second architecture element is Architectural elements corresponding to the metadata of the software during the running phase.
  • the metadata of the software in the design phase includes a process model
  • the process model describes the architectural elements and calling relationships of the design phase
  • the metadata of the software in the running phase includes call chain information.
  • the call chain information describes the architectural elements and call relationships of the running phase
  • the model generation module is specifically used for:
  • the same language is used to generate the architectural element relationship model of the running phase.
  • the comparison module is specifically used to:
  • the first dependency relationship table is compared with the second dependency relationship table, and/or the first dependency relationship graph is compared with the second dependency relationship graph.
  • the interactive module is also used to:
  • the architecture element relationship model comparison result is displayed in the dependency relationship table or the dependency relationship diagram.
  • the same language includes a domain-specific language DSL.
  • the model generation module is also used to:
  • the comparison module is also used to:
  • the first model tree and the second model tree are compared to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
  • the metadata of the software in the design phase includes a deployment model
  • the deployment model describes architectural elements and the environment where the architectural elements are located
  • the metadata of the software in the running phase includes a resource management model
  • the model generation module is specifically used for:
  • instantiation is performed in combination with the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
  • this application provides a computing device cluster.
  • the computing device cluster includes at least one computing device, the at least one computing device includes at least one processor and at least one memory, the at least one memory Computer readable instructions are stored in the at least one processor, and the at least one processor executes the computer readable instructions, so that the computing device cluster performs the method as described in the first aspect.
  • the present application provides a non-transitory computer-readable storage medium.
  • the computing device runs the aforementioned first aspect or the first aspect. Any possible implementation of the methods provided.
  • the storage medium stores the program.
  • the storage medium includes but is not limited to volatile memory, such as random access memory, and non-volatile memory, such as flash memory, hard disk drive (HDD), and solid state drive (SSD).
  • the present application provides a computer program product.
  • the computer program product includes computer instructions. When executed by a computing device, the computing device runs the aforementioned first aspect or any possible implementation of the first aspect. provided method.
  • Figure 1 is a system architecture diagram of a software deployment architecture management system provided by an embodiment of the present application
  • Figure 2 is an interactive flow chart of a software deployment architecture management method provided by an embodiment of the present application
  • Figure 3 is a schematic diagram of a resource management model structure tree provided by an embodiment of the present application.
  • Figure 4 is a schematic diagram of binding a baseline cloud service and a running cloud service provided by an embodiment of the present application
  • Figure 5 is a schematic diagram of metadata collection in the running stage provided by the embodiment of the present application.
  • Figure 6 is a schematic diagram of a call chain topology provided by an embodiment of the present application.
  • Figure 7 is a schematic diagram of a model tree comparison result provided by an embodiment of the present application.
  • Figure 8 is a schematic diagram of a comparison result of an architectural element relationship model provided by an embodiment of the present application.
  • Figure 9 is a schematic diagram of a cloud service binding method provided by an embodiment of the present application.
  • Figure 10 is a schematic diagram of a task creation interface provided by an embodiment of the present application.
  • Figure 11 is a schematic diagram of a consistent care report summary provided by an embodiment of the present application.
  • Figure 12 is a schematic diagram illustrating the details of a consistent care report provided by an embodiment of the present application.
  • Figure 13 is a schematic diagram illustrating the details of another consistent care report provided by the embodiment of the present application.
  • Figure 14 is a schematic structural diagram of a computing device provided by an embodiment of the present application.
  • Figure 15 is a schematic structural diagram of a computing device cluster provided by an embodiment of the present application.
  • Figure 16 is a schematic structural diagram of another computing device cluster provided by an embodiment of the present application.
  • Figure 17 is a schematic structural diagram of another computing device cluster provided by an embodiment of the present application.
  • first and second in the embodiments of this application are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Therefore, features defined as “first” and “second” may explicitly or implicitly include one or more of these features.
  • Software deployment architecture describes the deployment constraints of software deployment entities (also called deployment elements, such as components, functional modules, microservices), and defines the communication associations (also called dependencies).
  • Deployment constraints refer to the constraints imposed by software deployment entities on deployment nodes. Deployment constraints can usually be divided into the following constraint types: must (meaning it must be deployed on a certain type or node), can (meaning it must be deployed on a certain type or node), or prohibited (meaning it cannot be deployed on a certain type or node). kind of node).
  • Dependency refers to the calling relationship between a certain software deployment entity and other software deployment entities. Dependencies can be divided into the following types: dependence (A depends on B, which means A will call B when the system is running), dependent (A is dependent on B, which means B will call A when the system is running).
  • Software deployment architecture can usually be designed and generated by architects through relevant design tools, such as Visio, PPT and other drawing tools. Based on this, the software deployment architecture can be represented by the software deployment architecture diagram exported by the design tool. Among them, architects can design software deployment architecture from different perspectives. Correspondingly, software deployment architecture can be represented by corresponding architectural views according to the architect's perspective when designing. For example, the software deployment architecture may be characterized by at least one of a logical view, a development view, a deployment view, an operational view, and a use case view.
  • the logical view mainly solves the problems of system analysis and design. It is oriented to system logic analysis and design, describing the logical decomposition of the software system and the relationship between the decomposed logical architecture elements.
  • Logical views include logical models.
  • the logical model describes the logical functional decomposition of the software system, decomposes the software system into corresponding logical architecture elements, and describes the relationship between each logical architecture element.
  • logical architecture elements can include one or more of components, modules, services, micro services (micro services, ms), and interfaces.
  • the development view mainly solves the problems of system technology implementation and development. It relies on the logical view to describe the code structure and construction structure of the system.
  • Development view includes code model and build model.
  • the code model defines the code structure and the correspondence between the code and the logical view.
  • Code structure defines the code configuration management of logical architecture elements, such as code warehouse links, types, branches and other attributes.
  • the mapping relationship between the logical view and the code warehouse/code directory can be established in the code model to achieve explicit management of software source code.
  • the build model defines the software compilation and build structure and tool chain, and establishes the mapping and traceability relationship between code and deployable artifacts (such as runtime files).
  • the deployment view mainly solves the problem of system installation and deployment. It relies on the development view to describe the delivery and deployment relationship of the system.
  • Deployment view includes deployment model and delivery model.
  • the deployment model defines the deployment relationship of the software. It relies on the construction model and the delivery model to describe the deployment dependencies and deployment constraints of each offering and even the corresponding software deployment entity.
  • Offering provides users with a product portfolio of complete capabilities, and the products in the product portfolio include multiple services. When the software is a microservice architecture, the service can include multiple microservices.
  • the delivery model defines the packaging structure of deployable artifacts to offers, the corresponding tool chains, and the mapping relationship between offers and other view elements.
  • the running view mainly solves the interaction problems during the system runtime. It relies on the development view to model the logic of architectural elements or the interaction between them.
  • the running view includes the process model, which describes the relationship during the system's runtime. It focuses on modeling and describing runtime processes, process groups, threads, inter-process communication and interaction mechanisms.
  • the use case view provides the context of the software system and the main functional use cases of the software system. It is used to clarify the location of the software system in the network, the interface relationship with surrounding software systems, and the main functional use cases provided by the software system.
  • the use case view includes the context model, which provides the system context and main functional use cases of the system to clarify the location of the system in the network, The interface relationship with surrounding systems and the main functional use cases provided by the system.
  • the use case view can serve as a driving element, driving and validating the design of the other four views.
  • the code model in the development view describes that each service has a corresponding code warehouse, which can achieve consistency care from service to code;
  • the construction model in the development view describes the construction products of each service. From the code repository corresponding to the service, it can realize the consistency management from the code to the construction results;
  • the deployment model in the deployment view describes the deployment of the construction products of the service into the environment corresponding to the service, and exists in the form of service process;
  • process view describes the process corresponding to each service, as well as the calling process logic between processes.
  • the above view realizes consistent traceability from service to code warehouse, from code to compilation and build, from build product to deployment environment, and from service to process. In essence, it realizes the design state (design phase) to the development state (development phase). ), the software deployment entities described in the deployment model, the deployment environment, and the inter-process calling relationships described in the process model cannot be guaranteed to be consistent with the real software deployment architecture, thus missing the software deployment architecture from the design state. The ability to maintain consistency in the running state.
  • the consistency monitoring of software deployment architecture from design state to running state is usually implemented by architects through manual comparison.
  • software deployment architectures in the design phase and software deployment architectures in the runtime phase are often generated in different ways.
  • the software deployment architecture in the design phase is usually designed and generated by architects using design tools such as Visio, PPT and other drawing tools.
  • the software deployment architecture in the running phase is usually designed by architects using an application performance management (APM) system to obtain the running environment. Call chain drawing and generation, or drawing and generation based on host agent monitoring data.
  • API application performance management
  • the software deployment architecture in the design phase is usually static and abstract, while the software deployment architecture in the run phase is usually dynamic and instantiated. In this way, the comparison work is complicated and no early warning is possible. When differences are discovered, they often have a major impact on the production environment and affect business reliability and stability.
  • this application provides a management system for software deployment architecture.
  • the management system can be in the form of software, and the software can be deployed in a computing device cluster.
  • the computing device cluster executes the program code corresponding to the software, thereby executing the management method of the software deployment architecture of the present application.
  • the management system may also be in the form of hardware, and the hardware may be, for example, a computing device cluster with a software deployment architecture management function. When the hardware is running, the management method of the software deployment architecture of the present application is executed.
  • the management system obtains the metadata of the software, and then uses the same language to generate the architectural element relationship model of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software, and then generates the architecture element relationship model of the software deployment architecture at different stages in the life cycle of the software.
  • the element relationship models are compared to obtain the comparison results of the software deployment architecture.
  • the comparison results of the software deployment architecture include the comparison results of the architecture element relationship models.
  • This method uses the same language to generate architectural element relationship models of software deployment architectures at different stages, which reduces the difficulty of comparison and improves the accuracy of comparison. It can also realize automated comparison, overcome the disadvantages of manual comparison, and support early warning. , to avoid significant impact on the production environment and ensure business reliability and stability.
  • the management system 100 includes an interaction module 102 , a model generation module 104 and a comparison module 106 .
  • the interaction module 102 is used to obtain software metadata and model generation
  • the module 104 is used to generate the architectural element relationship model of the software deployment architecture at different stages in the life cycle of the software through the same language according to the metadata of the software.
  • the comparison module 106 is also used to generate the architectural elements of the software deployment architecture at different stages according to the software life cycle.
  • the relational models are compared to obtain a comparison result of the software deployment architecture.
  • the comparison result of the software deployment architecture includes a comparison result of the architecture element relationship model.
  • the metadata of the software can be different at different stages of the software life cycle.
  • metadata for software during the design phase may differ from metadata for software during the runtime phase.
  • the metadata of the software in the design phase can include one or more of the context model, logical model, code model, construction model, delivery model, deployment model, and process model.
  • the metadata of the software during the running phase may include one or more of call chain information and resource management models.
  • the call chain information may be a topology map.
  • the management system 100 can be connected to the design system 200 and the application performance management system 300 respectively.
  • the design system 200 is a product or service that supports architectural design.
  • Product forms of the design system 200 include client tools or web services.
  • the design system 200 may include Visio, a unified modeling language (UML) tool, or PPT.
  • UML unified modeling language
  • static deployment architecture diagrams can be designed.
  • the application performance management system 300 refers to a product or service that monitors and manages application performance.
  • the product form of the application performance management system 300 includes client tools or Web services.
  • the application performance management system 300 can be an APM system such as pinpoint, zipking, jeager, skywaking, etc.
  • the interaction module 102 in the management system 100 is used to obtain metadata of the software in the design phase from the design system 200 and obtain metadata of the software deployed in the production environment in the running phase through the application performance management system 300 .
  • the management system 100 may also include a mapping module 108 for establishing a mapping relationship between the metadata of the software in the design phase and the metadata of the software in the running phase.
  • the comparison module 106 can compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture. Make a comparison.
  • the first software deployment architecture is the software deployment architecture in the design phase
  • the second software deployment architecture is the software deployment architecture in the running phase
  • the first architecture element and the second architecture element have a mapping relationship.
  • the comparison module 106 can also compare the structures. For example, the comparison module 106 can compare the structures of the software at different stages before comparing the architectural metadata relationship models of the software at different stages. Specifically, the comparison module 106 is also configured to generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase, and then compare the first model tree and the second model tree. Model tree, obtain model tree comparison results. Among them, the comparison results of software deployment architecture include model tree comparison results. This enables multi-level data comparison, including comparison at the environment, application, component, instance and other levels.
  • the metadata of the software can also be the same.
  • architects design the architecture they first design the metadata of the software (for example, a service) based on the Configuration Management Database (CMDB), then perform architecture design based on this metadata to obtain the deployment model and process model.
  • CMDB Configuration Management Database
  • the management system 100 can call the application performance management system 300 to obtain the metadata of the software. Since the metadata are the same, the management system 100 does not need to perform the step of establishing a mapping relationship between metadata.
  • the method includes:
  • S202 The management system 100 obtains cloud service offering information from the product information system.
  • the product information system is used to provide product information query functions.
  • the product information system may include one or more of product basic information (Product Base Information, PBI) and cloud service basic information (Cloud Service Base Information, CSBI).
  • Product Base Information PBI
  • cloud service basic information Cloud Service Base Information, CSBI
  • the management system 100 may obtain the offering information of the cloud service specified by the user from CSBI.
  • the offer information of the cloud service is specifically the offer information to which the cloud service belongs. It should be noted that the management system 100 can periodically (or regularly) synchronize the offering information of the cloud service, or obtain the offering information of the cloud service when triggered by a task.
  • the management system 100 can perform data cleaning on the product information that does not require modeling in the offering information of the cloud service.
  • the management system 100 can perform data cleaning on the information whose offer status is inactive, including but not limited to information such as test use and sunset. Clean up and save the offer information that needs to be modeled.
  • the management system 100 obtains the metadata of the cloud service in the design phase from the design system 200 according to the offering information of the cloud service.
  • the management system 100 can regularly obtain the architectural element data (4+1 view data) of the cloud service from the design system 200 based on the cloud service's offer information, including use case view, logical view, development view, deployment view and running view. 5 views to obtain metadata of cloud services.
  • the metadata of cloud services may include models in the above views, such as one or more of the context model, logical model, code model, construction model, delivery model, deployment model, and process model.
  • the management system 100 can directly identify the model in the above view and obtain the metadata of the cloud service.
  • the management system 100 can also provide an annotation interface, and the user manually annotates the semantics of the corresponding drawing elements through the annotation interface, and then the management system 100 based on the drawing Semantics of elements,extracting metadata of cloud services.
  • the above S202 and S204 are an implementation method for the management system 100 to obtain the metadata of the cloud service in the design stage.
  • the metadata of the cloud service in the design stage can also be obtained through other methods.
  • the management system 100 can directly obtain the metadata of the cloud service in the design phase from the design system 200 .
  • S206 The management system 100 performs model integrity check and normative check based on the metadata of the cloud service in the design stage.
  • S208 is executed; when the inspection result indicates that the inspection passes, S210 is executed.
  • the management system 100 can check the model integrity of the cloud service based on the context model, logical model, code model, construction model, delivery model, deployment model, and process model. The management system 100 may also check whether the above model complies with the model specification according to the model specification, thereby checking the model specification of the cloud service.
  • S208 The management system 100 sends the inspection results to the user.
  • Inspection results can be divided into inspection pass and inspection failure.
  • the inspection result may also include one or more of the location, cause, and level.
  • the model in the view usually has a responsible person, which is recorded as model owner.
  • the management system 100 can send the above model owner to a user, such as an architect, to notify the corresponding The model owner solves the problem with level "Error".
  • the above-mentioned S206 and S208 are optional steps in the embodiment of the present application.
  • the above-mentioned S206 and S208 may not be executed when performing the management method of the software deployment architecture in the embodiment of the present application.
  • S210 The management system 100 baselines the cloud service based on the logical model.
  • the management system 100 can generate a "snapshot" of the source code or output of the cloud service (including microservices and components of the cloud service) in the cloud service project repository based on the logical model, thereby providing a formal standard to the outside world. Work is based on this standard and can only be changed with authorization, thus achieving baseline cloud services.
  • S212 Based on the logical model and the code model, the management system 100 checks the consistency of the architectural elements in the cloud service, its code warehouse and the pipeline. When the inspection result indicates that the inspection fails, S214 is executed; when the inspection result indicates that the inspection passes, S216 is executed.
  • the management system 100 can take the microservices/components (MS/Component architecture elements) of the logical model as the baseline, and check whether the code repository of the microservices/components in the code model is consistent with the code repository in the software pipeline, specifically checking the code repository. Check whether the address and branch are consistent, thereby checking whether the designed code repository is consistent with the actual code repository.
  • MS/Component architecture elements microservices/components
  • S214 The management system 100 sends the inspection results to the user.
  • Inspection results can be divided into inspection pass and inspection failure.
  • the inspection result may also include one or more of the location, cause, and level.
  • the management system 100 can also merge the inspection results of S208 and S214, and then send the merged inspection results.
  • the management system 100 may periodically send the combined inspection results.
  • S216 The management system 100 queries the metadata of the cloud service in the running stage from the CMDB.
  • the CMDB includes a resource management model, and the management system can query the resource management model of the cloud service in the running stage from the CMDB.
  • the resource management model defines one or more of applications (cloud services), sub-applications (microservices), components, and environments.
  • An application represents a business and usually includes the following components and environments.
  • the sub-application represents a sub-module under the application, the component represents the microservice, the environment represents an actual running environment deployed by this microservice due to different configurations, and the instance represents a process instance.
  • An environment can generally include multiple process instances.
  • the embodiment of this application also provides an example.
  • the cloud service LubanApm includes multiple microservices such as App-center and App-process.
  • S218 The management system 100 binds the baseline cloud service and the running cloud service according to the metadata of the cloud service in the running stage.
  • the management system 100 can bind the metadata of the baseline cloud service in the design phase to the running metadata in a one-to-one correspondence based on the running metadata of applications, sub-applications, components, and environments obtained from the CMDB, so as to provide a basis for subsequent implementation of the deployment architecture. Compare the design state and operating state to lay a solid foundation.
  • the management system 100 can bind the metadata according to the corresponding relationship in Table 1, thereby binding the baseline cloud service and the running cloud service, and establishing a mapping relationship between metadata.
  • the management system 100 can bind System and application, Service and sub-application, MS/Component and component, Zone and environment, and establish mapping relationships between corresponding metadata.
  • the management system 100 can also build a design state model tree based on the metadata of the baseline cloud service in the design phase, build a running state model tree based on the running state metadata, and bind the corresponding nodes in the model tree. , thus binding the baseline cloud service and the running cloud service.
  • S219 The management system 100 queries the metadata of the cloud service in the running stage from the application performance management system 300.
  • the application performance management system 300 (such as the APM system) generally adopts a non-intrusive method.
  • the java program uses java agent technology to collect performance data.
  • the data collection probe (such as java agent) of the APM system (such as APM server) can run together with the cloud service, with the client's configuration information (such as component name, environment name, etc.) when started.
  • the CMDB on the server side, obtain and match identity information, and then when the cloud service is running, the java agent can collect performance data of the cloud service operation, such as information about the current component environment calling other component environments, and the current component environment calling mysql, kafka, redis Statistics of middleware, information about the current component environment being called by other environments.
  • This information includes the number of calls, average response time (RT), number of errors, etc.
  • the above information can be aggregated on the agent side first and reported to the APM server periodically.
  • Each piece of data carries the identity information of the CMDB.
  • APM server can process and store the above data.
  • the data processing system can also include a data display API to support displaying the above data on the front end.
  • the management system 100 can read the topology data of the stored call chain information through the APM system, and realize visualization through the call chain topology diagram.
  • Figure 6 shows a call chain topology diagram, which truly depicts the calling relationship between multiple component environments under a business, as well as the calling relationship between the component environment and middleware.
  • the calling relationship can be identified by connecting lines. Each line can contain statistical data detected by the client and server respectively. These data include the number of calls, average RT, number of errors, etc.
  • the above call chain topology diagram truly reflects the software deployment architecture of the cloud service and can be dynamically adjusted. It is more accurate and more real-time than the topological relationship depicted by the design tool.
  • S219 is based on the example of obtaining metadata in the running stage through the APM system.
  • code-free intrusion or code intrusion based on host data flow monitoring or process data can also be used.
  • Flow monitoring, etc. to obtain metadata (such as deployment architecture data) during the running phase (real environment).
  • S220 The management system 100 generates a first model tree based on the metadata of the cloud service in the design phase, and generates a second model tree based on the metadata of the cloud service in the running phase.
  • Metadata for cloud services during the design phase includes deployment models.
  • the deployment model describes the architectural elements and where they are located environment.
  • the management system 100 can convert the deployment model into a first model tree, which is an environment component tree, also called a zone/process model tree.
  • the metadata of cloud services during the runtime phase includes resource management models.
  • the management system 100 can determine whether the service instance related to the resource is actually running according to the resource management model, combined with the call chain information such as the call chain topology map, and thereby instantiates it to generate a second model tree.
  • the second model tree is Environment component model tree, also called zone/process model tree.
  • S222 The management system 100 compares the first model tree and the second model tree to obtain a model tree comparison result.
  • the management system 100 compares the architectural elements with mapping relationships in the first model tree and the second model tree, specifically performs a consistency comparison, thereby obtaining a model tree comparison result.
  • S224 The management system 100 presents the model tree comparison results to the user.
  • the management system 100 may present the model tree comparison results on the first model tree and the second model tree.
  • the embodiment of this application also provides an example for explanation.
  • the management system 100 can present the information that the model tree lacks, such as operating information, in the corresponding position of the model tree in the design state (such as the first model tree).
  • the corresponding position of the model tree (such as the second model tree) presents information that the model tree lacks, such as the design model.
  • the management system 100 may also present prompt information indicating inconsistent environments at corresponding locations in the model tree in the design state and the model tree in the running state.
  • the management system 100 generates architectural element relationship models of the software deployment architecture in different stages through the same language based on the metadata of the cloud service in the design stage and the metadata in the running stage.
  • the metadata of cloud services in the design phase includes a process model, which describes the architectural elements and calling relationships of the design phase.
  • the metadata of the software in the running phase includes call chain information, which describes the architectural elements and calling relationships of the running phase.
  • the management system 100 can generate an architectural element relationship model in the design phase according to the process model, and generate an architectural element relationship model in the running phase using the same language based on the call chain information.
  • the same language can be a domain specific language (DSL).
  • a domain-specific language is a computer programming language with limited expressivity for a certain field.
  • Domain-specific languages may include but are not limited to regular expressions, Structured Query Language (SQL), JS Object Notation (JSON), and Markdown.
  • SQL Structured Query Language
  • JSON JS Object Notation
  • Markdown The above domain-specific languages usually have corresponding semantics.
  • the following is an example of an architectural element relationship model that generates software deployment architecture at different stages through JSON.
  • the management system 100 can convert the architectural elements and calling relationships in the process model into a unified architectural element relationship model, and at the same time obtain the architectural elements and calling relationships in the call chain topology diagram, remove redundant information, and also use JSON to convert it into a unified Architectural element relationship model.
  • the architecture element relationship model is a data relationship model, defined through JSON, etc.
  • the embodiment of this application also provides an example of an architectural element relationship model, as shown below:
  • S228 The management system 100 compares the architectural element relationship models of the software deployment architecture at different stages, and obtains the architectural element relationship model comparison results.
  • the management system 100 may generate at least one or more of the first dependency table or the first dependency graph according to the dependency of the first architecture element in the architecture element relationship model of the first software deployment architecture, and generating at least one or more of a second dependency table or a second dependency graph according to the dependency of the second architectural element in the architectural element relationship model of the second software deployment architecture.
  • the dependency table describes the service information that each architectural element (such as components, microservices, etc.) depends on/is dependent on.
  • the dependency graph can be generated based on the architectural element relationship model using vis/Echat, etc.
  • the management system 100 may compare the first dependency table with the second dependency table, and/or compare the first dependency graph with the third dependency table. Compare the two dependency diagrams to obtain the comparison results of the architectural element relationship models.
  • S230 The management system 100 presents the architectural element relationship model comparison results to the user.
  • the management system 100 may display the architecture element relationship model comparison result in the dependency relationship table or the dependency relationship graph.
  • the management system 100 can highlight the differences in dependencies in the first dependency table and the second dependency table, such as the number of dependencies and the number of dependents of cloud service A. The difference, as well as the difference between cloud service A depending on microservice 3 and being dependent on microservice 3.
  • the management system 100 may also display the difference in dependency relationships through different colors or line types in the first dependency relationship diagram and the second dependency relationship diagram. Further, the management system 100 can also associate differences in the dependency relationship table with differences in the dependency relationship graph through arrows.
  • the information that the model tree lacks is presented at the corresponding position of the model tree in the design state (such as the first model tree), and the information that the model tree lacks is presented at the corresponding position of the model tree in the running state (such as the second model tree).
  • information such as design Model.
  • the management system 100 may also present prompt information indicating inconsistent environments at corresponding locations in the model tree in the design state and the model tree in the running state.
  • comparison results of the above-mentioned S224 and S230 can also be merged, and then the management system 100 can send the merged comparison results and present the merged comparison results, thereby reducing transmission overhead.
  • the management system 100 may periodically send the combined comparison results and present them to the user.
  • the comparison results of the software deployment architecture include one or more of the model tree comparison results and the architecture element relationship model comparison results.
  • this embodiment proposes a method for monitoring the consistency of the software deployment architecture in the design phase and the running phase.
  • This method compares the architecture element relationship model generated in a unified language and solves the problems of manual comparison and consistency monitoring. It also supports early warning to avoid major impact on the production environment and ensure business reliability and stability.
  • the management system 100 can first bind the baseline cloud service and the running cloud service.
  • the management system 100 can automatically read data in the product information system and scan the CMDB for services with the same name to establish binding relationships. In order to ensure the accuracy of the binding relationship, the management system 100 supports users to manually confirm the binding relationship established by automatic binding.
  • the management system 100 can trigger manual binding.
  • the Offering tree displays multiple cloud services. Users can select cloud services from the dashboard offering tree.
  • the Offering tree can display the baseline status of a selected cloud service and provide links to cloud service 4+1 model projects and cloud services.
  • CMDB link When users click on the link of the cloud service 4+1 model project, they can be linked to the modeling tool to view the 4+1 view modeling data of the cloud service, including 5 views: use case view, logical view, development view, deployment view and running view. , the user can click on the component or microservice in the view to select the component or microservice, and then click on the CMDB link to select the running component instance or microservice instance.
  • the binding relationship can be established .
  • the management system 100 supports users (such as architects) to create new design state and running state consistency care tasks.
  • users can configure the task name, CMDB environment, model branch, execution cycle, and notifier through the task creation interface, thereby creating a consistency care task between the design state and the running state.
  • the execution cycle is an optional configuration, and the task can be a periodic task or aperiodic task.
  • FIG. 11 shows a schematic diagram of a summary of the consistency care report between the design state and the operation state.
  • the summary shows the problems discovered by the management system 100 when performing consistency care, and provides a link to view the details of the consistency care report. When users click on the link, they can also view the details of the consistency care report.
  • the details of the consistency care report can display the model tree comparison results and the architectural element relationship model comparison results.
  • the details of the consistency guard report respectively display the zone/process tree of the design metadata and the running The application/component tree after the state metadata is instantiated, and inconsistent elements are marked, including whether the environment is consistent, whether the service elements are consistent, etc.
  • the details of the consistency care report display the service list and dependency table in the design state and running state respectively, and distinguish the rows with inconsistent dependencies by separate colors; click on the dependency or dependent number in the list to jump to the graph Customize the display page and identify the relevant calling relationships through other colors.
  • this application also provides a management system 100 for software deployment architecture.
  • the management system 100 includes:
  • Interaction module 102 used to obtain metadata of software
  • the model generation module 104 is configured to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software through the same language according to the metadata of the software;
  • the comparison module 106 is configured to compare according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture, where the comparison results of the software deployment architecture include the architecture element relationship models. Comparison results.
  • the above-mentioned interaction module 102, model generation module 104, and comparison module 106 can be implemented by hardware, or can be implemented by software.
  • the comparison module 106 is used as an example below.
  • the comparison module 106 may be an application program running on a computing device, such as a computing engine.
  • the application can be provided to users as a virtualized service.
  • Virtualization services can include virtual machine (VM) services, bare metal server (BMS) services, and container (container) services.
  • the VM service can be a service that uses virtualization technology to virtualize a virtual machine (VM) resource pool on multiple physical hosts (such as computing devices) to provide users with VMs for use on demand.
  • the BMS service is a service that virtualizes BMS resource pools on multiple physical hosts to provide users with BMS on demand.
  • Container service is a service that virtualizes container resource pools on multiple physical hosts to provide users with containers on demand.
  • VM is a simulated virtual computer, that is, a logical computer.
  • BMS is an elastically scalable high-performance computing service. Its computing performance is the same as that of traditional physical machines, and it has the characteristics of safe physical isolation.
  • Containers are a kernel virtualization technology that can provide lightweight virtualization to isolate user space, processes and resources. It should be understood that the VM service, BMS service and container service in the above virtualization services are only specific examples. In actual applications, the virtualization service can also be other lightweight or heavyweight virtualization services, which are not discussed here. Specific limitations.
  • the comparison module 106 may include at least one computing device, such as a server.
  • the comparison module 106 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a general array logic (generic array logic, GAL), or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field-programmable gate array
  • GAL general array logic
  • the interaction module 102 is specifically used to:
  • the comparison module 106 is specifically used for:
  • the first software deployment architecture is the software deployment architecture in the design phase
  • the second software deployment architecture is the software deployment architecture in the running phase
  • the first architectural element is an architectural element corresponding to the metadata of the software in the design phase
  • the second architectural element is an architectural element corresponding to the metadata of the software in the running phase.
  • the management system 100 may also include a mapping module 108.
  • the mapping module 108 is used to establish a mapping relationship between the metadata of the software in the design phase and the metadata of the software in the running phase.
  • the comparison module 106 can determine the first architecture element and the second architecture element based on the above mapping relationship, and compare the dependency relationship of the first architecture element in the architecture element model of the first software deployment architecture with the second architecture element. Compare the dependencies of the second architectural element in the architectural element model of the software deployment architecture.
  • mapping module 108 can also be implemented by hardware, or can be implemented by software.
  • the mapping module 108 may be an application program running on a computing device, such as a computing engine or the like. The application can be provided to users as a virtualized service.
  • the mapping module 108 may include at least one computing device, such as a server. Alternatively, the mapping module 108 may also be a device implemented using an application specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • ASIC application specific integrated circuit
  • PLD programmable logic device
  • the metadata of the software in the design phase includes a process model
  • the process model describes the architectural elements and calling relationships of the design phase
  • the metadata of the software in the running phase includes call chain information.
  • the call chain information describes the architectural elements and call relationships of the running phase
  • the model generation module 104 is specifically used to:
  • the same language is used to generate the architectural element relationship model of the running phase.
  • the comparison module 106 is specifically used to:
  • the first dependency relationship table is compared with the second dependency relationship table, and/or the first dependency relationship graph is compared with the second dependency relationship graph.
  • the interaction module 102 is also used to:
  • the architecture element relationship model comparison result is displayed in the dependency relationship table or the dependency relationship diagram.
  • the same language includes a domain-specific language DSL.
  • model generation module 104 is also used to:
  • the comparison module 106 is also used to:
  • the first model tree and the second model tree are compared to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
  • the metadata of the software in the design phase includes a deployment model
  • the deployment model describes architectural elements and the environment where the architectural elements are located
  • the metadata of the software in the running phase includes a resource management model
  • the model generation module 104 is specifically used to:
  • instantiation is performed in combination with the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
  • computing device 1400 includes: bus 1402, processor 1404, memory 1406, and communication interface 1408.
  • the processor 1404, the memory 1406 and the communication interface 1408 communicate through a bus 1402.
  • Computing device 1400 may be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1400.
  • the bus 1402 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus can be divided into address bus, data bus, control bus, etc. For ease of presentation, only one line is used in Figure 14, but it does not mean that there is only one bus or one type of bus.
  • Bus 1402 may include a path that carries information between various components of computing device 1400 (eg, memory 1406, processor 1404, communications interface 1408).
  • the processor 1404 may include a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP) or a digital signal processor (DSP). any one or more of them.
  • CPU central processing unit
  • GPU graphics processing unit
  • MP microprocessor
  • DSP digital signal processor
  • Memory 1406 may include volatile memory, such as random access memory (RAM).
  • the processor 1404 may also include non-volatile memory (non-volatile memory), such as read-only memory (ROM), flash memory, mechanical hard disk drive (hard disk drive, HDD) or solid state drive (solid state drive). drive, SSD).
  • ROM read-only memory
  • flash memory such as hard disk drive (hard disk drive, HDD) or solid state drive (solid state drive). drive, SSD).
  • the memory 1406 stores executable program code, and the processor 1404 executes the executable program code to implement the aforementioned management method of the software deployment architecture.
  • the software deployment architecture management system 100 stored on the memory 1406 is used to execute instructions for the software deployment architecture management method.
  • the communication interface 1408 uses transceiver modules such as, but not limited to, network interface cards and transceivers to implement communication between the computing device 1400 and other devices or communication networks.
  • An embodiment of the present application also provides a computing device cluster.
  • the computing device cluster includes at least one computing device.
  • the computing device may be a server, such as a central server, an edge server, or a local server in a local data center.
  • the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
  • the computing device cluster includes at least one computing device 1400.
  • the memory 1406 of one or more computing devices 1400 in the computing device cluster may store instructions for the management system 100 of the same software deployment architecture to perform the management method of the software deployment architecture.
  • one or more computing devices 1400 in the computing device cluster may also be used to execute part of the instructions of the management system of the software deployment architecture for executing the management method of the software deployment architecture.
  • a combination of one or more computing devices 1400 may jointly execute instructions of the software deployment architecture management system 100 for performing the software deployment architecture management method.
  • the memory 1406 in different computing devices 1400 in the computing device cluster may store different instructions for executing part of the functions of the management system 100 of the software deployment architecture.
  • Figure 16 shows a possible implementation.
  • two computing devices 1400A and 1400B are connected through a communication interface 1408.
  • Instructions for executing the functions of the interaction module 102 and the model generation module 104 are stored on the memory in the computing device 1400A.
  • Instructions for performing the functions of comparison module 106 are stored on memory in computing device 1400B.
  • the memories 1406 of the computing devices 1400A and 1400B jointly store instructions for the management system 100 of the software deployment architecture to execute the management method of the software deployment architecture.
  • connection method between computing device clusters shown in Figure 16 can be based on the fact that the management method of the software deployment architecture provided by this application requires a large amount of computing power for model generation. Therefore, it is considered that the functions implemented by the model generation module 104 and the comparison module 106 are executed by different computing devices.
  • computing device 1400A shown in FIG. 16 may also be performed by multiple computing devices 1400.
  • computing device 1400B may also be performed by multiple computing devices 1400.
  • one or more computing devices in a cluster of computing devices may be connected through a network.
  • the network may be a wide area network or a local area network, etc.
  • Figure 17 shows a possible implementation. As shown in Figure 17, two computing devices 1400C and 1400D are connected through a network. Specifically, the connection to the network is made through a communication interface in each computing device.
  • instructions for executing the functions of the interaction module 102 and the model generation module 104 are stored in the memory 1406 of the computing device 1400C.
  • instructions for performing the functions of the comparison module 106 are stored in the memory 1406 in the computing device 1400D.
  • connection method between the computing device clusters shown in Figure 17 can be: Considering that the management method of the software deployment architecture provided by this application requires a large amount of computing power for model generation, the functions implemented by the model generation module 104 and the comparison module 106 are considered handed over to the computing device 1400D for execution.
  • computing device 1400C shown in FIG. 17 may also be performed by multiple computing devices 1400.
  • computing device 1400D may also be performed by multiple computing devices 1400.
  • An embodiment of the present application also provides a computer-readable storage medium.
  • the computer-readable storage medium may be any available medium that a computing device can store or a data storage device such as a data center that contains one or more available media.
  • the available media may be magnetic media (eg, floppy disk, hard disk, tape), optical media (eg, DVD), or semiconductor media (eg, solid state drive), etc.
  • the computer-readable storage medium includes instructions that instruct the computing device to execute the above-mentioned management method applied to the software deployment architecture by the management system 100 for executing the software deployment architecture.
  • An embodiment of the present application also provides a computer program product containing instructions.
  • the computer program product may be a software or program product containing instructions capable of running on a computing device or stored in any available medium.
  • the computer program product is run on at least one computing device, at least one computing device is caused to execute the above management method of the software deployment architecture.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

The present application provides a method, which is executed by a software deployment architecture management system. The method comprises: the management system acquires metadata of software; the management system generates architecture element relationship models of software deployment architectures at different stages in the life cycle of the software by means of a same language according to the metadata of the software; the management system compares the architecture element relationship models of the software deployment architectures at different stages to obtain a comparison result of the software deployment architectures. According to the method, by generating the architecture element relationship models of the software deployment architectures at different stages by means of the same language, the difficulty of comparison is reduced, and the accuracy of comparison is improved; moreover, automatic comparison can be implemented, thereby overcoming the disadvantages of manual comparison; early warning is supported, thereby avoiding significant impact on production environments, and ensuring the service reliability and stability.

Description

一种软件部署架构的管理方法以及相关设备A management method and related equipment for software deployment architecture
本申请要求于2022年08月24日提交中国国家知识产权局、申请号为202211019405.0、发明名称为“一种软件部署架构的管理方法及相关设备”的中国专利申请的优先权,以及要求于2022年11月30日提交中国国家知识产权局、申请号为202211520292.2、发明名称为“一种软件部署架构的管理方法以及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requires the priority of the Chinese patent application submitted to the State Intellectual Property Office of China on August 24, 2022, with the application number 202211019405.0 and the invention title "A management method for software deployment architecture and related equipment", and requires that it be filed in 2022 Priority is granted to a Chinese patent application filed with the State Intellectual Property Office of China on November 30, 2020, with the application number 202211520292.2 and the invention title "A management method for software deployment architecture and related equipment", the entire content of which is incorporated into this application by reference. middle.
技术领域Technical field
本申请涉及软件管理技术领域,尤其涉及一种软件部署架构的管理方法、系统、计算设备集群、计算机可读存储介质以及计算机程序产品。The present application relates to the field of software management technology, and in particular to a management method, system, computing device cluster, computer-readable storage medium and computer program product for a software deployment architecture.
背景技术Background technique
软件研发过程包括架构师进行软件架构设计以及开发人员基于架构师设计的软件部署架构进行软件开发。随着软件产业的不断迭代升级,架构师往往需要维护软件的整体生命周期,具体是包括软件部署架构设计、软件开发、运行运维的各个阶段。The software development process includes architects designing software architecture and developers developing software based on the software deployment architecture designed by architects. As the software industry continues to iterate and upgrade, architects often need to maintain the overall life cycle of software, specifically including the various stages of software deployment architecture design, software development, operation and maintenance.
维护软件的整体生命周期的关键在于软件部署架构的看护。软件部署架构的看护包括对不同阶段(如设计阶段、运行阶段)的软件部署架构进行一致性检测,及时监控可能的架构风险并发送告警。The key to maintaining the overall life cycle of software lies in the care of the software deployment architecture. The care of software deployment architecture includes checking the consistency of software deployment architecture in different stages (such as design stage and operation stage), monitoring possible architectural risks in a timely manner and sending alarms.
目前,架构师通常是人工比对不同阶段的软件部署架构,找出不同软件部署架构的差异之处。然而,不同阶段的软件部署架构通常是采用不同方式生成,由于技术实现的差异,对比工作比较复杂而且无法提前预警,往往在发现差异时已对生产环境造成重大影响,影响业务可靠性、稳定性。Currently, architects usually manually compare software deployment architectures at different stages to find out the differences between different software deployment architectures. However, software deployment architectures at different stages are usually generated using different methods. Due to differences in technical implementation, the comparison work is complex and cannot provide early warning. Often, when differences are discovered, they have already had a significant impact on the production environment, affecting business reliability and stability. .
发明内容Contents of the invention
针对以上问题,本申请提供一种软件部署方法,该方法通过采用相同语言生成不同阶段的软件部署架构的架构元素关系模型,降低了比对难度,提高了比对准确率,而且能够实现自动化的比对,克服人工比对的弊端,支持提前预警,避免对生产环境造成重大影响,保障业务可靠性、稳定性。本申请还提供与上述方法对应的软件部署架构的管理系统、计算设备集群、计算机可读存储介质以及计算机程序产品。In response to the above problems, this application provides a software deployment method. This method uses the same language to generate architectural element relationship models of software deployment architectures at different stages, which reduces the difficulty of comparison, improves the accuracy of comparison, and can realize automation. Comparison overcomes the disadvantages of manual comparison, supports early warning, avoids major impact on the production environment, and ensures business reliability and stability. This application also provides a management system for software deployment architecture, a computing device cluster, a computer-readable storage medium, and a computer program product corresponding to the above method.
第一方面,本申请提供了一种软件部署架构的管理方法。该方法由软件部署架构的管理系统执行。为了便于描述,下文称作管理系统。该管理系统可以是软件系统,该软件系统可以是集成开发环境(Integrated Development Environment,IDE)等软件开发平台,或者是依赖于软件开发平台的插件。该软件系统可以部署在计算设备集群,例如是云环境中的计算设备集群、或者本地计算中心的计算设备集群,计算设备集群执行软件系统的程序代码,从而执行本申请的软件部署架构的管理方法。在一些示例中,管理系统也可以是硬件系统,例如为具有软件部署架构的管理能力的计算设备集群,该硬件系统运行时,执行本申请的软件部署架构的管理方法。 In the first aspect, this application provides a management method for software deployment architecture. The method is performed by a management system of the software deployment architecture. For ease of description, it is referred to as the management system below. The management system may be a software system, and the software system may be a software development platform such as an integrated development environment (Integrated Development Environment, IDE), or a plug-in that depends on the software development platform. The software system can be deployed in a computing device cluster, such as a computing device cluster in a cloud environment or a computing device cluster in a local computing center. The computing device cluster executes the program code of the software system, thereby executing the management method of the software deployment architecture of this application. . In some examples, the management system may also be a hardware system, such as a computing device cluster with the management capability of the software deployment architecture. When the hardware system is running, the management method of the software deployment architecture of the present application is executed.
具体地,管理系统可以获取软件的元数据,然后管理系统根据软件的元数据,通过相同语言生成软件的生命周期中不同阶段的软件部署架构的架构元素关系模型,接着管理系统根据不同阶段的软件部署架构的架构元素关系模型进行比对,获得软件部署架构的比对结果。其中,软件部署架构的比对结果包括架构元素关系模型比对结果。Specifically, the management system can obtain the metadata of the software, and then the management system generates architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software through the same language, and then the management system generates architectural element relationship models based on the software at different stages. Compare the architectural element relationship models of the deployment architecture to obtain the comparison results of the software deployment architecture. Among them, the comparison results of the software deployment architecture include the comparison results of the architecture element relationship models.
该方法中,管理系统通过采用相同语言生成不同阶段的软件部署架构的架构元素关系模型,降低了比对难度,提高了比对准确率,而且能够实现自动化的比对,克服人工比对的弊端,支持提前预警,避免对生产环境造成重大影响,保障业务可靠性、稳定性。In this method, the management system uses the same language to generate architectural element relationship models of the software deployment architecture at different stages, which reduces the difficulty of comparison, improves the accuracy of comparison, and can realize automated comparison and overcome the disadvantages of manual comparison. , supports early warning to avoid major impact on the production environment and ensure business reliability and stability.
在一些可能的实现方式中,软件在不同阶段的元数据可以不同。管理系统可以获取软件在设计阶段的元数据,以及获取软件在运行阶段的元数据。相应地,在进行架构元素模型的比对时,管理系统可以将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系进行比对。其中,第一软件部署架构为设计阶段的软件部署架构。第二软件部署架构为运行阶段的软件部署架构。第一架构元素为所述软件在设计阶段的元数据对应的架构元素,第二架构元素为所述软件在运行阶段的元数据对应的架构元素。In some possible implementations, the metadata of software can be different at different stages. The management system can obtain the metadata of the software in the design phase and the metadata of the software in the running phase. Correspondingly, when comparing the architectural element models, the management system can compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the second architecture in the architectural element relationship model of the second software deployment architecture. Compare the dependencies of elements. Among them, the first software deployment architecture is the software deployment architecture in the design stage. The second software deployment architecture is the software deployment architecture of the running phase. The first architectural element is the architectural element corresponding to the metadata of the software in the design phase, and the second architectural element is the architectural element corresponding to the metadata of the software in the running phase.
该方法可以基于不同阶段的元数据,针对性地比对第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系和第二软件部署架构的架构元素模型中第二架构元素的依赖关系,如此可以提高比对效率。This method can specifically compare the dependencies of the first architectural element in the architectural element relationship model of the first software deployment architecture and the dependencies of the second architectural element in the architectural element model of the second software deployment architecture based on metadata at different stages. relationship, which can improve comparison efficiency.
在一些可能的实现方式中,针对不同阶段的元数据不同的情况,管理系统可以建立软件在设计阶段的元数据与运行阶段的元数据的映射关系,例如可以将设计态元素“system”与运行态元素“应用”绑定,将设计态元素“service”与运行态元素“子应用”绑定。如此为后续实现部署架构设计态与运行态比较打好基础。In some possible implementations, in response to different metadata in different stages, the management system can establish a mapping relationship between the metadata of the software in the design stage and the metadata in the runtime. For example, the design state element "system" can be mapped to the runtime metadata. The state element "application" is bound, and the design state element "service" is bound to the running state element "sub-application". This lays a solid foundation for the subsequent comparison between the design state and the running state of the deployment architecture.
在一些可能的实现方式中,在软件的生命周期的不同阶段,软件的元数据也可以是相同的。例如,架构师在进行架构设计时,先基于配置管理数据库(Configuration Management Database,CMDB)设计软件(例如为服务)的元数据,基于该元数据进行架构设计,获得部署模型和进程模型。如此,软件在设计阶段的元数据和软件在运行阶段的元数据可以视为相同。由于元数据相同,管理系统无需执行建立元数据之间的映射关系的步骤,由此提高了比对效率。In some possible implementations, the metadata of the software can also be the same at different stages of the software's life cycle. For example, when architects design the architecture, they first design the metadata of the software (for example, a service) based on the Configuration Management Database (CMDB), then perform architecture design based on this metadata to obtain the deployment model and process model. In this way, the metadata of the software in the design phase and the metadata of the software in the runtime phase can be regarded as the same. Since the metadata are the same, the management system does not need to perform the steps of establishing a mapping relationship between metadata, thus improving the comparison efficiency.
在一些可能的实现方式中,软件在设计阶段的元数据包括进程模型,进程模型描述设计阶段的架构元素以及调用关系,软件在运行阶段的元数据包括调用链信息,调用链信息描述运行阶段的架构元素以及调用关系。相应地,管理系统可以根据进程模型,生成所述设计阶段的架构元素关系模型,根据调用链信息,采用相同语言生成运行阶段的架构元素关系模型。In some possible implementations, the metadata of the software in the design phase includes the process model. The process model describes the architectural elements and calling relationships in the design phase. The metadata of the software in the running phase includes call chain information. The call chain information describes the running phase. Architectural elements and calling relationships. Correspondingly, the management system can generate the architectural element relationship model in the design phase based on the process model, and use the same language to generate the architectural element relationship model in the running phase based on the call chain information.
该方法通过将进程模型中各服务元素信息、调用关系转换成统一的架构元素数据关系模型,同时从调用链拓扑图等调用链信息中获取服务架构元素以及调用关系,也转换成数据关系模型,统一对比语言,为架构的自动对比奠定基础。This method converts each service element information and calling relationship in the process model into a unified architecture element data relationship model. At the same time, it obtains the service architecture elements and calling relationships from the call chain information such as the call chain topology map, and also converts it into a data relationship model. Unify the comparison language to lay the foundation for automatic comparison of architectures.
在一些可能的实现方式中,管理系统可以根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系, 生成第二依赖关系表或第二依赖关系图中的至少一种或多种。然后管理系统将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对。In some possible implementations, the management system may generate at least one of a first dependency table or a first dependency graph based on the dependency of the first architectural element in the architectural element relationship model of the first software deployment architecture. or more, and the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture, Generate at least one or more of the second dependency table or the second dependency graph. The management system then compares the first dependency relationship table with the second dependency relationship table, and/or compares the first dependency relationship graph with the second dependency relationship graph.
一方面,基于依赖图或依赖表进行比对,可以提高比对效率,另一方面可以通过依赖图或依赖表可以直观地展示比对结果。On the one hand, comparison based on dependency graphs or dependency tables can improve comparison efficiency; on the other hand, comparison results can be displayed intuitively through dependency graphs or dependency tables.
在一些可能的实现方式中,管理系统在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。例如,管理系统可以在依赖关系表或依赖关系图中标注出不一致之处或缺失之处。如此可以方便用户快速查看不同阶段的软件部署架构的差异,为后续决策提供帮助。In some possible implementations, the management system displays the architecture element relationship model comparison results in the dependency table or the dependency graph. For example, the management system can flag inconsistencies or missing areas in a dependency table or dependency diagram. This allows users to quickly view the differences in software deployment architecture at different stages and helps with subsequent decision-making.
在一些可能的实现方式中,所述相同语言包括领域特定语言DSL。其中,不同领域可以具有不同领域特定语言。在一些领域,该领域特定语言可以为JS对象简谱(JavaScript Object Notation,JSON),在另一些领域,该领域特定语言可以为结构化查询语言(Structured Query Language,SQL)。In some possible implementations, the same language includes a domain-specific language DSL. Among others, different domains can have different domain-specific languages. In some fields, the field-specific language can be JS Object Notation (JSON), and in other fields, the field-specific language can be Structured Query Language (SQL).
该方法通过以统一的领域特定语言,将不同阶段的元数据转换为统一语言的模型,从而实现模型自动比对,由此可以实现自动的软件部署架构的一致性看护,提高了看护效率,降低了看护成本。This method uses a unified domain-specific language to convert metadata at different stages into a unified language model, thereby realizing automatic model comparison. This can achieve automatic consistent care of the software deployment architecture, improve care efficiency, and reduce costs. the cost of care.
在一些可能的实现方式中,管理系统可以根据所述软件在设计阶段的元数据生成第一模型树,以及根据所述软件在运行阶段的元数据,生成第二模型树,然后管理系统比对所述第一模型树和所述第二模型树,获得模型树比对结果。软件部署架构的比对结果包括所述模型树比对结果。In some possible implementations, the management system can generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase, and then the management system can compare The first model tree and the second model tree obtain a model tree comparison result. The comparison result of the software deployment architecture includes the model tree comparison result.
该方法通过将元数据转换为模型树,可以实现多层级的数据比对,包括环境、应用、组件、实例等层级的比对。By converting metadata into a model tree, this method can achieve multi-level data comparison, including comparison at the environment, application, component, instance and other levels.
在一些可能的实现方式中,所述软件在设计阶段的元数据包括部署模型,所述部署模型描述架构元素以及架构元素所在环境,所述软件在运行阶段的元数据包括资源管理模型。相应地,管理系统可以根据所述部署模型中的所述架构元素以及所述架构元素所在环境,生成第一模型树。所述第一模型树为环境组件模型树。管理系统根据所述资源管理模型,结合调用链信息进行实例化,生成第二模型树。所述第二模型树为环境组件模型树。In some possible implementations, the metadata of the software in the design phase includes a deployment model, the deployment model describes architectural elements and the environment in which the architectural elements are located, and the metadata of the software in the running phase includes a resource management model. Correspondingly, the management system may generate a first model tree based on the architectural elements in the deployment model and the environment in which the architectural elements are located. The first model tree is an environment component model tree. The management system performs instantiation based on the resource management model and the call chain information to generate a second model tree. The second model tree is an environment component model tree.
该方法通过将设计阶段的部署模型、运行阶段的资源管理模型分别转换为模型树,从而实现了部署模型和资源管理模型的比对,如此可以发现部署模型的结构与运行态组件的结构存在不一致性的问题。This method realizes the comparison of the deployment model and the resource management model by converting the deployment model in the design stage and the resource management model in the operation stage into model trees respectively. In this way, it can be found that there are inconsistencies between the structure of the deployment model and the structure of the running components. Sexual issues.
第二方面,本申请提供了一种软件部署架构的管理系统,所述系统包括:In the second aspect, this application provides a management system for software deployment architecture. The system includes:
交互模块,用于获取软件的元数据;Interaction module, used to obtain metadata of software;
模型生成模块,用于根据所述软件的元数据,通过相同语言生成所述软件的生命周期中不同阶段的软件部署架构的架构元素关系模型;A model generation module, configured to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software through the same language based on the metadata of the software;
比对模块,用于根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,所述软件部署架构的比对结果包括架构元素关系模型比对结果。A comparison module, configured to compare according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture. The comparison results of the software deployment architecture include the comparison of the architectural element relationship models. to the results.
在一些可能的实现方式中,所述交互模块具体用于: In some possible implementations, the interactive module is specifically used to:
获取所述软件在设计阶段的元数据,以及获取所述软件在运行阶段的元数据;Obtain the metadata of the software in the design phase, and obtain the metadata of the software in the running phase;
所述比对模块具体用于:The comparison module is specifically used for:
将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系进行比对,所述第一软件部署架构为设计阶段的软件部署架构,所述第二软件部署架构为运行阶段的软件部署架构,所述第一架构元素为所述软件在设计阶段的元数据对应的架构元素,所述第二架构元素为所述软件在运行阶段的元数据对应的架构元素。Compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture, where the first software deployment architecture is The software deployment architecture in the design phase, the second software deployment architecture is the software deployment architecture in the running phase, the first architecture element is the architecture element corresponding to the metadata of the software in the design phase, and the second architecture element is Architectural elements corresponding to the metadata of the software during the running phase.
在一些可能的实现方式中,所述软件在设计阶段的元数据包括进程模型,所述进程模型描述所述设计阶段的架构元素以及调用关系,所述软件在运行阶段的元数据包括调用链信息,所述调用链信息描述所述运行阶段的架构元素以及调用关系;In some possible implementations, the metadata of the software in the design phase includes a process model, the process model describes the architectural elements and calling relationships of the design phase, and the metadata of the software in the running phase includes call chain information. , the call chain information describes the architectural elements and call relationships of the running phase;
所述模型生成模块具体用于:The model generation module is specifically used for:
根据所述进程模型,生成所述设计阶段的架构元素关系模型;Generate an architectural element relationship model of the design stage according to the process model;
根据所述调用链信息,采用相同语言生成所述运行阶段的架构元素关系模型。According to the call chain information, the same language is used to generate the architectural element relationship model of the running phase.
在一些可能的实现方式中,所述比对模块具体用于:In some possible implementations, the comparison module is specifically used to:
根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系,生成第二依赖关系表或第二依赖关系图中的至少一种或多种;generating at least one or more of a first dependency table or a first dependency graph according to the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture, and according to the second software Deploy the dependency relationship of the second architecture element in the architecture element relationship model of the architecture, and generate at least one or more of the second dependency relationship table or the second dependency relationship graph;
将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对。The first dependency relationship table is compared with the second dependency relationship table, and/or the first dependency relationship graph is compared with the second dependency relationship graph.
在一些可能的实现方式中,所述交互模块还用于:In some possible implementations, the interactive module is also used to:
在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。The architecture element relationship model comparison result is displayed in the dependency relationship table or the dependency relationship diagram.
在一些可能的实现方式中,所述相同语言包括领域特定语言DSL。In some possible implementations, the same language includes a domain-specific language DSL.
在一些可能的实现方式中,所述模型生成模块还用于:In some possible implementations, the model generation module is also used to:
根据所述软件在设计阶段的元数据生成第一模型树,以及根据所述软件在运行阶段的元数据,生成第二模型树;Generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase;
所述比对模块还用于:The comparison module is also used to:
比对所述第一模型树和所述第二模型树,获得模型树比对结果,所述软件部署架构的比对结果包括所述模型树比对结果。The first model tree and the second model tree are compared to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
在一些可能的实现方式中,所述软件在设计阶段的元数据包括部署模型,所述部署模型描述架构元素以及架构元素所在环境,所述软件在运行阶段的元数据包括资源管理模型;In some possible implementations, the metadata of the software in the design phase includes a deployment model, the deployment model describes architectural elements and the environment where the architectural elements are located, and the metadata of the software in the running phase includes a resource management model;
所述模型生成模块具体用于:The model generation module is specifically used for:
根据所述部署模型中的所述架构元素以及所述架构元素所在环境,生成第一模型树,所述第一模型树为环境组件模型树;Generate a first model tree based on the architectural elements in the deployment model and the environment where the architectural elements are located, where the first model tree is an environment component model tree;
根据所述资源管理模型,结合调用链信息进行实例化,生成第二模型树,所述第二模型树为环境组件模型树。According to the resource management model, instantiation is performed in combination with the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
第三方面,本申请提供了一种计算设备集群。所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器 中存储有计算机可读指令,所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如第一方面所述的方法。In a third aspect, this application provides a computing device cluster. The computing device cluster includes at least one computing device, the at least one computing device includes at least one processor and at least one memory, the at least one memory Computer readable instructions are stored in the at least one processor, and the at least one processor executes the computer readable instructions, so that the computing device cluster performs the method as described in the first aspect.
第四方面,本申请提供了一种非瞬态的计算机可读存储介质,所述非瞬态的计算机可读存储介质被计算设备执行时,所述计算设备运行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。In a fourth aspect, the present application provides a non-transitory computer-readable storage medium. When the non-transitory computer-readable storage medium is executed by a computing device, the computing device runs the aforementioned first aspect or the first aspect. Any possible implementation of the methods provided. The storage medium stores the program. The storage medium includes but is not limited to volatile memory, such as random access memory, and non-volatile memory, such as flash memory, hard disk drive (HDD), and solid state drive (SSD).
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,在被计算设备执行时,所述计算设备运行前述第一方面或第一方面的任意可能的实现方式中提供的方法。In a fifth aspect, the present application provides a computer program product. The computer program product includes computer instructions. When executed by a computing device, the computing device runs the aforementioned first aspect or any possible implementation of the first aspect. provided method.
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。Based on the implementation methods provided in the above aspects, this application can also be further combined to provide more implementation methods.
附图说明Description of drawings
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。In order to explain the technical methods of the embodiments of the present application more clearly, the drawings required to be used in the embodiments will be briefly introduced below.
图1为本申请实施例提供的一种软件部署架构的管理系统的系统架构图;Figure 1 is a system architecture diagram of a software deployment architecture management system provided by an embodiment of the present application;
图2为本申请实施例提供的一种软件部署架构的管理方法的交互流程图;Figure 2 is an interactive flow chart of a software deployment architecture management method provided by an embodiment of the present application;
图3为本申请实施例提供的一种资源管理模型结构树的示意图;Figure 3 is a schematic diagram of a resource management model structure tree provided by an embodiment of the present application;
图4为本申请实施例提供的一种绑定基线化云服务和运行态云服务的示意图;Figure 4 is a schematic diagram of binding a baseline cloud service and a running cloud service provided by an embodiment of the present application;
图5为本申请实施例提供的一种运行阶段的元数据采集示意图;Figure 5 is a schematic diagram of metadata collection in the running stage provided by the embodiment of the present application;
图6为本申请实施例提供的一种调用链拓扑图的示意图;Figure 6 is a schematic diagram of a call chain topology provided by an embodiment of the present application;
图7为本申请实施例提供的一种模型树比对结果的示意图;Figure 7 is a schematic diagram of a model tree comparison result provided by an embodiment of the present application;
图8为本申请实施例提供的一种架构元素关系模型比对结果的示意图;Figure 8 is a schematic diagram of a comparison result of an architectural element relationship model provided by an embodiment of the present application;
图9为本申请实施例提供的一种云服务绑定方式示意图;Figure 9 is a schematic diagram of a cloud service binding method provided by an embodiment of the present application;
图10为本申请实施例提供的一种任务创建界面的界面示意图;Figure 10 is a schematic diagram of a task creation interface provided by an embodiment of the present application;
图11为本申请实施例提供的一种一致性看护报告摘要的示意图;Figure 11 is a schematic diagram of a consistent care report summary provided by an embodiment of the present application;
图12为本申请实施例提供的一种一致性看护报告详情的示意图;Figure 12 is a schematic diagram illustrating the details of a consistent care report provided by an embodiment of the present application;
图13为本申请实施例提供的另一种一致性看护报告详情的示意图;Figure 13 is a schematic diagram illustrating the details of another consistent care report provided by the embodiment of the present application;
图14为本申请实施例提供的一种计算设备的结构示意图;Figure 14 is a schematic structural diagram of a computing device provided by an embodiment of the present application;
图15为本申请实施例提供的一种计算设备集群的结构示意图;Figure 15 is a schematic structural diagram of a computing device cluster provided by an embodiment of the present application;
图16为本申请实施例提供的另一种计算设备集群的结构示意图;Figure 16 is a schematic structural diagram of another computing device cluster provided by an embodiment of the present application;
图17为本申请实施例提供的又一种计算设备集群的结构示意图。Figure 17 is a schematic structural diagram of another computing device cluster provided by an embodiment of the present application.
具体实施方式Detailed ways
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。 The terms "first" and "second" in the embodiments of this application are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Therefore, features defined as "first" and "second" may explicitly or implicitly include one or more of these features.
首先对本申请实施例中所涉及到的一些技术术语进行介绍。First, some technical terms involved in the embodiments of this application are introduced.
软件部署架构,描述软件部署实体(也称作部署元素,如组件、功能模块、微服务)的部署约束,以及定义软件部署实体在软件(也称作软件系统)运行期的通信关联(也称作依赖关系)。Software deployment architecture describes the deployment constraints of software deployment entities (also called deployment elements, such as components, functional modules, microservices), and defines the communication associations (also called dependencies).
部署约束,是指软件部署实体对部署节点的约束条件。部署约束通常可以分为如下约束类型:必须(指必须部署在某类或某种节点上)、可以(指必须部署在某类或某种节点上)或禁止(指不能部署在某类或某种节点上)。Deployment constraints refer to the constraints imposed by software deployment entities on deployment nodes. Deployment constraints can usually be divided into the following constraint types: must (meaning it must be deployed on a certain type or node), can (meaning it must be deployed on a certain type or node), or prohibited (meaning it cannot be deployed on a certain type or node). kind of node).
依赖关系,是指某软件部署实体与其他软件部署实体的调用关系。依赖关系可以分为如下类型:依赖(A依赖于B,代表A在系统运行过程中会调用B)、被依赖(A被B依赖,代表B在系统运行过程中会调用A)。Dependency refers to the calling relationship between a certain software deployment entity and other software deployment entities. Dependencies can be divided into the following types: dependence (A depends on B, which means A will call B when the system is running), dependent (A is dependent on B, which means B will call A when the system is running).
软件部署架构通常可以由架构师通过相关设计工具,例如是Visio、PPT等绘图工具,进行设计生成。基于此,软件部署架构可以通过设计工具导出的软件部署架构图表示。其中,架构师可以从不同视角设计软件部署架构,相应地,软件部署架构可以根据架构师设计时的视角通过相应的架构视图表征。例如,软件部署架构可以通过逻辑视图、开发视图、部署视图、运行视图和用例视图中的至少一种表征。Software deployment architecture can usually be designed and generated by architects through relevant design tools, such as Visio, PPT and other drawing tools. Based on this, the software deployment architecture can be represented by the software deployment architecture diagram exported by the design tool. Among them, architects can design software deployment architecture from different perspectives. Correspondingly, software deployment architecture can be represented by corresponding architectural views according to the architect's perspective when designing. For example, the software deployment architecture may be characterized by at least one of a logical view, a development view, a deployment view, an operational view, and a use case view.
逻辑视图主要解决系统分析和设计的问题,它面向系统逻辑分析和设计,描述软件系统的逻辑分解,以及分解出的逻辑架构元素间的关系。逻辑视图包括逻辑模型。逻辑模型描述软件系统的逻辑功能分解,将软件系统分解为相应的逻辑架构元素,并描述各逻辑架构元素之间的关系。其中,逻辑架构元素可以包括组件(component)、模块(module)、服务(service),微服务(micro service,ms)、接口(interface)中的一种或多种。The logical view mainly solves the problems of system analysis and design. It is oriented to system logic analysis and design, describing the logical decomposition of the software system and the relationship between the decomposed logical architecture elements. Logical views include logical models. The logical model describes the logical functional decomposition of the software system, decomposes the software system into corresponding logical architecture elements, and describes the relationship between each logical architecture element. Among them, logical architecture elements can include one or more of components, modules, services, micro services (micro services, ms), and interfaces.
开发视图主要解决系统技术实现和开发的问题,它依托逻辑视图,描述系统的代码结构和构建结构。开发视图包括代码模型和构建模型。代码模型定义代码结构及代码与逻辑视图的对应关系。代码结构定义逻辑架构元素的代码配置管理,如代码仓库链接、类型、分支等属性。代码模型中可以建立逻辑视图到代码仓/代码目录的映射关系,以实现软件源代码的显式管理。构建模型定义软件编译构建结构及工具链,建立代码到可部署制品(如运行期文件)的映射和追溯关系。The development view mainly solves the problems of system technology implementation and development. It relies on the logical view to describe the code structure and construction structure of the system. Development view includes code model and build model. The code model defines the code structure and the correspondence between the code and the logical view. Code structure defines the code configuration management of logical architecture elements, such as code warehouse links, types, branches and other attributes. The mapping relationship between the logical view and the code warehouse/code directory can be established in the code model to achieve explicit management of software source code. The build model defines the software compilation and build structure and tool chain, and establishes the mapping and traceability relationship between code and deployable artifacts (such as runtime files).
部署视图主要解决系统安装部署的问题,它依托开发视图,描述系统的交付和部署关系。部署视图包括部署模型和交付模型。部署模型定义软件的部署关系,它依托构建模型和交付模型,描述每个供品(offering)乃至相应的软件部署实体的部署依赖和部署约束。Offering为面向用户提供完整能力的产品组合,产品组合中的产品包括多个服务。当软件为微服务架构时,服务可以包括多个微服务。交付模型定义可部署制品到offering的打包构成,相应的工具链,以及offering与其他视图元素之间的映射关系。The deployment view mainly solves the problem of system installation and deployment. It relies on the development view to describe the delivery and deployment relationship of the system. Deployment view includes deployment model and delivery model. The deployment model defines the deployment relationship of the software. It relies on the construction model and the delivery model to describe the deployment dependencies and deployment constraints of each offering and even the corresponding software deployment entity. Offering provides users with a product portfolio of complete capabilities, and the products in the product portfolio include multiple services. When the software is a microservice architecture, the service can include multiple microservices. The delivery model defines the packaging structure of deployable artifacts to offers, the corresponding tool chains, and the mapping relationship between offers and other view elements.
运行视图主要解决系统运行期交互问题,它依托开发视图,用来对架构元素实现逻辑或相互间交互行为进行建模。运行视图包括进程模型,进程模型描述系统运行期的关系。它重点针对运行时的进程、进程组、线程、进程间通信以及交互机制进行建模和描述。The running view mainly solves the interaction problems during the system runtime. It relies on the development view to model the logic of architectural elements or the interaction between them. The running view includes the process model, which describes the relationship during the system's runtime. It focuses on modeling and describing runtime processes, process groups, threads, inter-process communication and interaction mechanisms.
用例视图提供软件系统上下文和软件系统主要功能用例,用于明确软件系统在网络中的位置、与周边软件系统间的接口关系以及软件系统提供的主要功能用例。用例视图包括上下文模型,该模型提供系统上下文和系统主要功能用例,用于明确系统在网络中的位置、 与周边系统间的接口关系以及系统提供的主要功能用例。用例视图可以作为驱动元素,驱动和验证其他四个视图的设计。The use case view provides the context of the software system and the main functional use cases of the software system. It is used to clarify the location of the software system in the network, the interface relationship with surrounding software systems, and the main functional use cases provided by the software system. The use case view includes the context model, which provides the system context and main functional use cases of the system to clarify the location of the system in the network, The interface relationship with surrounding systems and the main functional use cases provided by the system. The use case view can serve as a driving element, driving and validating the design of the other four views.
从架构看护的角度,开发视图中的代码模型,描述了每个服务都有对应的代码仓库,可以实现服务到代码的一致性看护;开发视图中构建模型,描述了每一个服务的构建产物都来自于服务对应的代码仓库,可以实现代码到构建结果的一致性看护;部署视图中的部署模型,描述了服务的构建产物部署到服务对应的环境中,并以服务进程的形态存在;进程视图中的进程模型,描述了每个服务对应的进程,以及进程间的调用流程逻辑。上述视图实现了从服务到代码仓库、从代码到编译构建、从构建产物到部署环境、从服务到进程的一致性可追溯,本质上是实现了设计态(设计阶段)到开发态(开发阶段)的一致性看护,其中部署模型所描述的软件部署实体以及部署环境、进程模型中所描述的进程间调用关系,无法保证与真实的软件部署架构保持一致,从而缺失了软件部署架构从设计态到运行态一致性看护的能力。From the perspective of architectural care, the code model in the development view describes that each service has a corresponding code warehouse, which can achieve consistency care from service to code; the construction model in the development view describes the construction products of each service. From the code repository corresponding to the service, it can realize the consistency management from the code to the construction results; the deployment model in the deployment view describes the deployment of the construction products of the service into the environment corresponding to the service, and exists in the form of service process; process view The process model in , describes the process corresponding to each service, as well as the calling process logic between processes. The above view realizes consistent traceability from service to code warehouse, from code to compilation and build, from build product to deployment environment, and from service to process. In essence, it realizes the design state (design phase) to the development state (development phase). ), the software deployment entities described in the deployment model, the deployment environment, and the inter-process calling relationships described in the process model cannot be guaranteed to be consistent with the real software deployment architecture, thus missing the software deployment architecture from the design state. The ability to maintain consistency in the running state.
目前,软件部署架构从设计态到运行态一致性看护通常是由架构师人工对比实现。然而,设计阶段的软件部署架构和运行阶段的软件部署架构通常采用不同方式生成。例如,设计阶段的软件部署架构通常是架构师采用设计工具如Visio、PPT等绘图工具设计生成,运行阶段的软件部署架构通常是架构师采用应用性能管理(application performance management,APM)系统获取运行环境的调用链绘制生成,或者基于主机agent监控数据绘制生成。At present, the consistency monitoring of software deployment architecture from design state to running state is usually implemented by architects through manual comparison. However, software deployment architectures in the design phase and software deployment architectures in the runtime phase are often generated in different ways. For example, the software deployment architecture in the design phase is usually designed and generated by architects using design tools such as Visio, PPT and other drawing tools. The software deployment architecture in the running phase is usually designed by architects using an application performance management (APM) system to obtain the running environment. Call chain drawing and generation, or drawing and generation based on host agent monitoring data.
由于技术实现的差异,设计阶段的软件部署架构通常是静态的、抽象的,运行阶段的软件部署架构通常是动态的、实例化的。如此,导致对比工作比较复杂而且无法提前预警,往往在发现差异时已对生产环境造成重大影响,影响业务可靠性、稳定性。Due to differences in technical implementation, the software deployment architecture in the design phase is usually static and abstract, while the software deployment architecture in the run phase is usually dynamic and instantiated. In this way, the comparison work is complicated and no early warning is possible. When differences are discovered, they often have a major impact on the production environment and affect business reliability and stability.
有鉴于此,本申请提供一种软件部署架构的管理系统。为了便于描述,下文简称为管理系统。管理系统的形态可以是软件,该软件可以部署在计算设备集群中,计算设备集群执行软件对应的程序代码,从而执行本申请的软件部署架构的管理方法。在一些示例中,管理系统的形态也可以是硬件,该硬件例如可以是具有软件部署架构管理功能的计算设备集群。该硬件运行时,执行本申请的软件部署架构的管理方法。In view of this, this application provides a management system for software deployment architecture. For ease of description, it is referred to as the management system below. The management system can be in the form of software, and the software can be deployed in a computing device cluster. The computing device cluster executes the program code corresponding to the software, thereby executing the management method of the software deployment architecture of the present application. In some examples, the management system may also be in the form of hardware, and the hardware may be, for example, a computing device cluster with a software deployment architecture management function. When the hardware is running, the management method of the software deployment architecture of the present application is executed.
具体地,管理系统获取软件的元数据,然后根据该软件的元数据,通过相同语言生成软件的生命周期中不同阶段的软件部署架构的架构元素关系模型,接着根据不同阶段的软件部署架构的架构元素关系模型进行比对,获得软件部署架构的比对结果,软件部署架构的比对结果包括架构元素关系模型比对结果。Specifically, the management system obtains the metadata of the software, and then uses the same language to generate the architectural element relationship model of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software, and then generates the architecture element relationship model of the software deployment architecture at different stages in the life cycle of the software. The element relationship models are compared to obtain the comparison results of the software deployment architecture. The comparison results of the software deployment architecture include the comparison results of the architecture element relationship models.
该方法通过采用相同语言生成不同阶段的软件部署架构的架构元素关系模型,降低了比对难度,提高了比对准确率,而且能够实现自动化的比对,克服人工比对的弊端,支持提前预警,避免对生产环境造成重大影响,保障业务可靠性、稳定性。This method uses the same language to generate architectural element relationship models of software deployment architectures at different stages, which reduces the difficulty of comparison and improves the accuracy of comparison. It can also realize automated comparison, overcome the disadvantages of manual comparison, and support early warning. , to avoid significant impact on the production environment and ensure business reliability and stability.
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请的管理系统的系统架构进行介绍。In order to make the technical solution of the present application clearer and easier to understand, the system architecture of the management system of the present application is introduced below with reference to the accompanying drawings.
参见图1所示的软件部署架构的管理系统的系统架构图,管理系统100包括交互模块102、模型生成模块104和比对模块106。交互模块102用于获取软件的元数据,模型生成 模块104用于根据软件的元数据,通过相同语言生成软件的生命周期中不同阶段的软件部署架构的架构元素关系模型,比对模块106还用于根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,所述软件部署架构的比对结果包括架构元素关系模型比对结果。Referring to the system architecture diagram of the software deployment architecture management system shown in FIG. 1 , the management system 100 includes an interaction module 102 , a model generation module 104 and a comparison module 106 . The interaction module 102 is used to obtain software metadata and model generation The module 104 is used to generate the architectural element relationship model of the software deployment architecture at different stages in the life cycle of the software through the same language according to the metadata of the software. The comparison module 106 is also used to generate the architectural elements of the software deployment architecture at different stages according to the software life cycle. The relational models are compared to obtain a comparison result of the software deployment architecture. The comparison result of the software deployment architecture includes a comparison result of the architecture element relationship model.
其中,在软件的生命周期的不同阶段,软件的元数据可以不同。例如,软件在设计阶段的元数据可以不同于软件在运行阶段的元数据。软件在设计阶段的元数据可以包括上下文模型、逻辑模型、代码模型、构建模型、交付模型、部署模型、进程模型中的一种或多种。软件在运行阶段的元数据可以包括调用链信息和资源管理模型中的一种或多种。其中,调用链信息可以是拓扑图。Among them, the metadata of the software can be different at different stages of the software life cycle. For example, metadata for software during the design phase may differ from metadata for software during the runtime phase. The metadata of the software in the design phase can include one or more of the context model, logical model, code model, construction model, delivery model, deployment model, and process model. The metadata of the software during the running phase may include one or more of call chain information and resource management models. The call chain information may be a topology map.
如此,管理系统100可以分别与设计系统200、应用性能管理系统300连接。其中,设计系统200是支持架构设计的产品或服务。设计系统200的产品形态包括客户端工具或Web服务。例如,设计系统200可以包括visio、统一建模语言(unified modeling language,UML)工具或者是PPT。基于这些产品及服务的画图元素,可以设计静态的部署架构图。应用性能管理系统300是指对应用性能进行监控管理的产品或服务。类似地,应用性能管理系统300的产品形态包括客户端工具或Web服务。例如,应用性能管理系统300可以为pinpoint,zipking,jeager,skywaking等APM系统。In this way, the management system 100 can be connected to the design system 200 and the application performance management system 300 respectively. Among them, the design system 200 is a product or service that supports architectural design. Product forms of the design system 200 include client tools or web services. For example, the design system 200 may include Visio, a unified modeling language (UML) tool, or PPT. Based on the drawing elements of these products and services, static deployment architecture diagrams can be designed. The application performance management system 300 refers to a product or service that monitors and manages application performance. Similarly, the product form of the application performance management system 300 includes client tools or Web services. For example, the application performance management system 300 can be an APM system such as pinpoint, zipking, jeager, skywaking, etc.
相应地,管理系统100中的交互模块102用于从设计系统200,获取软件在设计阶段的元数据,以及通过应用性能管理系统300获取部署在生产环境中的软件在运行阶段的元数据。Correspondingly, the interaction module 102 in the management system 100 is used to obtain metadata of the software in the design phase from the design system 200 and obtain metadata of the software deployed in the production environment in the running phase through the application performance management system 300 .
进一步地,管理系统100还可以包括映射模块108,用于建立软件在设计阶段的元数据以及软件在运行阶段的元数据的映射关系。如此,比对模块106在比对时,可以将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系进行比对。其中,第一软件部署架构为设计阶段的软件部署架构,第二软件部署架构为运行阶段的软件部署架构,第一架构元素和第二架构元素具有映射关系。Further, the management system 100 may also include a mapping module 108 for establishing a mapping relationship between the metadata of the software in the design phase and the metadata of the software in the running phase. In this way, when comparing, the comparison module 106 can compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture. Make a comparison. Among them, the first software deployment architecture is the software deployment architecture in the design phase, the second software deployment architecture is the software deployment architecture in the running phase, and the first architecture element and the second architecture element have a mapping relationship.
进一步地,比对模块106还可以对结构进行比对,例如比对模块106可以在对软件在不同阶段的架构元数据关系模型进行比对之前,对软件在不同阶段的结构进行比对。具体地,比对模块106还用于根据软件在设计阶段的元数据生成第一模型树,以及根据软件在运行阶段的元数据,生成第二模型树,然后比对第一模型树和第二模型树,获得模型树比对结果。其中,软件部署架构的比对结果包括模型树比对结果。如此可进行多层级的数据比对,包括环境、应用、组件、实例等层级的比对。Furthermore, the comparison module 106 can also compare the structures. For example, the comparison module 106 can compare the structures of the software at different stages before comparing the architectural metadata relationship models of the software at different stages. Specifically, the comparison module 106 is also configured to generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase, and then compare the first model tree and the second model tree. Model tree, obtain model tree comparison results. Among them, the comparison results of software deployment architecture include model tree comparison results. This enables multi-level data comparison, including comparison at the environment, application, component, instance and other levels.
需要说明的是,在软件的生命周期的不同阶段,软件的元数据也可以是相同的。例如,架构师在进行架构设计时,先基于配置管理数据库(Configuration Management Database,CMDB)设计软件(例如为服务)的元数据,基于该元数据进行架构设计,获得部署模型和进程模型。如此,软件在设计阶段的元数据和软件在运行阶段的元数据可以视为相同。管理系统100可以调用应用性能管理系统300,获取软件的元数据。由于元数据相同,管理系统100无需执行建立元数据之间的映射关系的步骤。 It should be noted that at different stages of the software life cycle, the metadata of the software can also be the same. For example, when architects design the architecture, they first design the metadata of the software (for example, a service) based on the Configuration Management Database (CMDB), then perform architecture design based on this metadata to obtain the deployment model and process model. In this way, the metadata of the software in the design phase and the metadata of the software in the runtime phase can be regarded as the same. The management system 100 can call the application performance management system 300 to obtain the metadata of the software. Since the metadata are the same, the management system 100 does not need to perform the step of establishing a mapping relationship between metadata.
接下来,将以软件为云服务,且云服务在设计阶段的元数据不同于在运行阶段的元数据的场景,对本申请的软件部署架构的管理方法进行介绍。Next, we will introduce the management method of the software deployment architecture of this application in a scenario where the software is a cloud service and the metadata of the cloud service in the design phase is different from the metadata in the operation phase.
参见图2所示的软件部署架构的管理方法的交互流程图,该方法包括:Referring to the interactive flow chart of the management method of the software deployment architecture shown in Figure 2, the method includes:
S202:管理系统100从产品信息系统获取云服务的offering信息。S202: The management system 100 obtains cloud service offering information from the product information system.
产品信息系统用于提供产品信息查询功能。其中,产品信息系统可以包括产品基本信息(Product Base Information,PBI),云服务基础信息(Cloud Service Base Information,CSBI)中的一种或多种。The product information system is used to provide product information query functions. Among them, the product information system may include one or more of product basic information (Product Base Information, PBI) and cloud service basic information (Cloud Service Base Information, CSBI).
在该示例中,管理系统100可以从CSBI获取用户指定的云服务的offering信息。云服务的offering信息具体为该云服务所归属的offering的信息。需要说明,管理系统100可以周期性地(或者定时)同步云服务的offering信息,或者是在受到任务触发时,获取云服务的offering信息。In this example, the management system 100 may obtain the offering information of the cloud service specified by the user from CSBI. The offer information of the cloud service is specifically the offer information to which the cloud service belongs. It should be noted that the management system 100 can periodically (or regularly) synchronize the offering information of the cloud service, or obtain the offering information of the cloud service when triggered by a task.
进一步地,管理系统100可以对云服务的offering信息中不需要建模的产品信息进行数据清理,例如管理系统100可以对offering状态为非active的信息,包括但不限于测试用途、日落等信息进行清理,然后保存需要建模的offering信息。Furthermore, the management system 100 can perform data cleaning on the product information that does not require modeling in the offering information of the cloud service. For example, the management system 100 can perform data cleaning on the information whose offer status is inactive, including but not limited to information such as test use and sunset. Clean up and save the offer information that needs to be modeled.
S204:管理系统100根据云服务的offering信息,从设计系统200获取云服务在设计阶段的元数据。S204: The management system 100 obtains the metadata of the cloud service in the design phase from the design system 200 according to the offering information of the cloud service.
具体地,管理系统100可以根据云服务的offerring信息,定期从设计系统200获取该云服务的架构元素数据(4+1视图数据),包括用例视图、逻辑视图、开发视图、部署视图和运行视图5个视图,从而获得云服务的元数据。云服务的元数据可以包括上述视图中的模型,如上下文模型、逻辑模型、代码模型、构建模型、交付模型、部署模型、进程模型中的一种或多种。Specifically, the management system 100 can regularly obtain the architectural element data (4+1 view data) of the cloud service from the design system 200 based on the cloud service's offer information, including use case view, logical view, development view, deployment view and running view. 5 views to obtain metadata of cloud services. The metadata of cloud services may include models in the above views, such as one or more of the context model, logical model, code model, construction model, delivery model, deployment model, and process model.
需要说明的是,上述视图中的模型通过UML工具基于具有语义的画图元素进行设计或建模得到,因此,管理系统100可以直接识别上述视图中的模型,获得云服务的元数据。在一些可能的实现方式中,视图中的模型通过visio或PPT等工具设计得到时,管理系统100也可以提供标注界面,由用户通过标注界面人工标注相应画图元素的语义,然后管理系统100基于画图元素的语义,提取云服务的元数据。It should be noted that the model in the above view is designed or modeled using UML tools based on semantic drawing elements. Therefore, the management system 100 can directly identify the model in the above view and obtain the metadata of the cloud service. In some possible implementations, when the model in the view is designed through tools such as Visio or PPT, the management system 100 can also provide an annotation interface, and the user manually annotates the semantics of the corresponding drawing elements through the annotation interface, and then the management system 100 based on the drawing Semantics of elements,extracting metadata of cloud services.
上述S202、S204为管理系统100获取云服务在设计阶段的元数据的一种实现方式,在本申请实施例其他可能的实现方式中,也可以通过其他方式获取云服务在设计阶段的元数据。例如,管理系统100可以直接从设计系统200获取云服务在设计阶段的元数据。The above S202 and S204 are an implementation method for the management system 100 to obtain the metadata of the cloud service in the design stage. In other possible implementations of the embodiments of this application, the metadata of the cloud service in the design stage can also be obtained through other methods. For example, the management system 100 can directly obtain the metadata of the cloud service in the design phase from the design system 200 .
S206:管理系统100根据云服务在设计阶段的元数据,进行模型完整性检查和规范性检查。当检查结果表征检查不通过,则执行S208;当检查结果表征检查通过,则执行S210。S206: The management system 100 performs model integrity check and normative check based on the metadata of the cloud service in the design stage. When the inspection result indicates that the inspection fails, S208 is executed; when the inspection result indicates that the inspection passes, S210 is executed.
管理系统100可以根据上下文模型、逻辑模型、代码模型、构建模型、交付模型、部署模型、进程模型,检查该云服务的模型完整性。管理系统100也可以根据模型规范,检查上述模型是否符合模型规范,从而实现检查云服务的模型规范性。The management system 100 can check the model integrity of the cloud service based on the context model, logical model, code model, construction model, delivery model, deployment model, and process model. The management system 100 may also check whether the above model complies with the model specification according to the model specification, thereby checking the model specification of the cloud service.
S208:管理系统100向用户发送检查结果。S208: The management system 100 sends the inspection results to the user.
检查结果可以分为检查通过和检查不通过。当检查结果为检查不通过时,检查结果中还可以包括位置、原因、等级中的一种或多种。其中,视图中的模型通常设置有责任人,记作模型Owner。管理系统100可以向用户,如架构师发送上述模型owner,以通知相应 的模型owner解决等级为“错误”的问题。Inspection results can be divided into inspection pass and inspection failure. When the inspection result is that the inspection fails, the inspection result may also include one or more of the location, cause, and level. Among them, the model in the view usually has a responsible person, which is recorded as model owner. The management system 100 can send the above model owner to a user, such as an architect, to notify the corresponding The model owner solves the problem with level "Error".
上述S206、S208为本申请实施例的可选步骤,执行本申请实施例的软件部署架构的管理方法也可以不执行上述S206、S208。The above-mentioned S206 and S208 are optional steps in the embodiment of the present application. The above-mentioned S206 and S208 may not be executed when performing the management method of the software deployment architecture in the embodiment of the present application.
S210:管理系统100基于逻辑模型,将云服务基线化。S210: The management system 100 baselines the cloud service based on the logical model.
产品在其开发周期的不同时间点上通过正式评审而进入正式受控的一种状态,而这个过程被称为“基线化”。管理系统100可以根据逻辑模型,在云服务的项目储存库中对云服务(包括云服务的微服务、组件)的源代码或产出物生成“快照”,从而对外提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准,由此实现云服务基线化。A product enters a state of formal control through formal reviews at various points in its development cycle, a process called "baselining." The management system 100 can generate a "snapshot" of the source code or output of the cloud service (including microservices and components of the cloud service) in the cloud service project repository based on the logical model, thereby providing a formal standard to the outside world. Work is based on this standard and can only be changed with authorization, thus achieving baseline cloud services.
S212:管理系统100基于逻辑模型和代码模型,将云服务中架构元素及其代码仓与流水线进行一致性检查。当检查结果表征检查不通过,则执行S214;当检查结果表征检查通过,则执行S216。S212: Based on the logical model and the code model, the management system 100 checks the consistency of the architectural elements in the cloud service, its code warehouse and the pipeline. When the inspection result indicates that the inspection fails, S214 is executed; when the inspection result indicates that the inspection passes, S216 is executed.
管理系统100可以以逻辑模型的微服务/组件(MS/Component架构元素)为基线,通过检查代码模型中微服务/组件的代码仓库与软件的流水线中代码仓库是否保持一致,具体是检查代码仓库地址和分支是否一致,从而检查是否满足设计的代码仓库与实际代码仓库一致的要求。The management system 100 can take the microservices/components (MS/Component architecture elements) of the logical model as the baseline, and check whether the code repository of the microservices/components in the code model is consistent with the code repository in the software pipeline, specifically checking the code repository. Check whether the address and branch are consistent, thereby checking whether the designed code repository is consistent with the actual code repository.
S214:管理系统100向用户发送检查结果。S214: The management system 100 sends the inspection results to the user.
检查结果可以分为检查通过和检查不通过。当检查结果为检查不通过时,检查结果中还可以包括位置、原因、等级中的一种或多种。Inspection results can be divided into inspection pass and inspection failure. When the inspection result is that the inspection fails, the inspection result may also include one or more of the location, cause, and level.
需要说明的是,上述S208中的检查结果、S214中的检查结果可以通过告警消息或报告承载。为了减少传输次数,从而减少传输开销,管理系统100还可以将上述S208、S214的检查结果合并,然后发送合并后的检查结果。其中,管理系统100可以周期性地发送合并后的检查结果。It should be noted that the above-mentioned inspection results in S208 and S214 can be carried by alarm messages or reports. In order to reduce the number of transmissions and thus the transmission overhead, the management system 100 can also merge the inspection results of S208 and S214, and then send the merged inspection results. The management system 100 may periodically send the combined inspection results.
S216:管理系统100从CMDB查询云服务在运行阶段的元数据。S216: The management system 100 queries the metadata of the cloud service in the running stage from the CMDB.
其中,CMDB包括资源管理模型,管理系统可以从CMDB查询云服务在运行阶段的资源管理模型。资源管理模型中定义了应用(云服务),子应用(微服务),组件,环境中的一种或多种。Among them, the CMDB includes a resource management model, and the management system can query the resource management model of the cloud service in the running stage from the CMDB. The resource management model defines one or more of applications (cloud services), sub-applications (microservices), components, and environments.
应用代表一个业务,通常包括下面多个组件和环境。子应用代表应用下面的一个子模块,组件代表的是微服务,环境代表这个微服务由于配置不一样部署的一个实际的运行环境,实例代表进程实例,一个环境一般可以包括多个进程实例。为了便于理解,本申请实施例还提供了一个示例。在该示例中,如图3所示,云服务LubanApm包括多个微服务如App-center、App-process。An application represents a business and usually includes the following components and environments. The sub-application represents a sub-module under the application, the component represents the microservice, the environment represents an actual running environment deployed by this microservice due to different configurations, and the instance represents a process instance. An environment can generally include multiple process instances. To facilitate understanding, the embodiment of this application also provides an example. In this example, as shown in Figure 3, the cloud service LubanApm includes multiple microservices such as App-center and App-process.
S218:管理系统100根据云服务在运行阶段的元数据,绑定基线化云服务和运行态云服务。S218: The management system 100 binds the baseline cloud service and the running cloud service according to the metadata of the cloud service in the running stage.
管理系统100可以根据从CMDB获取的应用、子应用、组件、环境等运行态元数据,将基线化云服务在设计阶段的元数据与运行态元数据一一对应绑定,为后续实现部署架构设计态与运行态比较打好基础。The management system 100 can bind the metadata of the baseline cloud service in the design phase to the running metadata in a one-to-one correspondence based on the running metadata of applications, sub-applications, components, and environments obtained from the CMDB, so as to provide a basis for subsequent implementation of the deployment architecture. Compare the design state and operating state to lay a solid foundation.
具体地,参见表1所示的设计态与运行态关键元素对应表,如下所示: Specifically, refer to the corresponding table of key elements between the design state and the operating state shown in Table 1, as follows:
表1设计态与运行态关键元素对应表
Table 1 Correspondence table of key elements between design state and operating state
管理系统100可以按照表1中对应关系,将元数据绑定,从而实现绑定基线化云服务和运行态云服务,建立元数据之间的映射关系。例如,管理系统100可以绑定System与应用、Service与子应用、MS/Component与组件、Zone与环境,建立相应元数据之间的映射关系。The management system 100 can bind the metadata according to the corresponding relationship in Table 1, thereby binding the baseline cloud service and the running cloud service, and establishing a mapping relationship between metadata. For example, the management system 100 can bind System and application, Service and sub-application, MS/Component and component, Zone and environment, and establish mapping relationships between corresponding metadata.
进一步地,参见图4,管理系统100还可以根据基线化云服务在设计阶段的元数据,构建设计态模型树,根据运行态元数据构建运行态模型树,将模型树中的相应节点绑定,从而绑定基线化云服务和运行态云服务。Further, referring to Figure 4, the management system 100 can also build a design state model tree based on the metadata of the baseline cloud service in the design phase, build a running state model tree based on the running state metadata, and bind the corresponding nodes in the model tree. , thus binding the baseline cloud service and the running cloud service.
S219:管理系统100从应用性能管理系统300查询云服务在运行阶段的元数据。S219: The management system 100 queries the metadata of the cloud service in the running stage from the application performance management system 300.
应用性能管理系统300(如APM系统)一般采用非侵入方式,比如java程序采用java agent技术,采集性能数据。首先,如图5所示,APM系统(如APM server)的数据采集探针(如java agent)可以跟云服务一起运行,启动的时候带着客户端的配置信息(比如组件名称,环境名称等)向服务器端的CMDB注册,获取并匹配身份信息,然后在云服务运行中,java agent可以采集云服务运行的性能数据,比如当前组件环境调用其他组件环境的信息,当前组件环境调用mysql,kafka,redis等中间件的统计信息,当前组件环境被其他环境调用的信息。这些信息包括调用次数,平均响应时间(Response-time,RT),错误次数等。上述信息可以先在agent端进行汇聚,并且周期性上报给APM server,每一笔数据都带有CMDB的身份信息。APM server可以对上述数据进行处理,并进行存储。进一步地,数据处理系统还可以包括数据展示API,支持在前端展示上述数据。The application performance management system 300 (such as the APM system) generally adopts a non-intrusive method. For example, the java program uses java agent technology to collect performance data. First, as shown in Figure 5, the data collection probe (such as java agent) of the APM system (such as APM server) can run together with the cloud service, with the client's configuration information (such as component name, environment name, etc.) when started. Register with the CMDB on the server side, obtain and match identity information, and then when the cloud service is running, the java agent can collect performance data of the cloud service operation, such as information about the current component environment calling other component environments, and the current component environment calling mysql, kafka, redis Statistics of middleware, information about the current component environment being called by other environments. This information includes the number of calls, average response time (RT), number of errors, etc. The above information can be aggregated on the agent side first and reported to the APM server periodically. Each piece of data carries the identity information of the CMDB. APM server can process and store the above data. Furthermore, the data processing system can also include a data display API to support displaying the above data on the front end.
管理系统100可以通过APM系统读取存储的调用链信息的拓扑数据,通过调用链拓扑图实现可视化。图6示出了一个调用链拓扑图,该调用链拓扑图真实描绘出一个业务下面多个组件环境之间,以及组件环境与中间件的调用关系。调用关系可以通过线条相连来标识,每个线条上面可以包含客户端和服务器端分别检测到的统计数据,这些数据包含调用次数,平均RT,错误次数等。上述调用链拓扑图真实地反馈了云服务的软件部署架构,并且能够实现动态调整,比设计工具描绘的拓扑关系更准确、更加具有实时性。The management system 100 can read the topology data of the stored call chain information through the APM system, and realize visualization through the call chain topology diagram. Figure 6 shows a call chain topology diagram, which truly depicts the calling relationship between multiple component environments under a business, as well as the calling relationship between the component environment and middleware. The calling relationship can be identified by connecting lines. Each line can contain statistical data detected by the client and server respectively. These data include the number of calls, average RT, number of errors, etc. The above call chain topology diagram truly reflects the software deployment architecture of the cloud service and can be dynamically adjusted. It is more accurate and more real-time than the topological relationship depicted by the design tool.
需要说明的是,S219是以通过APM系统获取运行阶段的元数据示例说明,在本申请实施例其他可能的实现方式中,也可以通过无代码侵入或代码侵入、基于主机数据流监控或进程数据流监控等,获取运行阶段(真实环境)的元数据(例如部署架构数据)。It should be noted that S219 is based on the example of obtaining metadata in the running stage through the APM system. In other possible implementations of the embodiments of this application, code-free intrusion or code intrusion, based on host data flow monitoring or process data can also be used. Flow monitoring, etc., to obtain metadata (such as deployment architecture data) during the running phase (real environment).
S220:管理系统100根据云服务在设计阶段的元数据生成第一模型树,以及根据云服务在运行阶段的元数据,生成第二模型树。S220: The management system 100 generates a first model tree based on the metadata of the cloud service in the design phase, and generates a second model tree based on the metadata of the cloud service in the running phase.
云服务在设计阶段的元数据包括部署模型。部署模型描述架构元素以及架构元素所在 环境。管理系统100可以将部署模型转化为第一模型树,该第一模型树为环境组件树,也称作zone/process模型树。Metadata for cloud services during the design phase includes deployment models. The deployment model describes the architectural elements and where they are located environment. The management system 100 can convert the deployment model into a first model tree, which is an environment component tree, also called a zone/process model tree.
云服务在运行阶段的元数据包括资源管理模型。管理系统100可以根据所述资源管理模型,结合调用链信息如调用链拓扑图,确定资源所相关的服务实例是否真实运行,由此进行实例化,生成第二模型树,该第二模型树为环境组件模型树,也称作zone/process模型树。The metadata of cloud services during the runtime phase includes resource management models. The management system 100 can determine whether the service instance related to the resource is actually running according to the resource management model, combined with the call chain information such as the call chain topology map, and thereby instantiates it to generate a second model tree. The second model tree is Environment component model tree, also called zone/process model tree.
S222:管理系统100比对所述第一模型树和所述第二模型树,获得模型树比对结果。S222: The management system 100 compares the first model tree and the second model tree to obtain a model tree comparison result.
管理系统100将第一模型树和第二模型树中具有映射关系的架构元素进行比对,具体是进行一致性比对,从而获得模型树比对结果。The management system 100 compares the architectural elements with mapping relationships in the first model tree and the second model tree, specifically performs a consistency comparison, thereby obtaining a model tree comparison result.
S224:管理系统100向用户呈现模型树比对结果。S224: The management system 100 presents the model tree comparison results to the user.
具体地,管理系统100可以在第一模型树和第二模型树上,呈现模型树比对结果。为了便于理解,本申请实施例还提供一示例进行说明。参见图7所示的模型树比对结果的示意图,管理系统100可以在设计态的模型树(如第一模型树)的相应位置呈现该模型树所缺乏的信息如运行信息,在运行态的模型树(如第二模型树)的相应位置呈现该模型树所缺乏的信息,如设计模型。此外,管理系统100还可以在在设计态的模型树和运行态的模型树的对应位置呈现环境不一致的提示信息。Specifically, the management system 100 may present the model tree comparison results on the first model tree and the second model tree. To facilitate understanding, the embodiment of this application also provides an example for explanation. Referring to the schematic diagram of the model tree comparison result shown in Figure 7, the management system 100 can present the information that the model tree lacks, such as operating information, in the corresponding position of the model tree in the design state (such as the first model tree). The corresponding position of the model tree (such as the second model tree) presents information that the model tree lacks, such as the design model. In addition, the management system 100 may also present prompt information indicating inconsistent environments at corresponding locations in the model tree in the design state and the model tree in the running state.
S226:管理系统100根据云服务在设计阶段的元数据和在运行阶段的元数据,通过相同语言生成不同阶段的软件部署架构的架构元素关系模型。S226: The management system 100 generates architectural element relationship models of the software deployment architecture in different stages through the same language based on the metadata of the cloud service in the design stage and the metadata in the running stage.
云服务在设计阶段的元数据包括进程模型,该进程模型描述所述设计阶段的架构元素以及调用关系。软件在运行阶段的元数据包括调用链信息,所述调用链信息描述所述运行阶段的架构元素以及调用关系。The metadata of cloud services in the design phase includes a process model, which describes the architectural elements and calling relationships of the design phase. The metadata of the software in the running phase includes call chain information, which describes the architectural elements and calling relationships of the running phase.
管理系统100可以根据所述进程模型,生成所述设计阶段的架构元素关系模型,以及根据所述调用链信息,采用相同语言生成运行阶段的架构元素关系模型。其中,相同语言可以是领域特定语言(domain specific language,DSL)。The management system 100 can generate an architectural element relationship model in the design phase according to the process model, and generate an architectural element relationship model in the running phase using the same language based on the call chain information. Among them, the same language can be a domain specific language (DSL).
领域特定语言,是针对某一领域,具有受限表达性的一种计算机程序设计语言。领域特定语言可以包括但不限于正则表达式、结构化查询语言(Structured Query Language,SQL)、JS对象标记(JavaScript Object Notation,JSON)、Markdown。上述领域特定语言通常具有相应的语义。为了便于理解,下文以通过JSON生成不同阶段的软件部署架构的架构元素关系模型示例说明。A domain-specific language is a computer programming language with limited expressivity for a certain field. Domain-specific languages may include but are not limited to regular expressions, Structured Query Language (SQL), JS Object Notation (JSON), and Markdown. The above domain-specific languages usually have corresponding semantics. For ease of understanding, the following is an example of an architectural element relationship model that generates software deployment architecture at different stages through JSON.
具体地,管理系统100可以将进程模型中架构元素以及调用关系转换成统一的架构元素关系模型,同时获取调用链拓扑图中的架构元素以及调用关系,去掉多余信息,也采用JSON转换成统一的架构元素关系模型。Specifically, the management system 100 can convert the architectural elements and calling relationships in the process model into a unified architectural element relationship model, and at the same time obtain the architectural elements and calling relationships in the call chain topology diagram, remove redundant information, and also use JSON to convert it into a unified Architectural element relationship model.
架构元素关系模型为数据关系模型,通过JSON等定义。本申请实施例还提供了架构元素关系模型的一个示例,如下所示:


The architecture element relationship model is a data relationship model, defined through JSON, etc. The embodiment of this application also provides an example of an architectural element relationship model, as shown below:


S228:管理系统100根据不同阶段的软件部署架构的架构元素关系模型进行比对,获得架构元素关系模型比对结果。S228: The management system 100 compares the architectural element relationship models of the software deployment architecture at different stages, and obtains the architectural element relationship model comparison results.
具体地,管理系统100可以根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系,生成第二依赖关系表或第二依赖关系图中的至少一种或多种。其中,依赖关系表描述了每个架构元素(如组件、微服务等)依赖/被依赖的服务信息,依赖关系图可以根据架构元素关系模型,使用vis/Echat等生成。Specifically, the management system 100 may generate at least one or more of the first dependency table or the first dependency graph according to the dependency of the first architecture element in the architecture element relationship model of the first software deployment architecture, and generating at least one or more of a second dependency table or a second dependency graph according to the dependency of the second architectural element in the architectural element relationship model of the second software deployment architecture. Among them, the dependency table describes the service information that each architectural element (such as components, microservices, etc.) depends on/is dependent on. The dependency graph can be generated based on the architectural element relationship model using vis/Echat, etc.
相应地,管理系统100在进行依赖关系比对时,可以将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对,获得架构元素关系模型比对结果。Correspondingly, when performing dependency comparison, the management system 100 may compare the first dependency table with the second dependency table, and/or compare the first dependency graph with the third dependency table. Compare the two dependency diagrams to obtain the comparison results of the architectural element relationship models.
S230:管理系统100向用户呈现架构元素关系模型比对结果。S230: The management system 100 presents the architectural element relationship model comparison results to the user.
具体地,管理系统100可以在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。为了便于理解,本申请实施例还提供一示例进行说明。参见图8所示的架构元素关系模型比对结果的示意图,管理系统100可以在第一依赖关系表和第二依赖关系表中高亮显示依赖关系的差异,如云服务A依赖数和被依赖数的差异,以及云服务A依赖微服务3和被微服务3依赖的差异。管理系统100也可以在第一依赖关系图和第二依赖关系图中通过不同颜色或线型展示依赖关系的差异。进一步地,管理系统100还可以通过箭头将依赖关系表中的差异与依赖关系图中的差异关联。Specifically, the management system 100 may display the architecture element relationship model comparison result in the dependency relationship table or the dependency relationship graph. To facilitate understanding, the embodiment of this application also provides an example for explanation. Referring to the schematic diagram of the comparison results of the architecture element relationship models shown in Figure 8, the management system 100 can highlight the differences in dependencies in the first dependency table and the second dependency table, such as the number of dependencies and the number of dependents of cloud service A. The difference, as well as the difference between cloud service A depending on microservice 3 and being dependent on microservice 3. The management system 100 may also display the difference in dependency relationships through different colors or line types in the first dependency relationship diagram and the second dependency relationship diagram. Further, the management system 100 can also associate differences in the dependency relationship table with differences in the dependency relationship graph through arrows.
在设计态的模型树(如第一模型树)的相应位置呈现该模型树所缺乏的信息如运行信息,在运行态的模型树(如第二模型树)的相应位置呈现该模型树所缺乏的信息,如设计 模型。此外,管理系统100还可以在在设计态的模型树和运行态的模型树的对应位置呈现环境不一致的提示信息。The information that the model tree lacks, such as running information, is presented at the corresponding position of the model tree in the design state (such as the first model tree), and the information that the model tree lacks is presented at the corresponding position of the model tree in the running state (such as the second model tree). information, such as design Model. In addition, the management system 100 may also present prompt information indicating inconsistent environments at corresponding locations in the model tree in the design state and the model tree in the running state.
需要说明的是,上述S224、S230的比对结果也可以合并,然后管理系统100可以发送合并后的比对结果,呈现合并后的比对结果,由此减少传输开销。其中,管理系统100可以周期性地发送合并后的比对结果,并向用户呈现。软件部署架构的比对结果包括所述模型树比对结果和架构元素关系模型比对结果中的一种或多种。It should be noted that the comparison results of the above-mentioned S224 and S230 can also be merged, and then the management system 100 can send the merged comparison results and present the merged comparison results, thereby reducing transmission overhead. The management system 100 may periodically send the combined comparison results and present them to the user. The comparison results of the software deployment architecture include one or more of the model tree comparison results and the architecture element relationship model comparison results.
基于上述内容描述,本实施例提出一种软件部署架构在设计阶段与运行阶段一致性的看护方法,该方法以统一的语言生成的架构元素关系模型进行比对,解决人工对比进行一致性看护所产生的弊端,而且支持提前预警,避免对生产环境造成重大影响,保障业务可靠性、稳定性。Based on the above description, this embodiment proposes a method for monitoring the consistency of the software deployment architecture in the design phase and the running phase. This method compares the architecture element relationship model generated in a unified language and solves the problems of manual comparison and consistency monitoring. It also supports early warning to avoid major impact on the production environment and ensure business reliability and stability.
接下来,结合一应用场景对本申请实施例的软件部署架构的管理方法进行介绍。Next, the management method of the software deployment architecture of the embodiment of the present application will be introduced based on an application scenario.
在该场景中,管理系统100可以先绑定基线化云服务和运行态云服务。In this scenario, the management system 100 can first bind the baseline cloud service and the running cloud service.
参见图9所示的云服务绑定方式示意图,将基线化的云服务的设计态元数据与运行态元数据一一对应绑定,例如System与应用、Service与子应用、MS/Component与组件、Zone与环境一一对应绑定,该方法支持自动和手动绑定两种方式。下面分别对自动绑定和手动绑定方式进行详细说明。Refer to the schematic diagram of cloud service binding method shown in Figure 9, and bind the design state metadata and running state metadata of the baseline cloud service in one-to-one correspondence, such as System and application, Service and sub-application, MS/Component and component. , Zone and environment are bound in one-to-one correspondence. This method supports automatic and manual binding. The automatic binding and manual binding methods are described in detail below.
管理系统100可以自动读取产品信息系统中的数据,并扫描CMDB同名的服务建立绑定关系。为了保障绑定关系的准确性,管理系统100支持用户对自动绑定所建立的绑定关系进行手动确认。The management system 100 can automatically read data in the product information system and scan the CMDB for services with the same name to establish binding relationships. In order to ensure the accuracy of the binding relationship, the management system 100 supports users to manually confirm the binding relationship established by automatic binding.
当没有同名服务进行匹配的时候,管理系统100可以触发手动绑定。如图9所示,Offering树展示多个云服务,用户可以从看板offering树选择云服务,Offering树可展示某选择的云服务基线状态,并提供云服务4+1模型工程的链接和云服务CMDB的链接。用户点击该云服务4+1模型工程的链接,可链接至建模工具查看该云服务的4+1视图建模数据,包括用例视图、逻辑视图、开发视图、部署视图和运行视图5个视图,用户可以点击视图中的组件、微服务,以选中该组件或微服务,然后用户点击CMDB的链接,可以选择运行态的组件实例、微服务实例,当确认绑定,则可以建立绑定关系。When there is no matching service with the same name, the management system 100 can trigger manual binding. As shown in Figure 9, the Offering tree displays multiple cloud services. Users can select cloud services from the dashboard offering tree. The Offering tree can display the baseline status of a selected cloud service and provide links to cloud service 4+1 model projects and cloud services. CMDB link. When users click on the link of the cloud service 4+1 model project, they can be linked to the modeling tool to view the 4+1 view modeling data of the cloud service, including 5 views: use case view, logical view, development view, deployment view and running view. , the user can click on the component or microservice in the view to select the component or microservice, and then click on the CMDB link to select the running component instance or microservice instance. When the binding is confirmed, the binding relationship can be established .
然后,管理系统100支持用户(如架构师)新建设计态与运行态一致性看护任务。Then, the management system 100 supports users (such as architects) to create new design state and running state consistency care tasks.
参见图10所示的任务创建界面的界面示意图,用户可以通过任务创建界面配置任务名、CMDB环境、模型分支、执行周期、通知人,从而创建设计态与运行态一致性看护任务。需要说明的是,执行周期为可选配置,该任务可以是周期性任务或非周期性任务。Referring to the schematic diagram of the task creation interface shown in Figure 10, users can configure the task name, CMDB environment, model branch, execution cycle, and notifier through the task creation interface, thereby creating a consistency care task between the design state and the running state. It should be noted that the execution cycle is an optional configuration, and the task can be a periodic task or aperiodic task.
当管理系统100接收到用户新建的设计态与运行态一致性看护任务,可以执行图2所示实施例的方法,生成设计态与运行态一致性看护报告摘要。图11示出了一种设计态与运行态一致性看护报告摘要的示意图,该摘要中展示了管理系统100进行一致性看护所发现的问题,并提供了查看一致性看护报告详情的链接。当用户点击该链接,还可以查看一致性看护报告详情。一致性看护报告详情可以展示模型树对比结果、架构元素关系模型对比结果。When the management system 100 receives the design state and operating state consistency care task created by the user, it can execute the method of the embodiment shown in FIG. 2 to generate a design state and operating state consistency care report summary. FIG. 11 shows a schematic diagram of a summary of the consistency care report between the design state and the operation state. The summary shows the problems discovered by the management system 100 when performing consistency care, and provides a link to view the details of the consistency care report. When users click on the link, they can also view the details of the consistency care report. The details of the consistency care report can display the model tree comparison results and the architectural element relationship model comparison results.
如图12所示,一致性看护报告详情分别展示设计态元数据的zone/process树,与运行 态元数据实例化后的应用/组件树,同时标出不一致的元素,包括环境是否一致、服务元素是否一致等。As shown in Figure 12, the details of the consistency guard report respectively display the zone/process tree of the design metadata and the running The application/component tree after the state metadata is instantiated, and inconsistent elements are marked, including whether the environment is consistent, whether the service elements are consistent, etc.
如图13所示,一致性看护报告详情分别展示设计态和运行态的服务列表以及依赖关系表,将依赖不一致的行单独颜色区分;点击列表中的依赖或被依赖数字,可以跳转至图形化展示页面,并将相关的调用关系通过其他颜色标识。As shown in Figure 13, the details of the consistency care report display the service list and dependency table in the design state and running state respectively, and distinguish the rows with inconsistent dependencies by separate colors; click on the dependency or dependent number in the list to jump to the graph Customize the display page and identify the relevant calling relationships through other colors.
基于前述实施例的软件部署架构的管理方法,本申请还提供一种软件部署架构的管理系统100,如图1所示,管理系统100包括:Based on the management method of software deployment architecture in the foregoing embodiments, this application also provides a management system 100 for software deployment architecture. As shown in Figure 1, the management system 100 includes:
交互模块102,用于获取软件的元数据;Interaction module 102, used to obtain metadata of software;
模型生成模块104,用于根据所述软件的元数据,通过相同语言生成所述软件的生命周期中不同阶段的软件部署架构的架构元素关系模型;The model generation module 104 is configured to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software through the same language according to the metadata of the software;
比对模块106,用于根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,所述软件部署架构的比对结果包括架构元素关系模型比对结果。The comparison module 106 is configured to compare according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture, where the comparison results of the software deployment architecture include the architecture element relationship models. Comparison results.
示例性地,上述交互模块102、模型生成模块104、比对模块106可以通过硬件实现,或者可以通过软件实现。为了便于描述,下面以比对模块106示例说明。For example, the above-mentioned interaction module 102, model generation module 104, and comparison module 106 can be implemented by hardware, or can be implemented by software. For ease of description, the comparison module 106 is used as an example below.
当通过软件实现时,比对模块106可以是运行在计算设备上的应用程序,如计算引擎等。该应用程序可以以虚拟化服务的方式提供给用户使用。虚拟化服务可以包括虚拟机(virtual machine,VM)服务、裸金属服务器(bare metal server,BMS)服务以及容器(container)服务。其中,VM服务可以是通过虚拟化技术在多个物理主机(如计算设备)上虚拟出虚拟机(virtual machine,VM)资源池以为用户按需提供VM进行使用的服务。BMS服务是在多个物理主机上虚拟出BMS资源池以为用户按需提供BMS进行使用的服务。容器服务是在多个物理主机上虚拟出容器资源池以为用户按需提供容器进行使用的服务。VM是模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。BMS是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以达到隔离用户空间、进程和资源的目的。应理解,上述虚拟化服务中的VM服务、BMS服务以及容器服务仅仅是作为具体的示例,在实际应用中,虚拟化服务还可以是其他轻量级或者重量级的虚拟化服务,此处不作具体限定。When implemented by software, the comparison module 106 may be an application program running on a computing device, such as a computing engine. The application can be provided to users as a virtualized service. Virtualization services can include virtual machine (VM) services, bare metal server (BMS) services, and container (container) services. Among them, the VM service can be a service that uses virtualization technology to virtualize a virtual machine (VM) resource pool on multiple physical hosts (such as computing devices) to provide users with VMs for use on demand. The BMS service is a service that virtualizes BMS resource pools on multiple physical hosts to provide users with BMS on demand. Container service is a service that virtualizes container resource pools on multiple physical hosts to provide users with containers on demand. VM is a simulated virtual computer, that is, a logical computer. BMS is an elastically scalable high-performance computing service. Its computing performance is the same as that of traditional physical machines, and it has the characteristics of safe physical isolation. Containers are a kernel virtualization technology that can provide lightweight virtualization to isolate user space, processes and resources. It should be understood that the VM service, BMS service and container service in the above virtualization services are only specific examples. In actual applications, the virtualization service can also be other lightweight or heavyweight virtualization services, which are not discussed here. Specific limitations.
当通过硬件实现时,比对模块106中可以包括至少一个计算设备,如服务器等。或者,比对模块106也可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。When implemented by hardware, the comparison module 106 may include at least one computing device, such as a server. Alternatively, the comparison module 106 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). Among them, the above-mentioned PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a general array logic (generic array logic, GAL), or any combination thereof.
在一些可能的实现方式中,所述交互模块102具体用于:In some possible implementations, the interaction module 102 is specifically used to:
获取所述软件在设计阶段的元数据,以及获取所述软件在运行阶段的元数据;Obtain the metadata of the software in the design stage, and obtain the metadata of the software in the running stage;
所述比对模块106具体用于:The comparison module 106 is specifically used for:
将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署 架构的架构元素关系模型中第二架构元素的依赖关系进行比对,所述第一软件部署架构为设计阶段的软件部署架构,所述第二软件部署架构为运行阶段的软件部署架构,所述第一架构元素为所述软件在设计阶段的元数据对应的架构元素,所述第二架构元素为所述软件在运行阶段的元数据对应的架构元素。Compare the dependency relationship of the first architecture element in the architectural element relationship model of the first software deployment architecture with the second software deployment Compare the dependencies of the second architectural element in the architectural element relationship model of the architecture. The first software deployment architecture is the software deployment architecture in the design phase, and the second software deployment architecture is the software deployment architecture in the running phase. The first architectural element is an architectural element corresponding to the metadata of the software in the design phase, and the second architectural element is an architectural element corresponding to the metadata of the software in the running phase.
其中,管理系统100还可以包括映射模块108。该映射模块108用于建立软件在设计阶段的元数据以及软件在运行阶段的元数据的映射关系。相应地,比对模块106在比对时,可以基于上述映射关系,确定第一架构元素和第二架构元素,将第一软件部署架构的架构元素模型中第一架构元素的依赖关系与第二软件部署架构的架构元素模型中第二架构元素的依赖关系进行比对。The management system 100 may also include a mapping module 108. The mapping module 108 is used to establish a mapping relationship between the metadata of the software in the design phase and the metadata of the software in the running phase. Correspondingly, when comparing, the comparison module 106 can determine the first architecture element and the second architecture element based on the above mapping relationship, and compare the dependency relationship of the first architecture element in the architecture element model of the first software deployment architecture with the second architecture element. Compare the dependencies of the second architectural element in the architectural element model of the software deployment architecture.
与比对模块106类似,映射模块108也可以通过硬件实现,或者可以通过软件实现。Similar to the comparison module 106, the mapping module 108 can also be implemented by hardware, or can be implemented by software.
当通过软件实现时,映射模块108可以是运行在计算设备上的应用程序,如计算引擎等。该应用程序可以以虚拟化服务的方式提供给用户使用。当通过硬件实现时,映射模块108中可以包括至少一个计算设备,如服务器等。或者,映射模块108也可以是利用专用集成电路ASIC实现、或可编程逻辑器件PLD实现的设备等。When implemented by software, the mapping module 108 may be an application program running on a computing device, such as a computing engine or the like. The application can be provided to users as a virtualized service. When implemented by hardware, the mapping module 108 may include at least one computing device, such as a server. Alternatively, the mapping module 108 may also be a device implemented using an application specific integrated circuit (ASIC) or a programmable logic device (PLD).
在一些可能的实现方式中,所述软件在设计阶段的元数据包括进程模型,所述进程模型描述所述设计阶段的架构元素以及调用关系,所述软件在运行阶段的元数据包括调用链信息,所述调用链信息描述所述运行阶段的架构元素以及调用关系;In some possible implementations, the metadata of the software in the design phase includes a process model, the process model describes the architectural elements and calling relationships of the design phase, and the metadata of the software in the running phase includes call chain information. , the call chain information describes the architectural elements and call relationships of the running phase;
所述模型生成模块104具体用于:The model generation module 104 is specifically used to:
根据所述进程模型,生成所述设计阶段的架构元素关系模型;Generate an architectural element relationship model of the design stage according to the process model;
根据所述调用链信息,采用相同语言生成所述运行阶段的架构元素关系模型。According to the call chain information, the same language is used to generate the architectural element relationship model of the running phase.
在一些可能的实现方式中,所述比对模块106具体用于:In some possible implementations, the comparison module 106 is specifically used to:
根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系,生成第二依赖关系表或第二依赖关系图中的至少一种或多种;generating at least one or more of a first dependency table or a first dependency graph according to the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture, and according to the second software Deploy the dependency relationship of the second architecture element in the architecture element relationship model of the architecture, and generate at least one or more of the second dependency relationship table or the second dependency relationship graph;
将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对。The first dependency relationship table is compared with the second dependency relationship table, and/or the first dependency relationship graph is compared with the second dependency relationship graph.
在一些可能的实现方式中,所述交互模块102还用于:In some possible implementations, the interaction module 102 is also used to:
在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。The architecture element relationship model comparison result is displayed in the dependency relationship table or the dependency relationship diagram.
在一些可能的实现方式中,所述相同语言包括领域特定语言DSL。In some possible implementations, the same language includes a domain-specific language DSL.
在一些可能的实现方式中,所述模型生成模块104还用于:In some possible implementations, the model generation module 104 is also used to:
根据所述软件在设计阶段的元数据生成第一模型树,以及根据所述软件在运行阶段的元数据,生成第二模型树;Generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase;
所述比对模块106还用于:The comparison module 106 is also used to:
比对所述第一模型树和所述第二模型树,获得模型树比对结果,所述软件部署架构的比对结果包括所述模型树比对结果。The first model tree and the second model tree are compared to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
在一些可能的实现方式中,所述软件在设计阶段的元数据包括部署模型,所述部署模型描述架构元素以及架构元素所在环境,所述软件在运行阶段的元数据包括资源管理模型; In some possible implementations, the metadata of the software in the design phase includes a deployment model, the deployment model describes architectural elements and the environment where the architectural elements are located, and the metadata of the software in the running phase includes a resource management model;
所述模型生成模块104具体用于:The model generation module 104 is specifically used to:
根据所述部署模型中的所述架构元素以及所述架构元素所在环境,生成第一模型树,所述第一模型树为环境组件模型树;Generate a first model tree based on the architectural elements in the deployment model and the environment where the architectural elements are located, where the first model tree is an environment component model tree;
根据所述资源管理模型,结合调用链信息进行实例化,生成第二模型树,所述第二模型树为环境组件模型树。According to the resource management model, instantiation is performed in combination with the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
本申请还提供一种计算设备1400。如图14所示,计算设备1400包括:总线1402、处理器1404、存储器1406和通信接口1408。处理器1404、存储器1406和通信接口1408之间通过总线1402通信。计算设备1400可以是服务器或终端设备。应理解,本申请不限定计算设备1400中的处理器、存储器的个数。The present application also provides a computing device 1400. As shown in Figure 14, computing device 1400 includes: bus 1402, processor 1404, memory 1406, and communication interface 1408. The processor 1404, the memory 1406 and the communication interface 1408 communicate through a bus 1402. Computing device 1400 may be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1400.
总线1402可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1402可包括在计算设备1400各个部件(例如,存储器1406、处理器1404、通信接口1408)之间传送信息的通路。The bus 1402 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of presentation, only one line is used in Figure 14, but it does not mean that there is only one bus or one type of bus. Bus 1402 may include a path that carries information between various components of computing device 1400 (eg, memory 1406, processor 1404, communications interface 1408).
处理器1404可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。The processor 1404 may include a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP) or a digital signal processor (DSP). any one or more of them.
存储器1406可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器1404还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard disk drive,HDD)或固态硬盘(solid state drive,SSD)。存储器1406中存储有可执行的程序代码,处理器1404执行该可执行的程序代码以实现前述软件部署架构的管理方法。具体的,存储器1406上存有的软件部署架构的管理系统100用于执行软件部署架构的管理方法的指令。Memory 1406 may include volatile memory, such as random access memory (RAM). The processor 1404 may also include non-volatile memory (non-volatile memory), such as read-only memory (ROM), flash memory, mechanical hard disk drive (hard disk drive, HDD) or solid state drive (solid state drive). drive, SSD). The memory 1406 stores executable program code, and the processor 1404 executes the executable program code to implement the aforementioned management method of the software deployment architecture. Specifically, the software deployment architecture management system 100 stored on the memory 1406 is used to execute instructions for the software deployment architecture management method.
通信接口1408使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1400与其他设备或通信网络之间的通信。The communication interface 1408 uses transceiver modules such as, but not limited to, network interface cards and transceivers to implement communication between the computing device 1400 and other devices or communication networks.
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。An embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
如图15所示,所述计算设备集群包括至少一个计算设备1400。计算设备集群中的一个或多个计算设备1400中的存储器1406中可以存有相同的软件部署架构的管理系统100用于执行软件部署架构的管理方法的指令。As shown in Figure 15, the computing device cluster includes at least one computing device 1400. The memory 1406 of one or more computing devices 1400 in the computing device cluster may store instructions for the management system 100 of the same software deployment architecture to perform the management method of the software deployment architecture.
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1400也可以用于执行软件部署架构的管理系统用于执行软件部署架构的管理方法的部分指令。换言之,一个或多个计算设备1400的组合可以共同执行软件部署架构的管理系统100用于执行软件部署架构的管理方法的指令。 In some possible implementations, one or more computing devices 1400 in the computing device cluster may also be used to execute part of the instructions of the management system of the software deployment architecture for executing the management method of the software deployment architecture. In other words, a combination of one or more computing devices 1400 may jointly execute instructions of the software deployment architecture management system 100 for performing the software deployment architecture management method.
需要说明的是,计算设备集群中的不同的计算设备1400中的存储器1406可以存储不同的指令,用于执行软件部署架构的管理系统100的部分功能。It should be noted that the memory 1406 in different computing devices 1400 in the computing device cluster may store different instructions for executing part of the functions of the management system 100 of the software deployment architecture.
图16示出了一种可能的实现方式。如图16所示,两个计算设备1400A和1400B通过通信接口1408实现连接。计算设备1400A中的存储器上存有用于执行交互模块102、模型生成模块104的功能的指令。计算设备1400B中的存储器上存有用于执行比对模块106的功能的指令。换言之,计算设备1400A和1400B的存储器1406共同存储了软件部署架构的管理系统100用于执行软件部署架构的管理方法的指令。Figure 16 shows a possible implementation. As shown in Figure 16, two computing devices 1400A and 1400B are connected through a communication interface 1408. Instructions for executing the functions of the interaction module 102 and the model generation module 104 are stored on the memory in the computing device 1400A. Instructions for performing the functions of comparison module 106 are stored on memory in computing device 1400B. In other words, the memories 1406 of the computing devices 1400A and 1400B jointly store instructions for the management system 100 of the software deployment architecture to execute the management method of the software deployment architecture.
图16所示的计算设备集群之间的连接方式可以是考虑到本申请提供的软件部署架构的管理方法需要大量算力进行模型生成。因此,考虑将模型生成模块104、比对模块106实现的功能交由不同计算设备执行。The connection method between computing device clusters shown in Figure 16 can be based on the fact that the management method of the software deployment architecture provided by this application requires a large amount of computing power for model generation. Therefore, it is considered that the functions implemented by the model generation module 104 and the comparison module 106 are executed by different computing devices.
应理解,图16中示出的计算设备1400A的功能也可以由多个计算设备1400完成。同样,计算设备1400B的功能也可以由多个计算设备1400完成。It should be understood that the functions of computing device 1400A shown in FIG. 16 may also be performed by multiple computing devices 1400. Likewise, the functions of computing device 1400B may also be performed by multiple computing devices 1400.
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图17示出了一种可能的实现方式。如图17所示,两个计算设备1400C和1400D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备1400C中的存储器1406中存有执行交互模块102、模型生成模块104的功能的指令。同时,计算设备1400D中的存储器1406中存有执行比对模块106的功能的指令。In some possible implementations, one or more computing devices in a cluster of computing devices may be connected through a network. Wherein, the network may be a wide area network or a local area network, etc. Figure 17 shows a possible implementation. As shown in Figure 17, two computing devices 1400C and 1400D are connected through a network. Specifically, the connection to the network is made through a communication interface in each computing device. In this type of possible implementation, instructions for executing the functions of the interaction module 102 and the model generation module 104 are stored in the memory 1406 of the computing device 1400C. At the same time, instructions for performing the functions of the comparison module 106 are stored in the memory 1406 in the computing device 1400D.
图17所示的计算设备集群之间的连接方式可以是考虑到本申请提供的软件部署架构的管理方法需要大量算力进行模型生成,因此考虑将模型生成模块104、比对模块106实现的功能交由计算设备1400D执行。The connection method between the computing device clusters shown in Figure 17 can be: Considering that the management method of the software deployment architecture provided by this application requires a large amount of computing power for model generation, the functions implemented by the model generation module 104 and the comparison module 106 are considered handed over to the computing device 1400D for execution.
应理解,图17中示出的计算设备1400C的功能也可以由多个计算设备1400完成。同样,计算设备1400D的功能也可以由多个计算设备1400完成。It should be understood that the functions of computing device 1400C shown in FIG. 17 may also be performed by multiple computing devices 1400. Likewise, the functions of computing device 1400D may also be performed by multiple computing devices 1400.
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于软件部署架构的管理系统100用于执行软件部署架构的管理方法。An embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium may be any available medium that a computing device can store or a data storage device such as a data center that contains one or more available media. The available media may be magnetic media (eg, floppy disk, hard disk, tape), optical media (eg, DVD), or semiconductor media (eg, solid state drive), etc. The computer-readable storage medium includes instructions that instruct the computing device to execute the above-mentioned management method applied to the software deployment architecture by the management system 100 for executing the software deployment architecture.
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述软件部署架构的管理方法。An embodiment of the present application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, at least one computing device is caused to execute the above management method of the software deployment architecture.
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。 Finally, it should be noted that the above embodiments are only used to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that it can still be used Modifications are made to the technical solutions described in the foregoing embodiments, or equivalent substitutions are made to some of the technical features; however, these modifications or substitutions do not cause the essence of the corresponding technical solutions to depart from the protection scope of the technical solutions of the various embodiments of the present invention.

Claims (19)

  1. 一种软件部署架构的管理方法,其特征在于,由软件部署架构的管理系统执行,所述方法包括:A management method for software deployment architecture, characterized in that it is executed by a management system of software deployment architecture, and the method includes:
    所述管理系统获取软件的元数据;The management system obtains metadata of the software;
    所述管理系统根据所述软件的元数据,通过相同语言生成所述软件的生命周期中不同阶段的软件部署架构的架构元素关系模型;The management system generates architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software through the same language;
    所述管理系统根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,所述软件部署架构的比对结果包括架构元素关系模型比对结果。The management system compares the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture. The comparison results of the software deployment architecture include the comparison results of the architectural element relationship models. .
  2. 根据权利要求1所述的方法,其特征在于,所述管理系统获取软件的元数据,包括:The method according to claim 1, characterized in that the management system obtains metadata of the software, including:
    所述管理系统获取所述软件在设计阶段的元数据,以及获取所述软件在运行阶段的元数据;The management system obtains metadata of the software in the design stage and obtains metadata of the software in the running stage;
    所述根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,包括:The comparison of architectural element relationship models based on the software deployment architecture at different stages includes:
    将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系进行比对,所述第一软件部署架构为设计阶段的软件部署架构,所述第二软件部署架构为运行阶段的软件部署架构,所述第一架构元素为所述软件在设计阶段的元数据对应的架构元素,所述第二架构元素为所述软件在运行阶段的元数据对应的架构元素。Compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture, where the first software deployment architecture is The software deployment architecture in the design phase, the second software deployment architecture is the software deployment architecture in the running phase, the first architecture element is the architecture element corresponding to the metadata of the software in the design phase, and the second architecture element is Architectural elements corresponding to the metadata of the software during the running phase.
  3. 根据权利要求2所述的方法,其特征在于,所述软件在设计阶段的元数据包括进程模型,所述进程模型描述所述设计阶段的架构元素以及调用关系,所述软件在运行阶段的元数据包括调用链信息,所述调用链信息描述所述运行阶段的架构元素以及调用关系;The method according to claim 2, characterized in that the metadata of the software in the design phase includes a process model, the process model describes the architectural elements and calling relationships of the design phase, and the metadata of the software in the running phase The data includes call chain information, which describes the architectural elements and call relationships of the running phase;
    所述管理系统根据所述软件的元数据,通过相同语言生成所述软件的生命周期中不同阶段的软件部署架构的架构元素关系模型,包括:The management system uses the same language to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software based on the metadata of the software, including:
    所述管理系统根据所述进程模型,生成所述设计阶段的架构元素关系模型;The management system generates an architectural element relationship model of the design stage based on the process model;
    所述管理系统根据所述调用链信息,采用相同语言生成所述运行阶段的架构元素关系模型。The management system uses the same language to generate the architectural element relationship model of the running stage based on the call chain information.
  4. 根据权利要求2或3所述的方法,其特征在于,所述管理系统根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,包括:The method according to claim 2 or 3, characterized in that the management system performs comparison according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison result of the software deployment architecture, including:
    所述管理系统根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系,生成第二依赖关系表或第二依赖关系图中的至少一种或多种;The management system generates at least one or more of a first dependency table or a first dependency graph based on the dependency of the first architectural element in the architectural element relationship model of the first software deployment architecture, and based on the Describe the dependencies of the second architecture element in the architecture element relationship model of the second software deployment architecture, and generate at least one or more of the second dependency table or the second dependency graph;
    所述管理系统将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对。The management system compares the first dependency relationship table with the second dependency relationship table, and/or compares the first dependency relationship graph with the second dependency relationship graph.
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:The method of claim 4, further comprising:
    所述管理系统在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。The management system displays the comparison result of the architecture element relationship model in the dependency relationship table or the dependency relationship graph.
  6. 根据权利要求1至5任一项所述的方法,其特征在于,所述相同语言包括领域特定 语言DSL。The method according to any one of claims 1 to 5, characterized in that the same language includes domain-specific Language DSL.
  7. 根据权利要求2所述的方法,其特征在于,所述方法还包括:The method of claim 2, further comprising:
    所述管理系统根据所述软件在设计阶段的元数据生成第一模型树,以及根据所述软件在运行阶段的元数据,生成第二模型树;The management system generates a first model tree based on the metadata of the software in the design phase, and generates a second model tree based on the metadata of the software in the running phase;
    所述管理系统比对所述第一模型树和所述第二模型树,获得模型树比对结果,所述软件部署架构的比对结果包括所述模型树比对结果。The management system compares the first model tree and the second model tree to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
  8. 根据权利要求7所述的方法,其特征在于,所述软件在设计阶段的元数据包括部署模型,所述部署模型描述架构元素以及架构元素所在环境,所述软件在运行阶段的元数据包括资源管理模型;The method according to claim 7, characterized in that, the metadata of the software in the design phase includes a deployment model, the deployment model describes architectural elements and the environment where the architectural elements are located, and the metadata of the software in the running phase includes resources. management model;
    所述管理系统根据所述软件在设计阶段的元数据生成第一模型树,包括:The management system generates a first model tree based on the metadata of the software in the design phase, including:
    所述管理系统根据所述部署模型中的所述架构元素以及所述架构元素所在环境,生成第一模型树,所述第一模型树为环境组件模型树;The management system generates a first model tree based on the architectural elements in the deployment model and the environment where the architectural elements are located, and the first model tree is an environment component model tree;
    所述管理系统根据所述软件在运行阶段的元数据,生成第二模型树,包括:The management system generates a second model tree based on the metadata of the software in the running stage, including:
    所述管理系统根据所述资源管理模型,结合调用链信息进行实例化,生成第二模型树,所述第二模型树为环境组件模型树。The management system performs instantiation based on the resource management model and the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
  9. 一种软件部署架构的管理系统,其特征在于,所述系统包括:A management system for software deployment architecture, characterized in that the system includes:
    交互模块,用于获取软件的元数据;Interaction module, used to obtain metadata of software;
    模型生成模块,用于根据所述软件的元数据,通过相同语言生成所述软件的生命周期中不同阶段的软件部署架构的架构元素关系模型;A model generation module, configured to generate architectural element relationship models of the software deployment architecture at different stages in the life cycle of the software through the same language based on the metadata of the software;
    比对模块,用于根据所述不同阶段的软件部署架构的架构元素关系模型进行比对,获得所述软件部署架构的比对结果,所述软件部署架构的比对结果包括架构元素关系模型比对结果。A comparison module, configured to compare according to the architectural element relationship models of the software deployment architecture at different stages to obtain the comparison results of the software deployment architecture. The comparison results of the software deployment architecture include the comparison of the architectural element relationship models. to the results.
  10. 根据权利要求9所述的系统,其特征在于,所述交互模块具体用于:The system according to claim 9, characterized in that the interactive module is specifically used for:
    获取所述软件在设计阶段的元数据,以及获取所述软件在运行阶段的元数据;Obtain the metadata of the software in the design phase, and obtain the metadata of the software in the running phase;
    所述比对模块具体用于:The comparison module is specifically used for:
    将第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系与第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系进行比对,所述第一软件部署架构为设计阶段的软件部署架构,所述第二软件部署架构为运行阶段的软件部署架构,所述第一架构元素为所述软件在设计阶段的元数据对应的架构元素,所述第二架构元素为所述软件在运行阶段的元数据对应的架构元素。Compare the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture with the dependency relationship of the second architectural element in the architectural element relationship model of the second software deployment architecture, where the first software deployment architecture is The software deployment architecture in the design phase, the second software deployment architecture is the software deployment architecture in the running phase, the first architecture element is the architecture element corresponding to the metadata of the software in the design phase, and the second architecture element is Architectural elements corresponding to the metadata of the software during the running phase.
  11. 根据权利要求10所述的系统,其特征在于,所述软件在设计阶段的元数据包括进程模型,所述进程模型描述所述设计阶段的架构元素以及调用关系,所述软件在运行阶段的元数据包括调用链信息,所述调用链信息描述所述运行阶段的架构元素以及调用关系;The system according to claim 10, characterized in that, the metadata of the software in the design phase includes a process model, the process model describes the architectural elements and calling relationships of the design phase, and the metadata of the software in the running phase The data includes call chain information, which describes the architectural elements and call relationships of the running phase;
    所述模型生成模块具体用于:The model generation module is specifically used for:
    根据所述进程模型,生成所述设计阶段的架构元素关系模型;Generate an architectural element relationship model of the design stage according to the process model;
    根据所述调用链信息,采用相同语言生成所述运行阶段的架构元素关系模型。According to the call chain information, the same language is used to generate the architectural element relationship model of the running phase.
  12. 根据权利要求10或11所述的系统,其特征在于,所述比对模块具体用于:The system according to claim 10 or 11, characterized in that the comparison module is specifically used for:
    根据所述第一软件部署架构的架构元素关系模型中第一架构元素的依赖关系,生成第 一依赖关系表或第一依赖关系图中的至少一种或多种,以及根据所述第二软件部署架构的架构元素关系模型中第二架构元素的依赖关系,生成第二依赖关系表或第二依赖关系图中的至少一种或多种;According to the dependency relationship of the first architectural element in the architectural element relationship model of the first software deployment architecture, a third At least one or more of a dependency relationship table or a first dependency relationship graph, and generating a second dependency relationship table or a third dependency relationship table according to the dependency relationship of the second architecture element in the architecture element relationship model of the second software deployment architecture. 2. At least one or more of the dependency graphs;
    将所述第一依赖关系表与所述第二依赖关系表进行比对,和/或将所述第一依赖关系图与所述第二依赖关系图进行比对。The first dependency relationship table is compared with the second dependency relationship table, and/or the first dependency relationship graph is compared with the second dependency relationship graph.
  13. 根据权利要求12所述的系统,其特征在于,所述交互模块还用于:The system according to claim 12, characterized in that the interactive module is also used to:
    在所述依赖关系表或所述依赖关系图中显示所述架构元素关系模型比对结果。The architecture element relationship model comparison result is displayed in the dependency relationship table or the dependency relationship diagram.
  14. 根据权利要求9至13任一项所述的方法,其特征在于,所述相同语言包括领域特定语言DSL。The method according to any one of claims 9 to 13, characterized in that the same language includes a domain-specific language DSL.
  15. 根据权利要求10所述的系统,其特征在于,所述模型生成模块还用于:The system according to claim 10, characterized in that the model generation module is also used to:
    根据所述软件在设计阶段的元数据生成第一模型树,以及根据所述软件在运行阶段的元数据,生成第二模型树;Generate a first model tree based on the metadata of the software in the design phase, and generate a second model tree based on the metadata of the software in the running phase;
    所述比对模块还用于:The comparison module is also used to:
    比对所述第一模型树和所述第二模型树,获得模型树比对结果,所述软件部署架构的比对结果包括所述模型树比对结果。The first model tree and the second model tree are compared to obtain a model tree comparison result, and the comparison result of the software deployment architecture includes the model tree comparison result.
  16. 根据权利要求15所述的系统,其特征在于,所述软件在设计阶段的元数据包括部署模型,所述部署模型描述架构元素以及架构元素所在环境,所述软件在运行阶段的元数据包括资源管理模型;The system according to claim 15, wherein the metadata of the software in the design phase includes a deployment model, the deployment model describes architectural elements and the environment where the architectural elements are located, and the metadata of the software in the running phase includes resources. management model;
    所述模型生成模块具体用于:The model generation module is specifically used for:
    根据所述部署模型中的所述架构元素以及所述架构元素所在环境,生成第一模型树,所述第一模型树为环境组件模型树;Generate a first model tree based on the architectural elements in the deployment model and the environment where the architectural elements are located, where the first model tree is an environment component model tree;
    根据所述资源管理模型,结合调用链信息进行实例化,生成第二模型树,所述第二模型树为环境组件模型树。According to the resource management model, instantiation is performed in combination with the call chain information to generate a second model tree, where the second model tree is an environment component model tree.
  17. 一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至8任一项所述的方法。A computing device cluster, characterized in that the computing device cluster includes at least one computing device, the at least one computing device includes at least one processor and at least one memory, and the at least one memory stores computer-readable Instructions; the at least one processor executes the computer-readable instructions, so that the computing device cluster performs the method according to any one of claims 1 to 8.
  18. 一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至8任一项所述的方法。A computer program product containing instructions, characterized in that, when the instructions are executed by a cluster of computing devices, they cause the cluster of computing devices to perform the method according to any one of claims 1 to 8.
  19. 一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8任一项所述的方法。 A computer-readable storage medium, characterized in that it includes computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 8.
PCT/CN2023/081000 2022-08-24 2023-03-13 Software deployment architecture management method and related device WO2024040930A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202211019405 2022-08-24
CN202211019405.0 2022-08-24
CN202211520292.2A CN117667664A (en) 2022-08-24 2022-11-30 Management method of software deployment architecture and related equipment
CN202211520292.2 2022-11-30

Publications (1)

Publication Number Publication Date
WO2024040930A1 true WO2024040930A1 (en) 2024-02-29

Family

ID=90012295

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/081000 WO2024040930A1 (en) 2022-08-24 2023-03-13 Software deployment architecture management method and related device

Country Status (1)

Country Link
WO (1) WO2024040930A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631559A (en) * 2020-12-24 2021-04-09 中国航发控制系统研究所 Software architecture and scheduling design method based on model development
US11106526B1 (en) * 2020-06-09 2021-08-31 Sap Se Architecture-based root cause analysis
US20210382814A1 (en) * 2020-06-09 2021-12-09 Methodics, Inc. Computing hardware and software design testing auditability, including for critical control systems, functional safety, and autonomous vehicle component certification
CN113986759A (en) * 2021-11-16 2022-01-28 中国工商银行股份有限公司 Business processing flow acquisition method, business architecture flow verification method and system
CN114281306A (en) * 2021-12-31 2022-04-05 中国邮政储蓄银行股份有限公司 IT architecture management and control method, IT architecture management and control device, IT architecture processor and IT architecture electronic equipment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106526B1 (en) * 2020-06-09 2021-08-31 Sap Se Architecture-based root cause analysis
US20210382814A1 (en) * 2020-06-09 2021-12-09 Methodics, Inc. Computing hardware and software design testing auditability, including for critical control systems, functional safety, and autonomous vehicle component certification
CN112631559A (en) * 2020-12-24 2021-04-09 中国航发控制系统研究所 Software architecture and scheduling design method based on model development
CN113986759A (en) * 2021-11-16 2022-01-28 中国工商银行股份有限公司 Business processing flow acquisition method, business architecture flow verification method and system
CN114281306A (en) * 2021-12-31 2022-04-05 中国邮政储蓄银行股份有限公司 IT architecture management and control method, IT architecture management and control device, IT architecture processor and IT architecture electronic equipment

Similar Documents

Publication Publication Date Title
US11886907B2 (en) Analytic model execution engine with instrumentation for granular performance analysis for metrics and diagnostics for troubleshooting
US9720743B2 (en) General purpose distributed data parallel computing using a high level language
US8910166B2 (en) Automatic transcoding and semantic adaptation between scripting and workflow systems
US11561889B2 (en) Orchestration for automated performance testing
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
US10873628B2 (en) System and method for non-intrusive context correlation across cloud services
Remenska et al. From UML to process algebra and back: An automated approach to model-checking software design artifacts of concurrent systems
CN114116509A (en) Program analysis method, program analysis device, electronic device, and storage medium
US11294901B1 (en) Isolating the performance of functions included in queries
US20160170739A1 (en) Alter application behaviour during runtime
WO2024040930A1 (en) Software deployment architecture management method and related device
US11615061B1 (en) Evaluating workload for database migration recommendations
US11449409B2 (en) Schema inference and log data validation system
CN117667664A (en) Management method of software deployment architecture and related equipment
US11726776B2 (en) Super-app extension discovery and configuration via source code management platform comments
US11775584B1 (en) Dynamically scaling query plan operations for query processing
US11740989B2 (en) Generating performance metrics from events derived from user interface logs
US9378468B2 (en) Generic boxed components for multi-client systems
Rademacher et al. Model-Driven Engineering of Microservice Architectures—The LEMMA Approach
Bodden et al. Model-Driven Engineering of Microservice Architectures—The LEMMA Approach
Ye Management of and interaction with OLAP cloud service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23856027

Country of ref document: EP

Kind code of ref document: A1