LOW CODE NO CODE CI/CD PLATFORM

A method for implementing a low code no code continuous integration/continuous delivery (CI/CD) platform includes receiving, by the CI/CD platform, a request to build a CI/CD pipeline for developing a software application. The method includes building, by the CI/CD platform, the CI/CD pipeline by at least: receiving a selection of one or more pre-built stages from a plurality of pre-built stages of the CI/CD pipeline and arranging, via the user interface, the selected one or more pre-built stages. The method also includes executing, by the CI/CD platform, the built CI/CD pipeline to develop the software application by at least: retrieving, from a database in communication with the CI/CD platform, code for each of the arranged one or more pre-built stages. Related systems and articles of manufacture are provided.

TECHNICAL FIELD

The subject matter described herein relates generally to building continuous integration/continuous delivery pipelines and more specifically to a low code no code continuous integration/continuous delivery platform.

BACKGROUND

Continuous integration and/or continuous delivery (CI/CD) drives software development through building, testing, and deploying code. In continuous integration, code changes are generally merged in a central repository. Each change in code triggers a build-and-test sequence for the given project, providing feedback to developers in building the code. Continuous delivery includes infrastructure provisioning and deployment, which may include multiple stages.

SUMMARY

Systems, methods, and articles of manufacture, including computer program products, are provided for a low code no code continuous integration/continuous delivery platform. In one aspect, there is provided a system. The system may include at least one data processor and at least one memory. The at least one memory may store instructions that result in operations when executed by the at least one data processor. The operations may include: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application. The request includes one or more input values for the integration and delivery pipeline. The operations may also include building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline, and arranging, via the user interface, the selected one or more pre-built stages. The operations may also include executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

In some variations, the operations further include: generating, by the integration and delivery platform and based on the arranged one or more pre-built stages, a recommendation for re-arranging the selected one or more pre-built stages for improving the integration and delivery pipeline.

In some variations, the arranging includes receiving, via the user interface, a user input causing the selected one or more pre-built stages to be dragged from a first portion of the user interface to a second portion of the user interface.

In some variations, the arranging further includes: adding one or more pre-built stages from the first portion to the second portion of the user interface, reordering the one or more pre-built stages at the second portion of the user interface, configuring a property of the selected one or more pre-built stages, and/or removing the one or more pre-built stages from the second portion of the user interface.

In some variations, the built integration and delivery pipeline is further executed by at least: providing the one or more input values to the code for each of the arranged one or more pre-built stages.

In some variations, the operations further include: testing, by the integration and delivery platform, the software application based on the arranged one or more pre-built stages of the integration and delivery pipeline. The operations may also include generating, by the integration and delivery platform, a first visual representation of a status of the testing of each of the arranged one or more pre-built stages of the integration and delivery pipeline. The operations may also include generating, by the integration and delivery platform, a second visual representation of the development of the software application.

In some variations, the operations further include: receiving, by the integration and delivery platform, selection of a value stream mapping template for development of the software application. The operations may also include generating, by the integration and delivery platform, a value stream mapping based at least on the selected value stream mapping template and the one or more input values. The value stream mapping indicates a timeline for developing the software application.

In some variations, the operations further include: receiving, by the integration and delivery platform, an image of an architecture representing at least a portion of the software application. The operations may also include generating, by the integration and delivery platform and based on based on the image, an architecture diagram representing the architecture for display via the client device.

In some variations, a computer-implemented method includes: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application. The request includes one or more input values for the integration and delivery pipeline. The method includes building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline, and arranging, via the user interface, the selected one or more pre-built stages. The method further includes executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

In some variations, a non-transitory computer-readable medium storing instructions, which when executed by at least one data processor, result in operations including: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application. The request includes one or more input values for the integration and delivery pipeline. The operations further include building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline, and arranging, via the user interface, the selected one or more pre-built stages. The operations further include executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

DETAILED DESCRIPTION

Delivering software applications, such as cloud products, to customers more frequently and quickly is highly demanded by the growing large-scale cloud transition to maximize value. To deliver such software applications quickly and more frequently, software applications may follow a continuous integration (CI) paradigm for building, testing, and deploying code. Changes to the code can be verified using continuous integration tooling. For example, in continuous integration, code changes are merged in a central repository. Each change in code may trigger a build-and-test sequence for the given project, providing feedback to developers in building the code. Continuous delivery (CD) includes infrastructure provisioning and deployment, which may include multiple stages.

Continuous integration servers, such as Jenkins, Azure, and/or the like, can be used when building and testing the code for the application. A continuous integration pipeline may be used to configure the continuous integration servers. Continuous integration pipelines include code for processes that run in the background and test all aspects of a product during building and/or prior to deployment. However, continuous integration tools used for generating and executing the continuous integration pipelines to configure continuous integration servers are generally very costly (e.g., computationally and time-intensive), are often disjointed, and/or the like.

Further, implementation of CI/CD pipelines is generally associated with using a variety of tools to carry out various activities throughout the entire software application development lifecycle, and, since each software application adopts DevOps practices to use a continuous delivery model, a large-scale DevOps transformation presents challenges in planning, designing, architecting, and/or the like. For example, complex large-scale microservices architecture transformation uses various independent tools (e.g., continuous integration tools) for planning, architecture design, solution design, CI/CD pipeline execution, CI/CD pipeline monitoring, and/or the like, with limited ability to communicate between tools or monitor the overall status of the software application development. Making the progress transparent for all stakeholders during this process can frequently be difficult, time-consuming, and dependent on a variety of various technologies.

Aside from the complexity of the DevOps process, creating CI/CD pipelines can be considerably more difficult, since such processes involve the creation of large codebases and again, generally do not allow for visibility into the overall status and/or progress. Accordingly, large-scale DevOps transformations can be complex, and be computationally expensive based on the high memory usage and network resource consumption of continuous integration tools and servers and the time to build and monitor software application development using CI/CD pipelines. Thus, deploying continuous integration tools to configure continuous integration servers and modify code of the underlying continuous integration pipeline may be computationally expensive and inefficient.

