Trailhead

Trailhead Achieves Scalable Growth and Faster Publishing with Heroku

Trailhead, Salesforce's free online learning platform, equips users with essential Salesforce skills, offering a broad spectrum of educational content. It serves everyone from beginners to seasoned professionals across various roles, including developers, administrators, and sales experts. Trailhead's mission is to facilitate career advancement by providing resources to learn in-demand skills, earn globally-recognized credentials, and engage with a supportive community.

Trailhead links over 7 million learners with in-demand skills to skill up for jobs within the Salesforce ecosystem, focusing on the practical application of skills in real-world scenarios. However, the development of this extensive library did not happen overnight. To effectively connect with the greater tech community, their launch team needed a functional platform to publish content, track learning progress, and manage user engagement across various interactive modules.

Overcoming Trailhead’s Publishing and Performance Hurdles

When Trailhead set out to debut at Salesforce's annual Dreamforce event in 2014, their small team of developers was up against a tight six-week deadline to create an initial release. The team used Jenkins for continuous integration and CouchDB in a shared hosting environment for content management to meet this timeline. While functional, this solution was filled with challenges, especially for the non-technical staff such as writers and editors.. These team members struggled with Jenkins' complex interface, which was not designed with their needs in mind, leading to a frustrating and inefficient content publishing process.

The inability to scale the publishing process efficiently was a significant technical limitation. Initially, updates on Trailhead were restricted to monthly releases due to cumbersome, manual testing and preview procedures required before going live. Jenkins builds would take 1.5 hours to run, and if an error was found, it would take another 1.5 hours for each subsequent try, significantly hindering the platform's ability to deliver timely updates and new learning materials, directly impacting user engagement and the platform's educational goals.

The site's reliability was also compromised by its CouchDB hosting environment. Trailhead's performance was unpredictably affected by the activity of other customers, leading to frequent slowdowns or complete outages. Moreover, the system's lack of agility for quick updates or changes, combined with the difficulty in publishing these updates to Trailhead’s internal content management instance, further exacerbated these issues.The reliance on manual processes was not only time-consuming but also prone to errors, underscoring an urgent need for a more robust and scalable solution to meet the evolving needs of the Salesforce community.

How Heroku Transformed Trailhead’s Publishing Process

Faced with the challenge of scaling their approach while also simplifying operations, the Trailhead team needed a flexible development environment that provided improved control to implement necessary improvements. They turned to Heroku for its seamless Salesforce integration and developer-friendly environment. Their initial focus was on improving the publishing workflow. By transitioning from manual steps and engineering tasks to Heroku, they leveraged Heroku Postgres for robust database management, Heroku Data for Redis for efficient caching, and developed a custom integration with Salesforce, GitHub, and Trailhead APIs for content releases. They also moved to using GitHub Actions to publish content, replacing Jenkins and providing a more flexible, efficient, and user-friendly solution tailored to their specific needs. This setup significantly reduced manual overhead by automating updates and content releases, enabling more frequent and reliable content releases.

As Trailhead’s user base and content volume expanded, scalable infrastructure became imperative. Heroku’s flexibility in managing dynos and integrating queues were essential in meeting these demands. The platform’s flexibility was further enhanced by webhooks and config vars, which provided robust security management through secure configuration management. These features supported the existing web applications and the ongoing development efforts, including the Trailhead mobile app. Additionally, integrating Apache Kafka on Heroku, with its event-driven architecture, centralized data for marketing purposes and consolidated user interaction information from various sources into one place. To optimize database performance, Postgres follower databases were used to offload read-only, non-transactional requests from production databases, enhancing scalability and ensuring efficient data handling.

The shift to Heroku enabled Trailhead to move from monthly to daily content releases, a change that dramatically improved how quickly users could access new learning materials. This capability was not just about operational efficiency; it also directly supported the scalability of the learning platform, allowing it to meet the rapidly growing demand. The developer-centric benefits of Heroku—such as removing the need for dedicated DevOps, a reduction from three content release managers to one, streamlined publishing, and robust scalability options—were instrumental in enabling Trailhead to expand its educational offerings and user engagement significantly. These improvements were due to Heroku's flexibility as a development platform, allowing the team to build exactly what was needed instead of working within the confines of Jenkins.

Heroku's robust platform has empowered both the Trailhead Content and Product teams to enhance our development processes significantly. The flexibility and efficiency of Heroku allow our engineering team to focus on delivering innovative educational solutions without being bogged down by technical complexities. This has resulted in greater productivity and streamlined operations, directly benefiting our users with timely and relevant content. Chad Labrosse, VP of Trailhead Engineering, Salesforce

