Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Created a new blog post #7586

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions content/_data/authors/azarboon.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
name: "Mahdi Azarboon"
twitter: m_azarboon
github: azarboon
linkedin: azarboon
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
:layout: post
:title: "Serverless CI/CD Best Practice"
:tags:
- serverless
- aws
- azure
- cloud
description: >
Tips and best practice for making CI/CD for serverless application
---
Serverless is an overloaded term. Its meaning has stretched overtime. One link:https://ben11kehoe.medium.com/the-meaning-lessness-of-serverless-cc004936dee5/[shouldn't fixate] on a strict definition of serverless nor on any specific technology. Instead, one should focus on how to leverage serverless for their own business problems.

One of the main capabilities of serverless is higher agility and shorter time-to-market. However, it usually requires automation and CI/CD pipelines. You can use Jenkins to automate your entire serverless environment. As a best practice, make sure that each of followings have their own repository and deployment pipeline:

* Ephemeral environment and all its associated ephemeral resources such as AWS Lambda, Fargate, etc. This ensures that they can be deployed and rolled-back at the same time making it easier to spin-up and discard the ephemeral environment.
* Shared resources with long spin-up time e.g. AWS RDS cluster. This way, your ephemeral environments can use the same resource which makes their deployments faster and cheaper.
* Shared infrastructure resources such as virtual private network and subnet, also known as landing zones. Usually these resources are managed by a separate platform team.

I’ve specifically named AWS services but this best practice apply to other cloud vendors, too.

You can check link:https://theburningmonk.com/2023/02/how-to-handle-serverful-resources-when-using-ephemeral-environments/[this] and link:https://theburningmonk.com/2023/01/this-is-why-you-should-keep-stateful-and-stateless-resources-together/[this] posts for further information.