In contrast, the CI/CD system, consistent with embodiments of the current subject matter, provides a single CI/CD platform that provides an end-to-end view of software application development. For example, the CI/CD platform is a central, all-inclusive platform that implements no code low code DevOps capabilities, such as value stream mapping, planning, architecture design, CI/CD pipeline design, CI/CD pipeline execution, and CI/CD pipeline monitoring. The CI/CD platform may additionally and/or alternatively include integrated continuous integration tools to automatically create backlog items and provide automatic notifications. Thus, the CI/CD system, consistent with embodiments of the current subject matter, increases transparency to the stakeholders of the software application development, and is computationally inexpensive, efficient, highly extendable, and/or highly configurable. The CI/CD system described herein may additionally and/or alternatively reduce the amount of time to modify the code of the continuous integration pipeline for testing an application or product, such as a cloud product prior to deployment and/or reduce memory consumption for testing or modifying the code. The CI/CD system described herein may additionally and/or alternatively be continuous integration tool-agnostic and/or integrate one or more CI/CD tools, improving the extendibility of the CI/CD system.

In particular, the CI/CD system described herein may implement a low code no code CI/CD platform. The CI/CD platform may receive a request, including one or more input values, to build a CI/CD pipeline for developing a software application. The CI/CD platform may build the CI/CD pipeline by at least: receiving a selection of one or more pre-built stages from a plurality of pre-built stages of the CI/CD pipeline, and arranging the selected one or more pre-built stages. Further, the CI/CD platform may execute the built CI/CD pipeline, based on the one or more input values and the arranged one or more pre-built stages, to develop the software application by at least retrieving, from a database in communication with the CI/CD platform, code for each of the arranged one or more pre-built stages. The CI/CD platform may additionally and/alternatively generate recommendations for improving the arrangement of the one or more pre-built stages in building the CI/CD platform. Accordingly, the CI/CD platform provides a no code low code implementation of CI/CD pipeline development. The CI/CD platform may additionally and/or alternatively provide a single platform for end to end DevOps lifecycle capabilities, including planning, architecture design, CI/CD pipeline generation, CI/CD pipeline execution, and CI/CD pipeline monitoring.

FIG.1depicts a network diagram illustrating a CI/CD system100, in accordance with some example embodiments. Referring toFIG.1, the CI/CD system100may include a CI/CD platform145, a client device120, an enterprise backend150. The CI/CD platform145, the client device120, and the enterprise backend150may be communicatively coupled via a network130. The network130may be any wired network and/or a wireless network including, for example, a wide area network (WAN), a local area network (LAN), a virtual local area network (VLAN), a public land mobile network (PLMN), the Internet, and/or the like. Although the CI/CD system100is shown as a remote and/or cloud platform, it should be appreciated that the CI/CD system100may additionally or alternatively be deployed as computer software and/or dedicated circuitry (e.g., application specific integrated circuits (ASICs)) on the client device without departing from the scope of the present disclosure.

The enterprise backend150may host one or more software applications152and a library155. The one or more software applications152may include a mobile and/or web application, an application service, a cloud service, and/or the like. As described in more detail below, the library155may store executable code corresponding to one or more pre-built stages of a CI/CD pipeline.

The client device120may be a processor-based device including, for example, a smartphone, a tablet computer, a wearable apparatus, a virtual assistant, an Internet-of-Things (IoT) appliance, and/or the like. The client device120includes a user interface125that may be manipulated by a user140. For example, the client device120may receive one or more user inputs (e.g., one or more input values, one or more selections, and/or the like) via the user interface125, as described in more detail below. In accordance with some example embodiments, the user interface125may include any one of the user interfaces described herein, such as a user interface300,400,500,600,700,800,900,1000,1300,1400,1500,1600,1700,2000,2100(described in more detail below).

The CI/CD platform145may provide an end to end solution for developing the one or more software applications152. The CI/CD platform145may be a SAAS platform integrated with DevOps planning, processes, and toolchain with capabilities of DevOps transformation planning using value stream mapping version-controlled templates, architecture design, CI/CD pipeline creation, CI/CD pipeline execution, CI/CD monitoring, and/or the like. Accordingly, the CI/CD platform145may be used to build, test, and/or deploy code for the one or more software applications152. The CI/CD platform145may be in communication, such as via the network130, with the client devices120.

The CI/CD platform145includes a CI/CD engine110. The CI/CD engine110may include at least one processor and/or at least one memory storing instructions configured to be executed by the at least one processor. The CI/CD engine110may execute or otherwise implement one or more aspects of the CI/CD platform145, consistent with embodiments of the current subject matter. For example, the CI/CD engine110may perform one or more operations of the value stream mapping, the planning, the architecture design, the CI/CD pipeline creation, the CI/CD pipeline execution, the CI/CD pipeline monitoring, and/or the like. The CI/CD engine110may thus support the development of the one or more software applications152. The CI/CD engine110may receive one or more user inputs (e.g., a selection, one or more input values, and/or the like) via the user interface125of the client device120, to perform various tasks associated with developing the one or more software applications152including, for example, value stream mapping, planning, and/or architecture design for the one or more software applications152.

Additionally and/or alternatively, the CI/CD engine110may, based on the one or more user inputs, perform various tasks associated with CI/CD pipeline generation, execution, and/or monitoring. Consistent with embodiments of the current subject matter, CI/CD pipelines include a plurality of stages for building, testing, and deploying code for the one or more software applications152. The plurality of stages can be executed by the CI/CD engine110in series and/or in parallel depending on the arrangement of the plurality of stages. The plurality of stages may define a plurality of processes including code or logic for execution.

