AWS CodeArtifact is a fully managed artifact repository service that aims to make it easy for organizations of any size to securely store, publish, and share software packages used in their software development process. CodeArtifact can be configured to automatically fetch software packages and dependencies from public artifact repositories so developers have access to the latest versions.
We have a small team with limited resources and it worked well for us. Hence I can conclude that AWS Code Artifact are well suited for organizations which have limited resources in terms of hardware and access to administrators for setting up artifact repository in-house. AWS Code Artifact is also suited particularly well for organization(s) which are already using AWS Services/Infrastructure (eg. EC2) . It works quite well with existing AWS services and completes the gap which existed in AWS offering for quite some time. Organizations can move their entire DevOps toolchain and infrastructure to Amazon. It is less appropriate for organization(s) which rely on artifacts like Debian, C/C++, Go etc as AWS does not support those fully.
GIT is good to be used for faster and high availability operations during code release cycle. Git provides a complete replica of the repository on the developer's local system which is why every developer will have complete repository available for quick access on his system and they can merge the specific branches that they have worked on back to the centralized repository. The limitations with GIT are seen when checking in large files.
Git has met all standards for a source control tool and even exceeded those standards. Git is so integrated with our work that I can't imagine a day without it.
I am not sure what the official Git support channels are like as I have never needed to use any official support. Because Git is so popular among all developers now, it is pretty easy to find the answer to almost any Git question with a quick Google search. I've never had trouble finding what I'm looking for.
AWS CodeArtifact is an excellent choice for organization(s) which are looking to move their infrastructure and devops toolchain to Amazon. It is very useful for teams/organizations on limited budget or do not want to take on infrastructure and maintenance costs associated with the artifact repository. Other software solutions require resources for setting up and need ongoing maintenance.
I've used both Apache Subversion & Git over the years and have maintained my allegiance to Git. Git is not objectively better than Subversion. It's different. The key difference is that it is decentralized. With Subversion, you have a problem here: The SVN Repository may be in a location you can't reach (behind a VPN, intranet - etc), you cannot commit. If you want to make a copy of your code, you have to literally copy/paste it. With Git, you do not have this problem. Your local copy is a repository, and you can commit to it and get all benefits of source control. When you regain connectivity to the main repository, you can commit against it. Another thing for consideration is that Git tracks content rather than files. Branches are lightweight and merging is easy, and I mean really easy. It's distributed, basically every repository is a branch. It's much easier to develop concurrently and collaboratively than with Subversion, in my opinion. It also makes offline development possible. It doesn't impose any workflow, as seen on the above linked website, there are many workflows possible with Git. A Subversion-style workflow is easily mimicked.
Overall CodeArtifact has positive ROI on the our team. We had limited budget for procurement of server/administrators. With CodeArtifact we were able to get some savings.
We were able to deliver faster hence customers were quite happy. That led to customer satisfaction
We didnt have to invest on maintaining network infrastructure/uptime and security. That saved us quite a bit of hassle and funds.
Git has saved our organization countless hours having to manually trace code to a breaking change or manage conflicting changes. It has no equal when it comes to scalability or manageability.
Git has allowed our engineering team to build code reviews into its workflow by preventing a developer from approving or merging in their own code; instead, all proposed changes are reviewed by another engineer to assess the impact of the code and whether or not it should be merged in first. This greatly reduces the likelihood of breaking changes getting into production.
Git has at times created some confusion among developers about what to do if they accidentally commit a change they decide later they want to roll back. There are multiple ways to address this problem and the best available option may not be obvious in all cases.