GitLab CI CD Pipeline using AWS CodePipeline and CodeDeploy
CI/CD Pipeline deployment automation is a need of the hour. Each developer and team has to focus on things that matter the most that are to deliver their product or service in the most effective manner. But as most of the teams rely on DevOps for their application deployment needs it becomes a tiring process to get changes to deploy as it involves human participation to get this done. This cost not only time but also is bound to have human error.
Below is the brief architecture:
GitLab — GitLab Runner — AWS S3 — AWS CodePipeline — AWS CodeDeploy — AWS EC2.
⏩ We will be covering the below topics:
00:00 – Introduction to CI/CD Pipeline using AWS and GitLab
00:07 – Architecture design of CI/CD pipeline in AWS
6:23 – Custom architecture for this video
Part1:
7:59 – Gitlab CI/CD integration and implementation using Gitlab Runner
31:15 – Deployment scripts for AWS EC2
Part 2:
32:32 – Setting up EC2
42:45 – Setting AWS CodePipeline
59:12 – Summary of CI/CD Pipeline
So the best solution for this problem is to have your application deployed in an automated way using Gitlab CI CD Pipeline.
This tutorial focuses on the easiest way to start with a CI/CD pipeline with minimal expense and maximum output. We are leveraging the tools of GitLab along with AWS Pipeline functionality.
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. The software was created by Ukrainian developers Dmitriy Zaporozhets and Valery Sizov.
GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline.
You can choose to install the GitLab Runner application on infrastructure that you own or manage. If you do, you should install GitLab Runner on a machine that’s separate from the one that hosts the GitLab instance for security and performance reasons. When you use separate machines, you can have different operating systems and tools, like Kubernetes or Docker, on each.
AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define. This enables you to rapidly and reliably deliver features and updates. You can easily integrate AWS CodePipeline with third-party services such as GitHub or with your own custom plugin. With AWS CodePipeline, you only pay for what you use. There are no upfront fees or long-term commitments.
AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers. … You can use AWS CodeDeploy to automate software deployments, eliminating the need for error-prone manual operations.
Written by admin