Generally, building and arranging the plurality of stages involves the development of a significant amount of code for such processes that run in the background and test all aspects of a product during building and/or prior to deployment. Such building and arranging processes can be computationally expensive, inefficient, and take a significant amount of time. The CI/CD platform145including the CI/CD engine110described herein may improve the creation of the CI/CD pipeline for building, testing, and/or deploying the one or more software applications152. For example, in some embodiments, the CI/CD engine110may implement a low code or no code approach to the creation of the CI/CD pipeline. Accordingly, the CI/CD engine110may support the creation of the CI/CD pipeline with minimal requirement for coding.

For example, the user interface125associated with the CI/CD pipeline may be an interactive user interface in which a custom CI/CD pipeline is created based on one or more inputs (e.g., selections, input values, etc.) from the user140at the client device120. The one or more inputs from the user140may configure the CI/CD pipeline. For example, the one or more inputs may include a selection of one or more pre-built stages for the CI/CD pipeline and an arrangement of the selected one or more pre-built stages of the CI/CD pipeline. In other words, the one or more inputs may include dragging and dropping the one or more pre-built stages into an arrangement to build the CI/CD pipeline, with minimal coding requirements. As described in more detail below, code corresponding to each of the one or more pre-built stages can be stored in the library155of the enterprise backend150.

As noted herein, the one or more pre-built stages may, once arranged, be executed and/or monitored by the CI/CD engine110by, for example, retrieving the code stored in the library155corresponding to the selected one or more pre-built stages, and executing the retrieved code according to the arrangement. Thus, the CI/CD engine110may support building and execution of the CI/CD pipeline with minimal requirements for coding on the part of the user140. Execution of the retrieved code for the one or more pre-built stages may additionally and/or alternatively be based on one or more input values of the one or more user inputs. For example, the one or more input values may be provided by the user140associated with the client device120prior to and/or during execution of the built CI/CD pipeline. User input, such as those providing the one or more input values, may be solicited through a form. As such, in some example embodiments, the CI/CD engine110may also support the creation of forms graphically, for example, through the user interface125, with minimal requirement for coding on the part of the user140.

FIG.2depicts a block diagram illustrating an example schematic diagram200including a workflow for the CI/CD platform145of the CI/CD system100, in accordance with some example embodiments. As shown in the diagram200, the workflow for the CI/CD platform145includes value stream mapping202, architecture design204, DevOps toolchain third party integrations208, CI/CD pipeline development206, CI/CD pipeline execution210, CI/CD pipeline monitoring212, and/or the like. Thus, as shown in the diagram200, the CI/CD platform145may be an all-inclusive low code no code DevOps platform that provides end to end DevOps lifecycle capabilities, such as planning (e.g., the value stream mapping202), architecture design (e.g., the architecture design204), CI/CD low code no code development (e.g., the CI/CD pipeline development206), CI/CD pipeline executions (e.g., the CI/CD pipeline execution210), DevOps monitoring (e.g., the CI/CD pipeline monitoring212), and tool integrations (e.g., the DevOps toolchain third party integrations208).

Referring toFIG.2, the CI/CD platform145includes the value stream mapping202, which may be executed, at least in part, by the CI/CD engine110. For example, to identify bottlenecks and other inefficiencies in a development process of the one or more software applications152, and to improve the development process, the CI/CD platform145integrates value stream mapping templates214that may be used to create a value stream map. Doing so maps the stakeholders from all areas of the software development value stream, including a business line, testing, quality assurance, operations, and support. For example, the created value stream map shows the end to end mapping, including the phases of the development of the software application. The value stream map may, in some embodiments, show a cost for performing each phase. For example, the value stream map may show an expected amount of time (e.g., a predetermined time, a predicted time, and/or the like) corresponding to each phase of the development of the software application, a total amount of time, and/or the like. Additionally and/or alternatively, the value stream map shows the stakeholders involved in each stage and/or process. As noted, this allows for identification (e.g., by the CI/CD engine110) of bottlenecks within the end to end software application development process. As a result, the development process can be modified and/or improved.

The value stream mapping templates214include one or more value stream mapping templates. The value stream mapping templates214may be stored at the enterprise backend150. The value stream mapping templates214may be presented to the user140, such as via the user interface125of the client device120.FIG.3depicts an example user interface300, in accordance with example embodiments, that may be displayed at the client device120. As shown inFIG.3, value stream mapping can be selected by the user140at302. The user interface300includes a first option304to open an existing value stream map and a second option306to create a new value stream map based on a value stream mapping template212. The existing value stream map and/or the value stream mapping template212may be stored at the enterprise backend150.

The first option304and the second option306may be selected by the user140. As an example, the saved value stream map may be selected by the user140via a user interaction with the first option304within the user interface300at the client device120. Based at least upon detection (e.g., by the CI/CD engine110) of the selection, a user interface400(seeFIG.4) may be displayed via the client device120. As shown inFIG.4, the user interface400includes two examples of previously created and saved value stream maps402,404, although other value stream maps may be saved and presented to the user140.

As another example, the value stream mapping templates214may be selected by the user140via a user interaction with the second option306within the user interface300at the client device120.FIG.5depicts an example user interface500including example value stream mapping templates214. As noted, the value stream mapping templates214may include one or more pre-built value stream maps that can be customized by the user140, such as via the user interface125. The value stream mapping templates214may be used generate a value stream map for a particular product (e.g., the one or more software applications152). The value stream map may indicate a timeline for developing the software application. As an example,FIG.6depicts a user interface600including an example value stream map602generated based at least one the selected value stream mapping template212and one or more input values, such as one or more input values of the one or more user inputs. The example value stream map602includes one or more processes (e.g., action items) for development of the software application.

Once customization of the value stream map602is completed, the value stream map602customized based on the selected value stream mapping template212may be saved, shared, exported, and/or executed in another application (e.g., an application in communication with the CI/CD platform145and/or integrated as part of the CI/CD platform145). Referring back toFIG.2, the other application may include the automatic task creation224of the DevOps toolchain third party integration208. As an example,FIG.7depicts an example user interface700showing a form702in which the user140may provide one or more user inputs, such as a URL, unique identifier, and/or the like for saving, exporting, sharing, and/or executing the customized value stream map. Accordingly, the CI/CD platform145may include integrated value stream mapping.

