Prezi

Prezi Speeds Software Delivery and Simplifies Development Pipelines While Empowering Developers

SUMMARY
Prezi speeds software deployment with CloudBees Jenkins Enterprise™ by identifying errors faster while keeping its team small and giving them more autonomy to innovate.

CHALLENGE
Accelerate software delivery for a growing development organization without expanding its tools and DevOps team

SOLUTION
Use CloudBees Jenkins Enterprise to manage, automate and visualize complex build pipelines and provide a foundation for continued growth

RESULTS
» Failures identified 75% faster
» Administration overhead minimized
» Deployment confidence increased

PRODUCT
» CloudBees Jenkins Enterprise

Prezi is the presentation platform that helps people connect more powerfully with their audience and customers. Unlike slides, Prezi’s single, interactive canvas encourages conversation and collaboration, making its users more engaging, persuasive, and memorable. By working to meet the needs of modern, agile companies, Prezi now fosters a community of over 85 million users and over 325 million Prezi presentations around the world - that have garnered over one billion views.

Prezi is designed to enable users to leave stagnant technology behind and adopt newer, more dynamic ways of working. That vision has been embraced by Prezi’s software development team, which has adopted continuous integration (CI) and continuous delivery (CD) with CloudBees Jenkins Enterprise to deliver software faster and release with greater confidence.

“As makers of SasS software, we started as a web-first platform and we quickly moved to multi-platform,” says José Roca, director of engineering at Prezi. “From the beginning, we have focused on getting software deployed faster, empowering teams and ensuring that, once we got started moving and building quickly, we wouldn’t trip over each other. That’s why we adopted continuous integration and ultimately continuous delivery with CloudBees Jenkins Enterprise.“

CHALLENGE: AUTOMATE COMPLEX BUILD AND DEPLOYMENT PROCESS WHILE MAINTAINING DEVELOPER AUTONOMY 

The earliest version of Prezi was built by two teams within the company: a features team that worked on the browser-based editor and a web team that developed the back-end infrastructure software with Python and Django. As the company began growing rapidly, manual steps in the build and deployment process became a bottleneck. Prezi engineers wanted to automate these steps and establish more formalized testing practices with continuous integration. 

“When you begin automating deployment, it’s important that you have confidence in what you’re deploying. If there are any errors, you want to catch them quickly,” says Roca.

As the development organization took steps to increase automation, it prioritized two overriding objectives. The first was to maintain the autonomy of developers and development teams, ensuring consistency while still enabling them to experiment with new approaches and new technologies. The second was to keep the size of the company’s infrastructure and tooling team small by minimizing administrative overhead. 

“We needed a more robust and potentially more complex system to run our builds as we started rolling out new products. At the same time, we wanted to keep the cost of ownership for our build and deployment system low,” Roca explains.

SOLUTION: USE CLOUDBEES JENKINS ENTERPRISE TO MANAGE AND VISUALIZE COMPLEX BUILD PIPELINES AND REDUCE TIME-TO-DELIVERY 

Prezi began automating build and deployment processes with Jenkins® and then expanded its adoption of CI and CD practices with CloudBees Jenkins Enterprise. 

The first Jenkins master at Prezi was set up by two engineers with the goal of automating manual steps in the deployment process. Other engineers began using Jenkins and CI right away, adding automated tests as part of the process.

A dedicated QA team was formed and the number of tests running on Jenkins quickly doubled. The team also set up Jenkins nodes for specific types of projects; for example, they set up a node to handle all Java projects.

Management of Jenkins became a priority of the Prezi infrastructure and tooling team, which later assumed DevOps responsibilities as well. With centralized control and the ability to revert to a previous configuration, efficiency improved. “We went from a handful of deployments per day to more than 25 per day during that time,” says Roca.

Having previously transitioned from a managed hosted environment to Amazon Web Services (AWS), Prezi transitioned to dozens of microservices, which they began deploying with Jenkins. 

Prezi’s unprecedented growth led to expanded use of Jenkins. The company’s single Jenkins master was supporting more than 1,000 tests and hundreds of nodes, and Prezi found it difficult to operate at this scale. 

“That’s when we started looking at other options,” says Roca.

The tooling team worked together with Prezi development teams to create a list of assessment criteria for a new CI/CD system. Among the top priorities were greater team autonomy and support for complex build pipelines. 

“Some of the teams that had adopted Jenkins early on missed the sense of autonomy they had in those days when they could install any plugins they needed. They had lost this ability over time, as we centralized control,” says Roca. “We also saw that our build process had become complex, and we wanted to support those builds more efficiently.”

Roca and his team conducted a two-month evaluation of available CI/CD alternatives before deciding on CloudBees Jenkins Enterprise. “We saw that with CloudBees Jenkins Enterprise we could address the key issues we were facing without having to re-architect our tests or go through a difficult migration process,” says Roca.

Among the first changes Prezi made was switching from a single master to multiple masters. “Teams had their own masters where they could see just their own view and add any plugins or additional tools they might need. Rolling out new Jenkins masters like this restored autonomy to our teams,” Roca notes. 

The move away from a single master was aided by CloudBees Jenkins Operation Center™, which the team uses to manage the 13 masters that support more than 1,000 jobs today. 

“We had a lot of additional tools and dashboards that we were using to keep track of everything on the single master, and with CloudBees Jenkins Enterprise we no longer need them,” says Roca.

Next, Roca and his team used Jenkins Pipeline to automate and migrate one of the company’s most complex build pipelines on CloudBees Jenkins Enterprise. According to Roca, the advantages were immediately apparent. “We used to chain our tests together serially, but with Jenkins Pipeline we run them in parallel. This made the pipeline run more quickly and enabled teams to identify failed tests much faster,” he says.

The team is now using Blue Ocean to view visual representations of their most complex CD pipelines. “Blue Ocean gives them a way to quickly visualize the pipeline, check progress and react to errors,” says Roca.

The Prezi development and deployment environment has shifted and evolved over the years, first with the transition to AWS and microservices and more recently with the inclusion of Docker container technology and mobile platforms. Roca notes that CloudBees Jenkins Enterprise has the company well-positioned for future changes as well. 

“As the company keeps growing and we introduce more teams, we can use automation to roll out a new master and get them started with Jenkins, confident that it’s not going to affect another team’s roadmap and that each team will have the autonomy they need to find new ways to deliver faster.”

RESULTS 

Failures identified 75% faster.

“In our previous pipeline, tests were chained together and teams would have to wait up to half an hour to see if a test failed,” says Roca. “With Jenkins Pipeline, we rebuilt a complex pipeline with parallel tracks, so now if there’s a failure we see it in the first few minutes. That’s enabled us to get projects out the door much quicker.” 

Administration overhead minimized. 

“We have a small tooling team and we wanted to increase efficiency by using the most effective tools possible,” Roca says. “There was a risk that adding masters would result in more complexity and require a larger team to support it. CloudBees Jenkins Enterprise enabled our four-person team to remain the same size even though our development organization grew by 10 to 15% last year as we introduced new offerings.” 

Deployment confidence increased. 

“For me, one of the biggest advantages of CloudBees Jenkins Enterprise is the increased confidence level that we now have,” says Roca. “Teams are confident in what they deploy because the process is predictable and we have a tool that is stable behind it.”

With CloudBees Jenkins Enterprise, we don’t have to think about infrastructure anymore. If we want to add a new product line, a new pipeline, a new master or a new way of working, it is straightforward – there is no bottleneck or added load to our responsibilities.
José Roca
Director of Engineering, Prezi