Case Study: Mynewsdesk — Semaphore
Mynewsdesk Accelerates Release Cycles by Using Semaphore for Continuous Deployment
- ✓ 6x faster CI build time
- ✓ Continuously deploying a large application over 10 times a day
- ✓ Straightforward and fast CI and CD workflow
Mynewsdesk is a leading SaaS provider of digital PR solutions, used by 113,000 journalists, freelance writers, and influencers globally to find breaking company news. A pioneer in PR tech, Mynewsdesk offers communicators fast and effective ways to tell their stories.
Releasing a complex PR platform several times per day
Mynewsdesk’s web-based PR platform is used by over 5,000 companies worldwide to publish and distribute content. Their development team is constantly working on growing the platform and adding improvements to delight their users.
As Mynewsdesk grew its user base and expanded in features, the development team faced a challenge. As their automated test suite grew, so did the time required to run tests to verify the system before each deployment to production. Running tests eventually became a bottleneck to releasing product updates as often as needed.
The first step in solving this issue was to automate testing and deployment by setting up continuous integration (CI). Since Mynewsdesk was already hosting the source code and the system itself in the cloud, they also chose hosted CI.
The ultimate goal was to have an automated testing and deployment pipeline that would allow the team to easily deploy multiple times per day.
At first, the developers at Mynewsdesk tried using Travis CI, but their test suite took one hour to run, and they weren’t happy with that. They needed a solution that would make it easy to split the tests and run them in parallel. They prototyped a custom build script, but it quickly proved to be difficult to maintain, as keeping up with all ongoing changes in configuration consumed a lot of time that could have been better used on improving the product.
Using Semaphore for automated testing and deployment
Looking for an alternative, Mynewsdesk tried Semaphore’s hosted continuous integration and deployment solution.
Developer at Mynewsdesk
“Our custom testing script was a pain to maintain and configure, so at some point we looked into Semaphore and discovered that it can split our tests without us having to maintain anything. We decided to switch to Semaphore, and everyone in the team has been really happy since then.”
Semaphore provides developers with an interactive CI build commands editor, in which they can easily configure parallel jobs. Developers can define as many parallel jobs as they need, and Semaphore launches them simultaneously in isolated environments.
With Semaphore, Mynewsdesk saw a big performance boost. The same test suite that took an hour to run now clocks at around 10 minutes.
In order to speed up making improvements and delivering valuable features, the team also needed to deploy more frequently. Using Semaphore for automated deployment allowed Mynewsdesk developers to deploy at least 10 times per day. They no longer needed to worry about errors that are common with manual deployments. The team also uses Semaphore’s Slack integration, so the entire team gets notified when a developer deploys a new version.
Developer at Mynewsdesk
“The feature I love the most is the deploy button — it deploys directly to Heroku, and we're good. Before we switched to Semaphore, we had a Rake task that we had to trigger ourselves to deploy to a bunch of machines. If two developers wanted to deploy at the same time, things could get pretty messy. Now we're safe. We just push the button, and we don’t have to keep an eye on it every time."
By automating the deployment process on Semaphore, developers also gain a centralized, shared deployment history. Each deploy to staging or production is linked with the corresponding build and Git revision.
Using Semaphore lets the Mynewsdesk team focus on work that matters. Their developers can now spend their time on developing new features, while Semaphore deals with integrating, testing and deploying their code into production.