What is our primary use case?
My main use case for Jenkins on Hardened Ubuntu is to manage the CI/CD pipeline of my application where it will automate the complete CI and CD deployment.
A specific example of how I use Jenkins on Hardened Ubuntu for my CI/CD pipeline is with an application where it needs some integration that we need to build the application using Docker and we need to deploy the same application onto the Kubernetes cluster. We have some Docker containers which are running with Jenkins on Hardened Ubuntu installed, and we have mounted that volume to the local Ubuntu server. If something happens to the container, there will be no issue with the data loss as we can recreate the container and attach the same volume to the container which has Jenkins on Hardened Ubuntu, ensuring no data loss. Once Jenkins on Hardened Ubuntu is installed on the container, I access it through the UI and manage the complete pipeline, which includes all stages, such as getting the code from the GitHub repository. We use Maven as my application is Java-based, allowing us to build the code and perform unit tests. Once we have the Maven artifact ready, we use the same WAR file to create an image using Docker. After creating the Docker image, we push it to the ECR repository on the AWS container registry. Once we have the container image available, it is pushed to the Kubernetes cluster using Argo CD deployment, and the same image runs on the Kubernetes clusters.
What is most valuable?
The best features Jenkins on Hardened Ubuntu offers include performance, where I can access the Jenkins on Hardened Ubuntu UI with no load time and no latency.
Good performance and no latency positively impact my day-to-day work as the Jenkins on Hardened Ubuntu application can be accessed quickly.
Additionally, we have security features in Jenkins on Hardened Ubuntu where I use the credentials feature to keep secure credentials or passwords instead of hardcoding them in the pipeline.
Jenkins on Hardened Ubuntu positively impacts my organization by helping in automating the CI/CD workflows.
With Jenkins on Hardened Ubuntu automating the CI/CD process, it eliminates issues encountered with manual deployment, saving time and reducing errors.
What needs improvement?
Improvements needed for Jenkins on Hardened Ubuntu include keeping the OS fully patched with the latest security updates, minimizing installed packages, and removing unused services. I suggest restricting SSH, disabling password authentication, using SSH keys, and allowing access only to permitted users while disabling root logins. It would also be good to use HTTPS instead of HTTP for enhanced security, implement authentication methods such as LDAP, Active Directory, OAuth, or SAML, and enable MFA. Moreover, I recommend using RBAC for authorization to provide limited permissions only to certain roles. It is important to manage plugins by removing unused ones and installing those from trusted sources only, along with using secret management tools like HashiCorp Vault or AWS Secrets Manager. Additionally, limiting network access to VPNs, whitelisting specific IPs, and monitoring for login failures and plugin installations can enhance security. Backup processes should include credentials, job definitions, and plugins, and overall, we should have robust production deployments featuring NGINX reverse proxy with HTTPS, centralized logging, daily backups, and tested recovery procedures, along with vulnerability scanning.
For how long have I used the solution?
I have been using Jenkins on Hardened Ubuntu for almost three plus years.
What do I think about the stability of the solution?
Jenkins on Hardened Ubuntu is stable in my experience.
What do I think about the scalability of the solution?
Jenkins on Hardened Ubuntu's scalability is effective with its controller and agent architecture.
How are customer service and support?
Customer support for Jenkins on Hardened Ubuntu is accessed through AWS support if issues arise with the server or EC2 instances, and my experience with them has been positive as they provide solutions when needed.
Which solution did I use previously and why did I switch?
I did not use a different solution before Jenkins on Hardened Ubuntu.
What was our ROI?
I have seen a return on investment with Jenkins on Hardened Ubuntu as it saves on licensing costs, runs efficiently on various hardware, and long-term support releases reduce the frequency of major upgrades. Automation tools help reduce administration efforts, and using cloud images enables fast provisioning, while standardized deployments decrease configuration time. In addition, large software repositories simplify application installations and long-term support releases provide a stable platform, thereby lowering maintenance effort. This results in reduced operational costs through lower licensing expenses.
What's my experience with pricing, setup cost, and licensing?
My experience with pricing includes considering infrastructure costs such as servers, instances, GPUs, storage, and networking, and potentially operating system support like Ubuntu Pro. I account for AI software or model licensing, implementation effort, ongoing operations, monitoring security tools, and training for support. I calculate the total cost of ownership over three to five years, and factors affecting AI solutions on Ubuntu include CPU or GPU, storage, networking, the number of users accessing it, support levels, and software licensing, along with understanding cloud versus on-premises deployment and maintenance costs.
Which other solutions did I evaluate?
I did not evaluate any other options before choosing Jenkins on Hardened Ubuntu.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)