crossplane-contrib / provider-alibaba

Crossplane provider for Alibaba Cloud
Apache License 2.0
50 stars 18 forks source link

[Discussion] Replace direct API call with ROS #73

Open zzxwill opened 3 years ago

zzxwill commented 3 years ago

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

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