How 2bcloud supports clients in setting up and implementing Continuous Integration/Continuous Delivery
Continuous integration (CI) / continuous delivery (CD) is a model that allows software development teams to automate the integration and delivery of code changes in a more frequent and reliable manner. This gives development teams more time to improve the quality of their code, test with greater depth, and leads to more customer deployments overall.
What are the benefits of CI/CD?
For the software development team, there are several benefits that come with CI/CD. These include:
Rapid deployment: Automating the software release process allows code to be automatically built, tested and released for production, which ensures rapid delivery without compromising on security. Better quality code: With the continuous delivery process, tests are done more frequently, so any bugs in the code are discovered and addressed early on, rather than closer towards production. Tests like these examples from AWS lead to a higher quality of code being delivered thanks to rapid feedback and fixes.
- Less manual effort: because the CI/CD process is automated, the developers can focus on delivering other software features, rather than spending wasted time on manual tasks. This added productivity frees up time to add strategic value elsewhere.
- Faster updates: Productivity trickles down to the whole team, which means bug fixes and new updates are released much faster to the customers. Customers can respond to market changes faster by having new releases implemented in the PRD environment.
Building software release models for 2bcloud clients
At 2bcloud, we support customer in implementing CI/CD using AWS Code Pipeline. As AWS’ definition, this is a service that builds, tests, and deploys your code every time there is a code change, based on the release process models you define.
To accomplish a CI/CD flow in AWS, the customers must implement the following steps:
- Create a release pipeline using AWS Code Pipeline to automate the software delivery process.
- Connect a source repository such as AWS Code Commit, GitHub or AWS S3
- Automate code deployments to deploy the code changes that have been committed to the repository to EC2 instances. (Other services that the pipeline could be integrated with include Lambda functions, Elastic beanstalk, ECS, EKS, and S3.)
- Set AWS permissions to create the right roles and permissions using Code Deploy for the users that will be triggered during the flow.
CI/CD Architecture Diagram
With the client’s account and CI/CD pipeline flow set up, a developer commits new code for an application. The code is pushed into the code commit stage of the flow, and the repository immediately triggers the pipeline with an AWS Cloud Watch event trigger.
The pipeline downloads the newly committed code from the code commit repository, and with the right IAM roles and permissions assigned to invoke further actions, it initiates the build phase, runs tests, downloads dependencies as needed, using the code build. The artifacts built are then saved on the s3 bucket created and attached to it.
With the build stage completed successfully, the code deploy stage is then triggered to deploy the application in a development or sandbox area for further tests. Finally, it’s pushed to the production area for customer consumption.
Additional reading:
- https://aws.amazon.com/getting-started/hands-on/set-up-ci-cd-pipeline/
- https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/