AWS CodePipeline is a fully managed continuous delivery service that helps users automate release pipelines for fast, reliable application and infrastructure updates. CodePipeline automates the build, test, and deploy phases of the release process every time there is a code change, based on the release model a user defines. This is to enable rapid, reliable delivery of features and updates. Users can integrate AWS CodePipeline with third-party services such as GitHub or with a custom plugin. AWS…
$1
per active pipeline/per month
GitLab
Score 8.9 out of 10
N/A
GitLab DevSecOps platform enables software innovation by aiming to empower development, security, and operations teams to build better software, faster. With GitLab, teams can create, deliver, and manage code quickly and continuously instead of managing disparate tools and scripts. GitLab helps teams across the complete DevSecOps lifecycle, from developing, securing, and deploying software. Differentiators, as described by Gitlab:
Simplicity: With GitLab, DevSecOps can…
They all pretty much have the same feature set. AWS CodePipeline has been improving in recent years, and it just makes sense to keep everything within Amazon's ecosystem.
I think AWS CodePipeline is a great tool for anyone wanted automated deployments in a multi-server/container AWS environment. AWS also offers services like Elastic Beanstalk that provide a more managed hosting & deployment experience. CodePipeline is a good middle ground with solid, built-in automation with enough customizability to not lock people into one deployment or architecture philosophy.
We started to use GitLab for hosting git source code repositories of our projects only but slowly we started to use it to store container images, packages, dependency proxy as well infrastucture registry and it is now well suited for Continuous Integration in our projects, It wasn't that good in Continuous Deployment before 12.0 version but after 12.0 it is amazingly good for Continuous Deployment as well since it keeps deployment information in a well organized manner which can be configure in ci yaml configuration.
Gitlab is the best in its segment. They have a free version, they have open-source software, they provide a good service with their SaaS product, they are a fully-remote company since the beginning (which means they are fully distributed and have forward-thinking IMO). I would certainly recommend them to everyone.
Overall, I give AWS Codepipeline a 9 because it gets the job done and I can't complain much about the web interface as much of the action is taking place behind the scenes on the terminal locally or via Amazon's infrastructure anyway. It would be nicer to have a better flowing and visualizable web interface, however.
I find it easy to use, I haven't had to do the integration work, so that's why it is a 9/10, cause I can't speak to how easy that part was or the initial set up, but day to day use is great!
Our pipeline takes about 30 minutes to run through. Although this time depends on the applications you are using on either end, I feel that it is a reasonable time to make upgrades and updates to our system as it is not an every day push.
We didn't need a lot of support with AWS CodePipeline as it was pretty straightforward to configure and use, but where we ran into problems, the AWS community was able to help. AWS support agents were also helpful in resolving some of the minor issues we encountered, which we could not find a solution elsewhere.
At this point, I do not have much experience with Gitlab support as I have never had to engage them. They have documentation that is helpful, not quite as extensive as other documentation, but helpful nonetheless. They also seem to be relatively responsive on social media platforms (twitter) and really thrived when GitHub was acquired by Microsoft
CodeCommit and CodeDeploy can be used with CodePipeline so it’s not really fair to stack them against each other as they can be quite the compliment. The same goes for Beanstalk, which is often used as a deployment target in relation to CodePipeline.
CodePipeline fulfills the CI/CD duty, where the other services do not focus on that specific function. They are supplements, not replacements. CodePipeline will detect the updated code and handle deploying it to the actual instance via Beanstalk.
Jenkins is open source and not a native AWS service, that is its primary differentiator. Jenkins can also be used as a supplement to CodePipeline.
GitLab is easily the preferred tool when it comes to versioning and source control. With other tools the UI often feels outdated and clunky leading to inefficiency and confusion. With some of the sleeker tools such as GitKraken, while the aesthetic is pleasing, the experience is plagued by a lack of support, lack of optional plugins, and a plethora of bugs that cause unnecessary legwork to resolve. GitLab is the best of both aesthetic and functionality
CodePipeline has reduced ongoing devops costs for my clients, especially around deployment & testing.
CodePipeline has sped up development workflow by making the deployment process automated off git pushes. Deployment takes very little coordination as the system will just trigger based on what is the latest commit in a branch.
CodePipeline offered a lot of out-of-the-box functionality that was much simpler to setup than a dedicated CI server. It allowed the deployment process to built and put into production with much less and effort and cost compared to rolling the functionality manually.