SoundCloud Upgrades Monolithic Ruby and Rails System, Improves Security and Performance
SoundCloud is the world’s largest music and audio platform. With a diverse creator community, the platform is renowned for its unique content and features, including the ability for artists to share music and connect directly with fans.
Founded in 2007, SoundCloud is the world’s largest music and audio platform. With a diverse creator community, the platform is renowned for its unique content and features, including the ability for artists to share music and connect directly with fans. SoundCloud, headquartered in Berlin and with locations worldwide, is used by music and audio creators to share and monetize their content with a global audience, as well as to receive detailed stats and feedback from the community.
Here was our challenge:
Jake Maizel, VP of Infrastructure Engineering, is responsible for ensuring the integrity of the IT systems within SoundCloud. From data centers and cloud relationships to internal systems and the runtime environment, Jake and his team support the company’s equipment, services, networking, and operational security, among other things.
As part of the continual improvement process, a decision was made to update an internal portion of their application to enhance security and modernize the code.
“We developed our original application in 2008 in Ruby on Rails, but it was a monolithic system. Over the last several years, we weren’t able to upgrade the application, install security patches, or the dependency code around it because of potential business risks,” said Jake. “Security and privacy were our main concerns, and our goals were to upgrade to a supported version and then move to the most current version of Ruby and Rails.”
SoundCloud’s IT team is focused on bringing value in the form of features for its users and didn’t have the time or capacity to tackle the upgrade. Jake decided to seek outside help and reached out to us. After a few technical conversations, we were brought on board to upgrade the application. “I was impressed with the depth of technical knowledge at OmbuLabs,” said Jake. “Their engagement model had an independent approach which fit exactly what we were looking for.”
Our challenge was to seamlessly upgrade the company’s brittle and outdated Ruby and Rails versions while ensuring there would be zero disruptions to internal business processes. Operationally, there was a significant time zone difference between Berlin and the U.S. East Coast, which required careful balancing and coordination in the project management process.
Here’s how we solved it:
The project involved two phases, beginning with an initial four-week engagement. The first priority was to upgrade the application to fully supported software versions and install security patches. We met with the SoundCloud team, gathered insights into the code base, and gleaned valuable intel for each step in the upgrade curve. Then, we provided a written roadmap to guide the implementation process.
“The roadmap was invaluable and provided key thinking on how the project would be executed,” noted Jake. “We knew ahead of time what resources on our side would be required, how much time the project would take, the impact on production, and how it would be tested.”
Once it was determined that the security patches were up to date, the next step was to upgrade Ruby and Rails to more modern versions.
“I was impressed with the depth of technical knowledge at OmbuLabs. Their engagement model had an independent approach which fit exactly what we were looking for.
Weekly face-to-face meetings were scheduled over Zoom to share knowledge, exchange information, and answer questions about upcoming activities during high-bandwidth and low-latency discussions. We also created a Slack channel to manage the day-to-day activities, including requests for PR (pull request) review, and used GitHub for code review.
“The project management and communication were very efficient and effective despite the time zone difference,” said Jake. “We were able to balance the longer-term, deeper discussions with the day-to-day needs of asking and answering questions.”
See the results:
Within eight months, both phases were successfully completed with zero disruptions or outages during the rollout process. “It was a big lift moving from Ruby version 1.9 to 2.5 and Rails from 2.3 to 6.1,” noted Jake. “A small percentage of users had a few hiccups, but it wasn’t anything significant, and that was pretty impressive considering the scale of changes that were being made.”
As a result of the upgrade, there were a multitude of benefits, including:
- Airtight security and privacy with up-to-date patches and versions
- Increased memory capacity by 25%
- More efficient use of resources, fewer application servers required
- Lower costs for cloud and on-premises infrastructure
- Reduced start-up time impact
- Easier to scale up or down
- Improved CPU speed and heightened Kubernetes performance
“Everything is extremely stable now,” said Jake. “I never hear about any problems, which is the complete opposite of how it used to be, and this is incredible.”
The engineering team was ecstatic about the upgrade, as they knew the value of moving to a modern version from a security perspective. Potential risks melted away and the development process became much easier in a modern environment.
“When we launched, there were a lot of thumbs up. We had talked about doing this for a long time, and to finally get it done was a big deal. I’m happy we made the investment and were able to reach our target,” said Jake.
- Ruby and Rails upgrades
- Security patch installation
- Ruby on Rails
- Timeline: 8 months
Want to build something amazing with OmbuLabs? Check out our one-week Design Sprint service! We can take you from idea to prototype in 5 days. 🚀