Building application modules and solution templates for application deployment across client resources
A solution builder service allows builder clients to build modules and solution templates for application deployment and also allows consumer clients to select solution templates for deployment of an application. The service may receive, from a builder, software code to be included in an application module and generate a module based on the code. After validation, the service adds the module to a catalog. The service may receive, from the builder, a solution template that indicates application module(s) of the catalog that are to be used for deployment of an application (e.g., solution). After validation, the service adds the template to the catalog. The template becomes available for selection and configuration by a consumer, which can be used to deploy an application to the consumer's resources.
1 . A system, comprising:
one or more processors and one or more memories, wherein the one or more memories have stored thereon instructions, which when executed by the one or more processors, cause the one or more processors to implement a solution builder service for a plurality of clients of a provider network, wherein the solution builder service is configured to, for a given client:
receive, from the client, software code to be included in an application module;
generate an application module based on the software code provided by the client;
validate the application module;
subsequent to the validation of the application module, add the application module to a catalog, wherein the catalog comprises application modules and solution templates from different clients that have been validated by the solution builder service;
receive, from the client, a solution template, wherein the solution template indicates a plurality of the application modules of the catalog, and wherein the plurality of application modules of the catalog that are indicated by the solution template received by the solution builder service from the client comprises the application module that was previously added to the catalog by the solution builder service based on the software code previously received by the solution builder service from the client, and wherein the plurality of application modules respectively comprise software code;
validate the solution template; and
subsequent to the validation of the solution template, add the solution template to the catalog, wherein the solution template is available for selection from the catalog for use at least by one or more of the plurality of clients of the solution builder service other than the client.
2 . The system as recited in claim 1 , wherein the solution builder service is further configured to:
receive, from the client, an indication that the application module is to be rights managed, wherein at least one type of access right is to be assigned for the application module by the client.
3 . The system as recited in claim 1 , wherein the solution builder service is further configured to:
receive, from another client, software code to be included in another application module;
validate the other application module; and
subsequent to the validation of the other application module, add the other application module to the catalog.
4 . The system as recited in claim 3 , wherein the solution builder service is further configured to:
receive, from the other client, another solution template, wherein the other solution template indicates the application module and the other application module;
validate the other solution template; and
subsequent to the validation of the other solution template, add the other solution template to the catalog.
5 . The system as recited in claim 1 , wherein the solution builder service is further configured to:
receive, from another client, a request for deployment of the solution template; and
based on the solution template, deploy an application to resources of the other client.
6 . A method, comprising:
performing, by one or more computing devices of a provider network that implement a solution builder service:
receiving, from a client, a solution template, wherein the solution template indicates a plurality of application modules of a catalog, wherein the catalog comprises application modules and solution templates from different clients, and wherein at least one of the plurality of application modules of the catalog that are indicated by the solution template received by the solution builder service from the client was previously added to the catalog by the client or another client of the solution builder service based on input previously received by the solution builder service from the client or the other client, and wherein the plurality of application modules respectively comprise software code;
validating the solution template; and
subsequent to the validation of the solution template, adding the solution template to the catalog, wherein the solution template is available for selection from the catalog for use by one or more of a plurality of other clients of the solution builder service.
7 . The method as recited in claim 6 , further comprising:
receiving, from the client or the other client, software code to be included in at least one application module;
validating the at least one application module; and
subsequent to the validation of the at least one application module, adding the at least one application module to the catalog.
8 . The method as recited in claim 6 , further comprising:
receiving, from the client, an indication that the solution template is to be rights managed, wherein at least one type of access right is to be assigned for the solution template by the client.
9 . The method as recited in claim 6 , wherein one of the application modules of the solution template includes software code that was provided by another client, and wherein the application module was assigned one or more types of access rights by the other client.
10 . The method as recited in claim 6 , wherein one of the application modules of the solution template is a prebuilt application module provided by the solution builder service.
11 . The method as recited in claim 6 , further comprising:
receiving, from another client, a different solution template, wherein the different solution template indicates an application module previously added to the catalog by the client and a different application module not included in the solution template.
12 . The method as recited in claim 6 , further comprising:
receiving, from another client, a request for deployment of the solution template; and
based on the solution template, deploying an application to resources of the other client.
13 . The method as recited in claim 6 , wherein deploying the application comprises:
deploying one or more of the plurality of application modules to a plurality of edge devices of a remote network of the other client.
14 . The method as recited in claim 6 , wherein receiving the solution template comprises:
providing, to the client, a graphical user interface (GUI), wherein the GUI provides an indication of the plurality of application modules, and
receiving, from the client, input that indicates relationships between different ones of the plurality of application modules.
15 . One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors of an edge device of a network of a client cause the one or more processors to implement a solution builder service to:
receive, from a client, a solution template, wherein the solution template indicates a plurality of application modules of a catalog, wherein the catalog comprises application modules and solution templates from different clients, and wherein at least one of the plurality of application modules of the catalog that are indicated by the solution template received by the solution builder service from the client was previously added to the catalog by the client or another client of the solution builder service based on input previously received by the solution builder service from the client or the other client, and wherein the plurality of application modules respectively comprise software code;
validate the solution template; and
subsequent to the validation of the solution template, add the solution template to the catalog, wherein the solution template is available for selection from the catalog for use by one or more of a plurality of other clients of the solution builder service.
16 . The one or more storage media as recited in claim 15 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to:
receive, from the client or the other client, software code to be included in at least one application module;
validate the at least one application module; and
subsequent to the validation of the at least one application module, add the at least one application module to the catalog.
17 . The one or more storage media as recited in claim 15 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to:
receive, from the client, an indication that the solution template is to be rights managed, wherein at least one type of access right is to be assigned for the solution template by the client.
18 . The one or more storage media as recited in claim 15 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to:
receive, from another client, a request for deployment of the solution template; and
based on the solution template, deploy an application to resources of the other client.
19 . The one or more storage media as recited in claim 18 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to:
receive, from the other client, a support request for the application; and
route the support request for the application to the client.
20 . The one or more storage media as recited in claim 18 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to:
receive performance metrics for the application; and
route the performance metrics to the client.