Jenkins is an open source automation server. Jenkins provides hundreds of plugins to support building, deploying and automating any project. As an extensible automation server, Jenkins can be used as a simple CI server or turned into a continuous delivery hub for any project.
N/A
Rocket DevOps
Score 9.0 out of 10
N/A
Rocket DevOps (formerly Rocket Aldon) enables true end-to-end (CI/CD) for IBM i+ environments. Businesses can extend holistic DevSecOps best practices to the IBM i, pursue innovative experimentation, easily respond to compliance audits, and adapt to the ever-changing expectations of process, technology, or experience.
Jenkins is a highly customizable CI/CD tool with excellent community support. One can use Jenkins to build and deploy monolith services to microservices with ease. It can handle multiple "builds" per agent simultaneously, but the process can be resource hungry, and you need some impressive specs server for that. With Jenkins, you can automate almost any task. Also, as it is an open source, we can save a load of money by not spending on enterprise CI/CD tools.
Rocket Aldon is perfect for simple changes to traditional IBM i development using RPGLE, CL, and DDS. It is great for finding related objects that are referenced in many locations and helping recompile all of these objects. However, Aldon has a particularly hard time with SQL views. For some reason, it is determined to lock every table related to a view even though this is not required by the operating system. Whenever one view references another view, you are always in danger of losing a view permanently if you didn't check it out and promote it. To clarify, imagine you created a view CUSTOMER_INFO. Then you make another view called CUSTOMER_SHIPMENTS that joins the CUSTOMER_INFO to a shipping table. If you ever change CUSTOMER_INFO and then promote it, there is a good chance that Aldon will delete the CUSTOMER_SHIPMENTS view and you will not get a single warning. It doesn't happen every time but when it does you are going to have a real mess on your hands.
Automated Builds: Jenkins is configured to monitor the version control system for new pull requests. Once a pull request is created, Jenkins automatically triggers a build process. It checks out the code, compiles it, and performs any necessary build steps specified in the configuration.
Unit Testing: Jenkins runs the suite of unit tests defined for the project. These tests verify the functionality of individual components and catch any regressions or errors. If any unit tests fail, Jenkins marks the build as unsuccessful, and the developer is notified to fix the issues.
Code Analysis: Jenkins integrates with code analysis tools like SonarQube or Checkstyle. It analyzes the code for quality, adherence to coding standards, and potential bugs or vulnerabilities. The results are reported back to the developer and the product review team for further inspection.
Jenkins is quite hard to configure and the User Interface is slow and hard to navigate. It takes some time to get to use to the interface and know the "tricks" in order to set up the jobs to your liking. Even if you use a pipeline file you will have to do some configuration and extra steps.
No, when we integrated this with GitHub, it becomes more easy and smart to manage and control our workforce. Our distributed workforce is now streamlined to a single bucket. All of our codes and production outputs are now automatically synced with all the workers. There are many cases when our in-house team makes changes in the release, our remote workers make another release with other environment variables. So it is better to get all of the work in control.
As with all open source solutions, the support can be minimal and the information that you can find online can at times be misleading. Support may be one of the only real downsides to the overall software package. The user community can be helpful and is needed as the product is not the most user-friendly thing we have used.
Support is hit and miss. Sometimes they give some great assistance and sometimes they are no help at all. It always seems like they can't replicate the problem but then they never try to get on our system to do deeper research. It's kind of frustrating dealing with them. Also, the website isn't that helpful.
Overall, Jenkins is the easiest platform for someone who has no experience to come in and use effectively. We can get a junior engineer into Jenkins, give them access, and point them in the right direction with minimal hand-holding. The competing products I have used (TravisCI/GitLab/Azure) provide other options but can obfuscate the process due to the lack of straightforward simplicity. In other areas (capability, power, customization), Jenkins keeps up with the competition and, in some areas, like customization, exceeds others.
Aldon provides needed functions for our current implementations and legacy systems. As we move toward modernization, we are going to look at alternatives from reviewing cost, integration capabilities and functionality