So to recap, this is what we have so far:
- A serverless project that has all it’s infrastructure completely configured in code
- A way to handle secrets locally
- And finally, a way to run unit tests to test our business logic
All of this is neatly committed in a Git repo.
Next we are going to use our Git repo to automate our deployments. This essentially means that we can deploy our entire project by simply pushing our changes to Git. This can be incredibly useful since you won’t need to create any special scripts or configurations to deploy your code. You can also have multiple people on your team deploy with ease.
Along with automating deployments, we are also going to look at working with multiple environments. We want to create clear separation between our production environment and our dev environment. We are going to create a workflow where we continually deploy to our dev (or any non-prod) environment. But we will be using a manual promotion step when we promote to production. We’ll also look at configuring custom domains for APIs.
For automating our serverless backend, we are going to be using a service called Seed. Full disclosure, we also built Seed. You can replace most of this section with a service like Travis CI or CircleCI. Using a CI service (like Travis CI or CircleCI) can a bit more cumbersome and needs some scripting. But we have a couple of posts on this over on the Seed blog to help you out:
- Configure a CI/CD pipeline for Serverless apps on CircleCI
- Configure a CI/CD pipeline for Serverless apps on Travis CI
Let’s get started with setting up your project on Seed.