I have been looking for a better CI/CD pipeline for Serverless Architectures (AWS).
I would like a more “autonomous” and handsfree service where we send our code (with some extra config/YAML) and it comes up with a “Great, your code and integration looks great, go publishing!” or a “Phew, there are a few things that can be improved, check our report”… more like a COMPILER does to our code.
Provided we use the same stack (Typescript, CloudFormation or CDK, DynamoDB, SQS/SNS, API Gateway, etc) this pipeline would be the same for every project. I don’t want to spend time managing Jenkins and its configurations.
It could (considering a 100% Serverless Architecture):
- Create an ephemeral (full) environment to deploy and test the whole system (Mocks could be standardized for external, non-serverless, services and DBs could be created from seeds)
- Run unit, property, mutation, security, code quality, dependency, performance regression, licensing tests… maybe in parallel.
- Save the deployable units so that the PO can deploy it with a push of a button.
I know there are several challenges to do such a thing, but in a Serverless Architecture on a particular Cloud Provider there are fewer variabilities to consider on this “magic pipeline”.
I have looked into Gitlab Auto DevOps, but it doesn’t seem to be quite there yet.
Do you guys have any suggestions or comments?