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
JRebel
Score 8.0 out of 10
N/A
JRebel is a build automation tool developed by Estonian company ZeroTurnaround, acquired by Rogue Wave Software in 2017, and then acquired (and now supported by) Perforce since that company's 2019 acquisition of Rogue Wave. The vendor says users of JRebel saves Java teams a month of coding time per year on average.
Jenkins is ideal for developing software with high-security demands. It is hosted and set up locally and has no outside connections. But these pros could become cons when you work on open source projects and need to waste time for initial setup and maintenance over a project's …
It is really good when used along with Agile development. It can help control the dev/QA/staging environments and test the application easily without the code getting into a production environment. At the same time, if you only have small tasks, setting up Jenkins is a heavy task and too over-engineered. The user experience for simple tasks is not that great.
I recommend JRebel for Java developers, it will remove the time needed for redeployment, it will increase the focus on the task at hand (without being distracted by the redeployment) and will make them happier. I recommend JRebel for Java Development Managers, they should purchase this for their teams - it will increase productivity, decrease the product's time to market, and it will save money for the company. The ROI can be calculated upfront and presented to higher level management for approving this, if needed.
Deploys all layout changes consistently (when Instant Run was initially available, you couldn't tell if the change you made to a layout was actually being tested or not).
Doesn't require a full build as often as Instant Run when changing code.
Works with compile time annotation libraries like Realm, etc.
User Interface: The Jenkins user interface can be complex and overwhelming for new users. Improving the user experience and making it more intuitive would help streamline the onboarding process and enhance usability for both beginners and experienced users.
Configuration Management: Managing and configuring Jenkins can be challenging, especially when dealing with large and complex projects. Simplifying the configuration process and providing more user-friendly options for managing pipelines and jobs would be beneficial.
Scalability: As projects grow and the number of builds and jobs increases, Jenkins can experience performance issues and scalability challenges. Optimizing Jenkins for larger-scale deployments and providing better support for distributed builds and parallelization would help address these limitations.
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.
The performance of JRebel is great. It is enabling the Java team to do hot re-deployments and it has to be transparent and fast for the user, otherwise the whole purpose of reducing wasted time with re-deployments doesn't make sense. Also the User Interface for License Server management and analytics loads fast and the navigation through pages is quick.
There is a large development community - but it is shifting as people move towards other tools. A lot of companies still use Jenkins and will build propriety tools, which doesn't help any of the open-source community. Jenkins has a lot of help and support online, but other, more modern, alternatives will have better support for newer tech.
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.
Hot code swapping doesn't have many players...it's mainly JRebel. We use JRebel a lot in our backend code development where it minimizes our development cycle (20min down to 30sec). For Android, the competitor is Android Studio's Instant Run which works fairly well now. For smaller apps, Instant Run is faster deploying but needs more full builds. With JRebel, you hardly ever need to do a full build.
We run about 30 test projects through Jenkins every day, multiple times a day; this allows us to focus on new tests rather than manually running all these tests.
We rely heavily on reporting capabilities and email notifications; we have some jobs that send emails every time they run so we know if there is an issue with any of our services.