Referring back toFIG.2, the architecture design204of the CI/CD platform145may include inbuilt architecture design tooling216and picture to architecture design capability218. For example, the CI/CD platform145may include built-in tools for designing a technical architecture of the CI/CD model and/or pipeline, and/or the end to end DevOps process. Additionally and/or alternatively, the CI/CD platform provides image to architecture diagram conversion. For example, the CI/CD platform145may receive, from the user140and/or via the client device120, uploaded images. The images may include hand drawn architecture designs. For example, the images may include an image of an architecture representing at least a portion of the one or more software applications152. The CI/CD platform145(e.g., via the CI/CD engine110) may convert the images into architecture diagrams that can be executed by the CI/CD engine110and/or exported to another application, such as the architecture design tools226of the DevOps toolchain third party integration208(seeFIG.2). The CI/CD engine110may convert the images using one or more image conversion techniques. Accordingly, the CI/CD platform145may, based on the upload images, generate an architecture diagram representing the architecture for display via the client device120.

FIG.8depicts an example user interface800, in accordance with example embodiments, that may be displayed at the client device120. As shown inFIG.8, planning and designs can be selected by the user140at801. The user interface800includes a first option802to open an existing architecture diagram for the one or more software applications152and a second option804to create a new architecture diagram for the one or more software applications152. The existing architecture may be stored at the enterprise backend150.

The first option802and the second option804may be selected by the user140. As an example, the saved architecture diagrams may be selected by the user140via a user interaction with the first option802within the user interface800at the client device120. Based at least upon detection (e.g., by the CI/CD engine110) of the selection, a user interface900(seeFIG.9) may be displayed via the client device120. As shown inFIG.9, the user interface900includes two examples of previously created and saved architecture diagrams902,904, although other architecture diagrams may be saved, accessed, and/or presented to the user140.

FIG.10illustrates another example user interface1000, in accordance with some example embodiments. The user interface1000may be generated and displayed based on a detection of a selection of the architecture diagram902via the user interface900. The user interface1000may allow for modification of the architecture diagram902. For example, the CI/CD engine110may retrieve the stored architecture diagram902and display the architecture diagram902in a central panel1004of the user interface1000for modification of the architecture diagram902. The architecture diagram902may be modified via selection of one or more diagram tools shown in a first side panel1002and/or via entry of one or more properties of one or more components of the architecture diagram902in a second side panel1006. The user interface1000may indicate a version of the architecture diagram902. Modifications to the architecture diagram902can be saved, shared, and/or exported. For example, as shown inFIG.11, the architecture diagram902may be exported in different image formats (e.g., .png, .jpg, peg, etc.) via selection of an export element1102in the user interface1000. Additionally and/or alternatively, the architecture diagram902may be shared, using one or more messaging platforms or other third party applications (e.g., integrated applications such as the architecture design tools226), via selection of a share element1202in the user interface1000.FIG.12shows an example of a pop-up1204displayed over the architecture diagram902in the user interface1000upon selection of the share element1202.

Referring back toFIG.8the second option804may be selected by the user140to create a new architecture diagram for the one or more software applications152. As an example, the second option804may be selected by the user140via a user interaction with the second option804within the user interface800at the client device120. Based at least upon detection (e.g., by the CI/CD engine110) of the selection, a user interface1300(seeFIG.13) may be generated and displayed via the client device120. As shown inFIG.13, the user interface1300may include a first side panel1302, a central panel1304, and a second side panel1306. The architecture diagram may be displayed and/or generated in the central panel1304. The architecture diagram (not shown) may be modified via selection of one or more diagram tools shown in the first side panel1302and/or via entry of one or more properties of one or more components of the architecture diagram in a second side panel1306.

The user interface1300may include a selectable element1308that may be selected by the user140to upload an image. Based on detection of a selection of the selectable element1308, a popup1310is displayed within the central panel1304of the user interface1300. The popup1310includes an option to open a camera of the client device120and/or to upload an image stored on the client device120. As noted, the image may include hand drawn architecture designs or other images of architecture designs for designing the software application152and/or the CI/CD pipeline. For example, the image may include an image of an architecture representing at least a portion of the one or more software applications152and/or the CI/CD pipeline for developing the one or more software applications152.

The CI/CD platform145(e.g., via the CI/CD engine110) may convert the uploaded and/or captured image into an architecture diagram that can be executed by the CI/CD engine110and/or exported to another application, such as the architecture design tools226of the DevOps toolchain third party integration208(seeFIG.2). The CI/CD engine110may convert the image using one or more image conversion techniques. The CI/CD platform145may, based on the upload images, generate an architecture diagram representing the architecture for display via the client device120, with minimal coding requirements for the user140.FIG.14illustrates an example user interface1400, in accordance with some example embodiments. As shown inFIG.14, the user interface1400includes an uploaded image1402showing a hand drawn architecture diagram. The user interface1400also includes the architecture diagram1404generated based on the uploaded image1402using one or more image conversion techniques. The generated architecture diagram1404may be used by the CI/CD engine110of the CI/CD platform145for execution of the CI/CD pipeline. Additionally and/or alternatively, the generated architecture diagram1404may be exported for use by another application, shared, and/or stored. Thus, the CI/CD platform145integrates architecture diagram design and can generate architecture diagrams with minimal coding requirements for the user140.

Referring back toFIG.2, the CI/CD pipeline development206of the CI/CD platform145may include drag and drop CI/CD pipelines220and/or smart suggestions222. The drag and drop CI/CD pipelines220may include the CI/CD pipeline described herein for developing a software application, including building, testing, and deploying the software application. Consistent with some example embodiments, the CI/CD platform145(e.g., the CI/CD engine110) may implement a low code or no code approach to the creation of the CI/CD pipeline220. Accordingly, the CI/CD engine110may support the creation of the CI/CD pipeline220with minimal requirement for coding. This helps to solve the complexity of otherwise writing large codebases for developing CI/CD pipelines, and improves the computing efficiency of generating and/or executing the CI/CD pipelines. As described in more detail below, the CI/CD platform145(e.g., the CI/CD engine110) may provide the smart suggestions222via the user interface of the client device120to improve the arrangement of the CI/CD pipeline220for more efficient building, testing, and deploying of the software application (e.g., the one or more software applications152).

