EVRY uses CI/CD practices and CloudBees to speed software delivery and comply with changing legislative and regulatory laws
Increase the frequency of software deliveries to better respond to shifting financial regulations and market needs
Adopt CI practices with CloudBees Jenkins Platform™ to automate builds and tests, provide fast feedback to developers on errors and minimize downtime due to unresolved support issues
» Developer feedback provided in minutes
» Jenkins startup times cut by 90%
» Reliable, timely support received
» CloudBees Jenkins Platform™
Headquartered near Oslo, Norway, EVRY is among the largest IT companies in the Nordic countries. Each day, more than 4 million Nordics use services delivered by EVRY within sectors such as government, banks and financial institutions, healthcare and retail.
The more than 1,300 EVRY employees in the company’s Financial Services group work to help 150 customers in 12 countries meet new regulatory requirements and exploit digital opportunities to their advantage with Software as a Service (SaaS), managed service or business process outsourcing solutions. The EVRY Financial Services development team is responsible for developing a wide portfolio of software products, including internal database applications, online services and customer self-service solutions. To deliver these solutions faster and more reliably, the team has adopted continuous delivery (CD) practices and the CloudBees Jenkins Platform.
“We have around 2,000 projects in the CloudBees Jenkins Platform and about 600 developers merging code, running tests and getting immediate feedback on the code they have written,” says Petter Størseth, head of section development services at EVRY. “It would be impossible to manage so many projects and meet our tight deadlines without the efficiency of continuous delivery with CloudBees.”
CHALLENGE: SECURELY MANAGE THOUSANDS OF PROJECTS WHILE HELPING HUNDREDS OF DEVELOPERS DELIVER ON SCHEDULE
As with all IT systems in the financial services industry, the software EVRY develops must comply with legislative and regulatory rules. When those rules change, EVRY must be able to make the necessary updates quickly to meet mandated deadlines. This challenge is compounded by the diversity of products EVRY develops. “In EVRY Financial Services, we have about 100 different software solutions with tight deadlines for release,” says Størseth. “We have to deliver on time, while complying with changing laws.” Recognizing that continuous integration could help them maintain their fast-paced development environment, EVRY tried several continuous integration (CI) tools, eventually settling on Jenkins.
Over time, however, the company recognized several needs that were not being met by their existing CI practices, including access control, project organization and timely support for Jenkins issues. “When developers began setting up Jenkins, we didn’t establish any standards. Anybody could set up a project at any time. We soon saw that this didn’t work well,” says Geir Engebakken, consultant at EVRY. “We realized we needed better access control to keep track of the great work being done by a large group and also to control who had access to projects. Defining a folder hierarchy was also necessary, so it took a long time for Jenkins to start. However, these changes helped us deliver on schedule.”
Further, when plugin version and dependency problems arose, EVRY relied on Internet searches to find solutions. Answers were not always reliable or immediate, which could imperil project deadlines when problems were encountered near a delivery date. EVRY wanted access to timely Jenkins support as well as a way to better organize and control access to Jenkins jobs.
SOLUTION: USE CLOUDBEES TO ESTABLISH ACCESS CONTROL, ORGANIZE JOBS AND AUTOMATE DEVELOPMENT AND TESTING ACTIVITIES
EVRY used the CloudBees Jenkins Platform to enhance its CI practices and evolve to continuous delivery with improved efficiency, access control and project organization.
The EVRY development team deployed the Role-based Access Control (RBAC) plugin to manage access to Jenkins jobs. To simplify the authentication for developers, the team configured the setup to enable developers to use the same authorization credentials for Jenkins as they use for Subversion and Bitbucket. After defining developer, administrator and other security roles, they assigned these roles to groups of users.
In conjunction with the RBAC plugin, the team set up the Folders plugin to organize development projects. They created top-level folders for project domains such as credit cards and banking access channels, and then created subfolders and set permissions as needed to control access to jobs.
More recently, EVRY developers began using the Pipeline plugin and the Pipeline Multibranch Plugin, to manage their more complex jobs. “With the Pipeline plugin we have a programmatic and more elegant way to control what is happening with our jobs,” says Størseth. “Our lead developers are also very happy with the multibranch features, which automatically set up another job when a new branch comes into existence in Git.”
Although each development team tailors their Jenkins jobs to fit the specific needs of their projects, a typical Jenkinsorchestrated workflow begins with a code submission to version control. This triggers a compilation and static analysis of the code. The resulting JAR files are automatically deployed to a test environment, where they undergo unit testing with JUnit and SonarQube. For some projects, the build will also undergo performance, security and other tests before it is delivered to the EVRY pre-production team, who perform final tests before automatically deploying to production.
EVRY currently has a single Jenkins master with 30 build nodes. The development tools team is looking to set up CloudBees Jenkins Operations Center with its support for Custom Update Centers to help ensure version consistency for the 150 plugins in use at the company.
Developer feedback provided in minutes.
“Depending on the complexity of the project, it took too long for a developer to receive feedback on the code they checked in,” says Engebakken. “With CI and Jenkins, the feedback is almost immediate. It takes just a few minutes for developers to find out if there is some error, which makes it easier and significantly faster for them to go back and correct it.”
Jenkins startup times cut by 90%.
When we were using open source Jenkins it took a very long time for the list of projects to load when Jenkins started,” Størseth recalls. “Now that we have organized our projects hierarchically with the Folders plugin, we’ve seen a tenfold increase in response time, which makes a big difference for anyone starting Jenkins multiple times a day.”
Reliable, timely support received.
“As an IT company we have support contracts for many products and services that we use, but CloudBees support stands out from all of them,” says Størseth. “I have been very impressed with the support we’ve received. It’s very assuring to know that if we encounter a problem CloudBees will respond quickly.”