Trailhead's Leap in Publishing Speed and Productivity with Heroku

Trailhead has demonstrated exceptional growth and reliability, reinforcing its position as a cornerstone in Salesforce product education. Leveraging Heroku's robust infrastructure has enhanced operational efficiency and fostered trust across departments, contributing to significant internal and external educational engagements.

Time Efficiency and Enhanced Productivity

Transitioning to Heroku has dramatically transformed Trailhead's content publishing speed. What previously took over an hour to push content to a preview environment now takes mere minutes, facilitating a shift from monthly to daily content updates. This rapid turnaround is crucial during high-stakes events like Dreamforce, allowing the team to release sensitive information precisely when needed. For instance, content under embargo can be strategically released to coincide with specific announcements. This efficiency also streamlines operations and enhances productivity, freeing developers to focus on innovation rather than logistical delays.

Scalability of content and team resources

Heroku's scalable environment has enabled Trailhead to manage substantial increases in user engagement without corresponding increases in team size or resources. For example, during a coordinated educational initiative involving over 100 colleges, Trailhead experienced a significant surge in users. Initially, this influx would have caused performance issues, but with Heroku, spikes were managed seamlessly, demonstrating the platform's capacity to handle large-scale user spikes effectively. Despite a tenfold increase in badge output since 2017, the Trailhead team has optimized its size by two-thirds, reallocating resources to enhance capabilities and efficiency across the company, thanks to Heroku's support. This strategic adjustment reflects Heroku's effectiveness in enabling scalability with fewer staffing, a notable achievement in an industry where scalability typically requires expanding the workforce.

Ease of Use and Operational Simplicity

Heroku's simplicity of use has significantly benefited the Trailhead team by reducing the complexity of infrastructure management. The platform's intuitive features, such as app splitting and precise resource measurement, allow for detailed cost tracking and resource allocation. This precision allows the team to make informed decisions about scaling and resource allocation, enabling them to control the pace of releases on Heroku and swiftly manage fixes, rollbacks, or updates as needed.

Heroku's capabilities have transformed how we manage content delivery at Trailhead. The ability to quickly respond to urgent requests, whether for conferences or critical product launches, highlights a significant shift from the days when our content team awaited our tech readiness. Now, we're equipped to handle any volume of updates with speed and flexibility, ensuring we meet leadership and market demands promptly. Daniel Hoechst, Director, Trailhead Content Engineering, Salesforce

What's next for Trailhead?

As Trailhead approaches its tenth anniversary, its team is focused on expanding Heroku's role in its ecosystem. Plans are underway to develop a new front-end experience hosted directly on Heroku, streamlining processes and enhancing user interactions. This shift emphasizes leveraging Heroku’s robust capabilities to support larger, more complex educational initiatives.

Internally, Trailhead is poised to further integrate into Salesforce's core operations, reinforcing its impact on corporate training and product education. Trailhead aims to foster greater agility and collaboration across departments by harnessing Heroku's efficiency and scalability, ensuring that it remains at the forefront of Salesforce’s strategic educational efforts as it enters its next decade. Heroku Connect will be instrumental in syncing data across various Salesforce orgs, particularly in the new Trails v2 implementation, ensuring seamless data flow and consistency. Additionally, Heroku Review Apps will improve agility and development productivity by enabling rapid testing and iteration of new features.

For developers seeking to expand their expertise in Heroku, Trailhead provides invaluable resources. You can dive into Heroku Enterprise on Trailhead to learn more about application development and deployment, or start learning Node.js on Heroku to build dynamic, scalable applications. For those looking to further their development career and connect with like-minded professionals, the Salesforce Developer Career Path on Trailhead offers a structured learning journey.

Explore Further:

  • Complete this trail to discover how to build and deploy applications seamlessly integrated with Salesforce on Heroku. Learn more →
  • Explore the essentials of deploying, managing, and scaling Node.js applications on Heroku with this Trailhead module. Start now →
  • Master app building, deployment, and management with Heroku's comprehensive documentation. Dive in →
  • Dive into Heroku Postgres foundations. Learn more →
  • Explore Heroku Dynos, lightweight containers for running apps. Get an overview →
  • Understand why Heroku is the choice for developers and businesses for app deployment and scalability. Explore the reasons →
  • Curious to explore what Heroku has to offer? Get started today →

If you have any thoughts or suggestions on future reliability improvements we can make, check out our public roadmap on GitHub and submit an issue!