In some embodiments, the CI/CD platform145(e.g., the CI/CD engine110) may receive a request to build a CI/CD pipeline, such as the CI/CD pipeline220, for developing a software application, such as the one or more software applications152. The request includes one or more input values for the CI/CD pipeline220(described in more detail with respect toFIG.17). The CI/CD platform145may receive the request via a user interface at the client device120. For example,FIG.15depicts an example user interface1500, in accordance with some example embodiments. As shown in the user interface1500, the user140may select, via the CI/CD platform145, to build pipeline at1501. Based at least on detection of the selection, the CI/CD platform145displays a first option1502for opening an existing CI/CD pipeline and a second option1504for creating a new CI/CD pipeline.

FIG.16shows an example user interface1600, in accordance with some example embodiments. The user interface1600is displayed based on a selection of the first option1502for opening an existing CI/CD pipeline. The user interface1600may display a first existing CI/CD pipeline1602, a second existing CI/CD pipeline1604, and/or the like. The user140may select one of the existing CI/CD pipelines1602,1604for execution and/or modification of the existing CI/CD pipelines1602,1604.

FIG.17shows another example user interface1700, in accordance with some example embodiments. The user interface1700is displayed by the CI/CD platform145via the client device120based on a selection of the second option1504for creating a new CI/CD pipeline. As described herein, the CI/CD platform145implements a low code or no code approach to the creation of the CI/CD pipeline. Accordingly, the CI/CD engine110may support the creation of the CI/CD pipeline with minimal requirement for coding.

The CI/CD platform145may build and/or support building of the CI/CD pipeline using the low code no code approach based on the user interface1700shown inFIG.17. As shown inFIG.17, the user interface1700may include three portions, such as a first portion1702, a second portion1704(e.g., a central portion), and a third portion1706.

The first portion1702of the user interface1700may be a left panel displaying visual elements representing a plurality of pre-built stages1708for the CI/CD pipeline. The plurality of pre-built stages1708may represent components of the CI/CD pipeline. As noted herein, the CI/CD pipeline includes a plurality of stages for building, testing, and deploying code for the one or more software applications152. The plurality of pre-built stages1708displayed in the user interface1700are pre-built. For example, the underlying code or logic corresponding to each pre-built stage of the plurality of pre-built stages1708is pre-written and stored in the library155. This allows for quick and efficient selection and/or arrangement of one or more pre-built stages of the plurality of pre-built stages to build the CI/CD pipeline. The plurality of pre-built stages1708may include a linting stage, a determine version stage, a run unit test stage, a run integration test stage, a run acceptance test stage, a make build stage, a code coverage stage, a deploy component to test landscape stage, a checkin scan stage, a source scan stage, a protocode scan stage, a malware scan stage, a compliance stage, an upload stage, a promote release stage, a deploy stage, a deployment health check stage, and/or the like. Accordingly, the plurality of pre-built stages1708may include one or more processes of the CI/CD pipeline.

The CI/CD platform145may build the CI/CD pipeline by at least receiving, via the user interface1700at the client device120, a selection of one or more pre-built stages from the plurality of pre-built stages1708of the CI/CD pipeline. The plurality of pre-built stages1708may be displayed via the user interface1700and may be represented by selectable and/or configurable visual elements on the user interface. The user140at the client device120may interact with the first portion1702and/or the visual elements representing the plurality of pre-built stages1708, for example, by selecting one or more pre-built stages of the plurality of pre-built stages1708.

The second portion1704of the user interface1700may be a center panel displaying a region of the user interface1700in which the CI/CD pipeline is being built. The user140at the client device120may interact with the first portion1702and/or the visual elements representing the plurality of pre-built stages1708, for example, by dragging the selected one or more pre-built stages and dropping the selected one or more pre-built stages into the center panel to arrange the one or more pre-built stages in an arrangement defining the CI/CD pipeline. The one or more pre-built stages may be arranged in series and/or in parallel. Thus, the CI/CD platform may build the CI/CD pipeline by at least arranging, via the user interface1700, the selected one or more pre-built stages, with minimal or no coding requirements for the user140. In the example user interface1700shown inFIG.17, the CI/CD pipeline being built in the second portion1704is represented at1710, where a first pre-built stage has been dragged and dropped into the arrangement representing the CI/CD pipeline.

Arranging the selected one or more pre-built stages1708includes receiving, via the user interface1700, a user input causing the selected one or more pre-built stages1708to be dragged from the first portion1702of the user interface1700to the second portion1704of the user interface1700. As described herein, the CI/CD pipeline may be configured in the second portion1704of the user interface1700by, for example, dragging and dropping the selected one or more pre-built stages into an arrangement (e.g., the arrangement at1710) defining the CI/CD pipeline. In some embodiments, arranging the selected one or more pre-built stages1708includes adding one or more pre-built stages1708from the first portion1702to the second portion1704of the user interface1700, reordering the one or more pre-built stages1708at the second portion1704of the user interface1700, configuring a property of the selected one or more pre-built stages1708, and/or removing the one or more pre-built stages1708from the second portion1704of the user interface1700. Accordingly, the CI/CD platform145(e.g., the CI/CD engine110) may build the CI/CD pipeline with limited coding requirements on the user. In other words, the CI/CD platform145provides a low code no code approach for building the CI/CD pipeline.

The third portion1706of the user interface1700may be a right panel displaying a region of the user interface1700in which the user140provides one or more user inputs, such as one or more input values. The one or more input values may include one or more parameters specific to the particular software application. For example, the one or more input values may include properties associated with various stages of the CI/CD pipeline for developing the particular software application. The one or more properties associated with the pre-built stages1708may be adjusted via the third portion1706and provided to the enterprise backend150for execution of the corresponding code in the library155.

