janus-idp / backstage-plugins

Plugins for Backstage
https://janus-idp.io
Apache License 2.0
149 stars 148 forks source link

🔌 Plugin: Backstage Orchestrator #771

Closed tiagodolphine closed 9 months ago

tiagodolphine commented 1 year ago

🔖 Summary

The Orchestrator for Backstage is a mechanism designed to facilitate the implementation and execution of developer self-service flows. It serves as a vital component that enhances and augments the existing scaffolder functionality of Backstage with a more flexible and powerful set of features including long-running and asynchronous flows.

The orchestrator works harmoniously with other Backstage components such as the Software Catalog, permissions, and plugins as well as others. By leveraging its capabilities, organizations can orchestrate and coordinate developer self-service flows effectively.

🌐 Project website (if applicable)

https://sonataflow.org/ https://kogito.kie.org/

✌️ Context

The Backstage Orchestrator plugin aims to provide a better option to Scaffolder, based on workflows to have a more flexible and powerful tool that addresses the need by streamlining and automating processes, allowing developers to focus more on coding and innovation.

The orchestrator relies on SonataFlow, a powerful tool for building cloud-native workflow applications.

The main idea is to keep the same user experience for users, levering the UI components, input forms, and flow that Scaffolder provides, this way it should be straightforward for users and transparent no matter whether using Templates or Workflows, both can live together being compatible with integration points.

The orchestrator controls the flow orchestrating operations/tasks that may be executed in any external service including Scaffolder Actions, this way it is possible to leverage any existing Action hence Templates and GPT can be easily migrated to workflows opening the door to extend them to more complex use cases.

The plugin consists of front-end and back-end plugins along with a common module for shared APIs.

It leverages open standards with Serverless Workflow Specification (CNCF) more on Website

Advanced core capabilities

Client-side tooling

Screenshot 2023-09-20 at 09 57 11 Screenshot 2023-09-20 at 09 58 03 Screenshot 2023-09-20 at 09 48 10 Screenshot 2023-09-20 at 09 49 07 Screenshot 2023-09-20 at 09 47 33

A PoC of the plugin was already implemented to validate the proposal.

https://github.com/tiagodolphine/backstage/tree/KOGITO-9338/plugins/swf https://github.com/tiagodolphine/backstage/tree/KOGITO-9338/plugins/swf-backend https://github.com/tiagodolphine/backstage/tree/KOGITO-9338/plugins/swf-common

👀 Have you spent some time to check if this plugin request has been raised before?

🏢 Have you read the Code of Conduct?

Are you willing to submit PR?

Yes I am willing to submit a PR!

https://github.com/janus-idp/backstage-plugins/pull/783

regicsolutions commented 11 months ago

Cool! Never heard of SonataFlow, will definitely check it out.

Another good choice out there is dapr which now supports workflows and seems to have a solid community, may be worth checking out!

https://github.com/dapr/samples/blob/master/hello-typescript/README.md