Distributed high-availability code hosting and research system
By introducing distributed high-availability code hosting and R&D systems into distributed systems, integrating R&D collaboration, code management, storage and operation and maintenance monitoring functions, the high availability problems caused by failures in distributed systems are solved, and the system is efficient, safe and stable.
Patent Information
- Application Number
- CN202411658016.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-19
- Publication Date
- 2025-03-28
AI Technical Summary
In large-scale distributed systems, when complex dependencies between modules cause failure, avalanche or domino failure may be triggered, affecting the high availability and smooth operation of the system.
A distributed high-availability code hosting and R&D system is proposed. Through the comprehensive integration of R&D collaborative units, code management units, code storage units and operation and maintenance monitoring units, the safe storage and protection of the code are realized, and the operation and maintenance process is comprehensively monitored to ensure the high availability and smooth operation of the system.
It realizes a comprehensive integration from code collaborative development, management, storage to operation and maintenance monitoring, ensures secure storage and protection of code, timely monitoring of operation and maintenance processes, and improves the high availability and smooth operation of the system.
Smart Images

Figure CN119718457A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to a distributed high-availability code hosting and development system. Background Art
[0002] High availability means that the services provided by the system must always be available, but failures are inevitable, especially in distributed systems. Facing uncontrollable user traffic and computer room environments, system failures will become more complex and unpredictable. In large-scale distributed systems, there are intricate dependencies between modules. If any link fails, it may lead to avalanche-like and domino-like failures. It can even be asserted that failures have become the norm, which will have an adverse impact on the company and affect the quality and efficiency of its R&D. Summary of the invention
[0003] The present disclosure aims to solve one of the technical problems in the related art at least to some extent.
[0004] To this end, one purpose of the present invention is to propose a distributed high-availability code hosting and R&D system to achieve comprehensive integration from code collaborative development, management, storage to operation and maintenance monitoring, to achieve safe storage and protection of the code, to comprehensively monitor the operation and maintenance process, and to ensure the high availability and smooth operation of the system.
[0005] To achieve the above objectives, an embodiment of the present disclosure provides a distributed high-availability code hosting and development system, including:
[0006] R&D collaboration unit, used for collaborative code development;
[0007] A code management unit, used for managing codes;
[0008] A code storage unit, used for storing and safely protecting the code;
[0009] An operation and maintenance monitoring unit is used to monitor the operation and maintenance of the distributed high-availability code hosting and research and development system.
[0010] Optionally, the R&D collaboration unit includes:
[0011] The single-warehouse development collaboration subunit is used for single-warehouse collaborative development of code;
[0012] The multi-warehouse development collaboration subunit is used for multi-warehouse collaborative development of code.
[0013] Optionally, the single warehouse development coordination subunit includes:
[0014] A code browsing module, used for navigating and displaying the codes stored in the code management unit;
[0015] A merge request module, used to receive and manage single-repository code merge requests for any code repository in the code management unit;
[0016] A code review module, used to review the single warehouse code before submitting it to the code library corresponding to the single warehouse code in the code management unit, and obtain a single warehouse code review result;
[0017] A file search module, used to receive a file search instruction and search for a file corresponding to the file search instruction in the distributed high-availability code hosting and development system;
[0018] A protection branch module, used to set operation permissions for the code of any code library in the code management unit, wherein the operation permissions include operation permission information;
[0019] The access control closing module is used to perform a quality inspection on the code corresponding to the single warehouse code merging request before performing a merging operation on the code corresponding to the single warehouse code merging request, and if the quality inspection result does not meet the first quality inspection requirement, stop the merging operation on the code corresponding to the single warehouse code merging request.
[0020] Optionally, the multi-warehouse development coordination subunit includes:
[0021] A multi-warehouse inspection module, used to inspect the cross-warehouse code before submitting it to a plurality of code libraries corresponding to the cross-warehouse code in the code management unit, and obtain a multi-warehouse code inspection result;
[0022] An identifier conversion module, used to store reference relationships between multiple code libraries in the code management unit, and convert and map identifiers of the code libraries according to the reference relationships;
[0023] A multi-warehouse submission module, used to receive the submitted cross-warehouse code and submit the cross-warehouse code to multiple code libraries corresponding to the cross-warehouse code in the code management unit;
[0024] A merge module for receiving and managing cross-warehouse merge requests for multiple code bases in the code management unit;
[0025] An atomic merge module, used to perform an atomic merge operation on the code corresponding to the cross-repository merge request;
[0026] A fine-grained permission module is used to set cross-warehouse operation permissions for multiple code repositories in the code management unit.
[0027] Optionally, the code management unit includes:
[0028] The repository and branch management subunit is used to manage the code base and branches corresponding to the code;
[0029] The organizational authority management subunit is used to manage the organizational authority corresponding to the code;
[0030] The inspection and access control management subunit is used to inspect the codes and manage access control;
[0031] The system integration subunit is used to realize data sharing and data interaction across subunits among the warehouse and branch management subunit, the organization authority management subunit, and the inspection and access control management subunit.
[0032] Optionally, the warehouse and branch management subunit includes:
[0033] A warehouse management module is used to manage the warehouse of the code library corresponding to the code, wherein the warehouse management includes creation, configuration, maintenance, and deletion;
[0034] A branch management module, used to manage the code branches corresponding to the code, wherein the branch management includes creation, merging, deletion, and synchronization;
[0035] A tag management module, used to manage tags of codes, wherein the tag management includes creation, deletion, and query;
[0036] The history management module is used to store the change history information corresponding to the code library.
[0037] Optionally, the organization authority management subunit includes:
[0038] A member management module, used to add, delete, modify and manage the status of organizational members corresponding to the distributed high-availability code hosting and research and development system;
[0039] A role management module, used to manage the identity hierarchy of members of the organization;
[0040] A rights management module, used to manage access rights corresponding to the identity level;
[0041] The organization management module is used to manage the structure and hierarchical relationship between the organization members.
[0042] Optionally, the inspection and access control management subunit includes:
[0043] A file comparison module is used to receive a file comparison instruction, and compare and analyze the differences between different codes corresponding to the file comparison instruction to obtain a file comparison result;
[0044] an access control judgment module, configured to perform a quality check on the code submitted to the code library, and stop submitting the code to the code library if the quality check result does not meet the second quality check requirement;
[0045] Code review module, used to provide code review and annotation functions;
[0046] The code review module is used to review and test the code.
[0047] Optionally, the system integration subunit includes:
[0048] The requirement system module is used to record, organize and analyze the project requirements corresponding to the code;
[0049] Defect system module, used to record, track and manage error information in the collaborative development and management of code;
[0050] Continuous integration and continuous deployment modules, used to create code build processes, test processes, and deployment processes;
[0051] A custom expansion module is used to expand the system integration subunit according to the project requirements.
[0052] Optionally, the code storage unit includes:
[0053] A storage mode subunit, used to set and manage the storage mode when storing the code;
[0054] The storage performance subunit is used to optimize the performance of code storage and access;
[0055] The security protection subunit is used to provide security protection for resources in the distributed high-availability code hosting and development and operation system.
[0056] Optionally, the safety protection subunit includes:
[0057] A vulnerability perception module is used to perceive security vulnerabilities in the distributed high-availability code hosting and research and development system, and evaluate the security status of the distributed high-availability code hosting and research and development system based on the security vulnerability perception results;
[0058] An intelligent monitoring module, used to monitor the operating status and security status of the distributed high-availability code hosting and research and development system;
[0059] An anti-tampering module is used to monitor the integrity of files in the distributed high-availability code hosting and development and operation system;
[0060] An encryption storage module, used to receive encryption instructions and encrypt data corresponding to the encryption instructions in the distributed high-availability code hosting and research and development system;
[0061] A blocking interval module, used for, when an attack behavior against the distributed high-availability code hosting and development and operation system is detected, cutting off the connection between the distributed high-availability code hosting and development and operation system and the threat source corresponding to the attack behavior, and recording the attack behavior;
[0062] A minimum authority module, used to determine the maximum authority of an organization member, wherein the maximum authority is the minimum authority of the project requirement corresponding to the organization member;
[0063] A situation awareness module, used to collect and analyze security data of the distributed high-availability code hosting and research and development system, and generate a security situation map based on the collected and analyzed security data;
[0064] An attack detection module is used to detect attack behaviors against the distributed high-availability code hosting and development and operation system.
[0065] Optionally, the operation and maintenance monitoring unit includes:
[0066] The existing network alarm subunit is used to monitor the running status of the distributed high-availability code hosting and research and operation system, and issue a first alarm message when it is detected that the distributed high-availability code hosting and research and operation system meets the system abnormality condition;
[0067] The live network unplugging test subunit is used to simulate user behavior to test the performance and availability of the distributed high-availability code hosting and research and development system, and generate a test report;
[0068] An application programming interface monitoring subunit is used to monitor the performance and availability of the application programming interface, and issue a second alarm message when it is detected that the application programming interface meets an interface abnormality condition;
[0069] A full-link monitoring subunit, used to monitor the operating status of the business link corresponding to the distributed high-availability code hosting and development system, and generate a business monitoring report;
[0070] A storage bandwidth monitoring subunit is used to monitor the bandwidth usage information of the distributed high-availability code hosting and research and development system, and issue a third alarm information when the bandwidth usage information meets the bandwidth abnormality condition;
[0071] A traffic monitoring subunit, used to monitor the traffic usage information of the distributed high-availability code hosting and research and development system, and generate a traffic analysis report;
[0072] A capacity monitoring subunit, configured to monitor the resource capacity of the distributed high-availability code hosting and development and operation system, and to issue a fourth alarm message when the resource capacity meets a capacity abnormality condition;
[0073] An upgrade and operation subunit, used to upgrade and operate the distributed high-availability code hosting and research and development system;
[0074] The abnormal access monitoring functional subunit is used to monitor abnormal access behaviors in the distributed high-availability code hosting and development and operation system.
[0075] In summary, the system provided by the present disclosure can achieve comprehensive integration from code collaborative development, management, storage to operation and maintenance monitoring, achieve safe storage and protection of code, comprehensively monitor the operation and maintenance process, and ensure high availability and smooth operation of the system.
[0076] Additional aspects and advantages of the present disclosure will be given in part in the following description and in part will be obvious from the following description or learned through practice of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0077] The above and / or additional aspects and advantages of the present disclosure will become apparent and easily understood from the following description of the embodiments in conjunction with the accompanying drawings, in which:
[0078] Figure 1 A schematic diagram of the structure of a distributed high-availability code hosting and development system provided by an embodiment of the present disclosure;
[0079] Figure 2 A schematic diagram of the structure of a research and development collaboration unit provided in an embodiment of the present disclosure;
[0080] Figure 3 A schematic diagram of the structure of a code management unit provided in an embodiment of the present disclosure;
[0081] Figure 4 A schematic diagram of the structure of a code storage unit provided in an embodiment of the present disclosure;
[0082] Figure 5 A schematic diagram of the structure of an operation and maintenance monitoring unit provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0083] Embodiments of the present disclosure are described in detail below, and examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to be used to explain the present disclosure, and should not be construed as limiting the present disclosure.
[0084] The present disclosure is described in detail below with reference to specific embodiments.
[0085] In a first embodiment, Figure 1 This is a schematic diagram of the structure of a distributed high-availability code hosting and development system provided by an embodiment of the present disclosure. Figure 1 As shown, the distributed high-availability code hosting and development system 1 includes:
[0086] R&D collaboration unit 2, used for collaborative code development;
[0087] A code management unit 3, used for managing codes;
[0088] A code storage unit 4, used for storing and protecting the code;
[0089] The operation and maintenance monitoring unit 5 is used to monitor the operation and maintenance of the distributed high-availability code hosting and research and development system.
[0090] It should be noted that the R&D collaboration unit 2, the code management unit 3, the code storage unit 4, and the operation and maintenance monitoring unit 5 are all included in the distributed high-availability code hosting and R&D and operation system 1, which can achieve comprehensive integration from code collaborative development, management, storage to operation and maintenance monitoring, ensure safe storage and protection of the code, and comprehensively monitor the operation and maintenance process to ensure the high availability and smooth operation of the system.
[0091] Optionally, Figure 2 This is a schematic diagram of the structure of a research and development collaboration unit provided by an embodiment of the present disclosure. Figure 1 and Figure 2 As shown, the R&D collaboration unit 2 includes a single-warehouse development collaboration sub-unit 6 and a multi-warehouse development collaboration sub-unit 7.
[0092] According to some embodiments, the single-warehouse development collaboration subunit is used to perform single-warehouse collaborative development of codes, where the single-warehouse refers to a code base in the code management unit.
[0093] In some embodiments, Figure 2 As shown, the single warehouse development collaborative subunit 6 includes:
[0094] The code browsing module 601 is used to navigate and display the code stored in the code management unit. Therefore, the user can efficiently navigate and view the source code in the code library. In addition, the code browsing module can also provide an intuitive interface, support syntax highlighting, code folding, search and filtering functions, so that the user can quickly locate and understand the code structure and enhance the code readability.
[0095] The merge request module 602 is used to receive and manage single-repository code merge requests for any code repository in the code management unit, where single-repository code merge requests include but are not limited to pull requests (Pull Requests), merge requests (Merge Requests), etc. Therefore, the system can allow developers to submit merge requests, and other team members can review, discuss and approve them, which can enhance team collaboration capabilities and simplify version control.
[0096] The code review module 603 is used to review the single-warehouse code before submitting it to the code base corresponding to the single-warehouse code in the code management unit, and obtain the single-warehouse code review result. Therefore, by conducting a detailed review of the submitted code, developers can deeply understand the code changes and put forward improvement suggestions. Among them, when reviewing the single-warehouse code, functions such as code comparison, annotation and discussion can be provided.
[0097] The file search module 604 is used to receive the file search instruction and search for the file corresponding to the file search instruction in the distributed high-availability code hosting and research and development system. Therefore, the user can quickly search for files and directories in the system, so that the user can efficiently find the required files, improve the search efficiency, and enhance the user experience. Among them, the file search module can support functions such as keyword search, fuzzy matching and file type filtering.
[0098] The protection branch module 605 is used to set the operation permission for the code of any code base in the code management unit, wherein the operation permission includes the operation permission information. Therefore, important codes can be protected from unauthorized changes, security can be improved, and code stability can be ensured. The operation permission information includes but is not limited to code submission permission information and code merge permission information, and the administrator can set the operation permission information to limit the direct submission and merge operations of the protected code.
[0099] The merge access control module 606 is used to perform quality inspection on the code corresponding to the single-warehouse code merge request before merging the code corresponding to the single-warehouse code merge request. If the quality inspection result does not meet the first quality inspection requirement, the merge operation on the code corresponding to the single-warehouse code merge request is stopped. Therefore, it is possible to prevent code that does not meet the requirements from entering the code base, improve code quality, reduce the introduction of errors, and enhance the development process. Among them, when quality inspecting the code corresponding to the single-warehouse code merge request, a series of inspection and verification operations can be performed to ensure that the code meets the first quality inspection requirement, including but not limited to code coverage, test pass rate, etc.
[0100] According to some embodiments, the multi-warehouse development collaboration subunit is used to perform multi-warehouse collaborative development of codes, where multi-warehouse refers to multiple code bases in the code management unit.
[0101] In some embodiments, Figure 2 As shown, the multi-warehouse development coordination subunit 7 includes:
[0102] The multi-warehouse review module 701 is used to review the cross-warehouse code before submitting it to the multiple code bases corresponding to the cross-warehouse code in the code management unit, and obtain the multi-warehouse code review result; therefore, before submitting the code to multiple code bases, the developer can conduct a unified review and examination of the changes to the cross-warehouse code to ensure that all relevant changes are fully verified and discussed. Among them, when reviewing the cross-warehouse code, functions such as cross-warehouse code comparison, annotation, discussion and approval can be provided.
[0103] The identity (ID) conversion module 702 is used to store the reference relationship between multiple code bases in the code management unit, and convert and map the identifiers of the code bases according to the reference relationship; thus, it can allow developers to seamlessly reference and navigate code changes between multiple code bases, and ensure that the reference relationship across repositories is accurate. The identifiers include but are not limited to code submission hashes, code branch names, etc.
[0104] The multi-warehouse submission module 703 is used to receive submitted cross-warehouse codes and submit the cross-warehouse codes to multiple code repositories corresponding to the cross-warehouse codes in the code management unit; therefore, by providing a unified submission interface and process, developers can submit code changes to multiple code repositories at the same time. Secondly, it supports cross-warehouse submission dependencies and sequence control, which can ensure that all related changes can be submitted synchronously and remain consistent.
[0105] The merge module 704 is used to receive and manage cross-repository merge requests for multiple code bases in the code management unit; wherein, cross-repository merge requests include but are not limited to Pull Requests, Merge Requests, etc. Therefore, when it is necessary to selectively merge some changes, the system can allow developers to select the required code changes from multiple merge requests and merge them into the target code base.
[0106] The atomic merge module 705 is used to perform atomic merge operations on the code corresponding to the cross-repository merge request; therefore, when processing the merge operations of sub-modules or sub-projects in cross-repositories, it can ensure that these operations are atomic, that is, either all succeed or all fail and roll back to the state before the merge. It can provide a safe and reliable way to merge the changes of sub-modules or sub-projects into the code base while maintaining the independence and maintainability of these sub-modules or sub-projects.
[0107] The fine-grained permission module 706 is used to set cross-warehouse operation permissions for multiple code bases in the code management unit, where the cross-warehouse operation permissions include but are not limited to access permissions and modification permissions. Therefore, the system can allow administrators to set fine-grained permission rules for different users or roles to control their access and operation permissions to different repositories and code changes.
[0108] Optionally, Figure 3 This is a schematic diagram of the structure of a code management unit provided by an embodiment of the present disclosure. Figure 1 and Figure 3 As shown, the code management unit 3 includes: a warehouse and branch management subunit 8, an organization authority management subunit 9, a review and access control management subunit 10 and a system integration subunit 11.
[0109] According to some embodiments, the repository and branch management subunit 8 is used to manage the code base and branches corresponding to the code.
[0110] In some embodiments, Figure 3 As shown, the warehouse and branch management subunit 8 includes:
[0111] The warehouse management module is used to manage the code library corresponding to the code, where warehouse management includes operations such as creation, configuration, maintenance, and deletion. Therefore, by providing comprehensive management functions for the code library, it can ensure that the code can be stored and accessed safely and orderly.
[0112] The branch management module is used to manage the code branches corresponding to the code. Branch management includes operations such as creation, merging, deletion, and synchronization. Therefore, the system can support parallel development of code, so that team members can work independently on different branches without interfering with each other. Code branches include but are not limited to master branches and release branches.
[0113] The tag management module is used to manage the tags of the code, where tag management includes operations such as creation, deletion, and query; therefore, specific versions or submissions in the code base can be marked for quick subsequent location or reference.
[0114] The history management module is used to store the change history information corresponding to the code base, where the change history information includes but is not limited to submission records, merge records, tag records, etc. Therefore, by recording and tracking all change histories in the code base, functions such as viewing, comparing and restoring the history records can be provided.
[0115] According to some embodiments, the organization authority management subunit is used to manage the organization authority corresponding to the code.
[0116] In some embodiments, Figure 3 As shown, the organization authority management subunit 9 includes:
[0117] The member management module is used to add, delete, modify and manage the status of the organization members corresponding to the distributed high-availability code hosting and development system. Therefore, it can ensure the accuracy and completeness of the member information within the organization, and at the same time provide member identity verification and authorization functions.
[0118] The role management module is used to manage the identity hierarchy of organization members; therefore, different roles within the organization and the permissions these roles possess can be defined and managed, which can simplify the permission allocation process and make it easier for administrators to manage the access rights of organization members.
[0119] The permission management module is used to manage the access rights corresponding to the identity level. Therefore, through fine-grained permission control, the access rights of organization members to code and resources can be controlled to ensure the security and controllability of code and resources.
[0120] The organization management module is used to define and manage the structure and hierarchical relationships between organizational members. Therefore, it can provide clear division and management of internal departments, teams and projects of the organization, which helps to optimize the allocation of organizational resources and improve work efficiency.
[0121] According to some embodiments, the inspection and access control management subunit 10 is used to inspect the code and perform access control management.
[0122] In some embodiments, Figure 3 As shown, the inspection and access control management subunit 10 includes:
[0123] The file comparison module is used to receive file comparison instructions, and compare and analyze the differences between different codes corresponding to the file comparison instructions to obtain file comparison results. Therefore, by comparing and analyzing the differences between code files, developers and auditors can quickly identify the content and impact of code changes. Among them, when comparing and analyzing the differences between different codes corresponding to file comparison instructions, detailed comparison of the content, structure, format, etc. of the code files is supported.
[0124] The access control judgment module is used to perform quality inspection on the code submitted to the code base. If the quality inspection result does not meet the second quality inspection requirement, the code submission to the code base will be stopped. Therefore, as an important checkpoint in the code submission process, it reviews and judges the code submission according to the preset rules and conditions. Only the code submission that meets the second quality inspection requirement can pass the access control and enter the code base, which can improve the code quality and reduce the introduction of errors. Among them, the second quality inspection requirement can be adjusted according to the actual application scenario.
[0125] The code review module is used to provide code review and annotation functions. Therefore, it can provide a platform for developers and reviewers to communicate and discuss code. By supporting detailed code reviews and annotations, it can help developers understand code logic, find potential problems and improve code quality.
[0126] The code review module is used to review and test the code. As a key link in ensuring code quality, detailed review and testing of the code can ensure the correctness, security and maintainability of the code.
[0127] According to some embodiments, the system integration subunit 11 is used to realize data sharing and data interaction across subunits between the warehouse and branch management subunits, the organization authority management subunits, and the inspection and access control management subunits. Among them, by connecting and integrating the key parts of each subunit in the code management unit, it can be ensured that the entire code management unit can work seamlessly to achieve efficient, secure and controllable management of the code. By integrating each subunit, the overall optimization and collaborative work of the code management unit are achieved, and data sharing and interaction functions across subunits are provided, which can ensure the consistency and synchronization of information between each subunit.
[0128] In some embodiments, the system integration subunit 11 includes:
[0129] The requirement system module is used to record, organize and analyze the project requirements corresponding to the code. Therefore, it can ensure that the project team has a clear and accurate understanding of the project requirements and provide clear guidance for subsequent development and testing work.
[0130] The defect system module is used to record, track and manage error information during the collaborative development and management of the code, where the error information includes but is not limited to defects, errors, etc. Therefore, it can help the development team to identify and solve problems in a timely manner and improve the quality and stability of the software.
[0131] The Continuous Integration / Continuous Delivery (C1 / CD) module is used to create code build processes, test processes, and deployment processes; therefore, by automating the build, test, and deployment processes, the efficiency and quality of software development can be improved.
[0132] Customized extension modules are used to extend the system integration subunit according to project requirements. Therefore, by allowing the system integration subunit to be customized and extended according to project requirements, flexibility and scalability can be provided, so that the system integration subunit can better adapt to different project environments and requirements.
[0133] Optionally, Figure 4 Schematic diagram of a code storage unit provided by an embodiment of the present disclosure. Figure 1 and Figure 4 As shown, the code storage unit 4 includes: a storage mode subunit 12, a storage performance subunit 13 and a security protection subunit 14.
[0134] According to some embodiments, the storage mode subunit 12 is used to set and manage the storage mode when storing the code, which can determine how the code is organized and distributed on the storage medium, and how to efficiently access and manage the code. The storage mode includes the storage method and structure.
[0135] In some embodiments, Figure 4 As shown, the storage mode includes at least one of the following:
[0136] Multi-center refers to the storage of data distributed in multiple geographic locations or data centers. This model aims to improve data availability and fault tolerance, because when one data center fails, data in other data centers is still available. Multi-center storage is often used in critical business scenarios to ensure that business can continue to operate in the event of a disaster. It involves data replication and synchronization to ensure data consistency between various data centers.
[0137] Disaster recovery is a measure designed to improve system availability and data recovery capabilities. In the disaster recovery storage mode, data is not only stored in the main data center, but also backed up in a remote disaster recovery center. When the main data center encounters a catastrophic failure, the data in the disaster recovery center can be used as the basis for recovery to ensure business continuity and minimize data loss. Disaster recovery technology includes data backup, recovery strategy, disaster drills, etc.
[0138] Multi-active is a highly available data storage architecture that allows data to be read and written simultaneously in multiple geographic locations or data centers. The core of this model is to ensure data consistency between data centers while providing high availability and load balancing. In a multi-active architecture, each data center can serve as a primary data center to handle read and write requests, and data is synchronized and replicated between data centers. When a data center fails, other data centers can seamlessly take over its work to ensure business continuity.
[0139] Containerized deployment is a method of packaging software code and all its required components (such as libraries, frameworks, and other dependencies) together and deploying them in containers. A container is a lightweight, portable software runtime environment that enables applications to move and run seamlessly between different platforms and infrastructures. In containerized deployment, each container contains everything needed to run an application, which simplifies the application deployment and management process. Containerized deployment also provides resource isolation and elastic scaling capabilities, allowing applications to use computing resources more efficiently.
[0140] Elastic scaling is a technology that automatically adjusts computing resources and storage resources according to load conditions. It can dynamically increase or decrease resources according to changes in system load to ensure system performance and reliability. When the system load increases, elastic scaling automatically increases computing resources and storage resources to meet system needs; when the system load decreases, it reduces resources accordingly to reduce system costs. Elastic scaling technology enables applications to efficiently respond to load changes, improve resource utilization and system performance.
[0141] According to some embodiments, the storage performance subunit 13 is used to optimize the performance of code storage and access. Specifically, the code storage and access performance can be improved by focusing on the efficiency and speed of code storage and using various technical means and optimization measures to meet the needs of software development and project management.
[0142] In some embodiments, Figure 4 As shown, the following optimization methods can be used to optimize the performance of code storage and access:
[0143] Multiple copies refers to a technology that implements data protection by storing multiple copies of the same data on different nodes. It supports different storage methods such as three copies and two copies, which can improve data reliability and fault tolerance. Among them, by storing multiple copies of data, even if a node fails, the data copies on other nodes are still available, thus ensuring data reliability and business continuity; by storing data copies on multiple nodes, data can be read in parallel, improving data reading speed and efficiency, and optimizing data reading performance.
[0144] Distributed database is an important development direction of database technology. It stores data in multiple physical nodes and uses network communication to achieve data sharing and transparent access. Distributed database can dynamically increase or decrease nodes as needed to cope with the growing demand for data storage, and has high scalability. By distributing data on multiple nodes, even if a node fails, other nodes can still continue to work, ensuring business continuity and data availability, and has high availability. The parallel processing capability of distributed database can meet the real-time requirements of high concurrency, large data volume and other scenarios, improve the speed and efficiency of data storage and access, and have high performance.
[0145] Distributed caching refers to distributing cached data across multiple nodes to improve system performance, scalability, and availability. It usually uses key-value pair storage and supports various types of data storage and access. Among them, by caching hot data, reducing the frequency of access to the underlying storage system, improving system response speed and throughput, the system performance can be improved; by easily adding or removing cache nodes to cope with growing loads and data storage requirements, scalability can be enhanced; distributed cache has functions such as data backup and failover mechanisms to ensure that services can still be provided when a node fails, with high availability.
[0146] Distributed deployment refers to storing data in multiple independent machines and devices, and using a scalable system structure to share the storage load. It uses multiple storage servers and location servers to locate and manage data. Among them, by sharing the storage load with multiple storage servers, a single server can be avoided from becoming a performance bottleneck, which can optimize the storage load; by using the location server to locate the storage information, the required data can be found faster and the access efficiency can be improved; distributed deployment stores data in multiple nodes, and even if a node fails, other nodes can still continue to work, ensuring the reliability of data and the stability of the system, which can enhance the reliability of the system.
[0147] According to some embodiments, the security protection subunit 14 is used to perform security protection on resources in the distributed high-availability code hosting and development system. Therefore, by implementing various security measures and strategies to ensure the security and confidentiality of the code, the code resources can be protected from various security threats and attacks.
[0148] In some embodiments, Figure 4 As shown, the safety protection subunit 14 includes:
[0149] The vulnerability perception module is used to perceive security vulnerabilities in the distributed high-availability code hosting and research and development system, and evaluate the security status of the distributed high-availability code hosting and research and development system based on the security vulnerability perception results. Therefore, the vulnerability perception module continuously monitors and scans the system, promptly discovers and reports security vulnerabilities in the system, and uses advanced vulnerability scanning technology and databases to conduct a comprehensive security assessment of the system, which can help administrators to patch vulnerabilities in a timely manner and prevent potential attacks.
[0150] The intelligent monitoring module is used to monitor the operating status and security status of the distributed high-availability code hosting and development system. The intelligent monitoring module can collect and analyze system logs, network traffic, user behavior and other data, identify abnormal behavior through machine learning algorithms, and issue warnings so that administrators can take timely measures to deal with potential security threats.
[0151] The anti-tampering module is used to monitor the integrity of files in the distributed high-availability code hosting and development and operation system. Among them, the anti-tampering module can protect key files and data in the system from being illegally modified or deleted by adopting file driver-level technology. By monitoring the integrity of files in real time, once files are found to be tampered with, recovery measures are taken immediately to ensure the security and stability of the system.
[0152] The encryption storage module is used to receive encryption instructions and encrypt the data corresponding to the encryption instructions in the distributed high-availability code hosting and research and development system. Among them, the encryption storage module can use advanced encryption algorithms to encrypt and store sensitive data in the system, including user data, configuration files, databases and other key information. Through encrypted storage, even if the data is intercepted during transmission or storage, the attacker cannot directly obtain the plaintext data, thereby protecting the confidentiality of the data.
[0153] The blocking interval module is used to cut off the connection between the distributed high-availability code hosting and research and development system and the threat source corresponding to the attack behavior when an attack behavior against the distributed high-availability code hosting and research and development system is detected, and record the attack behavior. Therefore, when a potential security threat is detected, the connection with the threat source can be quickly cut off to prevent the attack from spreading further. Secondly, the blocking interval module can identify and block malicious traffic and protect the system from the harm of the attack. At the same time, by recording the attack behavior, it can provide data support for subsequent security analysis and prevention.
[0154] The least privilege module is used to determine the maximum privilege of an organization member, where the maximum privilege is the minimum privilege required by the project. Therefore, by implementing a strict privilege control strategy, each user or system component is ensured to have only the minimum privilege required to complete its task, which helps prevent security risks caused by excessive privileges and improves the overall security of the system.
[0155] The situation awareness module is used to collect and analyze the security data of the distributed high-availability code hosting and research and development system, and generate a security situation map based on the collected and analyzed security data. Therefore, by collecting and analyzing the security data of the system in real time and generating a security situation map, it can help administrators fully understand the security status of the system. Secondly, the situation awareness module can identify potential security threats, predict attack trends, and provide decision support for administrators so that they can take timely measures to deal with potential security risks.
[0156] The attack detection module is used to detect attacks against the distributed high-availability code hosting and research and development system. The attack detection module can monitor and analyze network traffic, system logs and other data, and can promptly detect and report attacks in the system, and issue warnings so that administrators can take timely measures to defend. The attacks that can be identified include but are not limited to Distributed Denial of Service (DDoS) attacks, Structured Query Language (SQL) injections, and Cross-site Scripting (XSS) attacks.
[0157] Optionally, Figure 5 This is a schematic diagram of the structure of an operation and maintenance monitoring unit provided by an embodiment of the present disclosure. Figure 5 As shown, the operation and maintenance monitoring unit 5 includes:
[0158] The existing network alarm subunit is used to monitor the operating status of the distributed high-availability code hosting and research and development system, and issue a first alarm message when it detects that the distributed high-availability code hosting and research and development system meets the system abnormality conditions. Therefore, the existing network alarm subunit monitors the operating status of the system in real time and immediately issues an alarm when an abnormality or failure is detected. Among them, the system abnormal conditions may include a variety of preset alarm conditions, such as system performance degradation, excessive resource utilization, increased network latency, etc. In addition, when the system meets the system abnormality conditions, the alarm mechanism can be automatically triggered to notify relevant personnel to take timely measures to intervene, which helps to quickly locate problems, reduce the impact of failures, and ensure the stability and availability of the system.
[0159] The live network test subunit is used to simulate user behavior to test the performance and availability of the distributed high-availability code hosting and research and development system, and generate a test report. The live network test subunit can simulate various user scenarios and requests, evaluate key indicators such as the system's response time, throughput, and error rate, and generate a detailed test report, which helps to discover potential problems in the system, such as performance bottlenecks, configuration errors, etc., and provides data support for optimizing system performance.
[0160] The Application Programming Interface (API) monitoring subunit is used to monitor the performance and availability of the API, and issue a second alarm message when it is detected that the API meets the interface abnormality condition. Therefore, by focusing on monitoring the performance and availability of the API, it is possible to track key indicators such as the API response time, call success rate, error rate, etc. in real time, and set thresholds as interface abnormality conditions. When an API interface is abnormal, it can issue an alarm in time, and provide detailed error information and call logs to help developers quickly locate the problem and fix it.
[0161] The full-link monitoring subunit is used to monitor the operating status of the business link corresponding to the distributed high-availability code hosting and research and development system, and generate a business monitoring report; the business link includes the front-end, back-end, database, network and other links. Therefore, by collecting and analyzing the data of each link in the business link and generating a comprehensive business monitoring report, it can help operation and maintenance personnel understand the overall performance and bottlenecks of the system. At the same time, the full-link monitoring subunit can also realize end-to-end correlation analysis, quickly locate the root cause of the problem, and improve the efficiency of fault handling.
[0162] The storage bandwidth monitoring subunit is used to monitor the bandwidth usage information of the distributed high-availability code hosting and research and development system, and issue a third alarm message when the bandwidth usage information meets the bandwidth abnormality condition. Among them, the storage bandwidth monitoring subunit can track key indicators such as the read and write speed and bandwidth utilization of the storage system in real time, and set thresholds as bandwidth abnormality conditions. For example, when the storage bandwidth fluctuates abnormally or reaches the preset threshold, the storage bandwidth monitoring subunit can issue an alarm in time and provide detailed bandwidth usage and trend analysis to help operation and maintenance personnel optimize storage resource configuration.
[0163] The traffic monitoring subunit is used to monitor the traffic usage information of the distributed high-availability code hosting and research and development system, and generate a traffic analysis report. The traffic monitoring subunit can track the source, destination, size and other key information of network traffic in real time, thereby generating a detailed traffic analysis report. Therefore, by monitoring the usage of network traffic, it can help discover abnormal traffic behaviors in the network, such as DDoS attacks, malicious scanning, etc., and provide data support for network security protection.
[0164] The capacity monitoring subunit is used to monitor the resource capacity of the distributed high-availability code hosting and R&D system, and issue a fourth alarm message when the resource capacity meets the capacity abnormality condition; wherein the resource capacity includes but is not limited to storage resources and computing resources. Among them, the capacity monitoring subunit can track the usage of the system's storage space, central processing unit (CPU), memory and other resources in real time, predict future resource requirements, and set thresholds as capacity abnormality conditions. For example, when the resource capacity approaches or reaches the preset threshold, it can issue an alarm in time and provide detailed resource usage and trend analysis to help operation and maintenance personnel reasonably plan resource allocation and expansion plans.
[0165] The upgrade operation and maintenance subunit is used to upgrade and maintain the distributed high-availability code hosting and research and development system. The upgrade operation and maintenance subunit can automatically perform system upgrade tasks, including installing patches, updating software versions, etc., and ensure system stability and data security during the upgrade process. At the same time, the upgrade operation and maintenance subunit can also provide detailed upgrade logs and reports to help operation and maintenance personnel understand the problems and improvement measures during the upgrade process.
[0166] The abnormal access monitoring functional subunit is used to monitor abnormal access behaviors in the distributed high-availability code hosting and research and development systems. Among them, the abnormal access monitoring functional subunit can identify and record various abnormal access patterns, such as illegal login attempts, malicious access requests, etc., and automatically trigger the alarm mechanism, which helps to timely discover and prevent potential security threats and protect the security and confidentiality of the system.
[0167] It should be noted that the operation and maintenance monitoring unit 5 can comprehensively monitor the operation and maintenance by realizing the functions of existing network alarm, existing network pull-out test, API monitoring, full-link monitoring, storage broadband monitoring, traffic monitoring, capacity monitoring, upgrade operation and maintenance, and abnormal access monitoring to ensure the smooth and safe operation of the system.
[0168] In summary, the system provided in this embodiment provides distributed code management and collaborative development capabilities based on a distributed version control system (Git), and provides practical functions such as member management, permission control, code hosting, code checking, code review, code traceability, CI / CD integration, etc., which can help enterprises of different sizes improve R&D quality and efficiency.
[0169] The collection, storage, use, processing, transmission, provision and disclosure of user personal information involved in this disclosure shall comply with the relevant laws and regulations and shall not violate public order and good morals.
[0170] It should be noted that personal information from users should be collected for legitimate and reasonable purposes and should not be shared or sold outside of these legitimate uses. In addition, such collection / sharing should be carried out after receiving the user's informed consent, including but not limited to notifying the user to read the user agreement / user notice and sign the agreement / authorization including authorization of relevant user information before the user uses the function. In addition, any necessary steps should be taken to protect and safeguard access to such personal information data and ensure that others who have access to personal information data comply with its privacy policy and procedures.
[0171] The present disclosure anticipates providing implementation schemes for users to selectively block the use or access of personal information data. That is, the present disclosure anticipates providing hardware and / or software to prevent or block access to such personal information data. Once the personal information data is no longer needed, risks can be minimized by limiting data collection and deleting the data. In addition, when applicable, such personal information is de-identified to protect the privacy of the user.
[0172] In the description of the aforementioned embodiments, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present disclosure. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, unless they are contradictory.
[0173] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of the present disclosure, "plurality" means at least two, such as two, three, etc., unless otherwise clearly and specifically defined.
[0174] Any process or method description in a flowchart or otherwise described herein may be understood to represent a module, segment or portion of code that includes one or more executable instructions for implementing the steps of a custom logical function or process, and the scope of the preferred embodiments of the present disclosure includes additional implementations in which functions may not be performed in the order shown or discussed, including performing functions in a substantially simultaneous manner or in reverse order depending on the functions involved, which should be understood by technicians in the technical field to which the embodiments of the present disclosure belong.
[0175] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as an ordered list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute the instructions), or in combination with these instruction execution systems, devices or apparatuses. For the purpose of this specification, "computer-readable medium" can be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in combination with these instruction execution systems, devices or apparatuses. More specific examples of computer-readable media (a non-exhaustive list) include the following: an electrical connection with one or more wires (electronic device), a portable computer disk box (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), a fiber optic device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium and then editing, interpreting or otherwise processing in a suitable manner if necessary, and then stored in a computer memory.
[0176] It should be understood that the various parts of the present disclosure can be implemented in hardware, software, firmware or a combination thereof. In the above-mentioned embodiments, multiple steps or methods can be implemented in software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, any one of the following technologies known in the art or a combination thereof can be used to implement: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
[0177] A person skilled in the art may understand that all or part of the steps in the above-mentioned embodiment method may be completed by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, which, when executed, includes one or a combination of the steps of the method embodiment.
[0178] In addition, each functional unit in each embodiment of the present disclosure may be integrated into a processing module, or each unit may exist physically separately, or two or more units may be integrated into one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.
[0179] The storage medium mentioned above may be a read-only memory, a disk or an optical disk, etc. Although the embodiments of the present disclosure have been shown and described above, it can be understood that the above embodiments are exemplary and cannot be understood as limitations of the present disclosure. A person of ordinary skill in the art may change, modify, replace and modify the above embodiments within the scope of the present disclosure.
Claims
1. A distributed high-availability code hosting and development system, characterized in that: include: R&D collaboration unit, used for collaborative code development; A code management unit, used for managing codes; A code storage unit, used for storing and safely protecting the code; An operation and maintenance monitoring unit is used to monitor the operation and maintenance of the distributed high-availability code hosting and research and development system.
2. The system according to claim 1, characterized in that The research and development collaboration unit includes: The single-warehouse development collaboration subunit is used for single-warehouse collaborative development of code; The multi-warehouse development collaboration subunit is used for multi-warehouse collaborative development of code.
3. The system according to claim 2, characterized in that The single warehouse development coordination sub-unit includes: A code browsing module, used for navigating and displaying the codes stored in the code management unit; A merge request module, used to receive and manage single-repository code merge requests for any code repository in the code management unit; A code review module, used to review the single warehouse code before submitting it to the code library corresponding to the single warehouse code in the code management unit, and obtain a single warehouse code review result; A file search module, used to receive a file search instruction and search for a file corresponding to the file search instruction in the distributed high-availability code hosting and development system; A protection branch module, used to set operation permissions for the code of any code library in the code management unit, wherein the operation permissions include operation permission information; The access control closing module is used to perform a quality inspection on the code corresponding to the single warehouse code merging request before performing a merging operation on the code corresponding to the single warehouse code merging request, and if the quality inspection result does not meet the first quality inspection requirement, stop the merging operation on the code corresponding to the single warehouse code merging request.
4. The system according to claim 2, characterized in that The multi-warehouse development coordination sub-unit includes: A multi-warehouse inspection module is used to inspect the cross-warehouse code before submitting the cross-warehouse code to the multiple code libraries corresponding to the cross-warehouse code in the code management unit to obtain a multi-warehouse code inspection result; An identifier conversion module, used to store reference relationships between multiple code libraries in the code management unit, and convert and map identifiers of the code libraries according to the reference relationships; A multi-warehouse submission module, used to receive the submitted cross-warehouse code and submit the cross-warehouse code to multiple code libraries corresponding to the cross-warehouse code in the code management unit; A merge module for receiving and managing cross-warehouse merge requests for multiple code bases in the code management unit; An atomic merge module, used to perform an atomic merge operation on the code corresponding to the cross-repository merge request; A fine-grained permission module is used to set cross-warehouse operation permissions for multiple code repositories in the code management unit.
5. The system according to claim 1, characterized in that The code management unit includes: The repository and branch management subunit is used to manage the code base and branches corresponding to the code; The organizational authority management subunit is used to manage the organizational authority corresponding to the code; The inspection and access control management subunit is used to inspect the codes and manage access control; The system integration subunit is used to realize data sharing and data interaction across subunits among the warehouse and branch management subunit, the organization authority management subunit, and the inspection and access control management subunit.
6. The system according to claim 5, characterized in that The warehouse and branch management subunit includes: A warehouse management module is used to manage the warehouse of the code library corresponding to the code, wherein the warehouse management includes creation, configuration, maintenance, and deletion; A branch management module, used to manage the code branches corresponding to the code, wherein the branch management includes creation, merging, deletion, and synchronization; A tag management module, used to manage tags of codes, wherein the tag management includes creation, deletion, and query; The history management module is used to store the change history information corresponding to the code library.
7. The system according to claim 5, characterized in that The organization authority management subunit includes: A member management module, used to add, delete, modify and manage the status of organizational members corresponding to the distributed high-availability code hosting and research and development system; A role management module, used to manage the identity hierarchy of members of the organization; A rights management module, used to manage access rights corresponding to the identity level; The organization management module is used to manage the structure and hierarchical relationship between the organization members.
8. The system according to claim 5, characterized in that The inspection and access control management subunit includes: A file comparison module is used to receive a file comparison instruction, and compare and analyze the differences between different codes corresponding to the file comparison instruction to obtain a file comparison result; an access control judgment module, configured to perform a quality check on the code submitted to the code library, and stop submitting the code to the code library if the quality check result does not meet the second quality check requirement; Code review module, used to provide code review and annotation functions; The code review module is used to review and test the code.
9. The system according to claim 5, characterized in that The system integration subunit comprises: The requirement system module is used to record, organize and analyze the project requirements corresponding to the code; Defect system module, used to record, track and manage error information in the collaborative development and management of code; Continuous integration and continuous deployment modules, used to create code build processes, test processes, and deployment processes; A custom expansion module is used to expand the system integration subunit according to the project requirements.
10. The system according to claim 1, characterized in that The code storage unit comprises: A storage mode subunit, used to set and manage the storage mode when storing the code; The storage performance subunit is used to optimize the performance of code storage and access; The security protection subunit is used to provide security protection for resources in the distributed high-availability code hosting and development and operation system.
11. The system according to claim 10, characterized in that The safety protection subunit comprises: A vulnerability perception module is used to perceive security vulnerabilities in the distributed high-availability code hosting and research and development system, and evaluate the security status of the distributed high-availability code hosting and research and development system based on the security vulnerability perception results; An intelligent monitoring module, used to monitor the operating status and security status of the distributed high-availability code hosting and research and development system; An anti-tampering module is used to monitor the integrity of files in the distributed high-availability code hosting and development and operation system; An encryption storage module, used to receive encryption instructions and encrypt data corresponding to the encryption instructions in the distributed high-availability code hosting and research and development system; A blocking interval module, which is used to cut off the connection between the distributed high-availability code hosting and research and operation system and the threat source corresponding to the attack behavior when an attack behavior against the distributed high-availability code hosting and research and operation system is detected, and record the attack behavior; A minimum authority module, used to determine the maximum authority of an organization member, wherein the maximum authority is the minimum authority of the project requirement corresponding to the organization member; A situation awareness module, used to collect and analyze security data of the distributed high-availability code hosting and research and development system, and generate a security situation map based on the collected and analyzed security data; An attack detection module is used to detect attack behaviors against the distributed high-availability code hosting and development and operation system.
12. The system according to claim 1, characterized in that The operation and maintenance monitoring unit includes: The existing network alarm subunit is used to monitor the running status of the distributed high-availability code hosting and research and operation system, and issue a first alarm message when it is detected that the distributed high-availability code hosting and research and operation system meets the system abnormality condition; The live network unplugging test subunit is used to simulate user behavior to test the performance and availability of the distributed high-availability code hosting and research and development system, and generate a test report; An application programming interface monitoring subunit is used to monitor the performance and availability of the application programming interface, and to issue a second alarm message when it is detected that the application programming interface meets an interface abnormality condition; A full-link monitoring subunit, used to monitor the operating status of the business link corresponding to the distributed high-availability code hosting and development system, and generate a business monitoring report; A storage bandwidth monitoring subunit is used to monitor the bandwidth usage information of the distributed high-availability code hosting and research and development system, and issue a third alarm information when the bandwidth usage information meets the bandwidth abnormality condition; A traffic monitoring subunit, used to monitor the traffic usage information of the distributed high-availability code hosting and research and development system, and generate a traffic analysis report; A capacity monitoring subunit, configured to monitor the resource capacity of the distributed high-availability code hosting and development and operation system, and to issue a fourth alarm message when the resource capacity meets a capacity abnormality condition; An upgrade and operation subunit, used to upgrade and operate the distributed high-availability code hosting and research and development system; The abnormal access monitoring functional subunit is used to monitor abnormal access behaviors in the distributed high-availability code hosting and development and operation system.