What is our primary use case?
I use the solution in my company, and we implement it whenever the tool is required in a project.
The need for the tool depends on the requirement. Some customers require closed and compact CI/CD pipelines; in such cases, we prefer AWS CodePipeline as the best option since it will be in a suitable environment. If the customers want some free sources, we can go with free sources. In our company, we have multiple CI/CD tools as well, but that completely depends on how much security the customers require and how much of a closed environment is required. AWS CodePipeline has some of the best features provided. The tool provides ample options, so we can use AWS Secrets Manager on those things where we can use AWS STS for some of the things, which will be much more helpful when working with a closed and secured environment.
What is most valuable?
Actually, the tool has multiple valuable features. When it comes to security, we have ample options to secure credentials, or whatever crucial data is there that is not supposed to be exposed. We can keep things in multiple environments, so we can create some environment variables from AWS Secrets Manager. From the environment variables, we can create different environments. The aforementioned area consists of one of the best features of the tool. Regarding additional features, we can use cross-account deployment, one of the tool's best features. When it comes to cross-account deployment, keeping one centralized account and deploying multiple applications in a different account is trending nowadays.
What needs improvement?
I have not thought about what needs improvement in the tool, but as of now, I am good with the tool. I am satisfied with the tool's performance, and I never came across any feature that it doesn't have. Whenever the customer requires something from the tool, all the features are present in AWS CodePipeline. If there is any option available in AWS CodePipeline that can offer integration with different products like SonarQube instead of just having to provide some URLs to our customers, then that would be great. It will make it easy for the integration of code analysis, and things can be done easily. I want to see more integration options. The industry doesn't go for paid versions, like CodeGuru, and some of the industries expect us to implement or integrate their tools with free products like SonarQube, which is supposed to provide a very free and basic structure. One would rather go for SonarQube rather than CodeGuru or other such tools. It would be best if AWS CodePipeline provided multiple integration options directly by providing some URLs.
For how long have I used the solution?
I have been using AWS CodePipeline for two years. My company has a partnership with Amazon.
What do I think about the stability of the solution?
I have not seen any bugs in the tool. Its performance is quite good, which is similar to how any other CI/CD tool is supposed to perform.
What do I think about the scalability of the solution?
Many people in my company use the product, but since it is a service-based company, everything completely depends on the choices and selections made. We are just here as a mentor to give suggestions and explain the advantages of what you get if you use AWS CodePipeline, Jenkins, and other such tools to our customers. In our company, we just give guidance on the importance of each tool to our customers, but selecting a CI/CD tool depends on the customers based on their budgets and their use cases. But we prefer CI/CD because it's a compact environment where there are fewer vulnerabilities. There is not much hard coding, and there is much more security, which is a more secure manner for the CI/CD pipeline.
Around 80 percent of my company's customers prefer AWS CodePipeline.
Scalability or other such factors don't have an impact on the product. AWS CodePipeline is a CI/CD tool that takes care of continuous integration and deployment. Where you are supposed to deploy the things, like if you are deploying at the cluster level, for your applications, there may be a need for auto-scaling. For CI/CD, you generally don't require any auto-scaling.
How are customer service and support?
I haven't spoken to the tool's support team about CI/CD and other such areas. Things. Our company has recognized the advantages of AWS. We normally have some discussions with AWS' support team, but it is all associated with issues at the production level whenever it goes beyond our limits. We have a word with AWS' support team. For CI/CD, we don't contact AWS, but we are capable of managing it.
How was the initial setup?
In our company, we normally don't use the installation process directly. It is one of the services we can directly build. As we are not performing in an on-premises model and are mostly at the cloud level, there are not many requirements. It is just a matter of a few clicks that will be needed to set up and keep the tool ready. If you come to CloudFormation in Terraform, things are not very difficult, and we can easily do it.
I haven't come across any challenges when setting up the product.
What's my experience with pricing, setup cost, and licensing?
The price of the product depends on how many times you run it. The tool offers a pay-as-you-go model. The CI/CD pipeline can be considered as something that gets triggered per day at least four to five times, but sometimes, for the triggering part, there will be a certain amount that will be there. If the triggering is for a purpose, the user will incur a cost, but setting up the things won't cost anything.
What other advice do I have?
Whether I would recommend the product to others or not is something that depends on whether you have multiple deployments and multiple cross-account integrations and if many other things are there for the application. If you are using just standard deployment using VCS, then I would suggest that you go with AWS CodePipeline. If you just want a simple single application deployment, then I prefer that you go for Jenkins, which is free of cost or open source. If one is keeping a centralized account for deploying multiple accounts of your application, I suggest you use AWS CodePipeline.
It is very easy to learn to use the product, and it is not a big deal since you need to just set up the things, and writing in buildspec YAML is not a big deal. Anyone can do it, even if you have an additional feature, such as restricting access to AWS CodePipeline by providing YALM. AWS CodePipeline is easier than Jenkins. Writing in pipeline scripts is something that people feel can be very difficult, but with buildspec YAML, it's quite easy to build it and add some logic, making it a process that is much easier compared to all CI/CD tools.
Different applications can be enhanced with AWS CodePipeline.
I rate the tool a nine out of ten.
*Disclosure: My company has a business relationship with this vendor other than being a customer. customer/partner