US-12619414-B2 - Artificial intelligence-powered diagram-to-deployment converter
Abstract
A method includes receiving architecture instructions for a plurality of microservices, the architecture instructions comprising one or more design parameters for one or more of the plurality of microservices. The method also includes generating, by a processing device, in view of a machine learning model, a deployment configuration for the architecture instructions, wherein the deployment configuration comprises one or more deployment parameters in view of the one or more design parameters. The method also includes receiving an update to the deployment configuration. The method also includes response to receiving the update, modifying the architecture instructions to reflect the update to the deployment configuration.
Inventors
- Vaclav Pavlin
Assignees
- RED HAT, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20190909
Claims (20)
- 1 . A method, comprising: receiving architecture instructions for a plurality of microservices from a microservice system, the architecture instructions comprising one or more design parameters for one or more of the plurality of microservices and an architecture diagram for the plurality of microservices, wherein the architecture diagram is a visual diagram indicating usage of the plurality of microservices and the one or more design parameters include a version of the architecture diagram, a programming language, and purposes of the plurality of microservices; generating, by a processing device, in view of a machine learning model, a deployment configuration for the architecture instructions, wherein the deployment configuration comprises one or more deployment parameters generated by the machine learning model based on the one or more design parameters, wherein the one or more design parameters include more general information than the one or more deployment parameters; receiving an update to the deployment configuration applied to the microservice system for a new version of the architecture diagram, the update associated with the one or more design parameters including the new version of the architecture diagram; and in response to receiving the update, modifying the architecture instructions into the new version of the architecture diagram and the visual diagram to reflect the update to the deployment configuration by updating the one or more deployment parameters based on the one or more design parameters for successfully deploying the plurality of microservices using the microservice system.
- 2 . The method of claim 1 , further comprising sending the modified architecture instructions to a client device of a user of the deployment configuration.
- 3 . The method of claim 1 , further comprising storing the modified architecture instructions in association with the deployment configuration.
- 4 . The method of claim 1 , wherein the machine learning model is trained on a plurality of past deployment configurations associated with information from a plurality of existing architecture diagrams.
- 5 . The method of claim 1 , wherein the update to the deployment configuration comprises at least one of an addition of a new microservice, an addition of a new programming language to the deployment configuration, a change in a size of a memory storage device, or a change to a number of input/output ports in one or more components.
- 6 . The method of claim 1 , wherein modifying the architecture instructions to reflect the update to the deployment configuration comprises adding one or more additional design parameters to the architecture instructions.
- 7 . The method of claim 1 , further comprising: testing the deployment configuration to determine whether the update to the deployment configuration negatively affects a performance associated with one or more of the plurality of microservices; determining that the update does negatively affect the performance associated with one or more of the plurality of microservices; and outputting an alert that the update negatively affects the performance associated with one or more of the plurality of microservices, wherein the alert comprises one or more suggested remedies to correct the performance associated with one or more of the plurality of microservices.
- 8 . A system, comprising: a memory to store one or more processing instructions; a processing device, operatively coupled to the memory, to: receive architecture instructions for a plurality of microservices from a microservice system, the architecture instructions comprising one or more design parameters for one or more of the plurality of microservices and an architecture diagram for the plurality of microservices, wherein the architecture diagram is a visual diagram indicating usage of the plurality of microservices and the one or more design parameters include a version of the architecture diagram, a programming language, and purposes of the plurality of microservices; generate, in view of a machine learning model, a deployment configuration for the architecture instructions, wherein the deployment configuration comprises one or more deployment parameters generated by the machine learning model based on the one or more design parameters, wherein the one or more design parameters include more general information than the one or more deployment parameters; receive an update to the deployment configuration applied to the microservice system for a new version of the architecture diagram, the update associated with the one or more design parameters including the new version of the architecture diagram; and in response to receiving the update, modify the architecture instructions into the new version of the architecture diagram and the visual diagram to reflect the update to the deployment configuration by updating the one or more deployment parameters based on the one or more design parameters for successfully deploying the plurality of microservices using the microservice system.
- 9 . The system of claim 8 , wherein the one or more processing devices are further programmed to send the modified architecture instructions to a client device to a user of the deployment configuration.
- 10 . The system of claim 8 , wherein the one or more processing devices are further programmed to store the modified architecture instructions in association with the deployment configuration.
- 11 . The system of claim 8 , wherein the machine learning model is trained on a plurality of past deployment configurations associated with information from a plurality of existing architecture diagrams.
- 12 . The system of claim 8 , wherein the update to the deployment configuration comprises an addition of a new microservice, an addition of a new programming language to the deployment configuration, a change in a size of a memory storage device, a change to a number of input/output ports in one or more components.
- 13 . The system of claim 8 , wherein modifying the architecture instructions to reflect the update to the deployment configuration comprises adding one or more additional design parameters to the architecture instructions.
- 14 . The system of claim 8 , wherein the one or more processing devices are further programmed to: test the deployment configuration to determine whether the update to the deployment configuration negatively affects a performance associated with one or more of the plurality of microservices; determine that the update does negatively affect the performance associated with one or more of the plurality of microservices; and output an alert that the update negatively affects the performance associated with one or more of the plurality of microservices, wherein the alert comprises one or more suggested remedies to correct the performance associated with one or more of the plurality of microservices.
- 15 . A non-transitory computer readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to: receive architecture instructions for a plurality of microservices from a microservice system, the architecture instructions comprising one or more design parameters for one or more of the plurality of microservices and an architecture diagram for the plurality of microservices, wherein the architecture diagram is a visual diagram indicating usage of the plurality of microservices and the one or more design parameters include a version of the architecture diagram, a programming language, and purposes of the plurality of microservices; generate, by the processing device, in view of a machine learning model, a deployment configuration for the architecture instructions, wherein the deployment configuration comprises one or more deployment parameters generated by the machine learning model based on the one or more design parameters, wherein the one or more design parameters include more general information than the one or more deployment parameters; receive an update to the deployment configuration applied to the microservice system for a new version of the architecture diagram, the update associated with the one or more design parameters including the new version of the architecture diagram; and in response to receiving the update, modify the architecture instructions into the new version of the architecture diagram and the visual diagram to reflect the update to the deployment configuration by updating the one or more deployment parameters based on the one or more design parameters for successfully deploying the plurality of microservices using the microservice system.
- 16 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further programmed to send the modified architecture instructions to a client device of a user of the deployment configuration.
- 17 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further programmed to store the modified architecture instructions in association with the deployment configuration.
- 18 . The non-transitory computer readable storage medium of claim 15 , wherein the machine learning model is trained on a plurality of past deployment configurations associated with information from a plurality of existing architecture diagrams.
- 19 . The non-transitory computer readable storage medium of claim 15 , wherein the update to the deployment configuration comprises an addition of a new microservice, an addition of a new programming language to the deployment configuration, a change in a size of a memory storage device, a change to a number of input/output ports in one or more components.
- 20 . The non-transitory computer readable storage medium of claim 15 , wherein modifying the architecture instructions to reflect the update to the deployment configuration comprises adding one or more additional design parameters to the architecture instructions.
Description
TECHNICAL FIELD Aspects of the present disclosure relate to microservices. BACKGROUND Microservices are used to build online applications. A microservice architecture is an architectural style that structures an online application as a collection of services that are independent, distributed, and loosely coupled. Each microservice in a microservice system is organized around a single business capability. For example, an e-commerce website may have several microservices, including a microservice for payments, a microservice for user accounts, and a microservice for shipping product sold on the website, among others. The microservice architecture enables the continuous delivery and deployment of large applications. This allows an online business to continuously update its software in a piecemeal fashion—one microservice may be updated without affecting the other microservices. By contrast, a monolithic architecture is a single-tiered software application in which all the pieces of the application are combined into a single program from a single platform. BRIEF DESCRIPTION OF THE DRAWINGS The described embodiments and the advantages thereof may best be understood by reference to the following description taken in conjunction with the accompanying drawings. These drawings in no way limit any changes in form and detail that may be made to the described embodiments by one skilled in the art without departing from the spirit and scope of the described embodiments. FIG. 1 is a block diagram that illustrates an example network environment for an example diagram-to-deployment converter for a system of microservices, in accordance with some embodiments of the present disclosure. FIG. 2 is a block diagram that illustrates an example microservice architecture, in accordance with some embodiments of the present disclosure. FIG. 3 is a flow diagram of a method for converting an architecture diagram of a microservice system to a microservice deployment configuration, in accordance with some embodiments of the present disclosure. FIG. 4 is a block diagram that illustrates an example microservice architecture for an e-commerce website. FIG. 5 is a flow diagram that illustrates an example method for converting an architecture diagram of a microservice system to a deployment configuration for the microservice system. FIG. 6 is a block diagram of an example computing device that may perform one or more of the operations described herein, in accordance with some embodiments of the present disclosure. DETAILED DESCRIPTION A microservice system separates an application into its core functions. Each function may be known as a service or microservice. Each microservice may be built and deployed independently, meaning individual services can function and fail without negatively affecting other services. For example, the search function on an e-commerce website may be its own microservice, and a recommended products section on the same e-commerce website may also be its own independent microservice. Either of these services can fail, be maintained, or be updated without affecting the other service. A microservice system may be beneficial because individual services may be re-used in other applications with relatively minor updates. An entity using microservices may have several prepared microservice components. For example, an entity may have a microservice for storing user information in a database that may be used in several different applications. These prepared components may save significant programming time because a programmer need not re-write the code for a particular business need; she may simply use the prepared component. This has its own drawbacks, however. Often the prepared microservices do not fit together easily, and a programmer or programming team may find it difficult to build an application using several prepared microservices. When preparing to deploy a software application composed of multiple microservices (referred to herein as a microservice system), a programmer may create an architecture diagram of the microservice system. An architecture diagram may be a high-level diagram indicating the microservices to be used and a small number of other design parameters such as a programming language to be used, an indication of which microservices in the microservice system need access to their own storage databases, or whether the microservices will need to access any third-party entities or application program interfaces (API), among other things. Another example of a design parameter may be a version of the microservice architecture. The architecture diagram is a good place to start, but often lacks all the information required for full deployment of the application. Generally, a microservice team (consisting of one or more software programmers) begins with a microservice architecture diagram and then performs several manual steps to take the software application from the diagram stage to actual deployment of the m