Accelerating Deployments and Building a Culture of “Yes” with Jenkins X and CloudBees
CloudBees
Trust is the core of a great business relationship. You can offer the best product on the market, but if your customer doesn't trust you, neither will you ever become their true partner nor will you be asked to demonstrate your added value.
In the world of IT consultancy, each lost opportunity is an opening for a competitor to create a climate of trust with your customer. Clearly, we do not want this to happen.
We are dbi services, Switzerland's leading IT expert in Oracle, Microsoft, Enterprise Content Management (ECM), and open source solutions. Our primary focus is on databases and middleware — the layers that are not seen by end users. dbi services was founded a decade ago, and I joined nine years ago as a Senior Consultant. Over time, I have worked my way up to Head of Delivery. There were 20 of us at the time, but today we quadrupled our workforce to 80 people. In addition to my position as Head of Delivery, I am also the Delivery Manager for our ECM and Application Integration and DevOps teams.
As consultants, we sometimes have to step outside of our comfort zone and expand our core competencies to better serve our customers' needs. We faced this lesson several years ago, when a client asked us to use DevOps to accelerate the deployment of their ECM system across hundreds of virtual servers. It was a first for us, and we were under a lot of pressure. However, in the end, not only did we achieve it with great success, but we also managed to expand our boundaries as an IT service provider.
A Platform Was Our Biggest Roadblock
In 2014, a major pharmaceutical client asked dbi services to expand and deploy Documentum (now owned by OpenText). The job required us to spin up more than several hundred virtual machines (VMs) running the ECM platform. At the time, we were using a labor-intensive manual process that involved testing and setting up servers one at a time. Our approach was rock solid, and every server we spun-up worked flawlessly, but setting up a single environment took weeks. That was simply too long.
At that point, our biggest roadblock was the ECM platform itself. Six years ago, Documentum couldn't handle the so-called “silent installs”—installs that required no user interaction. We could run a few scripts, but at some point, we had to step in and manually configure each one of the VMs. We had to configure dozens of Documentum components.
This approach may have worked for a single deployment, but it was too cumbersome for regular updates. Documentum releases several updates and patches every year, and we couldn’t install these updates because we had to repeat this lengthy installation and deployment process every time there was a new version of the platform.
Leveraging Silent Installs to Speed Deployments
Two years later, things took a turn for the better. Documentum finally supported silent installs, and we began to automate part of our deployment. But that still didn’t fully meet our customer’s needs.
ECM is critical to the lifecycle of a drug, and is used to track clinical studies, manage regulatory submissions, and monitor and document manufacturing. Our client wanted quicker deployments and needed more frequent updates. They asked us to implement a CI/CD workflow to speed everything up.
Nobody had ever asked us to work this way before. We were honest with the client about our lack of experience, but we had gained their trust through years of outstanding service and they therefore had confidence in our ability to get the job done. They were willing to provide us with the space to learn the ins and outs of DevOps and CI/CD workflows to build a cloud-based Documentum deployment.
It was a new world for us. But doing is the best way of learning. We dove right in and got to work learning DevOps principles while deploying Documentum for this client.
Exploring a New World
It may sound basic, but we started our learning journey with a simple Google search. We were absolute beginners in working with Kubernetes clusters on AWS, and even though we knew all about Jenkins — the open source CI/CD pipeline management platform — we were unaware of the cloud-native version, Jenkins X.
After some further research, we discovered that CloudBees was hosting an upcoming DevOps World conference in Lisbon. We therefore traveled to Portugal and met with the CloudBees team. This workshop validated dbi services' foray into DevOps, and opened a new chapter in our consultancy journey.
Our initial test had us move a legacy version of Documentum and all of its components to AWS using Amazon's EKS (Elastic Kubernetes Service). We set up a Jenkins X CI/CD pipeline and installed an instance of Documentum on a containerized Kubernetes cluster. Our biggest challenge was to create a secured access to the cloud. The pharmaceutical industry is highly regulated and must comply with strict data and privacy protection policies. When we found out that everything worked but that some permissions/access rights could not be 100% covered, we went back to our client and discussed a new deployment and update schedule. The customer decided to build the environment on premises and not in AWS and we were ready for that.
In the past, the client had asked for quarterly updates to Documentum. However, given the amount of work required to manually update a huge number of machines, we could only do it once a year. With the new CI/CD pipeline in place, we can achieve monthly updates. Working with Jenkins X enabled us to automate the deployment process, and we could set up and test a new instance in two or three hours instead of a few weeks.
Expanding CI/CD Pipelines to Other Clients
I would love to say that dbi services lead this project, but the truth is that our client set the timelines and the deliverables. The learning curve for Jenkins X, DevOps, and CI/CD pipelines was steep, but we managed to master a new workflow to deploy and maintain Documentum that was as close as possible to the schedule required by the client.
Usually, we are the ones asking our customers to get trained on new technologies, but this pharmaceutical company turned the tables. Asking us to learn something new and develop new skills instead of simply hiring another company is the proof of the strength of our business relationship.
And we learned from it: This project proved so successful that, within two years, we were offering CI/CD pipeline-based deployments to other customers. Jenkins X allowed our IT experts to do more. We now have a team of developers working with Jenkins X to build CI/CD deployment pipelines for various customers in addition to the team that was managing Documentum for that pharmaceutical client and several other accounts.
We couldn't have done this without CloudBees' and the Jenkins X community's help. CloudBees gave us a solid foundation for building CI/CD pipelines. Whenever we needed more guidance, we reached out to expert developers around the world on GitHub and the Jenkins X Slack channel. CloudBees allowed us to leverage the wisdom of the open source Jenkins X community while providing commercial-quality support to accelerate our adoption of DevOps and CI/CD pipelines.
Building a Culture of “Yes, we can!”
CI/CD pipelines and automated deployments enable my team to get everything right before we push out updates, not after. We spend less time on deployments, make fewer mistakes, and if an update or a patch breaks everything, we can revert in a matter of minutes.
Embracing DevOps at dbi services has taught me a few things. The first one is that the best business relationships are not merely transactional. Having a strong relationship with clients means that there’s no need to be afraid when they ask us to try something.
The second learning is that DevOps is a culture of “Yes, we can!” Thanks to Jenkins X and CloudBees, we can do more for our customers, in less time, and by using the same resources. We have taken on new business and have found new solutions that help our middleware, database, and ECM customers. When they come to us asking whether we can offer them rapid deployments and shorter upgrade cycles we can say “Yes” with confidence and introduce them to the DevOps culture and CI/CD pipelines.
Of course, this enables us to stand out from the competition. However and most importantly, it provides us with another way to build trust with our customers and prove them we have their best interests at heart.