All Products
Search
Document Center

Resource Orchestration Service:Overview

Last Updated:Sep 14, 2023

Modules offer a transparent, manageable, and repeatable method that you can use to build resource configurations into packages for inclusion across stack templates. Modules can encapsulate common service configurations and best practices as modular and customizable building blocks for you to include in a stack template.

Sample scenario

Modules can help you include resource configurations that incorporate best practices, expert knowledge, and accepted guidelines in various areas, such as security, compliance, governance, and industry regulations, in your templates. You do not need to acquire deep knowledge of the complexity of resource implementation.

For example, a networking expert can create a module that contains built-in security groups and ingress and egress rules that adhere to security guidelines. Then, you can include the module in your template to provision a secure networking infrastructure in your stack. This saves time that is spent in learning how virtual private clouds (VPCs), subnets, security groups, and gateways work. In addition, modules support versioning. If security guidelines change over time, the module creator can create a new version of the module that incorporates the changes.

Benefits

  • Predictability: Before you can use a module, the module must be created in Resource Orchestration Service (ROS). When you add a module to your template, you can identify the resources that can be parsed by the module.

  • Reusability: You can use the same module across multiple templates and accounts.

  • Traceability: ROS traces the sources of resources in stacks to allow you to identify the resources that are created from modules. You can view the sources of resource changes on the Resources, Drifts, and Change Sets tabs in the ROS console.

  • Manageability: After you create a module in ROS, you can use ROS to manage the module. For example, you can use ROS to perform versioning.

Module type

  • Public module

    ROS provides out-of-the-box public modules that you can use. For more information, see View a public module.

  • Custom module

    Custom modules are modules that you manually create in the ROS console. For more information, see Manage custom modules.

How a module works

When you initiate a stack operation, ROS generates a processed template that parses all included modules into the relevant resources. Before you execute the stack operation, you can use change sets to preview the resources that you want to add or update.

Note

Resources (regular resources and DataSource resources) and modules comply with different naming conventions. Resources comply with the three-part naming convention. Modules comply with the following four-part naming convention: MODULE::Organization::Service::Usecase.

In this example, a template that contains resources and modules is used to create a stack. The template contains an individual resource named Resource1 and a module named MODULE::Org::Service::ParentModule. The MODULE::Org::Service::ParentModule module contains two resources named Resource2 and Resource3, and a nested module named MODULE::Org::Service::ChildModule. The nested module MODULE::Org::Service::ChildModule contains a resource named Resource4. ROS processes the template and parses the modules into the relevant resources. The result shows that the stack contains the following resources: Resource1, Resource2, Resource3, and Resource4.

image.png