In some embodiments, the CI/CD platform145(e.g., the CI/CD engine110) generates, based on the arranged one or more pre-built stages1708, a recommendation for re-arranging the selected one or more pre-built stages to improve the CI/CD pipeline. For example, the CI/CD platform145(e.g., the CI/CD engine110) may display, via the user interface1700, a suggestion or recommendation1802for rearranging the selected and arranged pre-built stages. The suggestion may improve the efficiency of executing the CI/CD pipeline.FIG.18depicts an example of the user interface1700showing the recommendation1802. The recommendation1802may include an estimated execution time of a current arrangement of the CI/CD pipeline based on the arrangement provided by the user140. The recommendation1802may additionally and/or alternatively provide an alternative arrangement of the one or more pre-built stages1708, an estimated execution time of the suggested alternative arrangement, an estimated time savings for implementing the suggested alternative arrangement, and/or the like. The suggested alternative arrangement may include adjusting the one or more pre-built stages from parallel to series and/or series to parallel, reordering one or more pre-built stages, removing one or more pre-built stages, adding one or more pre-built stages, and/or the like.

In some embodiments, the CI/CD platform145may generate the recommendation1802based on one or more stored best practices for building and/or executing CI/CD pipelines. Additionally and/or alternatively, the CI/CD platform145may employ one or more trained machine learning models trained to predict a score indicating an optimal arrangement for the CI/CD pipeline based at least on the plurality of pre-built stages. The one or more trained machine learning models may predict an execution time for an alternative arrangement, may predict an impact in a change in the arrangement of the plurality of pre-built stages, and/or the like.

Consistent with embodiments of the current subject matter, the CI/CD platform145may, based on the one or more input values and/or the arranged one or more pre-built stages1708in the second portion1704, execute the built CI/CD pipeline to develop the software application. The CI/CD platform145(e.g., the CI/CD engine110) may execute the CI/CD pipeline by at least retrieving, from a database (e.g., the library155) in communication with the CI/CD platform145, code, which as described herein may be prewritten for each of the arranged one or more pre-built stages1708.FIG.19shows example code1900corresponding to a pre-built stage for linting that may be stored in the library155of the enterprise backend150.

The CI/CD platform145may execute the retrieved code for each of the arranged one or more pre-built stages1708according to the arrangement of the CI/CD pipeline. The built CI/CD pipeline may further be executed by at least providing the one or more input values to the code stored in the library155for each of the arranged one or more pre-built stages1708. Accordingly, the CI/CD platform145provides a low code no code approach for executing the CI/CD pipeline, with minimal coding requirements on the user.

Referring back toFIG.2, the CI/CD pipeline execution210of the CI/CD platform145may include automatic pipeline execution232and single view234of all executions. As noted above, the CI/CD platform145and/or a separate application may execute the CI/CD pipeline based on the arranged pre-built stages and/or the one or more user inputs. Further, as described herein the CI/CD platform145provides a single view234of a status of the execution of each of the pre-built stages of the CI/CD pipeline.

As an example of the single view234,FIG.20depicts an example user interface2000, in accordance with some embodiments. As shown inFIG.20, the user140may select the pipeline execution2002to display the single view234of the status of the execution of each of the pre-built stages of the CI/CD pipeline. The single view shows a version of each of the pre-built stages, a duration of the execution of each of the pre-built stages, a test report (e.g., failed, skipped, paused, etc.) for each of the pre-built stages, and/or additional status indicators describing the status of the execution of the CI/CD pipeline. Thus, the CI/CD platform may generate and/or display a visual representation of a status of the testing of each of the arranged one or more pre-built stages of the CI/CD pipeline. This provides a single platform and unified view of all CI/CD pipeline executions and/or test reports generated for each check of each pre-built stage of the CI/CD pipeline.

Referring back toFIG.2, the CI/CD pipeline monitoring212of the CI/CD platform145may include an inbuilt monitoring dashboard228and an inbuilt DevOps KPI monitoring230. For example, the CI/CD platform145offers monitoring of active microservices CI/CD pipelines (e.g., the built CI/CD pipeline including the arranged one or more pre-built stages) to record the most recent versions of the CI/CD pipelines and a run status for the CI/CD pipelines. This provides stakeholders with a consistent and transparent view of the progress of the end to end development of the one or more software applications152. Additionally and/or alternatively, this allows for generation of reports offline. As an example,FIG.21depicts an example user interface2100, in accordance with some embodiments. As shown inFIG.21, a user140may select, via the user interface2100, the monitoring dashboard at2102to display the inbuilt monitoring dashboard228. The inbuilt monitoring dashboard228provides a current view of the software application, including all microservices associated with the software application.

As shown inFIG.21, the CI/CD platform145generates and/or displays a visual representation (e.g., the inbuilt monitoring dashboard228) of a status of the overall software development. In this way, the CI/CD platform monitors the progress of software application development, building, testing, and deployment, and provides end to end updates. Further, as described herein, the CI/CD platform145provides an end to end solution for software application development. The inbuilt monitoring dashboard228allows for tracking of the end to end solution in a single, easily accessible component of the CI/CD platform145.

FIG.22depicts a flowchart illustrating a process2200for implementing a low code no code CI/CD platform (also referred to herein as an “integration and delivery platform”), in accordance with some example embodiments. Referring toFIGS.1-21, one or more aspects of the process2200may be performed by the CI/CD system100, the CI/CD platform145, the CI/CD engine110, the client device120, the enterprise backend150, other components therein, and/or the like.

At2200, an integration and delivery platform (e.g., the CI/CD platform145including the CI/CD engine110) may receive a request to build a CI/CD pipeline (also referred to herein as an “integration and delivery platform”) for developing a software application, such as the one or more software applications152. The request includes one or more input values for the CI/CD pipeline. The one or more input values may include one or more parameters specific to the particular software application. For example, the one or more input values may include properties associated with various stages of the CI/CD pipeline for developing the particular software application. The integration and delivery platform may receive the request via a user interface (e.g., the user interface125) at a client device (e.g., the client device120). The integration and delivery platform may run on the client device and/or be in communication with the client device.

