What is Continuous Integration (CI) / Continuous Delivery (CD)?
Continuous Integration(CI) is a development and testing phase of software development. As developers make changes to software code, these changes are immediately checked into the shared source code. When the code is checked in, automated build processes and tests are triggered to make sure that the changes did not break the software application. It helps us to caught coding errors more quickly, and this avoids bugs before code merges into the shared source code.
Continuous Delivery (CD) means that as coding changes, new feature or bug fixes passes the automated build tests, then we have to do a set of configuration before ship changes to users land and deliver it rapidly as possible.
What is serverless?
Serverless computing (or serverless for short), is an execution model where the cloud provider (AWS, Azure, or Google Cloud) is responsible for executing a piece of code by dynamically allocating the resources. And only charging for the amount of resources used to run the code. The code is typically run inside stateless containers that can be triggered by a variety of events including http requests, database events, queuing services, monitoring alerts, file uploads, scheduled events (cron jobs), etc. The code that is sent to the cloud provider for execution is usually in the form of a function. Hence serverless is sometimes referred to as “Functions as a Service” or “FaaS”. Following are the FaaS offerings of the major cloud providers:
While serverless abstracts the underlying infrastructure away from the developer, servers are still involved in executing our functions
Serverless is fast becoming the new default compute model for many software projects. The ease of deployment, attractive pay as you go, pricing model, rapid scaling capability and reduced ops overhead are very compelling advantages to any organisation shipping software. In essence serverless is a new abstraction of the infrastructure layer, a natural evolution from containerisation via new scheduling capabilities. Instead of worrying about provisioning virtual machines or scaling container infrastructures development teams can focus on the key business differentiator — the business logic. Serverless, of course, doesn’t mean any servers, simply that the responsibility of provisioning and maintaining those resources is no longer yours.
While applications are moving to this new computing model, we’re often still left with some traditional infrastructure in the form of build servers and nodes.
Tutorial to implement CI/CD pipeline for serverless Azure functions
If you are interested in how to build CI/CD pipeline for Azure serverless functions’ deployment, watch this video
Tutorial to implement CI/CD pipeline for serverless AWS Lambda
If you are interested in how to build CI/CD pipeline for AWS Lambda serverless deployment, watch this video
Tutorial to implement CI/CD pipeline for GCP functions
If you are interested in how to build CI/CD pipeline for GCP serverless function deployment, watch this video