What is our primary use case?
I work for a client. We have a CloudBees-based infrastructure, a microservice-based infrastructure. To deploy the applications, we have around 200+ microservices.
To deploy all those microservices within different environments, we use CloudBees. We use it for deployment purposes. We use Docker, Kubernetes, and all those kinds of things. To integrate all those features, we use CloudBees.
How has it helped my organization?
The master-slave Jenkins structure has improved overall deployment efficiency. In other places, we have to keep waiting for the nodes to be available, but I haven’t seen that issue with CloudBees, which helps us do our deployments faster.
Other than that, the availability of plugins is very helpful. We can easily integrate multiple tools, and the authentication process is also very easy. We can use SSH keys, usernames, and passwords. There are multiple things we can do.
Also, the kind of logs we get. If an issue occurs, we can easily find out what the issue could be. These things are very helpful.
I haven't encountered any compliance issues with CloudBees. They update their features frequently, so if we need something like SSL login, they enable it. If we don't want to allow username and password login for all users, we can manage that easily within CloudBees.
I'm very positive about CloudBees because I've been using it for a long time and have never had a negative experience. It aligns perfectly with the compliance requirements of any organization. I've worked for multiple clients and it has always met their needs.
What is most valuable?
The easy availability of all the plugins is the most valuable aspect. When I use any other open-source tools, there are multiple options available similar to CloudBees. I found it a little difficult over there because I have worked on those as well, such as GoCD and IBM. Integrating multiple tools was a bit challenging. With Cloudbees, I found it very easy.
Also, the use of Jenkins files and integrating Groovy scripts is beneficial. When you create a pipeline, you can easily create the Groovy script automatically. That feature is very beneficial as it reduces stress and makes the work easier. These are the main features I like.
We are in development of an AI tool. In CloudBees, we basically use Groovy. There are multiple other tools available, like those present in Google, where you can create the Groovy code automatically. But I work for Cognizant, and we are in the process of creating a Groovy generator where we can generate our Groovy code. This will take care of client compliance more perfectly. We are in progress of doing that.
Also, there is an initiative in the market, which is "low-code, no-code" development, where organizations are reducing their dependies on code to minimize the possibility of errors. We are exploring the creation of an AI-based tool that integrates with Jenkins to facilitate this low-code approach and further reduce the likelihood of failures.
We can create such a tool and integrate it with Jenkins to reduce the amount of code needed, thus decreasing the possibility of failures and errors. We're thinking of something like templating the CI/CD pipeline. If CloudBees offered something like this, it would be even more beneficial.
What needs improvement?
I would like to see improved speed and availability. It's much faster nowadays, but that could always be improved.
Other than that, it's quite easy to understand. I've seen development teams get confused when using other open-source CI/CD tools, but Jenkins' options and features are very clear and easy to access.
Most people are dependent on Jenkins these days, and they have their pipeline as code. I would like to see this functionality within CloudBees so the pipeline code (the Groovy file) can be generated automatically when we provide the variables or requirements. This would make things much easier.
People already do this within AWS, Azure, and other platforms, but we don't have such a feature in Jenkins. If we could add that, it would be a significant improvement.
For how long have I used the solution?
I have been using it for seven years now.
What do I think about the stability of the solution?
We have seen stability issues very rarely. Sometimes, one or two times in my whole career, I have seen issues after an upgrade where our nodes are not able to come up. But that’s very rare. So, I have never faced any significant issues with CloudBees.
What do I think about the scalability of the solution?
It is scalable. We have a Microsoft-based infrastructure. So we have to scale and contract it very frequently as per the requirement. And we do that, and it responds in a very good way.
We have a very big infrastructure. It has around eight environments. We use microservices, and some of our pipelines and environments are for other teams because the output of our application is used as input for another application. Some of our environments are for other teams. We have Dev, Test, Pre-Prod, Prod, but a few other environments are for another team that uses our application. They need a separate infrastructure for testing because they don't want our work to be interrupted. So, we have multiple environments.
So, I would rate the scalability an eight out of ten.
How are customer service and support?
Many times, some plugins or other components have become corrupt and stopped working. Our pipeline would start failing without providing any clear errors. We've contacted tech support numerous times, and because we're using the paid version, we get responses quickly, and they resolve the issues fast as well.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
I've worked for multiple organizations and multiple clients.
The con about CloudBees is Groovy coding aspect. Learning Groovy is a different skill that you need. That's why I asked if they could create a code generator like Google's, which would be beneficial. That's one of the cons.
On the pros side is that the UI is very understandable, even for beginners. The freestyle jobs, the plugins they have for everything, the easy installation and integration of multiple other tools, and code-based logs are all pros.
How was the initial setup?
I've worked on multiple kinds of projects. In some cases, it was very easy, where we just integrated Git, did the checkout, then integrated Maven, created the build, integrated SonarQube and ran the test cases, integrated artifacts with Nexus, stored them there, and then directly ran the deployment script.
I've also worked on more complex environments, where we do all of that and more.
In my current scenario, we handle deployments to multiple environments with a single pipeline. We have the whole pipeline code written in Groovy and reduced our dependency on freestyle jobs. When it comes to microservices, the infrastructure changes completely, and there are multiple microservices and pipelines. I've worked on a variety of infrastructures, from basic to extensive.
If it's a single monolithic service, it's very easy. You can do it within a day or two. But our infrastructure is microservice-based, and we have a lot of old Groovy code, so it took a lot of time. However, it's more dependable now. We've enabled multiple features and such.
Usually, it takes one or two days, but it can take longer, depending on your needs. If you want to enable all the features of CloudBees, it might take six months or more because you have to write everything in code.
Usually, we don't do any maintenance. Maintenance is typically handled by CloudBees as far as I know. We only do cleanups.
For example, if there are a few pipelines that are no longer needed or there's too much load on our CloudBees server, we clean things up. That's the extent of our maintenance. We don't do any other kind of maintenance.
What about the implementation team?
On average, three to four resources are needed for the deployment process, depending on ISD and ESD, because some of our deployments, such as production, happen in ESD. We had US clients, so we utilized ESD resources at that time - two resources from ISD and two from ESD. This allows us to handle deployments in lower environments or other tasks.
The developers are usually from the US, so we need two DevOps engineers there to support them. So, on average, four to five resources are enough to handle both ISD and ESD at all times.
What was our ROI?
ROI is good. It's much better. That's why we've been using it for the last eight years, across multiple clients and organizations. Everyone uses it, so I believe the ROI is good. That's the only reason they use it. Otherwise, there are multiple competitors, and they would have chosen another one.
What other advice do I have?
I would recommend CloudBees to other users who are looking into implementing it.
I would recommend that if users have a microservice-based infrastructure, they should have some engineers who are proficient in Groovy scripting. They should also know the deployment procedures and the steps involved in deployment.
So, once you know the steps, I don't think implementing it within Jenkins is tough, but you should be aware of all those things. Groovy is the most important part; you should have a very good knowledge of it. That's the only con that Groovy is only used in Jenkins. Other than that, it is not used anywhere.
Overall, I would rate the solution a seven out of ten.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.