I’ve been using sls for aws for a while now and I love it, but I’ve always been working alone. I’m going to have another developer join, but I’m wondering how best to manage things to make sure the development process is quick while also ensuring we never overwrite each others serverless.yml templates. Our application is still young so we change our yaml template frequently. It seems that having a central cloudFormation template does add some wrinkles compared to a non-serverless repository, where local development can be fully used. I should also add, I’m not very familiar with cloudFormation outside of the serverless framework context, so there absolutely could be things I’m missing.
One problem I have is that the combination of python serverless plugins I’m using don’t support serverless-offline. I’ve looked into fixing this but its out of scope for me.
I already have CI/CD set up via gitlab, and use it for any live or staging branch. However when it comes to my personal development stage, deploying serverless right through my console is much quicker than pushing to gitlab and letting CI/CD handle the deploy, due to the docker image taking time to spin up on gitlab. Obviously this would be the correct way to handle things, but the slowdown on development is harsh.
I thought about having each developer work on a fork of the repository, but use a different service name for the project. This would mean rapid development, but merging the projects would become complicated. There’s the added problem as well that an entire new service is made, which isn’t totally free considering the amount of AWS resources and sls stages we’re using.
I’ve also thought about keeping the development branch in gitlab, but not deploying from CI/CD. Instead both programmers will always git fetch / git push before deploying sls from their local console.
If anyone has any tips it would be greatly appreciated!