aws / aws-proton-public-roadmap

This is the public roadmap for AWS Proton
https://aws.amazon.com/proton
Other
199 stars 13 forks source link

Self-service CI/CD integration #40

Open rafavallina opened 3 years ago

rafavallina commented 3 years ago

Allow interested parties to integrate a CI/CD tool with Proton through a plug-in system that does not require AWS to get involved

anentropic commented 3 years ago

The CI/CD integration story is not very clear to me currently from skimming the docs...

Is Proton designed so that it manages its own CI/CD pipeline as just another resource in the stack?

So, for example, you wouldn't call proton cli "update instance" or "update pipeline" from your own GitHub Actions in the service repo? i.e. they are not the primary way of deploying a service?

Instead it's expected that you use one of the AWS CI/CD options and template that in Proton along with the rest of the infra resources. So you'd only call "update pipeline" if the Proton templates changed. Otherwise to deploy a service routinely you'd configure the CI/CD, in the Proton template, to deploy on git push for example ... Is that the idea?

Does this integrate with AWS CodeDeploy?

rafavallina commented 3 years ago

Hi @anentropic Sorry for the delayed answer.

You are correct in some components. The interaction of Proton with the pipeline goes both ways: on one side, Proton provisions the pipeline itself with the service. So, when I as a developer use Proton to create my service, the pipeline can be included - in this sense, yes, the pipeline is managed just as another resource on the service. At the same time, the pipeline itself is calling Proton to make the deployments, using indeed the Proton CLI commands. See an example of this on our sample templates: https://github.com/aws-samples/aws-proton-sample-templates/blob/79313fb73fded293d0bd91b3a4f28aea87b93d17/loadbalanced-fargate-svc/service/pipeline_infrastructure/cloudformation.yaml#L113. The example is in CodePipeline because it's the CI/CD provider we interact with right now, but this request is about enabling customers to have Proton provision a pipeline in their tool of choice.

anentropic commented 3 years ago

@rafavallina thanks that's very useful to know