GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
N/A
Jenkins
Score 8.4 out of 10
N/A
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
SolarWinds Database Performance Analyzer
Score 5.7 out of 10
N/A
SolarWinds Database Performance Analyzer (DPA) enables deep visibility into database performance and expert advice for performance optimization and tuning. What can you monitor with DPA? Oracle Oracle Exadata Oracle EBS Microsoft SQL Server Azure SQL Database Azure SQL Database Managed Instance MySQL DB2 SAP ASE Aurora MariaDB DPA monitors physical, virtual,…
I prefer using GoCD compared to Jenkins. The UI makes sense, I like the simplicity to hit the 'Play' button for a straightforward deployment of the 'Play +' if you need to override some settings when deploying whereas Jenkins, you have the whole page for each pipeline. The …
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to …
Previously, our team used Jenkins. However, since it's a shared deployment resource we don't have admin access. We tried GoCD as it's open source and we really like. We set up our deployment pipeline to run whenever codes are merged to master, run the unit test and revert back if it doesn't pass. Once it's deployed to the staging environment, we can simply do 1-click to deploy the appropriate version to production. We use this to deploy to an on-prem server and also AWS. Some deployment pipelines use custom Powershell script for.Net application, some others use Bash script to execute the docker push and cloud formation template to build elastic beanstalk.
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.
This is an easy 10 because I actually have recommended this product to multiple clients and colleagues! Any shop that writes its own SQL queries will benefit from the insight provided by SolarWinds Database Performance Analyzer, so they know which of their queries is causing a bottleneck. Small shops or databases with only a few tables likely will see far fewer opportunities for optimization.
Pipeline-as-Code works really well. All our pipelines are defined in yml files, which are checked into SCM.
The ability to link multiple pipelines together is really cool. Later pipelines can declare a dependency to pick up the build artifacts of earlier ones.
Agents definition is really great. We can define multiple different kinds of environments to best suit our diverse build systems.
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.
Alerts seem to be lacking in DPA compared to competitor's tools. They can be setup but are not quite as easy or as helpful as some other tools I have used.
Grooming/pruning the repository database isn't very easy. We don't manage a lot of instances but our repo DB has grown pretty significantly.
At times when I am drilled-down to a chart, it can be difficult to navigate around from that point to another time range/query/metric.
We have a certain buy-in as we have made a lot of integrations and useful tools around jenkins, so it would cost us quite some time to change to another tool. Besides that, it is very versatile, and once you have things set up, it feels unnecessary to change tool. It is also a plus that it is open source.
We have relied on this product for a very long time and it continues to exceed expectations. The product is a vital part of our organization at this point, it would not be very ideal for us to abandon it. We use it almost every day and depend on its alerts for critical parts of our business
Jenkins streamlines development and provides end to end automated integration and deployment. It even supports Docker and Kubernetes using which container instances can be managed effectively. It is easy to add documentation and apply role based access to files and services using Jenkins giving full control to the users. Any deviation can be easily tracked using the audit logs.
I don't want to think about managing clusters of SQL servers in the future without this tool. We have demoed other tools and SolarWinds Database Performance Analyzer is the gold standard for usability and insight into what your servers are doing. The UI is a bit dated, but everything is laid out in a logical manner and drilling down into queries or timeslices is extremely intuitive.
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.
I have had to use their support on a few occasions, for reasons that I am not clear about until recently I have always had problems upgrading the software (although the last 2 updates have gone without issue which I am very pleased to say). On those unfortunate occasions, the support has been brilliant with either excellently documented guides on how to resolve the issue by myself or have been hands-on with calls and screen sharing to remotely fix the issue. Every time the problem was sorted and more importantly, nothing was lost (apart from a bit of time). And as I stated above whatever the problem was that was causing my upgrade issues appears to have been resolved in the last 2 updates.
It is worth well the time to setup Jenkins in a docker container. It is also well worth to take the time to move any "Jenkins configuration" into Jenkinsfiles and not take shortcuts.
Follow the guidelines for the capacity of the servers. We found that the DPA databases were getting rather large and also that there are ways to reduce their size built into some of the options.
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to input the parameters.
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.
At the time, we found SolarWinds Database Performance Analyzer to be easier to setup and to have a richer feature set than Redgate SQL Monitor, plus, from what I remember, the DPA pricing worked better for us over the course of a year. We're very happy with all the features DPA has to offer.
Settings.xml need to be backed up periodically. It contains all the settings for your pipelines! We accidentally deleted before and we have to restore and re-create several missing pipelines
More straight forward use of API and allows filtering e.g., pull all pipelines triggered after this date