Esri empowers leaders with innovative tools to help create sustainable prosperity.
Summary: Esri has embraced DevOps practices with the CloudBees CI to speed delivery of new applications and features with tighter security permissions and enterprise support.
Challenge: Scale development environment with growth while eliminating manual tasks, removing developer roadblocks and strengthening security permissions to enable Esri’s customer-first orientation and market position
Solution: Power a DevOps initiative and increase automation with CloudBees CI
Administrative overhead reduced by 30%
Developer productivity increased by 40%
Support response times reduced by weeks
New hires ramped up quickly
Product: CloudBees CI
When a company wants to identify optimal locations for new franchises, a municipality needs to find a suitable spot for a new landfill, or a research group studies the effects of deforestation on an ecosystem, they use mapping and spatial analytics software from Esri to get a better understanding of how their data and the underlying geography fit together.
For all of these scenarios and thousands more, organizations worldwide rely on the ArcGIS mapping and analytics platform from Esri, the global market leader in geographic information systems (GIS). In fact, Esri software is deployed in more than 350,000 organizations, including most national governments, more than 75% of Fortune 500 companies and more than 7,000 colleges and universities.
As a privately-held company, Esri has maintained a focus on customer needs – rather than investor priorities – for more than 40 years. This customer-oriented focus is reflected in the company’s R&D budget, which is more than 30% of annual revenue. It has also been described by co-founder Jack Dangermond as a strategic advantage and a key to Esri’s success.
This customer-obsessed culture is the driving force behind an initiative within the Esri development organization to adopt DevOps practices and implement them with CloudBees CI. "The biggest driver for us in going down the path toward DevOps is our desire to turn new ideas into reality for our customers as quickly as possible and as smoothly as possible,” says Vince Ingram, senior systems administrator at Esri.
"CloudBees CI has given us and the developers more time to explore improvements and ideas that we previously didn’t have the time to pursue,” he says. "Without it, we wouldn’t be anywhere near as agile as we are now in moving from concept to product. It’s very rare that you find a solution that works so well for both sides of the house,” says Ingram
"The CloudBees CI has given me 30 percent more time in my day...We’re using the time previously spent on day-to-day manual tasks on higher value projects."Vince IngramSenior Systems Administrator
Automate Manual Processes, Enforce Security Roles and Remove Support Bottlenecks
As a leader of Esri’s application support group, Ingram’s focus is on supporting developers working on the company’s web presence and applications, which span multiple sites and architectures. In the past, the development and deployment process included many steps that had to be performed every time by hand, leading to slowdowns and frustration.
"Everything was exceedingly manual; we would go file-by-file through a source code repository,” Ingram recalls. "My team handled staging deployment environments, so we were in the middle of every step, and it really slowed the developers down.”
As a first step toward improving this process, the group began using Jenkins to automate some of the steps. As the use of Jenkins grew, Ingram encountered challenges in running Jenkins in an enterprise environment. "Just as we were getting more and more buy-in into Jenkins as a job engine, we started to hit limitations, particularly around permissions,” he explains.
Esri only had admin or read permissions available, with no easy way to set up a middle ground, giving some employees too much access and others not enough. As the teams grew, these limitations became more pronounced and risky. Mistakes can happen and Esri was no longer comfortable leaving security to chance or trust.
Plugin compatibility was also an issue. Developer requests for new Jenkins plugins were handled by Ingram’s team, vetted and then he and his team would “hope for the best,” in terms of compatibility and interoperability with other plugins and Jenkins versions, adding stress and risk to the environment.
Limited support options with Esri’s initial Jenkins setup was also challenging. Community support was not enough. "At the enterprise level, we need a partner we trust, a phone number to call and a defined path to quickly get the help we need,” says Ingram.
Begin Implementing DevOps Practices and Automation with CloudBees CI
Esri completed a migration to the CloudBees CI, leading to less administrative overhead, improved security and higher developer productivity.
Among the first steps Ingram’s group took was securing access to Jenkins jobs using the Role-Based Access Control (RBAC) and Folders Plus plugins. "CloudBees CI enabled us to address our permissions challenge right out of the gate,” says Ingram.
The application support group set up folders for each development team, and then created developer roles for each folder. The application group maintains administrative permission, while anyone not in a development or admin role has only read permission. Esri can also easily give permission to run jobs but not edit them by creating an execute role for a specific group. "It’s allowed freedom for developers, while making it easy for all of us to learn from what other teams are doing,” says Ingram. "We were never able to set granular permissions like this before.”
During the migration, Ingram took the opportunity to simplify the Jenkins environment by removing unused plugins – a suggestion he received from the CloudBees support team. "I basically forklifted the jobs folder from our existing Jenkins instance to CloudBees CI and began making some small changes,” Ingram recalls. "I found that we had a half-dozen or so plugins that were installed but unused by any jobs, so I didn’t migrate them.” In the initial migration, Ingram moved about 20 folders each with as many as 40 jobs to CloudBees CI running with one controller and two executors.
With each development team assigned to its own folder, teams have the ability to set up their own jobs and experiment with new configurations. Requests for new plugins flow through Ingram’s group, which verifies all new plugins through the CloudBees Assurance Program before installing them to ensure continued stability.
"I just make sure the plugin is vetted and then I set it up and the team can proceed with what they want to do,” says Ingram. "The CloudBees Assurance Program eliminates the stress and worry of leaving that to chance.”
During the initial set up, migration and beyond, the application support group at Esri has relied on expert support from CloudBees engineers to build DevOps momentum with CloudBees CI. "From the very beginning, everyone I’ve worked with at CloudBees has owned whatever issue or ticket that we’ve had. Their attitude is always on working together to find the best way to tackle an issue. They’ve shown us better methods that lead us where we wanted to go – for example toward pipelines – which was a big help.”
Going forward, Ingram expects more development teams at Esri to use CloudBees, increase automation and adopt DevOps practices.
"CloudBees CI has really broadened the minds of our group and others as well. It seems like every week I add another group or team that wants to try something new with CloudBees CI and that expansion benefits all of us and our customers,” Ingram says.
Administrative overhead reduced by 30%.
"CloudBees CI has given me 30 percent more time in my day,” says Ingram. "I believe the entire application support group is more productive because of it as well. We’re using the time previously spent on day-to-day manual tasks on higher value projects.”
Developer productivity increased by 40%.
"Automation with CloudBees CI has freed up about 40 percent of our developers’ time,” says Ingram. "It also reduced tension between development teams and the applications support group, because developers no longer have to wait for us to deploy to staging. They can do it all themselves, and when a deadline is coming and our group is engaged with another project, that’s vital.”
Support response times reduced by weeks.
"I’ve had great experiences with CloudBees support,” says Ingram. "The support engineers really know Jenkins and can identify the root of the issue quickly, get in there, get me a solution and then we’re out and done. In one case, the issue was on our end, and we would have needed a month to find it without expert eyes. CloudBees support fixes roadblocks like that for us right away.”
New hires ramped up quickly.
"It’s never a good idea to hire new people and start them off by showing them an antiquated way of doing things,” says Ingram. "CloudBees CI has been a massive benefit in this respect because the people that we hire now can focus on the tasks we’ve hired them for, instead of on manual processes that should be automated.”