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

Model complex application delivery scenarios #341

Open
resouer opened this issue Mar 25, 2020 · 5 comments
Open

Model complex application delivery scenarios #341

resouer opened this issue Mar 25, 2020 · 5 comments

Comments

@resouer
Copy link
Member

resouer commented Mar 25, 2020

In real world application delivery, a rollout Trait may not simply represent a rollout capability, but more like a pipeline, i.e. it includes several stages with rollback, automatic canary analysis and manual approval hooks etc.

In this case, ApplicationConfiguration is a combination of multiple “pipelines” from several Components, each pipeline is controlled by corresponding Traits.

This scenario match the core concept of many CD projects like Spinnaker. But I am not sure if it's the best way that we want to use OAM as the present layer for CD project.

@vturecek
Copy link
Member

Should the experience of modeling an application cross over into modeling the roll-out steps of an application? We've tossed this idea around in the past but I don't think we've had a clear idea of how that would look declaratively. Most systems do this via CLI commands, relying on other systems to coordinate those commands. Service meshes do parts of this declaratively, but the configurations get very complex and seem to be a point of frustration for users.

@resouer
Copy link
Member Author

resouer commented Mar 31, 2020

Currently, CD projects are evolving to declarative workflow (e.g. Tekton, Spinnaker and Jenkins-X) so theoretically using OAM to model them should work.

But I agree the tricky part is about boundary (or, who is the "entry" point).

@hongchaodeng
Copy link
Member

Most systems do this via CLI commands, relying on other systems to coordinate those commands.

IMHO this is what traditional systems did in an imperative workflow. Imperative workflow is easy to build, but not aligned well with the new wave of declarative systems like k8s and GitOps. Existing CD projects like Spinnaker have features beyond application model, but the application delivery part is an important area that we can improve and build declarative OAM traits and the traits can be used by those CD projects.

@krmayankk
Copy link

@resouer was there any progress to model delivery pipelines for OAM ?

@resouer
Copy link
Member Author

resouer commented Apr 16, 2021

@krmayankk we talked with team from Microsoft recently and the proposal is generating a Argo workflow from Application entity (modeled with dependsOn). Also, @hongchaodeng once implemented a datainput/output DAG in OAM k8s plugin as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants