Case studies

"We had more Jenkins errors in a week than we have Codefresh in a year."

"Every day, every minute we are facing Jenkins problems."

Download the case study

Don’t buy. Subscribe!

That mantra of the Cloud era means business for Recurly, whose recurring billing platform manages more than 40 million subscriptions for clients ranging from digital media to insurance to software as a service. Intense competition drives Recurly to continually enhance its service with innovative new features, and that puts the heat on Recurly’s engineering department to develop, test, integrate, and deploy code quickly and reliably.

Codefresh provides the stable environment Recurly needs to relieve engineers from problem triage and put their talents back to work delivering the innovation the business needs.

The technological backdrop

As a payments processor and billing platform handling billions of dollars a year, Recurly’s code deployment processes are tightly bound by security, compliance, and audit requirements. Reliable automation is key. Prior to Codefresh, Recurly’s team relied on an on-premises Jenkins continuous integration/continuous delivery (CI/CD) implementation for development, integration, and deployment automation within their Kubernetes environment. A move to Google Cloud, though, created the opportunity to rethink and upgrade their integration and deployment processes and systems.

The challenge

Jenkins failed to provide the stable and productive environment Recurly needed. Stacey Snyder, Recurly Senior Director of Engineering, reports the system was plagued by errors and failures.

“We had more Jenkins errors in a week than we have Codefresh errors in a year,” Stacey says. Recurly had engineers dedicated to triaging failures, and each incident took other developers or testers offline to investigate, analyze, and correct the problem. Dealing with the failures hampered development which slowed getting innovation to the market and took talented software developers and testers away from doing what the business most needed them to do. Recurly needed a new platform that would provide stability, assure a higher success rate, and take less time and energy to keep working.

We had more Jenkins errors in a week than we have Codefresh errors in a year.

The solution

Today, Codefresh supplies the reliability Recurly needs.

A release engineer rebuilt all Recurly’s pipelines using Codefresh. Code gets to QA and to staging quickly and automatically. Code is committed to Git. Every Wednesday at 3:00 A.M., a cron job runs a Codefresh pipeline that looks across all GitHub repositories and builds the release for the following week.

Recurly’s governance requirements mandate that releases be approved by a manager and manually deployed, so they are focused on continuous integration (CI) functionality. For now, code gets teed up for release, and the team is approaching the point where a single click will put code in production.

The result

“It just works!” says Stacey. “It’s about stability. It’s about reliability and having pipelines that work with a very high success rate.” The new Codefresh pipelines require so little maintenance that Recurly’s release engineer now spends his time refining them to run smoother and addingnew pipelines for functions the engineering department wasn’t able to address in the past.

It just works! It’s about stability. It’s about reliability and having pipelines that work with a very high success rate.

Recurly describes a very positive relationship with Codefresh. They have a direct Slack channel with Codefresh support, so response has been quick when needed. Stacey reports, “They’ve been very responsive, but in all honesty, there haven’t been many issues.”

The journey—with Codefresh and Google Cloud—gave Recurly’s engineering team a chance to learn new approaches and take on and meet challenges in new ways. Stacey says, “It was really fresh. It was vibrant. It was a great experience. It was fun.”

It was a great experience. It was fun.

Perhaps the most significant result: engineers are back to doing what they’re good at—and meeting the company’s requirements. Developers focus on writing code. QA engineers focus on testing and finding defects. Getting the code integrated and delivered to staging and production is now completely automated. It just works.