Software architecture design method based on cloud technology and cloud management platform
By using the Git code warehouse and software architecture design language on the cloud management platform, the complexity and evolution of software architecture design are solved, and efficient software architecture design and continuous evolution are achieved.
Patent Information
- Application Number
- CN202410382409.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-25
- Filing Date
- 2024-03-29
- Publication Date
- 2025-06-27
AI Technical Summary
Existing software architecture design methods are difficult to effectively manage the evolution of complex software systems, resulting in repeated descriptions of design principles and fault analysis principles, and the inability to continuously iterate and evolve.
Using a cloud-based software architecture design method, the distributed version control system Git code warehouse is used through the cloud management platform to design the software architecture design field language, establish a design principle library and a fault module library, and realize the digital description and expression of the software architecture.
It improves the work efficiency and future-oriented evolution capabilities of software architecture design, avoids repeated consideration of basic design problems, and improves the consistency of multiple services and multiple architectures in the production environment.
Smart Images

Figure CN120216003A_ABST
Abstract
Description
[0001] This application claims the priority of a Chinese patent application with the application number 202311819720.6 and the application title "A Software Architecture Design System Based on Cloud Technology" submitted to the National Intellectual Property Administration of the People's Republic of China on December 25, 2023, the entire content of which is incorporated herein by reference. Technical Field
[0002] This application relates to the field of cloud computing technology, and particularly to a software architecture design method and a cloud management platform based on cloud technology. Background Art
[0003] With the development of modern software technology, the technology stacks involved in software products have become increasingly complex. In order to effectively manage the complexity and evolution strategy of software products, it is necessary to effectively manage and constrain the complexity of software products through software architecture. Through the description of software architecture, the design goals and intentions of software systems can be obtained at a relatively low cost, and continuous evolution can be carried out based on the current software architecture. Since the software architecture was first mentioned and has developed rapidly since the 1990s, many specifications and methods for describing software architecture have emerged. For example, the 4+1 architecture view, the C4 model, etc.
[0004] Although these software architecture models and technologies can help software practitioners more efficiently manage the complexity of software systems and improve the collaboration effectiveness of team members, software architecture still faces many challenges. For example, when the current software architecture needs to co-evolve with multiple hardware, the problem of coexistence of multiple architectures will be derived; or for example, the software design principles and system fault analysis principles cannot be inherited, so that when the software development team grows to a relatively large scale, relevant software design principles and system fault analysis principles, etc. are repeatedly described and defined; or for example, the software architecture cannot be continuously iteratively evolved, and when the software system needs to be refactored, it is necessary to rewrite the software-related documents. Summary of the Invention
[0005] This application provides a software architecture design method and a cloud management platform based on cloud technology, which are used to provide digital descriptions and expressions of relevant software architecture elements, and improve the work efficiency of software architecture design and the future-oriented evolution of software architecture design.
[0006] In a first aspect, the present application provides a software architecture design method based on cloud technology, which can be implemented by a cloud management platform. The cloud management platform may include a distributed version control system Git code repository, and the Git code repository includes a design principle library and a fault module library obtained based on a domain-specific language for software architecture design. The design principle library includes design principles for different software services, and the fault module library includes fault solutions corresponding to different fault modes. The method includes: determining target information input or selected by a user on the cloud management platform, where the target information is used to describe a target software service and at least one component within the target software service; establishing a dependency relationship between the target software service and the at least one component according to the target information; designing a target software architecture of the target software service according to the dependency relationship, the design principle library, and the fault module library; and saving the design result of the target software architecture to the Git code repository.
[0007] The above method describes software architecture design activities by designing a set of domain-specific languages for software architecture design, enabling all documented and unstructured software architecture design activities to be optimized and described using structured architecture design domain languages, improving the work efficiency of software architecture design and the evolution of future-oriented software architecture design. At the same time, the platform allows the generalization and standardization of design principles and fault module libraries, enabling all design principles and fault module libraries to be incorporated into the architecture design domain language, increasing the reusability of architecture design, and avoiding repeated consideration of basic issues in architecture design. The platform manages software architecture design through the Git code repository, enabling the management of software architecture design baselines and evolution using the branch and tag capabilities of the Git code repository in a production environment with multiple services and multiple architectures, improving the consistency between software architecture design and production environment operation.
[0008] In combination with the first aspect, in a possible implementation manner, designing the target software architecture of the target software service according to the dependency relationship, the design principle library, and the fault module library includes: selecting a target design principle from the design principle library according to the dependency relationship; selecting a target fault solution from the fault module library according to the dependency relationship; and designing the target software architecture of the target software service according to the dependency relationship, the target design principle, and the target fault solution.
[0009] In combination with the first aspect, in a possible implementation manner, the target information includes an identifier of the at least one component, and selecting a target design principle from the design principle library according to the dependency relationship includes:
[0010] Index based on the identifier of the at least one component, and select the design principle corresponding to the identifier from the design principle library as the target design principle; according to the dependency relationship, select a target fault solution from the fault module library, including: index based on the identifier of the at least one component, and select the fault solution corresponding to the identifier from the fault module library as the target fault solution.
[0011] Combined with the first aspect, in a possible implementation manner, if the target fault solution is not indexed in the fault module library, the method further includes: receiving the fault solution corresponding to the first fault mode input by the user on the cloud management platform, where the fault solution corresponding to the first fault mode includes the target fault solution; adding the fault solution corresponding to the first fault mode to the fault module library.
[0012] Combined with the first aspect, in a possible implementation manner, the cloud management platform includes an integrated development environment IDE, and the method further includes: importing the content of the Git code repository into the IDE.
[0013] Combined with the first aspect, in a possible implementation manner, the Git code repository further includes a software service list, where the software service list includes description information of multiple first software services, and the description information of each first software service is used to describe the first software service and at least one component in the first software service. If the multiple first software services do not include the target software service, the method further includes: adding the target information to the software service list.
[0014] Combined with the first aspect, in a possible implementation manner, the method further includes: outputting an architecture design view of the target software architecture on a display page associated with the cloud management platform.
[0015] Combined with the first aspect, in a possible implementation manner, the method further includes: performing statistical analysis on the usage of each software service or component in the Git code repository to obtain a statistical analysis result; outputting the statistical analysis result on a display page associated with the cloud management platform.
[0016] Combined with the first aspect, in a possible implementation manner, the display page associated with the cloud management platform is a web page.
[0017] Second aspect, the present application provides a cloud management platform, the cloud management platform includes a distributed version control system Git code repository, the Git code repository includes a design principle library and a fault module library obtained based on the software architecture design domain language, the design principle library includes design principles for different software services, the fault module library includes fault solutions corresponding to different fault modes, and the cloud management platform includes: a determination module, configured to determine target information input or selected by a user on the cloud management platform, the target information being used to describe a target software service and at least one component within the target software service; a relationship establishment module, configured to establish a dependency relationship between the target software service and the at least one component according to the target information; a design module, configured to design a target software architecture of the target software service according to the dependency relationship, the design principle library, and the fault module library; and a storage module, configured to save the design result of the target software architecture to the Git code repository.
[0018] In combination with the second aspect, in a possible implementation manner, the design module is configured to: select a target design principle from the design principle library according to the dependency relationship; select a target fault solution from the fault module library according to the dependency relationship; and design a target software architecture of the target software service according to the dependency relationship, the target design principle, and the target fault solution.
[0019] In combination with the second aspect, in a possible implementation manner, the target information includes identifiers of the at least one component, and the design module is configured to: perform indexing based on the identifiers of the at least one component, and select, from the design principle library, the design principle corresponding to the identifier as the target design principle; perform indexing based on the identifiers of the at least one component, and select, from the fault module library, the fault solution corresponding to the identifier as the target fault solution.
[0020] In combination with the second aspect, in a possible implementation manner, if the target fault solution is not indexed in the fault module library, the cloud management platform further includes a transceiver module, configured to receive a fault solution corresponding to a first fault mode input by a user on the cloud management platform, the fault solution corresponding to the first fault mode including the target fault solution; and the storage module is configured to add the fault solution corresponding to the first fault mode to the fault module library.
[0021] In combination with the second aspect, in a possible implementation manner, the cloud management platform includes an integrated development environment IDE, and the cloud management platform further includes a loading module, configured to import the content of the Git code repository into the IDE.
[0022] In combination with the second aspect, in a possible implementation, the Git code repository further includes a software service list, and the software service list includes description information of a plurality of first software services. The description information of each first software service is used to describe the first software service and at least one component within the first software service. If the plurality of first software services do not include the target software service, the storage module is further configured to: add the target information to the software service list.
[0023] In combination with the second aspect, in a possible implementation, the cloud management platform further includes a display page for outputting an architecture design view of the target software architecture.
[0024] In combination with the second aspect, in a possible implementation, the cloud management platform further includes a statistics module for statistically analyzing the usage of each software service or component in the Git code repository to obtain a statistical analysis result; the display page is further configured to output the statistical analysis result.
[0025] In combination with the second aspect, in a possible implementation, the display page associated with the cloud management platform is a web page.
[0026] In a third aspect, the present application provides a computing device cluster including at least one computing device, and each computing device includes a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method described in the first aspect and any possible implementation manner in the first aspect.
[0027] In a fourth aspect, the present application provides a computer program product including instructions, which, when run on a computing device cluster, cause the computing device cluster to execute the method described in the first aspect and any possible implementation manner in the first aspect.
[0028] In a fifth aspect, the present application provides a computer-readable storage medium including computer program instructions, which, when executed by a computing device cluster, cause the computing device cluster to execute the method described in the first aspect and any possible implementation manner in the first aspect.
[0029] Based on the implementations provided in the above aspects, the present application can be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 Shows a 4+1 architecture view;
[0031] Figure 2 Shows a software system structure diagram of the C4 model;
[0032] Figure 3 Shows the view obtained based on the C4 model;
[0033] Figure 4 Shows a schematic diagram of the review results based on the AWS architecture;
[0034] Figure 5 Shows a schematic diagram of the architecture of a cloud service system applicable to the embodiments of the present application;
[0035] Figure 6 Shows a schematic diagram of the design model framework of the embodiments of the present application;
[0036] Figure 7 Shows a schematic diagram of the architecture digitalization page of the embodiments of the present application;
[0037] Figure 8 Shows a schematic diagram of the FEMA page of the embodiments of the present application;
[0038] Figure 9 Shows a schematic diagram of the flow of the software architecture design method of the embodiments of the present application;
[0039] Figure 10 Shows a schematic diagram of the flow of the software architecture design method of the embodiments of the present application;
[0040] Figure 11 Shows a complete dependency graph of a software architecture design of the embodiments of the present application;
[0041] Figure 12 Shows the statistical analysis effect diagram of each architecture element of the embodiments of the present application;
[0042] Figure 13 Shows a schematic diagram of the structure of the cloud management platform of the embodiments of the present application;
[0043] Figure 14 Shows a schematic diagram of the computing device of the embodiments of the present application;
[0044] Figure 15 Shows a schematic diagram of the computing device cluster of the embodiments of the present application;
[0045] Figure 16 Shows a schematic diagram of the computing device cluster of the embodiments of the present application. Detailed implementation manners
[0046] To better explain the embodiments of the present application, some terms or technologies mentioned in the embodiments of the present application are introduced below.
[0047] 1. Cloud service: Services provided in the form of representational state transfer application programming interface (REST API) based on the Internet, including elastic computing, virtual network, data storage, database, etc., which meet the requirements of enterprise Internet technology (IT).
[0048] In the embodiments of the present application, the provider of cloud services can be simply referred to as a cloud provider. The cloud services provided by the cloud provider may include software architecture design services, or the cloud services provided by the cloud provider may also include software services related to software systems.
[0049] 2. Cloud resource: A short name for the cloud computing resources provided by a cloud provider to a tenant, which refers to the integration of cloud computing-related resources, including cloud services and cloud instances, etc.
[0050] Among them, cloud services can include, for example, but are not limited to, services provided by a virtual private cloud (VPC), gateway services, firewall services, NAT services, cloud disks, elastic IP addresses (EIPs), cloud monitoring services, and various other cloud services provided by cloud providers. Cloud instances can include, for example, but are not limited to, virtual machines, containers, or bare-metal servers, etc. Among them, virtual machines, containers, or bare-metal servers are all virtual instances provided by the cloud provider to the tenant in the cloud provider's data center. In an alternative embodiment, cloud instances may also include lightweight containers or serverless, etc., which are not limited in the embodiments of the present application.
[0051] In another alternative embodiment, different cloud resources can be renamed according to their differences. For example, a server mainly providing CPU computing power can be called a CPU server, and a server mainly providing GPU computing power can be called a GPU server, which will not be distinguished and elaborated one by one hereinafter.
[0052] 3. Tenant: The owner of cloud resources, which is the entity that has management authority over cloud resources. Among them, a tenant can order or rent cloud resources from a cloud provider by paying according to business needs in order to use the cloud services realized based on the cloud resources. The management authority of the tenant over the purchased cloud resources can include, for example, but are not limited to, security management authority, access control authority, etc. In some embodiments, the electronic device of the tenant can be called a tenant node.
[0053] 4. User: An operator of cloud resources who can only operate cloud resources after being authorized by the owner of the cloud resources. In the embodiments of the present application, the operation of cloud resources by the user can be achieved through the user's electronic device (including physical devices and / or virtual devices). In some embodiments, the user's electronic device can be referred to as a user node.
[0054] In the following embodiments, the steps implemented by the tenant and the user can be replaced with each other, that is, the tenant node can be used to implement the steps implemented by the user node, and the user node can also be used to implement the steps implemented by the tenant node. In the following text, "user" and "tenant" can also be used interchangeably.
[0055] 5. Software architecture:
[0056] Software architecture refers to the process of decomposing a software system into different components, forming different hierarchical structures, and determining how they interact with each other. Software architecture is the basis of software system design and a key link in software development. Software architecture is a series of related abstract patterns used to guide the design of all aspects of a large software system and can be regarded as a sketch of the system. The objects described by software architecture are the abstract components directly constituting the system and the connections between each component, clearly and relatively detailedly describing the communication between components. In the implementation stage, these abstract components are refined into actual components, such as a specific class or object. Software architecture is the basis for building computer software practice, providing a high-level abstraction of the structure, behavior, and properties of a software system, consisting of descriptions of components, interactions between components, patterns guiding component integration, and constraints on these patterns. Software architecture not only shows the correspondence between software requirements and software structure but also specifies the organization and topology of the entire software system, providing some basic principles for design decisions.
[0057] 6. Component and software service:
[0058] Specifically, it refers to software components. In the process of software development, a software component is a process that assists or supports system construction. A software component is a self - contained, programmable, reusable, and language - independent software unit that can be easily used to assemble applications. In the embodiments of the present application, software architecture design is based on the granularity of software services, and the software service can be a software component, or a software product, or a software system. The software service can also include at least one component, or be called a microservice.
[0059] 7. JavaScript object notation (Json) file:
[0060] A lightweight data exchange format, which is a subset of ECMAScript (the JavaScript specification developed by the European Computer Manufacturers Association), uses a text format that is completely independent of programming languages to store and represent data. The concise and clear hierarchical structure makes Json an ideal data exchange language, easy for humans to read and write, and also easy for machines to parse and generate, effectively improving network transmission efficiency.
[0061] 8. 4+1 Architecture View:
[0062] The 4+1 architecture view, also known as the 4+1 view model, is a software architecture design (SA) method. The 4+1 architecture view takes into account that the development and evolution process of a software system involves different roles, such as end-users, architects, developers, project managers, and system engineers, etc. Since the job responsibilities and dimensions of concern for each role are not the same, the 4+1 architecture view describes the system state from the perspectives of different roles. The 4+1 architecture view is a general method that is not bound to a specific description symbol. Usually, the Unified Modeling Language (UML) can be used to describe the system, but other symbols can also be chosen to describe the system.
[0063] As Figure 1 shown, the 4+1 architecture view includes the following five views:
[0064] (1) Logical View: It is a view oriented towards the logical analysis and design of the system and describes the logical structure of the system. Or rather, the logical view describes the functionality, components, and their relationships of the system. Specifically, the logical view mainly focuses on the static structure of the system, including classes, interfaces, packages, modules, etc., and is used to represent the organizational structure, module division, and relationships of the system.
[0065] (2) Process View: Also known as the runtime view, it is oriented towards the system runtime and describes the system startup process and runtime interactions. Or rather, the process view describes the concurrency and distribution of the system. Specifically, the process view focuses on the behavior of the system during runtime, including the runtime processes, threads, nodes, communication methods, etc., and is used to represent the concurrency, distribution, communication, and synchronization methods of the system.
[0066] (3) Physical view: Also known as the deployment view, it is oriented towards system deployment and describes system delivery, installation, and deployment. Or rather, the physical view describes the deployment and configuration of the system. Specifically, the physical view focuses on the deployment of the system on physical computing resources, including hardware, network, servers, storage, etc., and is used to represent the deployment topology, configuration, and resource allocation of the system.
[0067] (4) Development view: Oriented towards system development and software management, it describes the system code structure. Or rather, the development view describes the software development process of the system. Specifically, the development view focuses on the software development, construction, and deployment processes, including development environment, version control, build tools, compilers, etc., and is used to represent the development project, build process, and development environment of the system.
[0068] (4) Scenarios view: Also known as the use case view, it uses use cases as driving elements to drive and verify the design of the other four views. Or rather, the scenarios view describes the usage scenarios of the system in different situations. Specifically, the scenarios view focuses on the use cases, user interactions, and system behaviors of the system, including user interfaces, use case scenarios, user requirements, etc., and is used to represent the functional requirements, user interactions, and system behaviors of the system.
[0069] These five views are interrelated and jointly describe different aspects of a system, thus helping software engineers and system architects better understand and design complex software systems. Each view emphasizes some specific concerns, thus forming a complete architecture view.
[0070] 9. Unified Modeling Language (UML):
[0071] UML is a standardized icon notation for describing complex systems, divided into structural diagrams and behavioral diagrams. Among them, structural diagrams can include, for example: class diagrams, component diagrams, deployment diagrams, object diagrams, package diagrams, composite structure diagrams, and profile diagrams. Behavioral diagrams can include, for example: use case diagrams, activity diagrams, state machine diagrams, sequence diagrams, communication diagrams, interaction overview diagrams, and timing diagrams.
[0072] Different participants in the software development process can communicate and collaborate based on various diagrams in UML. With the popularization of agile software development, many teams have stopped or reduced their original diagram and documentation work, which has led to many software architecture diagrams being chaotic and unclear.
[0073] 10. C4 Model:
[0074] To solve the problems existing in UML, in a current design, the C4 model is proposed based on the 4+1 architecture view and UML.
[0075] The core idea of the C4 model is similar to the 4+1 architecture view. Both enable various roles in the software development process to quickly find the focus points through the hierarchical management of the software system. For example, Figure 2 as shown, the C4 model divides the software system into a context view, a container view, a component view, and a code view. The author of the C4 model vividly compares this model to a map whose code layer can be scaled. Similar to the 4+1 architecture view, the C4 model does not define any specific symbols, and UML or other descriptive symbols can be used to describe the system.
[0076] Among them, for software design communication meetings, drawing the C4 model on a whiteboard is an efficient way of communication. However, if an architecture design document needs to be written, some drawing tools are required. The toolchain ecosystem based on the C4 model is very rich, and different tools can be selected according to needs, such as: C4-PlantUML, C4builder, Structurizr, etc.
[0077] Taking the selection of the Structurizr tool to describe the system context as an example, this Structurizr tool is based on "diagrams as code" and allows users to create multiple software architecture diagrams from a single model. In the following Example 1, the Structurizr domain specific language (DSL) creates two diagrams based on a set of elements and relationships, as shown respectively Figure 3 below.
[0078] Example 1:
[0079]
[0080]
[0081] The above C4 model simplifies the display and communication of software architecture diagrams by means of hierarchical management. Its goal is only focused on the optimization of software architecture diagrams, and software architecture diagrams are only part of the software architecture of the system, not all of it. Other aspects also need to be optimized. In addition, in the C4 model, the management of software architecture diagrams mainly relies on documents. If the software architecture needs to be evolved and optimized, the software architecture diagram needs to be redrawn. It can be seen that the current C4 model cannot cope with the challenges faced by software architecture design either.
[0082] 11. AWS Architecture:
[0083] With the development of cloud technology, a set of excellent architecture frameworks has been designed for users in some designs, called AWS architecture. The AWS architecture is used to learn from the lessons of many customers and help users learn the architectural best practices for designing and running secure, reliable, efficient, cost-effective and sustainable workloads on AWS. The AWS architecture framework is refined into six pillars:
[0084] (1) Operational Excellence: The ability to gain deep insight into its operations and continuously improve supporting processes and procedures to deliver business value;
[0085] (2) Security: the ability to protect data, systems, and assets, and use cloud technology to improve security;
[0086] (3) Reliability: The ability of a workload to perform its intended function correctly and consistently, which includes the ability to operate and test the workload throughout its lifecycle;
[0087] (4) Performance efficiency: the ability to effectively use computing resources to meet system requirements;
[0088] (5) Cost optimization: the ability of the operating system to provide business value at the lowest price;
[0089] (6) Sustainable development: focuses on environmental impact, especially energy consumption and efficiency.
[0090] In addition, AWS architecture also provides users with a set of tools for use with the Architecture Excellence Framework. Users can use the lens (Len) in this Architecture Excellence tool to evaluate and analyze software architecture.
[0091] Lens is one of the core concepts in the excellent architecture tool. The lens definition example 2 in the AWS architecture tool is as follows:
[0092] Example 2:
[0093]
[0094]
[0095] By defining a lens, users can associate the six pillars of AWS architecture with specific questions and possible answers. When relevant personnel in the software development process conduct reviews based on the lens, they can clearly understand the risks in the software architecture, such as Figure 4 shown.
[0096] However, the AWS architecture framework and its supporting tools essentially evaluate the risk items of software architecture and give suggestions through the design and evaluation of Q&A content. They cannot manage and represent the software architecture form, nor can they perform architecture evaluation based on managing the software architecture form. It can be seen that the AWS architecture cannot address the challenges faced by software architecture design either.
[0097] In view of the above problems, embodiments of the present application provide a software architecture design method and a cloud management platform based on cloud technology, which are used to design a domain language for software architecture design to describe software architecture design activities, enabling relevant personnel in software development to digitally describe and express the software system architecture based on this domain language, so as to improve the work efficiency of software architecture design and the evolution of future-oriented software architecture design. At the same time, the solution supports the generalization and standardization of design principles and fault solutions, so that all design principles and fault solutions are included in the architecture design domain language of the embodiments of the present application, improving the reusability of architecture design and avoiding repeated consideration of basic problems in architecture design. In addition, the solution supports managing software architecture design activities through a distributed version control system (DVCS) (abbreviated as Git) code repository. For the situation of multiple services / multiple architectures existing in the production environment, the branch and tag capabilities of Git can be used to manage the software architecture design baseline and evolution, thereby improving the consistency between software architecture design and the operation of the production environment architecture at runtime.
[0098] Among them, the method and the device are based on the same technical concept. Since the principles for the method and the device to solve problems are similar, the implementation of the device and the method can be referred to each other, and the repeated parts will not be elaborated. Moreover, in each embodiment of the present application, if there is no special explanation and logical conflict, the terms and / or descriptions among the embodiments are consistent and can be referred to each other. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
[0099] It should be noted that in the embodiments of the present application, "at least one" means one or more, and "multiple" means two or more. "And / or" describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after. "At least one (item)" or its similar expression refers to any combination of these items, including any combination of single item (item) or multiple items (items). For example, at least one (item) of a, b, or c can represent: a, b, c, a and b, a and c, b and c, or a, b, and c, where a, b, and c can be single or multiple.
[0100] In addition, unless otherwise specified, the ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects, and are not used to limit the priority or importance of multiple objects. For example, the first service and the second service are only used to distinguish different services, rather than indicating differences in the priority or importance of these two services, etc.
[0101] The present application will be described in detail below with reference to the accompanying drawings and embodiments.
[0102] Figure 5 FIG. shows an architectural schematic diagram of a cloud service system applicable to the embodiments of the present application.
[0103] As Figure 5 shown, the cloud service system 100 may include a cloud management platform 110 provided by a cloud provider for tenants and a backend system 120.
[0104] The cloud management platform 110 can be externally connected to a user equipment (UE) operated by a tenant through the Internet. The tenant can order cloud services on the cloud provider side through the cloud management platform 110 and perform resource configuration on the purchased cloud services. For example, the tenant can register an account on the cloud management platform 110 through the user equipment, and this account has the qualification to purchase (including different payment forms such as ordering or renting) cloud resources. After successfully purchasing cloud resources, the cloud management platform 110 can notify the corresponding backend system 120 to create cloud resources for the tenant, and provide appropriate access methods to the tenant and the users authorized by the tenant, so that the tenant can remotely manage the cloud resources, and control the tenant / user to remotely access or use the cloud resources, so as to provide at least one cloud service to the tenant and the users.
[0105] For example, the cloud resources are, for example, a virtual machine. The tenant can select the specifications of the virtual machine (such as memory, processor, and disk, etc.) on the cloud management platform 110. After the tenant pays successfully, the cloud management platform 110 notifies the corresponding backend system 120 to create a virtual machine with this specification. The tenant can configure the access permissions of the users authorized by the tenant to this virtual machine (such as logging in to the virtual machine (virtual machine), shutdown operation, deletion operation, etc.) of the virtual machine. After the configuration is successful, the user can perform the corresponding authorized operations on this virtual machine. The tenant can also grant the permission to purchase or create a virtual machine to the user. It should be understood that in the embodiments of the present application, the cloud resources can also be various cloud services such as containers, bare metal servers, Elastic IP Address (EIP), etc. The embodiments of the present application do not limit the types of cloud services.
[0106] The cloud management platform 110 can be connected to the corresponding backend system 120 through an internal network within the cloud server system 100. The backend system 120 can process requests from user devices or third-party devices to provide corresponding cloud services for tenants / users. In one example, the cloud services provided for tenants / users can include software architecture design services based on cloud technology. The backend system 120 can include an infrastructure, which can include a resource pool, such as servers, storage devices, network devices, security devices, virtualization software, storage software, and other related software and hardware devices required for computing resources, storage resources, network resources, and security resources, etc. Tenants / users can access the cloud management platform 110 through their own user devices. The cloud management platform 110 can output relevant content for implementing software architecture design. Users can implement software architecture design by operating on the cloud management platform to address the many challenges continuously faced by the current software architecture.
[0107] In one example, the cloud management platform 110 can be logically divided into a design model framework as Figure 6 shown, including a software architecture design domain modeling language layer, a software architecture display layer, and an application layer.
[0108] Among them, the software architecture design domain modeling language layer includes a Git code repository, which supports the software architecture design domain language of the embodiments of the present application and can provide a publicly reusable software architecture design principle library, a failure module library, and a software service list that conform to the software architecture design domain language. The design principle library includes design principles for different software services. The failure module library includes failure solutions corresponding to different failure modes. The software service list includes description information of multiple software services, and the description information of each software service is used to describe the software service and at least one component within the software service. The software service here is a general term rather than a limitation. In specific implementations, the software service can be the entire software system, a service within the software system, a component within the service, or a microservice component. The relevant content of the Git code repository can also be stored in the storage nodes of the backend system or supported by the computing nodes of the backend system in terms of computing power.
[0109] The upper layer of the software architecture design domain modeling language layer can include a software architecture display layer and / or an application layer.
[0110] The presentation layer of the software architecture can provide relevant software developers with description information, design principles, fault solutions, architecture design views, etc. related to the existing software architecture design through the presentation page, so that relevant developers can know the dependencies between different components in the existing software architecture design, and can know the design principles, fault solutions, etc. associated with these software architecture designs. At the same time, the presentation layer can also display other resources related to the software architecture design to users.
[0111] As Figure 7 shown, the presentation page is an architecture digital page, including multiple operable controls, and these operable controls can include but are not limited to controls for the following: service catalog, specification, fault mode, resource model and problem analysis, API governance, scenario library, solution sand table, OS, image building, security, feature specification, feature tree, quality activities and events, etc. Alternatively, the architecture digital page can also include operable controls for other content, including but not limited to controls for the following: changelog, used to record and display the dynamics related to design changes and content changes; events, backtracking, and discussion perspectives, used to record and display relevant historical design events, or backtracking design events, or the process of viewing historical design events from a discussion perspective; cloud service application model, used to provide the final state model of cloud service applications; object storage service (OBS) resources, used to record OBS resources and manage the risks of using OBS in the live network; typical design scenarios, used to provide architectures related to some typical design scenarios; port resources, used to manage port - related resources based on the code repository.
[0112] Users can click on a certain control with the mouse pointer to enter the corresponding page, the display page corresponding to the control, to view more detailed content. For example, if a user clicks on the Figure 7 "service catalog" control with the mouse pointer, they can be redirected to the display page of the software service list, and this page can include description information and dependency diagrams related to the software architecture design of various software services saved in the Git code repository. The description information can include the service name and microservice components within the software service, etc. The dependency diagram can be a dependency relationship view grouped by cloud services, or a dependency relationship view grouped by roles, or a dependency relationship view grouped by both cloud services and roles, or a global details view of the software architecture design. Or, if a user clicks on the Figure 7The "Specification" control in it can jump to the design specification page, which may include the specification statistics of various service / microservice components, including but not limited to: architecture design, image building, compute node Agent, data plane Agent, global service, Java language, logging specification, billing design, relational database, SDI application development specification, security design, service process, etc.
[0113] If the user clicks with the mouse pointer Figure 7 The "Failure Mode" control in it can jump to the failure mode page, which is a potential failure mode and effects analysis (FMEA) page for recording the basic information and root causes of various common failure modes. Taking the common failure modes related to the application programming interface (API) as an example, this page is the fmea.ApiFmea page. As Figure 8 shown, for the failure of "high 5xx error rate when called", the basic information may include failure mode ID: api.api_called_5xx_high; code path: fmea.ApiFmea.Called.api_called_5xx_high; component: api. Root cause (1 / 1): High 5xx error rate when the API interface is called. For the failure of "overloaded when called", the basic information may include failure mode ID: api.api_called_overload; code path: fmea.ApiFmea.Called.api_called_overload; component: api. Root cause (1 / 1): Overloaded when the API interface is called.
[0114] The display pages corresponding to other operable controls also present the content of the Git code repository in a similar way, which will not be elaborated here.
[0115] This application layer enables relevant software developers to carry out software architecture design activities and complete a new software architecture design by leveraging various resources provided by the Git code repository. For example, the application layer can include description information of existing software services / components in the software service list provided by the Git code repository, and software developers can carry out software architecture design activities for the existing software services / components based on this software service list. Alternatively, the application layer allows users to customize software services, can receive description information of new software services added by software developers, establish dependency relationships for the software service and at least one component within the software service based on this description information, and then, based on these dependency relationships, query suitable design principles and fault solutions for the software service from the design principle library and fault module library provided by the Git code repository, thereby completing a complete software architecture design.
[0116] Taking application development based on the above Git code repository as an example, the above Git code repository can be imported into an integrated development environment (IDE) for assisting in developing programs, so that the IDE supports the domain language of the software architecture design in the embodiments of this application, enabling users (such as software developers) to use the IDE to carry out architecture design for software systems / services and to arrange and process architecture elements using the IDE. Meanwhile, in this IDE, existing software architecture design principles and fault solutions corresponding to various fault modes in the Git code repository can also be used to quickly index and utilize the content of software architecture design.
[0117] Based on this IDE, software architecture design activities are carried out using the content of the Git code repository. As Figure 9 shown, this software architecture design method can include the following steps:
[0118] S910: Determine the target information input or selected by the user in the cloud management platform.
[0119] In the embodiments of this application, the target information is used to describe the target software service and at least one component within the target software service. This target information is the definition of the target software service and is used to indicate the relationship between the target software service and at least one component.
[0120] Among them, as Figure 10As shown in the figure, when a software developer conducts software architecture design, the developer can first determine whether the target software service to be designed already exists in the Git code repository according to the requirements. If so, the developer can select the target software service and perform subsequent design based on the existing architecture of the target software service. This can be directly using the design, or making changes based on the existing design or content, such as changing the dependency relationship between the target software service and related components, or changing the design principle, or changing the fault solution, etc. If the target software service does not already exist in the Git code repository, the software developer can also define the target software service, which can be defined through a configuration page or by inputting a design document through an API interface. The embodiments of the present application do not limit this.
[0121] Exemplarily, the target software service can be a service in a software system, and its definition can be represented by the code shown in the following Example 3:
[0122] Example 3:
[0123]
[0124]
[0125] Based on the above code, it can be known the dependency relationship between service a in software system A and service b in system B. Therefore, it is marked with the identifier "b" of using service b for indexing to obtain the content required by service a from the Git code repository, so as to design the software architecture for service a.
[0126] It should be understood that this is only an example and not a limitation. In actual applications, the above target information can also be used to define the relationships (including dependency relationships) between software services and surrounding services, operating systems, middleware, programming languages, etc., so that subsequent software architecture design can be carried out based on these relationships.
[0127] S920: Establish a dependency relationship between the target software service and the at least one component according to the target information.
[0128] S930: Design the target software architecture of the target software service according to the dependency relationship, the design principle library, and the fault module library.
[0129] Specifically, as Figure 10As shown in the figure, when implementing S930, the target design principle can be selected from the design principle library based on the dependency relationship; and the target fault solution can be selected from the fault module library according to the dependency relationship. In one example, the target information includes the identifier of the at least one component. When selecting the target design principle from the design principle library according to the dependency relationship, indexing can be performed based on the identifier of the at least one component, and the design principle corresponding to the identifier can be selected from the design principle library as the target design principle; when selecting the target fault solution from the fault module library according to the dependency relationship, indexing can be performed based on the identifier of the at least one component, and the fault solution corresponding to the identifier can be selected from the fault module library as the target fault solution.
[0130] Taking the above Example 3 as an example, since Service a depends on Service b, the failure of Service a may also be caused by calling Service b or the failure defect of Service b itself. Therefore, the fault solutions associated with Service a can include the fault solutions associated with Service b. Therefore, the identifier of Service b can be used as an index to query the relevant design principles and fault solutions bound to the identifier of Service b in the Git code repository and select and use them as needed. Alternatively, other query metrics can also be used to select design principles or fault solutions for the target software service, which will not be elaborated here.
[0131] In an alternative implementation, the Git code repository can also provide an input interface. If the relevant fault modes and their solutions cannot be indexed in the Git code repository, the user can also add new fault modes and corresponding fault solutions to the Git code repository through this input interface. Specifically, receive the fault solution corresponding to the first fault mode input by the user in the cloud management platform, and the fault solution corresponding to the first fault mode includes the target fault solution; add the fault solution corresponding to the first fault mode to the fault module library.
[0132] For example, for the above Example 3, the description content of the software system's dependency relationship definition and risk analysis with the surrounding services is as shown in Example 4 below:
[0133] Example 4:
[0134]
[0135] S940: After completing the software system architecture design activity in the IDE, the design results of the target software architecture can be saved (or referred to as imported, merged, etc.) into the Git code repository, including saving the description information, design principles, fault solutions, etc. associated with the software architecture design, so as to enrich the architecture design resources of the Git code repository and enable the evolution of the software architecture design.
[0136] Meanwhile, relevant software developers can also view relevant content of the software architecture design through the display page, including but not limited to architecture design views, service / component description information, dependency relationships, design principles, fault solutions, etc. Taking the display of the complete software architecture view as an example, as Figure 11 shown, this view is the overall dependency graph of the complete software architecture design, including the dependency structure between the Agent and the data plane components respectively. Optionally, for the display of the software architecture design view, it can be to display the complete view of the software architecture design, or to display different views based on different roles / perspectives. Each role in the software development process can also view the software architecture design process of each service through this display page. The embodiments of the present application do not limit the view display method related to the software architecture design.
[0137] In an alternative implementation, a Json file of the software architecture design can also be generated for other software systems to read and analyze, improving the evolution ability of the software architecture design and providing support for the development and design of other software services / components, etc.
[0138] Thus, the cloud management platform and the IDE can describe software architecture design activities by designing a domain language for software architecture design, enabling all documented and unstructured software architecture design activities to be optimized to be described using a structured architecture design domain language, improving the work efficiency of software architecture design and the evolution of future-oriented software architecture design. At the same time, the platform allows the generalization and standardization of design principles and fault module libraries, enabling all design principles and fault module libraries to be incorporated into the architecture design domain language, improving the reusability of architecture design and avoiding repeated consideration of basic issues in architecture design. The platform manages software architecture design through the Git code repository, enabling the management of software architecture design baselines and evolutions using the branch and tag capabilities of the Git code repository in the case of multiple services and multiple architectures in the production environment, improving the consistency between software architecture design and runtime in the production environment.
[0139] In addition, since the cloud management platform can be opened to different tenants / users, and different users have different software development requirements and different uses of relevant services / components, in order to facilitate the maintenance of the cloud management platform for different users or production environments, this solution also supports the cloud management platform to statistically analyze the usage of relevant software architecture elements. The statistical analysis effect diagram is as Figure 12 shown, where the gray-filled rectangular box represents the usage degree of the corresponding service / component, and it can be found that there are differences in the availability of different architecture elements.
[0140] Combined with the above method embodiments, the embodiments of the present application further provide a cloud service system. The specific structure of the cloud service system can refer to the above Figure 5 shown, and can be used to execute the methods performed by the cloud management platform, the IDE, and each sub-module in the above method embodiments.
[0141] As Figure 13 shown, the cloud management platform 1300 may include: a determination module 1301, configured to determine target information input or selected by a user in the cloud management platform, where the target information is used to describe a target software service and at least one component within the target software service; a relationship establishment module 1302, configured to establish a dependency relationship between the target software service and the at least one component according to the target information; a design module 1303, configured to design a target software architecture of the target software service according to the dependency relationship, the design principle library, and the fault module library; and a storage module 1304, configured to save the design result of the target software architecture to the Git code repository. The cloud management platform includes a distributed version control system Git code repository, and the Git code repository includes a design principle library and a fault module library obtained based on a domain-specific language for software architecture design. The design principle library includes design principles for different software services, and the fault module library includes fault solutions corresponding to different fault modes.
[0142] It should be noted that the division of units in the embodiments of the present application is illustrative, merely a logical function division, and there may be other division methods in actual implementation. In the embodiments of the present application, each functional unit may be integrated in one processing unit, or each unit may exist physically alone, or two or more units may be integrated in one unit. The above integrated unit may be implemented in the form of hardware or in the form of a software functional unit.
[0143] If the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the embodiments of the present application. The foregoing storage medium includes: various media such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc that can store program codes.
[0144] The present application also provides a computing device 1400. As Figure 14 shown, the computing device 1400 includes: a bus 1402, a processor 1404, a memory 1406, and a communication interface 1408. The processor 1404, the memory 1406, and the communication interface 1408 communicate with each other via the bus 1402. The computing device 1400 may be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 1400.
[0145] The bus 1402 may be a peripheral component interconnect (PCI) bus, an extended industry standard architecture (EISA) bus, or the like. The bus can be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience in representation, Figure 14 only one line is shown in the figure, but it does not mean that there is only one bus or one type of bus. The bus 1402 may include a path for transmitting information between various components of the computing device 1400 (for example, the memory 1406, the processor 1404, and the communication interface 1408).
[0146] The processor 1404 may include any one or more of processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0147] The memory 1406 may include a volatile memory, such as a random access memory (RAM). The processor 1404 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0148] The executable program code is stored in the memory 1406, and the processor 1404 executes the executable program code to implement the functions of the aforementioned cloud management platform, Git code repository, and IDE respectively, so as to implement the software architecture design method of the embodiments of the present application. That is, the memory 1406 stores instructions for executing the software architecture design method of the embodiments of the present application.
[0149] Alternatively, the executable code is stored in the memory 1406, and the processor 1404 executes the executable code to implement the functions of the aforementioned cloud management platform, Git code repository, and IDE respectively, so as to implement the architecture design method. That is, the memory 1406 stores instructions for executing the software architecture design method of the embodiments of the present application.
[0150] The communication interface 1408 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement the communication between the computing device 1400 and other devices or communication networks.
[0151] The embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device. The computing device can 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 can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0152] As Figure 15 shown, the computing device cluster includes at least one computing device 1400. The memory 1406 in one or more computing devices 1400 in the computing device cluster can store the same instructions for executing the method of the embodiments of the present application.
[0153] In some possible implementation manners, the memory 1406 in one or more computing devices 1400 in the computing device cluster can also store partial instructions for executing the method of the embodiments of the present application respectively. In other words, the combination of one or more computing devices 1400 can jointly execute the instructions for executing the method of the embodiments of the present application.
[0154] It should be noted that the memories 1406 in different computing devices 1400 in the computing device cluster can store different instructions, which are respectively used to execute partial functions of the cloud service system. That is, the instructions stored in the memories 1406 in different computing devices 1400 can implement the functions of one or more modules of the cloud management platform, Git code repository, and IDE.
[0155] In some possible implementation manners, one or more computing devices in the computing device cluster can be connected through a network. Wherein, the network can be a wide area network or a local area network, etc. Figure 16A possible implementation is shown. As Figure 16 shown, two computing devices 1400A and 1400B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this type of possible implementation, the memory 1406 in computing device 1400A stores instructions for implementing the functions of the cloud management platform. At the same time, the memory 1406 in computing device 1400B stores instructions for implementing the functions of the code repository.
[0156] Figure 16 The connection method between the computing device clusters shown can be considered that since the design method provided in this application requires users to customize function configurations (such as storing a large amount of data) and implement computing functions, it is therefore considered to hand over the functions implemented by the code repository to computing device 1400B for execution.
[0157] It should be understood that Figure 16 the functions of computing device 1400A shown in
[0158] can also be completed by multiple computing devices 1400. Similarly, the functions of computing device 1400B can also be completed by multiple computing devices 1400. Figure 15 and Figure 16 the connection method of the described computing device cluster. The difference is that the memory 1406 in one or more computing devices 1400 in this computing device cluster may store the same instructions for executing the method.
[0159] In some possible implementation manners, the memory 1406 of one or more computing devices 1400 in this computing device cluster may also separately store partial instructions for executing the software architecture design method. In other words, a combination of one or more computing devices 1400 can jointly execute the instructions for executing the software architecture design method.
[0160] This application embodiment also provides a computer program product containing instructions. The computer program product may be software or a program product containing instructions that can run on a computing device or be stored in any available medium. When the computer program product runs on at least one computing device, it causes at least one computing device to execute the software architecture design method.
[0161] The embodiments of the present application also provide a computer-readable storage medium. The computer-readable storage medium may be any available medium that can be stored by a computing device or a data storage device such as a data center including one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive), etc. The computer-readable storage medium includes instructions that direct the computing device to execute the software architecture design method.
[0162] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit them. 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 they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
[0163] The embodiments of the present application also relate to a processor that is used to call a computer program or computer instructions stored in a memory so that the processor executes the above method embodiments.
[0164] Among them, the processor mentioned anywhere above may be a general-purpose central processing unit, a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the programs of the methods in the Figure 9 embodiments shown above. The memory mentioned anywhere above may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM), etc.
[0165] It should be understood that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0166] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured article including an instruction device, and the instruction device implements the process Figure 1One or more processes and / or blocks Figure 1 The functions specified in one or more blocks.
[0167] These computer program instructions can also be loaded onto a computer or other programmable device, so that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process. Thus, the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one Figure 1 One or more processes and / or blocks Figure 1 or more processes and / or blocks.
[0168] Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application also intends to include these changes and modifications.
Claims
1. A software architecture design method based on cloud technology, characterized in that: Applied to a cloud management platform, the cloud management platform includes a distributed version control system Git code repository, the Git code repository includes a design principle library and a fault module library obtained based on a software architecture design domain language, the design principle library includes design principles for different software services, and the fault module library includes fault solutions corresponding to different fault modes, the method includes: Determine target information input or selected by a user on the cloud management platform, the target information being used to describe a target software service and at least one component within the target software service; Establishing a dependency relationship between the target software service and the at least one component according to the target information; Designing a target software architecture of the target software service according to the dependency relationship, the design principle library and the fault module library; The design results of the target software architecture are saved to the Git code repository.
2. The method according to claim 1, characterized in that Designing a target software architecture of the target software service according to the dependency relationship, the design principle library and the fault module library, including: According to the dependency relationship, select a target design principle from the design principle library; According to the dependency relationship, selecting a target fault solution from the fault module library; A target software architecture of the target software service is designed according to the dependency relationship, the target design principle and the target fault solution.
3. The method according to claim 2, characterized in that The target information includes an identifier of the at least one component, and the selecting a target design principle from the design principle library according to the dependency relationship includes: Indexing based on the identifier of the at least one component, selecting a design principle corresponding to the identifier from the design principle library as the target design principle; According to the dependency relationship, selecting a target fault solution from the fault module library includes: An index is performed based on the identifier of the at least one component, and a fault solution corresponding to the identifier is selected from the fault module library as a target fault solution.
4. The method according to claim 3, characterized in that If the target fault solution is not indexed in the fault module library, the method further includes: Receiving a fault solution corresponding to a first fault mode input by a user on the cloud management platform, where the fault solution corresponding to the first fault mode includes the target fault solution; Add the fault solution corresponding to the first fault mode to the fault module library.
5. The method according to any one of claims 1 to 4, characterized in that The cloud management platform includes an integrated development environment IDE, and the method further includes: Import the contents of the Git code repository into the IDE.
6. The method according to any one of claims 1 to 5, characterized in that The Git code repository also includes a software service list, the software service list includes description information of multiple first software services, the description information of each first software service is used to describe the first software service and at least one component in the first software service, if the multiple first software services do not include the target software service, the method further includes: The target information is added to the software service list.
7. The method according to any one of claims 1 to 6, characterized in that The method further comprises: The architecture design view of the target software architecture is output on a presentation page associated with the cloud management platform.
8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: Performing statistical analysis on the usage of each software service or component in the Git code repository to obtain statistical analysis results; The statistical analysis results are output on a display page associated with the cloud management platform.
9. The method according to any one of claims 1 to 8, characterized in that The display page associated with the cloud management platform is a web page.
10. A cloud management platform, characterized in that: The cloud management platform includes a distributed version control system Git code repository, the Git code repository includes a design principle library and a fault module library based on the software architecture design domain language, the design principle library includes design principles for different software services, the fault module library includes fault solutions corresponding to different fault modes, and the cloud management platform includes: A determination module, used to determine target information input or selected by a user on the cloud management platform, wherein the target information is used to describe a target software service and at least one component within the target software service; A connection module, used to establish a dependency relationship between the target software service and the at least one component according to the target information; A design module, used for designing a target software architecture of the target software service according to the dependency relationship, the design principle library and the fault module library; A storage module is used to save the design results of the target software architecture to the Git code repository.
11. The cloud management platform according to claim 10, characterized in that: The design module is used to: According to the dependency relationship, select a target design principle from the design principle library; According to the dependency relationship, selecting a target fault solution from the fault module library; A target software architecture of the target software service is designed according to the dependency relationship, the target design principle and the target fault solution.
12. The cloud management platform according to claim 11, characterized in that: The target information includes an identification of the at least one component, and the design module is used to: Indexing based on the identifier of the at least one component, selecting a design principle corresponding to the identifier from the design principle library as the target design principle; According to the dependency relationship, selecting a target fault solution from the fault module library includes: An index is performed based on the identifier of the at least one component, and a fault solution corresponding to the identifier is selected from the fault module library as a target fault solution.
13. The cloud management platform according to claim 12, characterized in that: If the target fault solution is not indexed in the fault module library, the cloud management platform further includes: A transceiver module, configured to receive a fault solution corresponding to a first fault mode input by a user on the cloud management platform, wherein the fault solution corresponding to the first fault mode includes the target fault solution; The storage module is also used to add the fault solution corresponding to the first fault mode to the fault module library.
14. The cloud management platform according to any one of claims 10 to 13, characterized in that: The cloud management platform includes an integrated development environment IDE, and the cloud management platform also includes: A loading module is used to import the content of the Git code repository into the IDE.
15. The cloud management platform according to any one of claims 10 to 14, characterized in that: The Git code repository also includes a software service list, the software service list includes description information of multiple first software services, the description information of each first software service is used to describe the first software service and at least one component in the first software service, if the multiple first software services do not include the target software service, the storage module is further used to: The target information is added to the software service list.
16. The cloud management platform according to any one of claims 10 to 15, characterized in that: The cloud management platform also includes: A presentation page is used to output an architectural design view of the target software architecture on a presentation page associated with the cloud management platform.
17. The cloud management platform according to any one of claims 10 to 16, characterized in that: The cloud management platform also includes: A statistical module is used to perform statistical analysis on the usage of each software service or component in the Git code repository to obtain statistical analysis results; The display page is also used to output the statistical analysis results on a display page associated with the cloud management platform.
18. The cloud management platform according to any one of claims 10 to 17, characterized in that: The display page associated with the cloud management platform is a web page.
19. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster is caused to perform the method according to any one of claims 1 to 9.
20. A computer-readable storage medium, characterized in that: The method comprises 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 9.
21. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 9.