Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Discussion] Replace direct API call with ROS #73

Open
zzxwill opened this issue May 14, 2021 · 0 comments
Open

[Discussion] Replace direct API call with ROS #73

zzxwill opened this issue May 14, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@zzxwill
Copy link
Collaborator

zzxwill commented May 14, 2021

Alibaba Cloud Resource Orchestration Service (https://www.alibabacloud.com/product/ros) is a fully managed service for cloud computing resource orchestration and automated deployment.

It's based on Alibaba Cloud API.

After compiling a resource stack template, define what cloud resources you need, the dependency between the resources, and the resource configurations. With the orchestration engine, ROS can automatically create and configure all resources for automatic deployment, operation, and maintenance according to your template. An orchestration template is a text file in JSON format that you can read and edit at any time. You can compile your template in JSON directly, or you can use Visual Editor in the ROS console to compile the template more visually. You can control the template version with tools such as SVN or Git. You can also enable IAC (Infrastructure as Code) using API, SDK, and other methods to integrate the orchestration capabilities of ROS into your own applications.

The resource orchestration template also provides a standard delivery method for resources and applications. You can use the template to deliver integrated systems and solutions that include cloud resources and applications. Independent software vendors (ISV) can use such delivery method to easily integrate Alibaba Cloud resources with their own software systems for consistent delivery.

ROS manages cloud resources in groups. A group of resources is a resource stack. Therefore, cloud resources can be created, deleted, modified, and cloned in groups. In DevOps practices, you can easily clone, develop, and test the environments, simplifying the overall migration and scaling of applications.

image

In short, ROS is similar to Terraform/CloudFormation/Heat.

Here is a discussion on whether we should replace direct API call with ROS.

Possible benefits if using ROS from ROS team

  • It's more robust than directly calling API
  • ROS itself can be a form of API
  • ROS can internally handle DAG of multiple resources provisioning
  • It's a free cloud resource
  • ROS supports 60+ products and 300+ resources
    This can speed up the coverage of products support by provider-alibaba.

Some concerns from Crossplane team

Here are some concerns from @negz

  • There are multiple sources of truth. e.g. Crossplane -> ROS -> presumably APIs being called by ROS.

Indeed, ROS is based on Alibaba Cloud resources API.

  • We don’t really want our users to need to know how the underlying system (e.g. ROS, CloudFormation etc) works.

Indeed.

  • We want users to work with a strongly typed Kubernetes resource like RDSInstance not ROSDeployment or similar.

ROSDeployment or similar object won't exist as ROS is in the form of API called by managed resource Observe/Create/Update/Delete.

More questions

  • How ROS will maintain Template/Stack for each resource? Is it friendly to contributors?
@zzxwill zzxwill added the enhancement New feature or request label May 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant