Apache Maven is an open source build automation tool.
N/A
AWS CodeBuild
Score 9.2 out of 10
N/A
AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy.
Building and automating packaging of software can be a challenging task. As the complexity of the project grows so do the dependencies on third-party artifacts. Using Maven we can define and manage the project structure centrally and it helps improve overall build times.
It is really good for building projects in the cloud. If you try to do build the project first locally and then push that stack to the cloud it could take a lot of time. In this way, it also consumes a lot of resources in the computer and in the network.
One of the issues with building software using Apache Maven is that its cache resolution is not optimal. It pulls down all the artifacts onto the developer's local machine and can sometimes result in conflicts.
The build process can vary in time and gets progressively longer as the project's complexity increases.
It was difficult to create a branching strategy with GitHub. We had everything running from main, but in a true devops environment, we would like to incorporate a true branching strategy.
I would like to share build projects with each AWS account we utilize versus creating a build project in each account. It will allow us consistent deployments across the board.
The error logs are natively in AWS, but when developers do not have access, there is no way for them to view error logs for maintenance other than an admin who has access to share the error logs.
The overall usability of Apache Maven is very good to us. We were able to incorporate it into our company's build process pretty quickly. We deployed it to multiple teams throughout the entire enterprise. We got good feedback from our developers stating that Apache Maven has simplified their build process. It also allowed to to standardize the build process for the entire enterprise, thus ensure that each development team is using the same, consistent process to build code.
It is a highly usable, well integrated CI/CD service, patricularly for AWS-centric organizations. It is a strong balance between simplicity and flexibility. Security was integrated with AWS Secrets Manager allowing secrets to be retrieved dynamically - a huge usability win for us. I did not enjoy the manual build for each environment
I can't speak to the support, as I've never had issues. Apache Maven "just works," and errors were user errors or local nexus errors. Apache Maven is a great build/dependency management tool. I give it a 9/10 because occasionally the error message don't immediately indicate a solution...but again, those errors were always user or configuration errors, and the Maven documentation is extensive, so I don't find fault in Maven, but in its users.
Ant is useful if your build is heavily based on customs scripts running in the right order. Maven greatly simplifies the process to keep track of and download build dependencies compared with Apache Ant. If your build is based on multiple custom scripts running in a specific order there is a lot of overhead in Maven compared to Apache Ant.
I've used GitHub Actions compared to AWS CodeBuild - I enjoyed the integration with AWS from a codebuild perspective, but GitHub Actions and Workflows allowed us to create a reusable pipeline which is more in line with our devops structure. I enjoy AWS CodeBuild, but from a true continuous deployment, GitHub Actions was more fit.
AWS CodeBuild was introduces as a core enabler for automating database deployments and enforcing a standardization across six environments. The standardization and quality control was well received.
Security was baked in reducing audit findings.
Deployments took minutes to update all environments compared to hours. It helped us a lot to reduce drift and deploy consistently.