What is your build pipeline?

Hi there,

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?

Thanks

We use Terraform to provision our cloud provider accounts, access policies, networking, kubernetes cluster, and other services like object stores etc. At the moment, we do not have CD for Terraform changes, but that is one of my next few projects Speed Test.

1 Like