At2202, the integration and delivery platform (e.g., the CI/CD platform145including the CI/CD engine110) may build the CI/CD pipeline. For example, the integration and delivery platform may build the CI/CD pipeline by at least receiving, via the user interface of the client device, a selection of one or more pre-built stages from a plurality of pre-built stages of the CI/CD pipeline. The plurality of pre-built stages may be displayed via the user interface and may be represented by selectable and/or configurable visual elements on the user interface.

The integration and delivery platform may further build the CI/CD pipeline by at least arranging, via the user interface, the selected one or more pre-built stages. Arranging the selected one or more pre-built stages includes receiving, via the user interface, a user input causing the selected one or more pre-built stages to be dragged from a first portion of the user interface to a second portion of the user interface. As described herein, the CI/CD pipeline may be configured in the second portion of the user interface by, for example, dragging and dropping the selected one or more pre-built stages into an arrangement defining the CI/CD pipeline. In some embodiments, arranging the selected one or more pre-built stages includes adding one or more pre-built stages from the first portion to the second portion of the user interface, reordering the one or more pre-built stages at the second portion of the user interface, configuring a property of the selected one or more pre-built stages, and/or removing the one or more pre-built stages from the second portion of the user interface. Accordingly, the integration and delivery platform may build the CI/CD pipeline with limited coding requirements on the user. In other words, the integration and delivery platform provides a low code no code approach for building the CI/CD pipeline.

In some embodiments, the integration and delivery platform generates, based on the arranged one or more pre-built stages, a recommendation for re-arranging the selected one or more pre-built stages to improve the CI/CD pipeline. For example, the integration and delivery platform may display, via the user interface, a suggestion for rearranging the selected and arranged pre-built stages. The suggestion may improve the efficiency of executing the CI/CD pipeline.

At2206, the integration and delivery platform may, based on the one or more input values and the arranged one or more pre-built stages, execute the built CI/CD pipeline to develop the software application. The integration and delivery platform may execute the CI/CD pipeline by at least retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages. The integration and delivery platform may execute the retrieved code for each of the arranged one or more pre-built stages according to the arrangement of the CI/CD pipeline. The built CI/CD pipeline may further be executed by at least providing the one or more input values to the code for each of the arranged one or more pre-built stages. Accordingly, the integration and delivery platform provides a low code no code approach for executing the CI/CD pipeline, with minimal coding requirements on the user.

As described herein, the integration and delivery platform provides an end to end solution for software application development. In addition to building and executing the CI/CD pipeline, the integration and delivery platform may test the software application based on the arranged one or more pre-built stages of the CI/CD pipeline, such as by executing the CI/CD pipeline. The integration and delivery platform may generate and/or display a first visual representation of a status of the testing of each of the arranged one or more pre-built stages of the CI/CD pipeline. In some embodiments, the integration and delivery platform generates and/or displays a second visual representation of a status of the overall software development. In this way, the integration and delivery platform monitors the progress of software application development, building, testing, and deployment, and provides end to end updates.

Additionally and/or alternatively, the integration and delivery platform provides value stream mapping for the development of the software application. For example, the integration and delivery platform may receive, such as via the user interface, a selection of a value stream mapping template for development of the software application. The integration and delivery platform may generate a value stream mapping or map based at least one the selected value stream mapping template and the one or more input values. The value stream mapping or map indicates a timeline for developing the software application and may help to identify bottlenecks in the software application development, leading to an improvement in the efficiency of the development of the software application.

Additionally and/or alternatively, the integration and delivery platform provides a low code no code approach to building an architecture diagram for the software application and/or CI/CD pipeline. For example, the integration and delivery platform may receive an image of an architecture representing at least a portion of the software application. The integration and delivery platform may generate an architecture diagram based on the image by, for example, applying one or more image conversion techniques. This improves the efficiency and reduces the computational resources for generating the architecture diagram. The architecture diagram may represent the architecture for display via the client device.

Example 1: A system, comprising at least one data processor; and at least one memory result in operations comprising: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application, wherein the request includes one or more input values for the integration and delivery pipeline; building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline; and arranging, via the user interface, the selected one or more pre-built stages; and executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

Example 2: The system of example 1, wherein the operations further comprise: generating, by the integration and delivery platform and based on the arranged one or more pre-built stages, a recommendation for re-arranging the selected one or more pre-built stages for improving the integration and delivery pipeline.

Example 3: The system of any one of examples 1 to 2, wherein the arranging includes receiving, via the user interface, a user input causing the selected one or more pre-built stages to be dragged from a first portion of the user interface to a second portion of the user interface.

Example 4: The system of any one of examples 1 to 3, wherein the arranging further includes: adding one or more pre-built stages from the first portion to the second portion of the user interface, reordering the one or more pre-built stages at the second portion of the user interface, configuring a property of the selected one or more pre-built stages, and/or removing the one or more pre-built stages from the second portion of the user interface.

Example 5: The system of any one of examples 1 to 4, wherein the built integration and delivery pipeline is further executed by at least: providing the one or more input values to the code for each of the arranged one or more pre-built stages.

Example 6: The system of any one of examples 1 to 5, wherein the operations further comprise: testing, by the integration and delivery platform, the software application based on the arranged one or more pre-built stages of the integration and delivery pipeline; and generating, by the integration and delivery platform, a first visual representation of a status of the testing of each of the arranged one or more pre-built stages of the integration and delivery pipeline; and generating, by the integration and delivery platform, a second visual representation of the development of the software application.

Example 7: The system of any one of examples 1 to 6, wherein the operations further comprise: receiving, by the integration and delivery platform, selection of a value stream mapping template for development of the software application; and generating, by the integration and delivery platform, a value stream mapping based at least on the selected value stream mapping template and the one or more input values, wherein the value stream mapping indicates a timeline for developing the software application.

