Based in Toronto, Canada, 500px is developing a photo community and marketplace designed to enhance and support the creative process for creators and buyers. More than 6 million creatives use the 500px platform to improve, showcase and monetize their work. The 500px marketplace provides buyers with the opportunity to license fresh, powerful images to use in their creative campaigns.
While working on building the 500px platform, the developers at 500px needed to set up a process that would allow their growing team to detect and solve problems quickly. They wanted to make sure that the source code of key user interactions such as galleries and photography marketplace is covered with tests that run automatically.
Before switching to Semaphore, 500px used an in-house instance of Jenkins for continuous integration. As their platform grew, Jenkins proved to be a suboptimal solution, facing the team with some technical difficulties. They found it difficult to maintain Jenkins and the software it needed to run on. Being responsible for the maintenance of the entire software stack running on its CI server was neither their core competency, nor did it provide the company with any business advantage.
Jenkins also did not scale well for the needs of 500px. In order to support its millions of users, 500px has created a large software system composed of multiple components. The largest software application had a test suite that would take more than an hour to complete. With many developers working on the same code base, it was necessary to scale up Jenkins to run on multiple machines, something which 500px found time-consuming and difficult to do well. As a consequence, developers suffered from limited CI resources and wasted time waiting for their tests to finish.
Jenkins’ complex user interface also made it difficult to onboard new engineers. With thousands of tests in their suite, and their growing team’s need to collaborate more effectively, Jenkins just wasn’t cutting it for the 500px engineering team.
500px overcame the restrictions of a self-hosted continuous integration system by migrating to the cloud-based solution provided by Semaphore. By not having to worry about maintaining complex CI infrastructure, the team can concentrate on the important stuff — building and improving their service.
When 500px needs more bandwidth to run their tests because they’ve developed more code or added developers on board, they have it on Semaphore right away.
Through a built-in integration with Slack, Semaphore keeps 500px’s developers updated on their build status in real time.
With a team distributed around three cities and two time zones, having a central place to test all source code and communicate the status is a major benefit for collaboration between the people in the engineering team.
Scaling on the go proved to be the first and most important advantage for 500px.
With on-demand scalability, easy-to-use interface and technical support from the engineering team, 500px has found Semaphore to be a stable and fast continuous integration solution, improving their overall development process.