Example 8: The system of any one of examples 1 to 7, wherein the operations further comprise: receiving, by the integration and delivery platform, an image of an architecture representing at least a portion of the software application; and generating, by the integration and delivery platform and based on based on the image, an architecture diagram representing the architecture for display via the client device.

Example 9: A computer-implemented method, comprising: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application, wherein the request includes one or more input values for the integration and delivery pipeline; building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline; and arranging, via the user interface, the selected one or more pre-built stages; and executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

Example 10: The method of example 9, further comprising: generating, by the integration and delivery platform and based on the arranged one or more pre-built stages, a recommendation for re-arranging the selected one or more pre-built stages for improving the integration and delivery pipeline.

Example 11: The method of any one of examples 9 to 10, wherein the arranging includes receiving, via the user interface, a user input causing the selected one or more pre-built stages to be dragged from a first portion of the user interface to a second portion of the user interface.

Example 12: The method of any one of examples 9 to 11, wherein the arranging further includes: adding one or more pre-built stages from the first portion to the second portion of the user interface, reordering the one or more pre-built stages at the second portion of the user interface, configuring a property of the selected one or more pre-built stages, and/or removing the one or more pre-built stages from the second portion of the user interface.

Example 13: The method of any one of examples 9 to 12, wherein the built integration and delivery pipeline is further executed by at least: providing the one or more input values to the code for each of the arranged one or more pre-built stages.

Example 14: The method of any one of examples 9 to 13, further comprising: testing, by the integration and delivery platform, the software application based on the arranged one or more pre-built stages of the integration and delivery pipeline; and generating, by the integration and delivery platform, a first visual representation of a status of the testing of each of the arranged one or more pre-built stages of the integration and delivery pipeline; and generating, by the integration and delivery platform, a second visual representation of the development of the software application.

Example 15: The method of any one of examples 9 to 14, further comprising: receiving, by the integration and delivery platform, selection of a value stream mapping template for development of the software application; and generating, by the integration and delivery platform, a value stream mapping based at least on the selected value stream mapping template and the one or more input values, wherein the value stream mapping indicates a timeline for developing the software application.

Example 16: The method of any one of examples 9 to 15, further comprising: receiving, by the integration and delivery platform, an image of an architecture representing at least a portion of the software application; and generating, by the integration and delivery platform and based on based on the image, an architecture diagram representing the architecture for display via the client device.

Example 17: A non-transitory computer-readable medium storing instructions, which when executed by at least one data processor, result in operations comprising: receiving, by an integration and delivery platform via a user interface displayed at a client device, a request to build an integration and delivery pipeline for developing a software application, wherein the request includes one or more input values for the integration and delivery pipeline; building, by the integration and delivery platform, the integration and delivery pipeline by at least: receiving, via the user interface, a selection of one or more pre-built stages from a plurality of pre-built stages of the integration and delivery pipeline; and arranging, via the user interface, the selected one or more pre-built stages; and executing, by the integration and delivery platform and based on the one or more input values and the arranged one or more pre-built stages, the built integration and delivery pipeline to develop the software application by at least: retrieving, from a database in communication with the integration and delivery platform, code for each of the arranged one or more pre-built stages.

Example 18: The non-transitory computer-readable medium of example 17 wherein the operations further comprise: generating, by the integration and delivery platform and based on the arranged one or more pre-built stages, a recommendation for re-arranging the selected one or more pre-built stages for improving the integration and delivery pipeline.

Example 19: The non-transitory computer-readable medium of any one of examples 17 to 18, wherein the arranging includes receiving, via the user interface, a user input causing the selected one or more pre-built stages to be dragged from a first portion of the user interface to a second portion of the user interface.

Example 20: The non-transitory computer-readable medium of any one of examples 17 to 19, wherein the arranging further includes: adding one or more pre-built stages from the first portion to the second portion of the user interface, reordering the one or more pre-built stages at the second portion of the user interface, configuring a property of the selected one or more pre-built stages, and/or removing the one or more pre-built stages from the second portion of the user interface.

FIG.23depicts a block diagram illustrating a computing system2300, in accordance with some example embodiments. Referring toFIGS.1-22, the computing system2300can be used to implement the continuous integration/continuous delivery (CI/CD) platform145, the CI/CD engine110, the CI/CD system100, and/or any components therein.

As shown inFIG.23, the computing system2300can include a processor2310, a memory2320, a storage device2330, and an input/output device2340. The processor2310, the memory2320, the storage device2330, and the input/output device2340can be interconnected via a system bus2350. The processor2310is capable of processing instructions for execution within the computing system2300. Such executed instructions can implement one or more components of, for example, the continuous integration/continuous delivery (CI/CD) platform145, the CI/CD engine110, the CI/CD system100, and/or any components therein. In some implementations of the current subject matter, the processor2310can be a single-threaded processor. Alternately, the processor2310can be a multi-threaded processor. The processor2310is capable of processing instructions stored in the memory2320and/or on the storage device2330to display graphical information for a user interface provided via the input/output device2340.

The memory2320is a computer readable medium such as volatile or non-volatile that stores information within the computing system2300. The memory2320can store data structures representing configuration object databases, for example. The storage device2330is capable of providing persistent storage for the computing system2300. The storage device2330can be a floppy disk device, a hard disk device, an optical disk device, or a tape device, or other suitable persistent storage means. The input/output device2340provides input/output operations for the computing system2300. In some implementations of the current subject matter, the input/output device2340includes a keyboard and/or pointing device. In various implementations, the input/output device2340includes a display unit for displaying graphical user interfaces.

According to some implementations of the current subject matter, the input/output device2340can provide input/output operations for a network device. For example, the input/output device2340can include Ethernet ports or other networking ports to communicate with one or more wired and/or wireless networks (e.g., a local area network (LAN), a wide area network (WAN), the Internet).