Heroku http://blog.heroku.com The Heroku Blog 60 Router 2.0 and HTTP/2 Now Generally Available https://blog.heroku.com/router-2dot0-http2-now-generally-available Thu, 21 Nov 2024 18:13:19 GMT https://blog.heroku.com/router-2dot0-http2-now-generally-available <p>Back in September 2023, we announced our <a href="https://blog.heroku.com/router-2dot0-the-road-to-beta">Public Beta</a> for our new Common Runtime router: <a href="https://devcenter.heroku.com/articles/http-routing#router-2-0">Router 2.0</a>.</p> <p>Now generally available, Router 2.0 will replace the legacy Common Runtime router in the coming months, and bring new networking capabilities and performance to our customers. </p> <p>The beta launch of Router 2.0 also enabled us to <a href="https://blog.heroku.com/heroku-http2-public-beta">deliver HTTP/2</a> to our customers. And now, because Router 2.0 has become generally available, HTTP/2 is also generally available for all common runtime customers and even <a href="https://devcenter.heroku.com/articles/routing-in-private-spaces#http-2">Private Spaces</a> customers too.</p> <p>We’re excited to have Router 2.0 be the foundation for Heroku to deliver new cutting edge networking features and performance improvements for years to come.</p> <!-- more --> <h2 class="anchored"> <a name="why-a-new-router" href="#why-a-new-router">Why a New Router?</a> </h2> <p>Why build a new router instead of improving the existing one? Our primary motivator has been faster and safer delivery of new routing features for our customers. You can see the full rationale behind the change in our <a href="https://blog.heroku.com/router-2dot0-the-road-to-beta">Public Beta post</a>.</p> <h2 class="anchored"> <a name="lessons-learned-from-public-beta" href="#lessons-learned-from-public-beta">Lessons Learned from Public Beta</a> </h2> <p>Over the past months, Router 2.0 has been available in public beta, allowing us to gather valuable insights and iterate on its design. Because of early adopter customers and a wealth of feedback through our public roadmap, we were able to make dozens of improvements to the Router and ensure it was fully vetted before promoting it to a GA state. </p> <p>We made all sorts of improvements during that time, and all of them were fairly straight-forward with one exception involving <a href="https://github.com/puma/puma">Puma</a>-based applications. Through our investigations, we actually discovered a bug in Puma itself, and were able to contribute back to the community to get it resolved. </p> <p>The in-depth analysis below showcases the engineering investigation that took place during the Beta period and the amount of rigorous testing that was done to ensure our new platform met the level of performance and trust that our customers expect. </p> <p> <a class="btn btn-lg btn-primary-lightning" href="https://blog.heroku.com/pumas-routers-keepalives-ohmy" style="text-decoration: none;">Pumas, Routers, and Keepalives-Oh My!</a> </p> <h2 class="anchored"> <a name="tips-and-tricks-for-leveraging-router-2-0" href="#tips-and-tricks-for-leveraging-router-2-0">Tips and Tricks for Leveraging Router 2.0</a> </h2> <p>Ready to try Router 2.0? Well here are some helpful tips &amp; tricks from the folks that know it best:</p> <p> <a class="btn btn-lg btn-primary-lightning" href="https://blog.heroku.com/tips-tricks-router-2dot0-migration" style="text-decoration: none;">Tips &amp; Tricks for Migration to Router 2.0</a> </p> <h2 class="anchored"> <a name="the-power-of-http-2" href="#the-power-of-http-2">The Power of HTTP/2</a> </h2> <p>Starting today, HTTP/2 support is now generally available for both Common Runtime customers and <a href="https://www.heroku.com/private-spaces">Private Spaces</a> customers. </p> <p>HTTP/2 support is one of the <a href="https://github.com/heroku/roadmap/issues/34">most requested</a> and desired improvements for the <a href="https://www.heroku.com/platform">Heroku platform</a>. HTTP/2 can be significantly faster than HTTP 1.1 by introducing features like multiplexing and header compression to reduce latency and therefore improve the end-user experience of Heroku apps. We were excited to bring the benefits of HTTP/2 to all Heroku customers. </p> <p>You can find even more information about the benefits of HTTP/2 and how it works on Heroku from our <a href="https://blog.heroku.com/heroku-http2-public-beta">Public Beta Launch Blog</a>. </p> <p>Stay tuned for an upcoming blog post and demo showcasing the observable performance improvements when enabling HTTP/2 for your web application!</p> <h2 class="anchored"> <a name="get-started-today" href="#get-started-today">Get Started Today</a> </h2> <h3 class="anchored"> <a name="enable-router-2-0" href="#enable-router-2-0">Enable Router 2.0</a> </h3> <p>To start routing web requests through Router 2.0 for your Common Runtime app simply run the command: </p> <pre><code class="language-bash">$ heroku features:enable http-routing-2-dot-0 -a &lt;app name&gt; </code></pre> <h3 class="anchored"> <a name="enable-http-2" href="#enable-http-2">Enable HTTP/2</a> </h3> <p><u>Common Runtime:</u></p> <p>HTTP/2 is now enabled by default on Router 2.0. If you follow the same command above, your application will begin to handle HTTP/2 traffic.</p> <p>A valid TLS certificate is required for HTTP/2. We recommend using <a href="https://devcenter.heroku.com/articles/automated-certificate-management">Heroku Automated Certificate Management</a>. </p> <p>In the Common Runtime, we support HTTP/2 on custom domains, but not on the built-in <code>&lt;app-name-cff7f1443a49&gt;.herokuapp.com</code> domain.</p> <p>To disable HTTP/2, while still using Router 2.0, you can use the command: </p> <pre><code class="language-bash">heroku labs:enable http-disable-http2 -a &lt;app name&gt; </code></pre> <p><u>Private Spaces:</u></p> <p>To enable HTTP/2 for a Private Spaces app, you can use the command: </p> <pre><code class="language-bash">$ heroku features:enable spaces-http2 -a &lt;app name&gt; </code></pre> <p>In Private Spaces, we support HTTP/2 on both custom domains and the built-in default app domain.</p> <p>To disable HTTP/2, simply disable the Heroku feature <code>spaces-http2</code> flag on your app.</p> <h2 class="anchored"> <a name="the-exciting-future-of-heroku-networking" href="#the-exciting-future-of-heroku-networking">The Exciting Future of Heroku Networking</a> </h2> <p>We’re really excited to have brought this entire new routing platform online through a rigorously tested beta period. We appreciate all of the patience and support from our customers as we built out Router 2.0 and its associated features. </p> <p>This is only the beginning. Now that Router 2.0 is GA, we can start on the next aspects of our roadmap to bring even more innovative and modern features online like enhanced Network Error Logging, HTTP/2 all the way to the dyno, HTTP/3, mTLS, and others. </p> <p>We'll continue monitoring the <a href="https://github.com/heroku/roadmap">public roadmap</a> and your feedback as we explore future networking and routing enhancements, especially our continued research on expanding our networking capabilities. </p> Ethan Limchayseng Heroku Open Sources the Twelve-Factor App Definition https://blog.heroku.com/heroku-open-sources-twelve-factor-app-definition Tue, 12 Nov 2024 17:15:00 GMT https://blog.heroku.com/heroku-open-sources-twelve-factor-app-definition <p>Today, we are excited to announce Twelve-Factor is now an open source project. This is a special moment in the journey of Twelve-Factor over the years. Published over a decade ago by Heroku co-founder Adam Wiggins to codify the <a href="https://en.wikipedia.org/wiki/Twelve-Factor_App_methodology">best practices for writing SaaS apps</a>, the ideas espoused on that website inspired many generations of software engineers.</p> <blockquote class="pullquote-sm" style="padding: 10px 30px 10px 30px;font-size: inherit;border-left: 5px solid #EEF1F6; margin-bottom: 30px;"> <p> Open sourcing 12-Factor is an important milestone to take the industry forward and codify best practices for the future. As the modern app architecture reflected in the 12-Factors became mainstream, new technologies and ideas emerged, and we needed to bring more voices and experiences to the discussion.</p> <cite> <span class="quote-author">Vish Abrams</span> <span class="quote-author-meta">Chief Architect, Heroku by Salesforce</span> </cite> </blockquote> <p>We’re open sourcing Twelve-Factor because the principles were always meant to serve the broader software community, not just one company. Over time, SaaS went from a growing area of software delivery to the dominant distribution method for software and IaaS has overtaken data centers for infrastructure. The cloud is now the default. </p> <p>At the same time the technology landscape changed. Containers and Kubernetes have done to the application layer what virtual machines did to servers and have spawned huge ecosystems and communities of their own focused on a new layer of app and infrastructure abstraction. </p> <p>With these in mind, we looked at how to drive Twelve-Factor forward; to be even more relevant in the decades to come. Collectively we in the industry, end users and vendors, have learned so much from running apps and systems at scale over the past decade and it’s this collective knowledge that we need to codify to help the next wave of app teams be successful, faster, more easily. This movement is bigger than one company and to open it to an industry conversation, we are open sourcing it. </p> <blockquote class="pullquote-sm" style="padding: 10px 30px 10px 30px;font-size: inherit;border-left: 5px solid #EEF1F6; margin-bottom: 30px;"> <p>When I wrote Twelve Factor nearly 14 years ago, I never would have guessed these principles would remain relevant for so long, but cloud and backends have changed a lot since 2011! So it makes sense to turn Twelve-Factor into a community-maintained document that can evolve over time.</p> <cite> <span class="quote-author">Adam Wiggins</span> <span class="quote-author-meta">Heroku Founder, now GM of Platform at The Browser Company</span> </cite> </blockquote> <p>What does this mean for Heroku? We will continue to support Twelve-Factor as part of the community. The Heroku platform has always been an implementation of the Twelve-Factors to make the act of building and deploying apps easier, and this will continue to be the case as the Twelve-Factors evolves; Heroku will evolve. </p> <p>We invite you to get to know the <a href="https://github.com/twelve-factor/twelve-factor/blob/main/VISION.md">project vision</a>, meet the <a href="https://github.com/twelve-factor/twelve-factor/blob/main/MAINTAINERS.md">maintainers</a>, and <a href="https://github.com/twelve-factor/twelve-factor/blob/main/CONTRIBUTING.md">participate</a> in the project. Read more about the project and community on the <a href="https://12factor.net/blog/open-source-announcement">Twelve-Factor blog</a>.</p> Betty Junod Simplify Your Cloud Security: Heroku ACM Now Supports Wildcard Domains https://blog.heroku.com/heroku-acm-now-supports-wildcard-domains Thu, 26 Sep 2024 22:09:00 GMT https://blog.heroku.com/heroku-acm-now-supports-wildcard-domains <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1727193445-Wildcard%20Support%20for%20Heroku%20ACM_Blog%20Image_Option%201.png" alt="Wildcard Support for Heroku ACM_Blog Image_Option 1"></p> <p>We are thrilled to announce that <a href="https://devcenter.heroku.com/articles/automated-certificate-management">Heroku Automated Certificate Management (ACM)</a> now supports wildcard domains for the Common Runtime!</p> <p>Heroku ACM’s support for wildcard domains streamlines your cloud management by allowing Heroku’s Certificate management to cover all your desired subdomains with only one command, reducing networking setup overhead and providing more flexibility while enhancing the overall security of your applications.</p> <p>This highly-requested feature request is here, and in this blog post, we'll dive into what wildcard domains are, why you should use them, and the new possibilities this support brings to Heroku ACM.</p> <!-- more --> <h2 class="anchored"> <a name="what-s-a-wildcard-domain-and-why-should-i-use-it" href="#what-s-a-wildcard-domain-and-why-should-i-use-it">What’s a Wildcard Domain and Why Should I Use It?</a> </h2> <p>A wildcard domain is a <a href="https://datatracker.ietf.org/doc/html/rfc4592#section-2.1.1">domain that includes a wildcard character</a> (an asterisk, *) in place of a subdomain. For example, <code>*.example.com</code> is a wildcard domain that can cover <code>www.example.com</code>, <code>blog.example.com</code>, <code>shop.example.com</code>, and any other subdomain of example.com.</p> <p>Using wildcard domains offers several benefits:</p> <ul> <li><p><strong>Simplified Management</strong>: Instead of managing individual certificates for each subdomain, a single wildcard certificate can cover all subdomains, reducing administrative overhead.</p></li> <li><p><strong>Cost Efficiency</strong>: Wildcard certificates can be more cost-effective than purchasing individual certificates for each subdomain.</p></li> <li><p><strong>Flexibility</strong>: Wildcard domains provide the flexibility to add new subdomains without issuing a new certificate each time.</p></li> </ul> <h2 class="anchored"> <a name="what-can-i-now-do-with-heroku-acm-since-it-s-supported" href="#what-can-i-now-do-with-heroku-acm-since-it-s-supported">What Can I Now Do with Heroku ACM Since It’s Supported?</a> </h2> <p>With the new support for wildcard domains in Heroku ACM, you can now:</p> <ul> <li><p><strong>Easily Secure Multiple Subdomains</strong>: Automatically secure all your subdomains with a single wildcard certificate. This is particularly useful for applications that dynamically generate subdomains.</p></li> <li><p><strong>Streamline Certificate Management</strong>: Reduce the complexity of managing multiple certificates. Heroku ACM will handle the issuance, renewal, and management of your wildcard certificates, just as it does with regular certificates.</p></li> <li><p><strong>Enhance Security</strong>: Ensure that all your subdomains are consistently protected with HTTPS, improving the overall security posture of your applications.</p></li> </ul> <h2 class="anchored"> <a name="how-to-use-your-wildcard-domain-with-heroku-acm" href="#how-to-use-your-wildcard-domain-with-heroku-acm">How to use your Wildcard Domain with Heroku ACM</a> </h2> <p>Previously, you would've seen an error messaging when trying to add a wildcard domain with Heroku ACM enabled, or when trying to enable Heroku ACM when your app was associated to a wildcard domain. </p> <p>Now, you can follow the typical steps to <a href="https://devcenter.heroku.com/articles/custom-domains#add-a-custom-domain-with-a-subdomain">add a custom domain</a> to your Heroku app using the following command: </p> <pre><code>$ heroku domains:add *.example.com -a example-app </code></pre> <p>Once the domain is added, you can <a href="https://devcenter.heroku.com/articles/automated-certificate-management#common-runtime">enable Heroku ACM</a> using the following command: </p> <pre><code>$ heroku certs:auto:enable </code></pre> <p>And just like that, you can utilize your wildcard domain and still all of your certificates managed by Heroku!</p> <h2 class="anchored"> <a name="wildcard-domain-support-for-private-spaces" href="#wildcard-domain-support-for-private-spaces">Wildcard Domain Support for Private Spaces</a> </h2> <p>At the time of this post, Wildcard Domain support in Heroku ACM is only available for our Common Runtime Customers. </p> <p>Support for Wildcard Domains for Private Spaces will be coming soon as part of our focus on improving the entire Private Spaces platform. You can find more details about <a href="https://github.com/heroku/roadmap/issues/130">that project</a> on our <a href="https://github.com/heroku/roadmap">GitHub Public Roadmap</a>.</p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>The addition of wildcard domain support to Heroku ACM significantly enhances our platform's networking capabilities. Heroku is committed to making it easier to manage and secure your application's incoming and outgoing networking connections. This change, along with our recent addition of <a href="https://blog.heroku.com/heroku-http2-public-beta">HTTP/2</a> and our <a href="https://blog.heroku.com/router-2dot0-the-road-to-beta">new router</a> are all related to the investment Heroku is making to modernize our feature offerings. </p> <p>This change was driven by feedback from the <a href="https://github.com/heroku/roadmap/issues/39">Heroku Public GitHub roadmap</a>. We encourage you to keep an eye on our where you can see the features we are working on and provide your input. Your feedback is invaluable and helps shape the future of Heroku.</p> Ethan Limchayseng Discover Heroku at Dreamforce 2024 https://blog.heroku.com/heroku-dreamforce-2024 Thu, 05 Sep 2024 14:31:00 GMT https://blog.heroku.com/heroku-dreamforce-2024 <p><a href="https://www.salesforce.com/dreamforce/">Dreamforce</a> comes to San Francisco this September 17-19. Heroku, a Salesforce company, has a packed schedule with a variety of sessions and activities designed to enhance your knowledge of our platform and integrations with Salesforce technologies. </p> <p>Learn more about Heroku’s latest innovations by adding us to your agenda via the <a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog?search.product=1643812029327020eBEJ">Dreamforce Agenda Builder</a>. Here's where you can find Heroku at Dreamforce 2024.</p> <!-- more --> <!-- nothing to see here --> <h2 class="anchored"> <a name="heroku-demos-in-the-trailblazer-forest" href="#heroku-demos-in-the-trailblazer-forest">Heroku Demos in the Trailblazer Forest</a> </h2> <p>Whether you are a full-stack Salesforce Developer or just prefer the CLI the Heroku demo booth is the best place to kick off Dreamforce. Dive into the latest product innovations and personalized live demos showcasing Heroku and <a href="https://www.salesforce.com/data/">Data Cloud</a> plus how Heroku can integrate with the <a href="https://blog.heroku.com/mastering-api-integration-salesforce-heroku-mulesoft-anypoint-flex-gateway">MuleSoft Anypoint Flex Gateway</a>. This is also a great opportunity to interact with product managers and get your questions answered.</p> <p>Interested in AWS+Heroku? Be sure to stop by the Heroku demo at the AWS booth.</p> <h2 class="anchored"> <a name="camp-mini-hacks" href="#camp-mini-hacks">Camp Mini Hacks</a> </h2> <p>If you're a developer looking to challenge yourself, the Camp Mini Hacks are a must-visit. Connect with like-minded developers and tackle code challenges using Heroku and Salesforce technologies: Solve the Mega Hack Challenge, where you'll integrate an Heroku Application with MuleSoft Anypoint Flex Gateway and Prompt Builder. It's a hands-on way to learn and showcase your skills.</p> <h2 class="anchored"> <a name="breakout-sessions" href="#breakout-sessions">Breakout Sessions</a> </h2> <p>Heroku's Breakout Sessions are perfect for those wanting to dive deeper into the platform's capabilities. Learn how other customers have successfully built and scaled their applications using Heroku. These sessions are informative and provide real-world insights into maximizing the potential of the platform.</p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1719342633607001xfyg-heroku-next-gen-for-cloud-native-workloads-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1719342633607001xfyg-heroku-next-gen-for-cloud-native-workloads-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1719342633607001XFYG">Heroku Next-Gen for Cloud Native Workloads</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Chris Peterson</strong>, Senior Director, Product Management, Salesforce</li> <li> <strong>Ethan Limchayseng</strong>, Director Product Management - Heroku Runtime, Salesforce</li> <li> <strong>Vivek Viswanathan</strong>, Director Product Management, Salesforce</li> </ul> <p>Learn about Heroku's plan to iterate and expand our platform with our next-gen stack powered by Kubernetes, Heroku-native Data Cloud integration, .NET support, and cutting-edge Postgres offerings.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1719342633607001XFYG" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915980733001qd5n-maximizing-sales-potential-with-the-power-of-integration-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915980733001qd5n-maximizing-sales-potential-with-the-power-of-integration-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915980733001QD5N">Maximizing Sales Potential with the Power of Integration</a> </h3> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Alex Solomon</strong>, Software Engineering Leader, Cisco Meraki</li> <li> <strong>MK Korgaonkar</strong>, Data Integrations Product Manager, Cisco</li> </ul> <p>Cisco created an integrated sales ecosystem that empowers high-touch sellers across silos to operate as one cohesive team, enabling cross-selling and promoting revenue growth across the organization.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915980733001QD5N" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915853770001qwcv-engaging-customers-with-lamborghini-s-unica-experience-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915853770001qwcv-engaging-customers-with-lamborghini-s-unica-experience-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915853770001QwcV">Engaging Customers with Lamborghini’s “Unica” Experience</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Lorenzo Cavicchi</strong>, Head of IT Commercial &amp; Supporting, Automobili Lamborghini S.p.A.</li> <li> <strong>David Baliles</strong>, Distinguished Technical Architect, Salesforce</li> <li> <strong>Filippo Tonutti</strong>, Next Generation Customer Journey, Automobili Lamborghini</li> </ul> <p>See how Lamborghini's Unica app, built on Heroku, engages drivers in real time with seamless, digital in-car integration. Discover how collected data enhances Lamborghini's B2B2C model and ecosystem.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915853770001QwcV" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1719342634333001xkoq-build-a-golden-customer-record-using-heroku-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1719342634333001xkoq-build-a-golden-customer-record-using-heroku-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1719342634333001XKOq">Build a Golden Customer Record Using Heroku</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Barry Sheehan</strong>, Chief Commercial Officer, Showoff</li> <li> <strong>Martin Eley</strong>, Principal Technical Architect, Salesforce</li> <li> <strong>Tobias Lilley</strong>, Heroku Sales UK&amp;I, Salesforce</li> </ul> <p>Combine records from multiple systems in real time and use Heroku to create a transactional, golden customer record for activation in Data Cloud.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1719342634333001XKOq" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h2 class="anchored"> <a name="theater-sessions" href="#theater-sessions">Theater Sessions</a> </h2> <p>Explore how Heroku powers the Next-Gen Platform and the C360. Theater Sessions presentations are part of a joint Mini Theater experience, offering exclusive content that highlights the integration of Heroku with Salesforce's broader ecosystem.</p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1721140814463001pvgz-secure-apis-on-heroku-with-mulesoft-flex-gateway-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1721140814463001pvgz-secure-apis-on-heroku-with-mulesoft-flex-gateway-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1721140814463001PVgZ">Secure APIs on Heroku with MuleSoft Flex Gateway</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Jonathan Jenkins</strong>, Senior Success Architect, Salesforce</li> <li> <strong>Parvez Mohamed</strong>, Director of Product Management, Salesforce</li> </ul> <p>Learn to deploy MuleSoft Flex Gateway on Heroku, connect private and secure API apps, and manage access via AnyPoint controls.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1721140814463001PVgZ" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915854315001q9tf-securely-integrating-heroku-apps-with-data-cloud-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915854315001q9tf-securely-integrating-heroku-apps-with-data-cloud-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915854315001Q9tF">Securely Integrating Heroku Apps with Data Cloud</a> </h3> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Vivek Viswanathan</strong>, Director of Product Management, Salesforce</li> <li> <strong>David Baliles</strong>, Distinguished Technical Architect, Salesforce</li> </ul> <p>Learn how to connect Heroku apps with Data Cloud using Flows, Events, and Apex to enhance and extend your data management abilities.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915854315001Q9tF" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915854849001q156-deliver-innovation-with-heroku-and-signature-support-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915854849001q156-deliver-innovation-with-heroku-and-signature-support-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915854849001Q156">Deliver Innovation with Heroku and Signature Support</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Gabriel Avila</strong>, Senior Customer Solutions Manager, Salesforce</li> <li> <strong>Altaf Somani</strong>, Head of Software Development, Goosehead Insurance</li> </ul> <p>Learn how Goosehead Insurance improved customer experience with the Heroku PaaS, improving issue identification and resolution by 75% and boosting response time by 55% with the agent enablement app.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915854849001Q156" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915855386001q1lq-optimize-your-sales-strategy-with-heroku-salesforce-and-ai-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915855386001q1lq-optimize-your-sales-strategy-with-heroku-salesforce-and-ai-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915855386001Q1LQ">Optimize Your Sales Strategy with Heroku, Salesforce, and AI</a> </h3> <p class="light df-sfplus">Also available on Salesforce+</p> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Xiaolin Xu</strong>, Senior Software Engineer, Salesforce</li> </ul> <p>Use the power of vector search to analyze historical sales data and identify trends in customer behavior. Use these insights to make smarter sales forecasts and reduce churn.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915855386001Q1LQ" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h2 class="anchored"> <a name="workshops" href="#workshops">Workshops</a> </h2> <p>For a more interactive learning experience, Heroku's Workshops are the place to be. These hands-on sessions will teach you how to build AI applications and integrate Heroku with Salesforce Data Cloud. It's a unique opportunity to get practical experience with expert guidance.</p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915856455001qkc8-improve-customer-engagement-with-heroku-and-data-cloud-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915856455001qkc8-improve-customer-engagement-with-heroku-and-data-cloud-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915856455001Qkc8">Improve Customer Engagement with Heroku and Data Cloud</a> </h3> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Vivek Viswanathan</strong>, Director of Product Management, Salesforce</li> <li> <strong>David Baliles</strong>, Distinguished Technical Architect, Salesforce</li> </ul> <p>Learn how to ingest Heroku data into Data Cloud, deploy a web app, and get real-time interactions. By the end, you'll know how to connect Heroku to Data Cloud to boost your business.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915856455001Qkc8" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915855922001qjqx-build-agentic-ai-applications-with-heroku-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1718915855922001qjqx-build-agentic-ai-applications-with-heroku-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915855922001QjQx">Build Agentic AI Applications with Heroku</a> </h3> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Rand Fitzpatrick</strong>, Senior Director, Product Management, Salesforce</li> <li> <strong>Mauricio Gomes</strong>, Principal Engineer, Salesforce</li> <li> <strong>Marcus Blankenship</strong>, Director of AI/ML Engineering, Salesforce</li> </ul> <p>Discover how to use Heroku to enhance your AI with code execution and function use, seamlessly integrated into your Heroku applications.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915855922001QjQx" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h2 class="anchored"> <a name="roundtable" href="#roundtable">Roundtable</a> </h2> <p>Gather with like-minded attendees to discuss a particular topic. Opportunity to network and share best practices and common challenges facing the Salesforce community. Each table is moderated by an expert.</p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1720537168662001fite-heroku-for-it-leaders-boost-scalability-and-cost-efficiency-a" href="#a-href-https-reg-salesforce-com-flow-plus-df24-sessioncatalog-page-catalog-session-1720537168662001fite-heroku-for-it-leaders-boost-scalability-and-cost-efficiency-a"></a><a href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1720537168662001fITe">Heroku for IT Leaders: Boost Scalability and Cost Efficiency</a> </h3> <div class="df-presenters-label">Presenters:</div> <ul class="df-presenters"> <li> <strong>Dan Mehlman</strong>, Director, Heroku Technical Architecture, Salesforce</li> <li> <strong>Brandon Schoen</strong>, Director, Heroku Professional Services, Salesforce</li> </ul> <p>Discover how you can achieve limitless scalability by using the right tools for the job with Heroku. Save money on DevOps and infrastructure management, allowing you to focus on your product.</p> <p class="add-to-agenda"> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1720537168662001fITe" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h2 class="anchored"> <a name="final-thoughts" href="#final-thoughts">Final Thoughts</a> </h2> <p><a href="https://www.salesforce.com/dreamforce/">Dreamforce 2024</a> is shaping up to be an exciting event, especially for <a href="https://www.heroku.com/ctos">IT leaders</a> and <a href="https://www.heroku.com/developers">developers using Heroku</a> for their development needs. Make sure to add these sessions to your schedule and experience the best of what Heroku has to offer!</p> <style> ul.df-presenters { list-style: none; font-size: 0.9em; line-height: 1.4; padding: 0; margin-bottom:18px; } div.df-presenters-label{ font-weight:bold; font-size: 0.7em; line-height: 1.4; text-transform: uppercase; display:block; padding: 0; color: #7C858C; } p.df-sfplus { margin-bottom:12px; margin-top:-6px; color:#215CA0; font-size:0.9em; line-height:1.2; } .add-to-agenda .btn-xs { padding-left:18px; padding-right:18px; } </style> Emily Todd Updating Twelve-Factor: A Call for Participation https://blog.heroku.com/updating-twelve-factor-call-for-participation Wed, 28 Aug 2024 17:39:00 GMT https://blog.heroku.com/updating-twelve-factor-call-for-participation <p>Over a decade ago, Heroku co-founder Adam Wiggins published the <a href="https://blog.heroku.com/twelve-factor-apps">Twelve-Factor App methodology</a> as a way to codify the <a href="https://en.wikipedia.org/wiki/Twelve-Factor_App_methodology">best practices for writing SaaS applications</a>. In that time, cloud-native has become the default for all new applications, and technologies like Kubernetes are widespread. Best-practices for software have evolved, and we believe that Twelve-Factor also needs to evolve — this time with you, the community.</p> <p>Originally, the Twelve-Factor manifesto focused on building deployable applications without thinking about deployment, and while its core concepts are still <em>remarkably relevant</em>, the examples are another story. Industry practices have evolved considerably and many of the examples reflect outdated practices. Rather than help illustrate the concepts, these outdated examples make the concepts look obsolete.</p> <p>It is time to modernize Twelve-Factor for the next decade of technological advancements. </p> <p>Like art restoration, the majority of the work will first focus on <em>removing accumulated cruft</em> so that the original intent can shine through. For the first step in the restoration, we plan to remove the references to outdated technology and update the examples to reflect modern industry practices. Next, we plan to clearly separate the core concepts from the examples. This will make it easier to evolve the examples in the future without disturbing the timeless philosophy at the core of the manifesto. Just like how microservices are a set of separate services that are loosely coupled together so they can be updated independently, we’re applying this same thinking to Twelve-Factor so the specifications can be separate from examples and reference implementations.</p> <p>While we <a href="https://blog.heroku.com/twelve-factor-apps">originally wrote Twelve-Factor</a> on our own, it’s now time that we define and implement these principles with the community — taking lessons that we’ve all learned from building and operating modern apps and systems and sharing them. Let’s do this together, email to join <a href="mailto:[email protected]">[email protected]</a> and tag #12factor (<a href="https://x.com/hashtag/12factor">X</a> / <a href="https://www.linkedin.com/feed/hashtag/?keywords=12factor">LinkedIn</a>) or <a href="https://x.com/heroku">@heroku</a> when you publish blogs with your perspectives and ideas!</p> <p>We look forward to working together to make the new version of the manifesto awesome! </p> Vish Abrams, Chief Architect, Heroku Heroku Joins CNCF as a Platinum Member https://blog.heroku.com/heroku-joins-cncf-platinum-member Thu, 27 Jun 2024 18:35:00 GMT https://blog.heroku.com/heroku-joins-cncf-platinum-member <p>Heroku is <a href="https://www.cncf.io/announcements/2024/06/27/cloud-native-computing-foundation-announces-heroku-joins-as-a-platinum-member/">joining the CNCF at the platinum level</a>, upgrading the long-held CNCF Salesforce membership. This marks my third time serving on the CNCF board for different companies, and I’m excited to participate again. Joining the CNCF at the Platinum level signifies a major commitment, reflecting Heroku’s dedication to the evolving landscape.</p> <p>My three board stints aligns with significant shifts in the cloud-native landscape. Two are behind us, one is happening now, and it’s the current one that motivated us to join now. Quick preview: It’s not the AI shift going on right now - the substrate underlying AI/ML shifted to Kubernetes a while ago.</p> <p>As to why we are joining and why now, let’s take a look at the pivotal shifts that have led us to this point.</p> <h2 class="anchored"> <a name="the-first-shift-kubernetes-launches-the-early-adopter-phase" href="#the-first-shift-kubernetes-launches-the-early-adopter-phase">The First Shift: Kubernetes Launches - The Early Adopter Phase</a> </h2> <p>It’s been a decade since Kubernetes was launched, and even longer since Salesforce acquired Heroku. Ten years ago, Heroku was primarily used by startups and smaller companies, and Kubernetes 1.0 had just launched (yes, I was on stage for that! <a href="https://www.youtube.com/watch?v=fBa79csw9-M">Watch the video</a> for a blast from the past). Google Kubernetes Engine (GKE) had launched, but no other cloud services had yet offered a managed Kubernetes solution. I was the Cloud Native CTO at Samsung, and we made an early bet on Kubernetes as transformative to the way we deployed and managed applications both on cloud and on-premises. This was the early adopter phase.</p> <p>Heroku was one of the early influences on Kubernetes, particularly in terms of <a href="https://www.heroku.com/dx">developer experience</a>, most notably with The Twelve-Factor App (<a href="http://www.12factor.net">12-Factor App</a>), which influenced “cloud native” thinking. My presentations from the Kubernetes 1.0 era have Heroku mentions all over them, and it was no surprise to see Heroku highlighted in <a href="https://www.youtube.com/live/jYjEWlnY25M?si=UUdtNcBUcUfdODnE&amp;t=4222">Eric Brewer’s great talk</a> at the KuberTENes 10th anniversary event. Given Heroku’s legendary focus on user experience, one might wonder why the Kubernetes developer experience turned out the way it did. More on this later, but Kubernetes was built primarily to address the most critical yet painful and error-prone part of the software lifecycle, and the one most people were spending the majority of their time on — operations. In this regard, it is an incredible success. Kubernetes also represented the first broad-based shift to declarative intent as an operational practice, encapsulated by Alexis Richardson as “gitops.” Heroku has a similar legacy: “git push heroku master.” Heroku was doing gitops before it had a name.</p> <h2 class="anchored"> <a name="the-second-shift-kubernetes-goes-big" href="#the-second-shift-kubernetes-goes-big">The Second Shift: Kubernetes Goes Big</a> </h2> <p>EKS launched six years ago and quickly became the largest Kubernetes managed service, with large companies across all industries adopting it. AWS was the last of the big three to launch a Kubernetes managed service, and this validated that Kubernetes had grown massively and most companies were adopting it as the standard. During this era, Kubernetes was deployed at scale as the primary production system for many companies or the primary production system for new software. Notably, Kubeflow was adopted broadly for ML use cases — Kubernetes was becoming the standard for AI/ML workloads. This continues to this day with generative AI.</p> <p>During this time, Heroku also matured. Although the credit-card-based Heroku offering remained popular for new startups and citizen developers, the Heroku business shifted rapidly towards the <a href="https://www.heroku.com/enterprise">enterprise offering</a>, which is now the majority of the business. Although many think of Heroku as primarily a platform for startups, this hasn’t been the case for many years.</p> <p>Salesforce was one of the companies that adopted Kubernetes at a huge scale with <a href="https://help.salesforce.com/s/articleView?id=000388902&amp;type=1">Hyperforce</a>. The successes of this era (including Hyperforce) were characterized by highly skilled platform teams, often with contributors to Kubernetes or adjacent projects. This demonstrates the value of cloud-native approaches to a company — the significant cost of managing the complexity of Kubernetes and the adjacent systems (including OpenTelemetry, Prometheus, OCI, Docker, Argo, Helm… the CNCF landscape now has over 200 projects) is worth the investment.</p> <p>However, the large investment in technical expertise is a barrier to even wider adoption beyond the smaller number of more sophisticated enterprises. To be clear, I’m not talking about using EKS, AKS, or GKE—that’s a given. These services are far more cost-effective at running Kubernetes safely and at scale than most enterprises could ever be, thanks to cost efficiencies at scale.</p> <h2 class="anchored"> <a name="the-third-shift-is-afoot-kubernetes-goes-really-wide" href="#the-third-shift-is-afoot-kubernetes-goes-really-wide">The Third Shift is Afoot: Kubernetes Goes Really Wide</a> </h2> <p>Kubernetes is awesome but complex, and we are seeing the next wave of adopters start to adopt Kubernetes. This wave needs an approach to Kubernetes that provides the benefits without the huge investment. This is why we have shifted the Heroku strategy to be based on Kubernetes going forward. You can hear this announcement during my keynote at KubeCon Paris: <a href="https://www.youtube.com/watch?v=zCuc5VnVrJI">Watch the keynote</a>. We are committed to bringing our customers Kubernetes’ benefits on the inside, without the complexity, wrapped in Heroku’s signature simplicity.</p> <h2 class="anchored"> <a name="summary-how-should-we-all-think-about-kubernetes" href="#summary-how-should-we-all-think-about-kubernetes">Summary: How Should We All Think about Kubernetes?</a> </h2> <p>We view Kubernetes, to quote <a href="https://www.linuxfoundation.org/about/leadership">Jim Zemlin</a>, as the “Linux of the Cloud.” Linux is a single-machine operating system, whereas Kubernetes is the distributed operating system layered on top. Today, Kubernetes is more like the Linux kernel, rather than a full distribution. Various Linux vendors collaborate on a common kernel and differentiate in user space. We view Heroku’s product and contribution to Kubernetes as following that model. We will work with the community on the common unforked Kubernetes but will build great things on top, including Heroku as you know it today.</p> <p><a href="https://blog.heroku.com/heroku-cloud-native-buildpacks"><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1719511417-heroku-cnb-blog.png" alt="heroku-cnb-blog"></a></p> <h2 class="anchored"> <a name="final-thoughts" href="#final-thoughts">Final Thoughts</a> </h2> <p>Heroku's commitment to joining the CNCF at the platinum level underscores our dedication to the evolving cloud-native landscape. There’s still more progress to be made for developers &amp; operators alike. That’s why we’re invested in <a href="https://buildpacks.io/">Cloud Native Buildpacks</a>. It lets companies standardize how they build application container images. People can hit the ground running with our recently open sourced <a href="https://blog.heroku.com/heroku-cloud-native-buildpacks">Heroku Cloud Native Buildpacks</a>. As Kubernetes and the other constellation of projects around it continue to expand, we are excited to participate, ensuring our customers benefit from its capabilities while maintaining the simplicity and user experience that Heroku is known for.</p> Bob Wise Introducing New Heroku Postgres Essential Plans Built On Amazon Aurora https://blog.heroku.com/heroku-postgres-essential-launch Tue, 21 May 2024 17:05:00 GMT https://blog.heroku.com/heroku-postgres-essential-launch <p>We’re thrilled to <a href="https://devcenter.heroku.com/changelog-items/2877">launch our new Heroku Postgres Essential database plans</a>. These plans have <code>pgvector</code> support, no row count limits, and come with a 32 GB option. We deliver exceptional transactional query performance with Amazon Aurora as the backing infrastructure. One of our beta customers said:</p> <blockquote> <p><strong>“The difference was noticeable right from the start. Heroku Postgres running on Aurora delivered a boost in speed, allowing us to query and process our data faster.”</strong></p> </blockquote> <p>Our Heroku Postgres Essential plans are the quickest, easiest, and most economical way to integrate a SQL database with your Heroku application. You can use these fully managed databases for a wide range of applications, such as small-scale production apps, research and development, <a href="https://www.heroku.com/students">educational purposes</a>, and prototyping. These plans offer full PostgreSQL compatibility, allowing you to use existing skills and tools effortlessly.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1716240158-Heroku%20Postgres%20%2B%20Amazon%20Aurora_Image%201.png" alt="Heroku Postgres Partnership With Amazon Aurora"></p> <p>Compared to the previous generation of Mini and Basic database plans, the Essential plans on the new infrastructure provides up to three times the query throughput performance and additional improvements such as removing the historic row count limit. The table highlights what each of the new plans include in more detail.</p> <table> <thead> <tr> <th>Product</th> <th>Storage</th> <th>Max Connection</th> <th>Max Row Count</th> <th>Max Table Count</th> <th>Postgres Versions</th> <th>Monthly Pricing</th> </tr> </thead> <tbody> <tr> <td>Essential-0</td> <td>1 GB</td> <td>20</td> <td>No limit</td> <td>4,000</td> <td>14, 15, 16</td> <td>$5</td> </tr> <tr> <td>Essential-1</td> <td>10 GB</td> <td>20</td> <td>No limit</td> <td>4,000</td> <td>14, 15, 16</td> <td>$9</td> </tr> <tr> <td>Essential-2</td> <td>32 GB</td> <td>40</td> <td>No limit</td> <td>4,000</td> <td>14, 15, 16</td> <td>$20</td> </tr> </tbody> </table> <h2 class="anchored"> <a name="our-commitment-to-the-developer-experience" href="#our-commitment-to-the-developer-experience">Our Commitment to the Developer Experience</a> </h2> <p>At Heroku, we deliver a world-class developer experience that’s reflected in our new Essential database plans. Starting at just $5 per month, we provide a fully managed database service built on Amazon Aurora. With these plans, developers are assured they’re using the latest technology from AWS and they can focus on what’s most important—innovating and building applications—without the hassle of database management. </p> <p>We enabled <a href="https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrading-with-pg-upgrade"><code>pg:upgrade</code></a> for easier upgrades to major versions and removed the row count limit for increased flexibility and scalability for your projects. We also included support for the <a href="https://blog.heroku.com/pgvector-launch"><code>pgvector</code> extension</a>, bringing vector similarity search to the <a href="https://elements.heroku.com/addons/heroku-postgresql#pricing">entire suite of Heroku Postgres plans</a>. <code>pgvector</code> enables exciting possibilities in AI and natural language processing applications across all of your development environments.</p> <p>You can create a Heroku Postgres Essential database with:</p> <pre><code>$ heroku addons:create heroku-postgresql:essential-0 -a example-app </code></pre> <h2 class="anchored"> <a name="migrating-mini-and-basic-postgres-plans" href="#migrating-mini-and-basic-postgres-plans">Migrating Mini and Basic Postgres Plans</a> </h2> <p>If you already have Mini or Basic database plans, we’ll <a href="https://devcenter.heroku.com/articles/heroku-postgres-plans#mini-and-basic-deprecation-details">automatically migrate</a> them to the new Essential plans. We’re migrating Mini plans to Essential-0 and Basic plans to Essential-1. We’re making this process as painless as possible with minimal downtime for most databases. Our automatic migration process begins on May 29, 2024, when the Mini and Basic plans reach end-of-life and are succeeded by the new Essential plans. See our <a href="https://devcenter.heroku.com/articles/postgres-essential-tier">documentation for migration details</a>. </p> <p>You can also proactively migrate your Mini or Basic plan to any of the new Essential plans, including the Essential-2 plan, using <code>addons:upgrade</code>:</p> <pre><code>$ heroku addons:upgrade DATABASE heroku-postgresql:essential-0 -a example-app </code></pre> <h2 class="anchored"> <a name="exploring-the-use-cases-of-the-essential-plans" href="#exploring-the-use-cases-of-the-essential-plans">Exploring the Use Cases of the Essential Plans</a> </h2> <p>With the enhancements of removing row limits, adding <code>pgvector</code> support, and more, Heroku Postgres Essential databases are a great choice for customers of any size with these use cases.</p> <ul> <li> <strong>Development and Testing</strong>: Ideal for developers looking for a cost-effective, fully managed Postgres database. You can develop and test your applications in an environment that closely mimics production, ensuring everything runs smoothly before going live.</li> <li> <strong>Prototype Projects</strong>: In the prototyping phase, the ability to adapt quickly based on user feedback or test results is crucial. With Essential plans, you get the flexibility and affordability needed to iterate fast and effectively during this critical stage.</li> <li> <strong>Educational Projects and Tutorials</strong>: Ideal for educational setups that require access to live cloud database environments. They're perfect for hands-on learning, from running SQL queries to exploring cloud application management and operations, without managing the complex infrastructure.</li> <li> <strong>Low Traffic Web Apps</strong>: Ideal for experimental or low traffic applications such as small blog sites or forums. Essential plans provide the necessary reliability and performance, including daily backups and scalability options as your user engagement grows. </li> <li> <strong>Startups</strong>: The Essential plans offer a fully managed and scalable database solution, important for startup businesses to grow without initial heavy investments. It can help speed up time-to-market and reach customers faster.</li> <li> <strong>Salesforce Integration Trial</strong>: The best method to synchronize Salesforce data and <a href="https://www.heroku.com/postgres">Heroku Postgres</a> is with <a href="https://www.heroku.com/connect">Heroku Connect</a>. The <a href="https://devcenter.heroku.com/articles/heroku-connect#available-plans"><code>demo</code> plan</a> works with Essential database plans. Although the demo plan isn’t suitable for production use cases, it provides a way to explore how Heroku Connect can amplify your Salesforce investment.</li> <li> <strong>Incorporating pgvector</strong>: Essential database plans support <a href="https://devcenter.heroku.com/articles/pgvector-heroku-postgres"><code>pgvector</code></a>, an open-source extension for Postgres designed for efficient vector search capabilities. This feature is invaluable for applications requiring high-performance similarity searches, such as recommendation systems, content discovery platforms, and image retrieval systems. Use <code>pgvector</code> on Essential plans to build advanced search functionalities such as AI-enabled applications and Retrieval Augmented Generation (RAG).</li> </ul> <h2 class="anchored"> <a name="looking-forward" href="#looking-forward">Looking Forward</a> </h2> <p>As <a href="https://youtu.be/fZLcv7rwj7Y?si=13K95oX2oEVQ_T9p&amp;t=1945">announced</a> at re:Invent 2023, we’re collaborating with the Amazon Aurora team on the next-generation Heroku Postgres infrastructure. This partnership combines the simplicity and user experience of Heroku with the robust performance, scalability, and flexibility of Amazon Aurora. The launch of Essential database plans marks the beginning of a broader rollout that will soon include a fleet of single-tenant databases.</p> <p>Our new Heroku Postgres plans will decouple storage and compute, allowing you to scale storage up to 128 TB. They’ll also add more database connections and more Postgres extensions, offer near-zero-downtime maintenance and upgrades, and much more. The future architecture will ensure fast and consistent response times by distributing data across multiple availability zones with robust data replication and continuous backups. Additionally, the <a href="https://www.heroku.com/shield">Shield</a> option will continue to meet compliance needs with regulations like HIPAA and PCI, ensuring secure data management.</p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>Our Heroku Postgres databases built on Amazon Aurora represent a powerful solution for customers seeking to enhance their database capabilities with a blend of performance, reliability, cost-efficiency, and Heroku’s simplicity. Whether you're scaling a high web traffic application or managing large-scale batch processes, <a href="https://www.salesforce.com/news/press-releases/2023/11/27/aws-data-ai-strategic-partnership-expansion/?_gl=1*eynx4n*_ga*MTcwNTczMTI0Ny4xNjY5NzUzMDAx*_ga_62RHPFWB9M*MTcxNTk3Njg0Ni40MzkuMC4xNzE1OTc2ODQ2LjAuMC4w">our partnership with AWS</a> accelerates the delivery of Postgres innovations to our customers. Eager to be part of this journey? Join the <a href="https://docs.google.com/forms/d/e/1FAIpQLSeDKfTK-mH2uW5b-3T3RS-vNrrnRVsKrx53BvhqYo8uSHH3yA/viewform">waitlist for the single-tenant database pilot program</a>.</p> <p>We want to extend our gratitude to the community for the feedback and helping us build products like <a href="https://github.com/heroku/roadmap/issues/292">Essential Plans</a>. Stay connected and share your thoughts on our <a href="https://github.com/heroku/roadmap">GitHub roadmap page</a>. If you have questions or require assistance, our dedicated <a href="https://help.heroku.com/">Support team</a> is available to assist you on your journey into this exciting new frontier. </p> Jonathan Brown Heroku Integration with Amazon Q Developer Command Line https://blog.heroku.com/heroku-cli-amazonq Fri, 17 May 2024 16:30:00 GMT https://blog.heroku.com/heroku-cli-amazonq <p>Today, we’re announcing the integration of the <a href="https://devcenter.heroku.com/articles/heroku-cli">Heroku CLI</a> with <a href="https://aws.amazon.com/blogs/machine-learning/accelerate-software-development-and-leverage-your-business-data-with-generative-ai-assistance-from-amazon-q/">Amazon Q Developer</a>. This integration, a result of our expanded Salesforce/AWS <a href="https://www.salesforce.com/news/press-releases/2023/11/27/aws-data-ai-strategic-partnership-expansion/">partnership</a>, enables Amazon Q Developer command line suggestions of Heroku commands. This integration empowers Heroku users to auto-complete commands, thereby saving time and eliminating error-prone manual configurations of apps.</p> <p><a href="https://www.heroku.com/dx">Developers configure and manage their applications</a> through a command line interface (CLI), especially during development when working within their integrated development environment (IDE). Heroku apps can be deployed in many different ways, and all that flexibility can be controlled through the CLI. This results in thousands of command options and flag combinations, and it's nearly impossible to remember them all and what they do. Searching through documentation pages and scrolling through dozens of flags and options to figure things out takes time.</p> <p>With our new integration with Amazon Q, we are offering suggestions on how to complete any <code>heroku</code> CLI command. This new feature eliminates the need for Heroku users to remember or look up the exact CLI flag and/or syntax to execute the proper command.</p> <p>The image below demonstrates how Amazon Q Developer predicts the next argument in the <code>heroku addons:create -a</code> command. Command completion here recognizes the <code>addons:create</code> command as well as the <code>-a</code> flag, and creates a prompt with the available apps to complete the command. </p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715962353-heroku_cli_amazonq.gif" alt="heroku_cli_amazonq"></p> <p>Amazon Q Developer predicts commands from any terminal window, including terminals launched within VS Code. Amazon Q Developer is part of the AWS Toolkit for Visual Studio Code, which offers additional developer productivity tools for software development and deployment of all AWS services.</p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>The integration of Amazon Q Developer with Heroku CLI is a testament to the collaborative efforts of Salesforce and AWS to bring our customers the best developer experience possible. It's available for <a href="https://docs.aws.amazon.com/codewhisperer/latest/userguide/command-line-getting-started-installing.html">download</a> and use right now. We encourage you to try it and share your thoughts or suggestions for enhancing the Heroku CLI and developer experience. You can explore this <a href="https://github.com/heroku/roadmap/issues/294">feature</a> in our <a href="https://github.com/heroku/roadmap">public roadmap</a> on GitHub and submit an issue to contribute to the ongoing development.</p> Chris Marino Introducing the Heroku Postgres Connector for Salesforce Data Cloud https://blog.heroku.com/introducing-the-heroku-postgres-connector-for-salesforce-data-cloud Fri, 10 May 2024 16:00:00 GMT https://blog.heroku.com/introducing-the-heroku-postgres-connector-for-salesforce-data-cloud <p><a href="https://www.heroku.com/postgres">Heroku Postgres</a> is one of the world's largest managed data stores. Our customers rely on Heroku Postgres to store valuable data, which powers a range of experiences and services they build on Heroku. <a href="https://www.salesforce.com/data/">Salesforce Data Cloud</a> integrates all your company's data into the <a href="https://www.salesforce.com/products/platform/">Einstein 1 Platform</a>, creating a comprehensive customer view for personalized engagements, analytics, and AI.</p> <p>When businesses bring data from Heroku Postgres into Salesforce Data Cloud to create unified customer profiles, they can deliver highly personalized user experiences and give them a competitive advantage. </p> <p>Today, we‘re excited to announce the launch of the Heroku Postgres Connector, now part of the Salesforce Data Cloud suite of no-cost connectors. This data connector enables seamless one-way data synchronization from Heroku Postgres to Data Cloud, empowering you to develop customer-facing apps on Heroku and unify Postgres data with Data Cloud.</p> <h2 class="anchored"> <a name="a-data-connector-that-unlocks-new-possibilities-with-heroku-and-data-cloud" href="#a-data-connector-that-unlocks-new-possibilities-with-heroku-and-data-cloud">A Data Connector That Unlocks New Possibilities with Heroku and Data Cloud</a> </h2> <p>Every click and every interaction holds valuable insights into customer preferences and behaviors. Harnessing this data can revolutionize your approach to customer engagement and drive your business forward. You can design a web application hosted on Heroku to capture this engagement data into Heroku Postgres. This data isn't just numbers and metrics; it's a window into your customers' interests and their journey with your brand. The Heroku Postgres Connector for Data Cloud makes it easier to sync the data from your web or mobile apps on Heroku Postgres to Data Cloud, so you can customize your apps to your customer's needs.</p> <p>By harnessing the power of Heroku and Salesforce Data Cloud, you're not just building a web application — you're creating a digital experience that fosters deeper connections with your customers. This digital experience enables you to understand your customers better, anticipate their needs, exceed their expectations, and drive success like never before. Additionally, this data can then be used to generate an enriched Customer 360 and actionable insights. The following diagram illustrates the Heroku app connectivity to Data Cloud via Heroku Postgres Connector.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715271827-Screenshot%202024-05-10%20at%201.22.36%E2%80%AFAM.png" alt="Screenshot 2024-05-10 at 1"></p> <p>In addition, Heroku Postgres Connector for Data Cloud unlocks many interesting use cases.</p> <p><strong>Deliver Personalized Experiences:</strong> With Data Cloud and Heroku Postgres, you can integrate valuable data from your Heroku app to create a unified customer profile, unlocking insights and enhancing engagement and satisfaction. For example, e-commerce customers can roll out personalized shopping apps and marketing journeys that predict consumer spending behaviors and provide tailored offers.</p> <p><strong>Automate Customer Engagement:</strong> By using our powerful data connector to sync data from Heroku Postgres to Data Cloud, you can create automations based on how your customers interact with your app. Depending on a customer’s interactions, you can automate sending personalized marketing campaigns, identifying potential opportunities, or creating cases in Salesforce.</p> <p><strong>Simplify Custom Data Transformation:</strong> Leverage Heroku Postgres to move data from external systems and applications, to simplify data transformations. Combined with Heroku DevOps and scalable compute; custom transformation in large data sets can be efficiently managed programmatically with low-latency. After the transformation process, with the Heroku Postgres Connector, you can seamlessly synchronize your data with the Data Cloud.</p> <h2 class="anchored"> <a name="get-started-with-the-heroku-postgres-connector" href="#get-started-with-the-heroku-postgres-connector">Get Started with the Heroku Postgres Connector</a> </h2> <p>Setting up the data connector is easy with a point-and-click UI. All you need is your database credentials for your Heroku Postgres database and Data Cloud enabled in your Salesforce org to set up the connector. Check out the <a href="https://devcenter.heroku.com/articles/connecting-heroku-postgres-to-salesforce-data-cloud">Connecting Heroku Postgres to Salesforce Data Cloud</a> article on getting started.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715271903-impageforBlog.png" alt="impageforBlog"></p> <h2 class="anchored"> <a name="leverage-the-power-of-heroku-39-s-data-connector" href="#leverage-the-power-of-heroku-39-s-data-connector">Leverage the Power of Heroku's Data Connector</a> </h2> <p>At Heroku, we make it easy to simplify interactions with <a href="https://www.salesforce.com/data/">Data Cloud</a> and other Salesforce products to enhance the customer experience. The introduction of the <a href="https://help.salesforce.com/s/articleView?id=sf.c360_a_postgresql_connector.htm&amp;type=5">Heroku Postgres Connector</a> for Data Cloud represents seamless integration of both Salesforce Products. As you explore the possibilities of Data Cloud integration with Heroku, we encourage you to share your innovative ideas with us. </p> <p>If you have any thoughts or suggestions on future reliability improvements we can make, check out <a href="https://github.com/heroku/roadmap">our public roadmap</a> on GitHub and submit an issue!</p> Vivek Viswanathan Improved Heroku App Performance with HTTP/2 https://blog.heroku.com/heroku-http2-public-beta Tue, 07 May 2024 19:20:00 GMT https://blog.heroku.com/heroku-http2-public-beta <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715039231-HTTP2%20Illustration_PREFINAL%20%282%29.png" alt="HTTP2 Illustration_PREFINAL (2)"></p> <h2 class="anchored"> <a name="introduction" href="#introduction">Introduction:</a> </h2> <p>We’re excited to announce public beta support for <a href="https://www.rfc-editor.org/rfc/rfc9113.html">HTTP/2</a> on both <a href="https://www.heroku.com/platform/runtime">Heroku Common Runtime</a> and <a href="https://www.heroku.com/private-spaces">Private Spaces</a>. HTTP/2 support is one of the <a href="https://github.com/heroku/roadmap/issues/34">most requested</a> and desired improvements for the <a href="https://www.heroku.com/platform">Heroku platform</a>. HTTP/2 is significantly faster than HTTP 1.1 by introducing features like multiplexing and header compression to reduce latency and therefore improve the end-user experience of Heroku apps. </p> <p>Since 2023, we’ve been working on a <a href="https://blog.heroku.com/router-2dot0-the-road-to-beta">large platform modernization of our Common Runtime router.</a> This project will allow us to start delivering more modern networking for Heroku. With the majority of that work now complete, we’re excited to focus more on the future and new features. </p> <h2 class="anchored"> <a name="what-do-you-get-from-http-2" href="#what-do-you-get-from-http-2">What Do You Get From HTTP/2?</a> </h2> <p>Upgrading to HTTP/2, the next-generation HTTP protocol, significantly improves web app performance for our customers. Here's how:</p> <ul> <li><p><strong>Faster loading times</strong>: HTTP/2 uses <a href="https://www.rfc-editor.org/rfc/rfc9113.html#name-field-section-compression-a">header compression</a> and <a href="https://www.rfc-editor.org/rfc/rfc9113.html#name-streams-and-multiplexing">multiplexing</a> to deliver content quicker and more efficiently. This improvement translates to faster page loads, especially for content-heavy applications with many images or videos.</p></li> <li><p><strong>Enhanced responsiveness</strong>: HTTP/2 lets multiple requests travel simultaneously on a single connection, and <a href="https://www.rfc-editor.org/rfc/rfc9113.html#name-prioritization">stream prioritization</a> ensures smoother communication and faster updates. HTTP/2 reduces latency and improves performance for real-time applications like chat or live collaborative tools.</p></li> <li><p><strong>Improved user experience</strong>: Streamlined data transfer and reduced waiting times lead to a more enjoyable user experience. Users experience smoother scrolling, faster interactions with forms, and an overall improved sense of responsiveness across Heroku applications.</p></li> </ul> <p>HTTP/2 terminates at the Heroku router and we forward HTTP/1.1 from the router to your app. This method is great because you get most of the benefits of HTTP/2 without having to make any changes to your app or code. <img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715106508-http_2_blog_diagrams.png" alt="http_2_blog_diagrams"></p> <p>Along with this beta, we’ll continue to research solutions to provide HTTP/2 end-to-end (all the way to the dyno) and enable features like <a href="https://www.rfc-editor.org/rfc/rfc9113.html#name-server-push">Server Push</a> and <a href="https://grpc.io/blog/grpc-on-http2/">gRPC</a> use cases with Heroku apps. Those capabilities aren’t included in this release. </p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1715115466-http_2_blog_diagrams_e2e_update.png" alt="http_2_blog_diagrams_e2e_update"></p> <p>For more information about HTTP/2, you can refer to the official HTTP/2 RFC (<a href="https://www.rfc-editor.org/rfc/rfc9113.html">RFC 9113</a>).</p> <h2 class="anchored"> <a name="how-to-turn-on-http-2-for-your-application" href="#how-to-turn-on-http-2-for-your-application">How to Turn On HTTP/2 For Your Application</a> </h2> <p>A valid TLS certificate is required for HTTP/2. We recommend using <a href="https://devcenter.heroku.com/articles/automated-certificate-management">Heroku Automated Certificate Management.</a></p> <h3 class="anchored"> <a name="common-runtime-applications" href="#common-runtime-applications">Common Runtime Applications</a> </h3> <p>For <a href="https://devcenter.heroku.com/articles/dyno-runtime#common-runtime">Common Runtime</a> apps, if you’re in the <a href="https://devcenter.heroku.com/articles/heroku-runtime-router-2-0">Routing 2.0 Public Beta</a>, HTTP/2 is on by default. If you’re not in the beta, you can enable it with this command:</p> <pre><code>$ heroku labs:enable http-routing-2-dot-0 -a &lt;app name&gt; </code></pre> <p>After enabling the new router for your app, it can handle HTTP/2 traffic. In the Common Runtime, we support HTTP/2 on custom domains, but not on the built-in <code>&lt;app-name-cff7f1443a49&gt;.herokuapp.com</code> domain.</p> <p>To opt out of HTTP/2, simply <a href="https://devcenter.heroku.com/articles/heroku-runtime-router-2-0#disable-router-2-0">disable the new router</a> on your application. </p> <h3 class="anchored"> <a name="private-and-shield-spaces-applications" href="#private-and-shield-spaces-applications">Private and Shield Spaces Applications</a> </h3> <p>For <a href="https://devcenter.heroku.com/articles/dyno-runtime#private-spaces-runtime">Private and Shield Spaces</a> apps, you can enable HTTP/2 for an app with a <a href="https://devcenter.heroku.com/articles/heroku-private-spaces-http2">Heroku Labs flag</a>: </p> <pre><code>$ heroku labs:enable spaces-http2 -a &lt;app name&gt; </code></pre> <p>In Private Spaces, we support HTTP/2 on both custom domains and the built-in default app domain.</p> <p>To disable HTTP/2, simply disable the Heroku labs <code>spaces-http2</code> flag on your app. </p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>We’re excited to finally bring HTTP/2 to the Heroku platform to see how it improves our customers' apps and their users’ experience. </p> <p>HTTP/2 is currently in public beta. When our new router becomes the default on Common Runtime, the feature will become generally available for all Heroku customers.</p> <p>We want to express our sincere appreciation for the feedback received on the <a href="https://github.com/heroku/roadmap/issues/34">Heroku Public roadmap request</a> that led to this change. Your insights were instrumental in shaping this first release of features on our next-generation router. We'll continue monitoring the public roadmap and your feedback as we explore future networking and routing enhancements, especially our continued research on expanding HTTP/2 functionality to dynos and exploring HTTP/3. </p> Ethan Limchayseng Add-on Controls for Pay-As-You-Go Customers https://blog.heroku.com/addon-controls-for-pay-as-you-go-customers Wed, 03 Apr 2024 18:23:00 GMT https://blog.heroku.com/addon-controls-for-pay-as-you-go-customers <h2 class="anchored"> <a name="add-on-controls-for-strong-heroku-teams-strong" href="#add-on-controls-for-strong-heroku-teams-strong">Add-on Controls for <strong>Heroku Teams</strong></a> </h2> <p>At Heroku, trust and security are top priorities and we’ve been steadily adding more security controls to the platform. Recently, we launched <a href="https://blog.heroku.com/sso-pay-as-you-go">SSO</a> for Heroku Teams, and today, we’re excited to announce more enhancements for teams: <a href="https://devcenter.heroku.com/articles/addon-controls">add-on controls</a>. Previously, this feature was only available to <a href="https://www.heroku.com/enterprise">Heroku Enterprise</a> customers.</p> <p>The <a href="https://elements.heroku.com/">Elements Marketplace</a> has add-ons built by our partners that help teams accelerate <a href="https://www.heroku.com/dx">app development on Heroku</a>. Add-ons can interact with your team's data and apps, so it's important to manage and audit which add-ons your team uses. Enabling add-on controls helps keep your data and apps protected, so you can remain compliant with your company's policies.</p> <p>With today’s announcement, Heroku users with team admin permissions can now control which add-ons their team can use. Enabling this feature restricts non-admin members to only installing add-ons that are on the allowlist.</p> <h2 class="anchored"> <a name="setting-up-the-allowlist" href="#setting-up-the-allowlist">Setting Up the Allowlist</a> </h2> <p>To begin using <a href="https://devcenter.heroku.com/articles/addon-controls">add-on controls</a>, a team admin creates a trusted list of add-ons in the <a href="https://devcenter.heroku.com/articles/addon-controls"><strong><code>Add-on Controls</code></strong></a> section of the team's <code>**Settings**</code> page.</p> <p>To enforce the add-on controls, click <strong><code>Enable Add-ons Allowlisting Restrictions</code></strong>.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1712096412-image.png" alt="image"></p> <p>Enabling add-on controls doesn’t remove existing installed add-ons that aren’t on the allowlist.</p> <h2 class="anchored"> <a name="allowlist-exceptions" href="#allowlist-exceptions">Allowlist Exceptions</a> </h2> <p>The <strong><code>Add-on Controls</code></strong> section has an <code>**Allowlist Exceptions**</code> list. This list shows the add-ons currently used in your team's apps that aren't allowlisted. Each entry in this list offers a detailed view option, showing you which app has the add-on installed and since when. These entries help you identify unapproved add-ons your team installed prior to enabling controls, or add-ons installed by an admin.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1712096454-Screenshot%202024-03-11%20at%207.38.49%E2%80%AFPM.png" alt="Screenshot 2024-03-11 at 7"></p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>At Heroku, we take the security and availability of your apps seriously. Extending <a href="https://devcenter.heroku.com/articles/addon-controls">add-on controls</a> to <a href="https://www.heroku.com/teams">Heroku Teams</a> for online customers is yet another step to improving security on Heroku.</p> <p>If you have any thoughts or suggestions on future reliability improvements we can make, check out our <a href="https://github.com/heroku/roadmap">public roadmap</a> on GitHub and submit an issue!</p> Vivek Viswanathan Expanded Memory and Compute with Heroku's New Larger Dynos https://blog.heroku.com/heroku-larger-dyno-types Wed, 27 Mar 2024 21:25:00 GMT https://blog.heroku.com/heroku-larger-dyno-types <h2 class="anchored"> <a name="introduction" href="#introduction">Introduction</a> </h2> <p>Heroku is excited to introduce nine new dyno types to our fleets and product offerings. <a href="https://blog.heroku.com/new-dyno-types-public-beta">In 2014</a>, we introduced <a href="https://www.heroku.com/dynos">Performance-tier dynos</a>, giving our customers fully dedicated resources to run their most compute-intensive workloads. Now in 2024, today's standards are rapidly increasing as complex applications and growing data volumes consume more memory and carry heavier CPU loads.</p> <p>With these additional dyno types, we’re excited to enable new use cases on Heroku with enhanced compute and memory specifications. Some use case examples include real-time processing against big data/real-time analytics, large in-memory cache applications such as Apache Spark or Hadoop processing, online gaming, machine learning, video encoding, distributed analytics, and complex or large simulations. </p> <p>Heroku is addressing these modern developer requirements with three new dyno types for each of our Performance, Private, and Shield dyno tiers: </p> <ul> <li>Performance-L-RAM, Performance-XL, and Performance-2XL for Heroku Common Runtime</li> <li>Private-L-RAM, Private-XL, and Private-2XL for Private Spaces</li> <li>Shield-L-RAM, Shield-XL, and Shield-2XL for Shield Private Spaces</li> </ul> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1711567615-New%20Dynos_Blog_Product%20Launch_Illustration.png" alt="New Dynos_Blog_Product Launch_Illustration"></p> <h2 class="anchored"> <a name="what-s-new" href="#what-s-new">What’s New</a> </h2> <p>We created three distinct new dyno sizes for each of the Performance, Private and Shield tiers that allow for increased flexibility and higher performance ceilings for Heroku customers. </p> <ul> <li> <strong>Performance/Private/Shield-L-RAM:</strong> If you’re targeting more memory-focused tasks, you can lower your CPUs, and double your RAM while maintaining the same cost as existing *-L dynos. These dynos are perfect for tackling memory-intensive tasks like large-scale image processing or data analysis.</li> <li> <strong>Performance/Private/Shield-XL:</strong> quadruples your RAM while providing the same stellar CPU performance as *-L dynos, empowering you to run simulations or deliver lightning-fast processing. </li> <li> <strong>Performance/Private/Shield-2XL:</strong> delivers a staggering 8x RAM and 2x CPU boost compared to our *-L dynos, unleashing the full potential of your ambitious projects.</li> </ul> <p>See the updated dyno table for how these new dynos stack up to our previous offering: </p> <table> <thead> <tr> <th>Spec</th> <th>Memory (RAM)</th> <th>CPU Share</th> <th>Compute</th> <th>Sleeps</th> <th>Dedicated</th> </tr> </thead> <tbody> <tr> <td>Eco</td> <td>512 MB</td> <td>1x</td> <td>1x-4x</td> <td>✔</td> <td></td> </tr> <tr> <td>Basic</td> <td>512 MB</td> <td>1x</td> <td>1x-4x</td> <td></td> <td></td> </tr> <tr> <td>Standard-1X</td> <td>512 MB</td> <td>1x</td> <td>1x-4x</td> <td></td> <td></td> </tr> <tr> <td>Standard-2X</td> <td>1024 MB</td> <td>2x</td> <td>2x-8x</td> <td></td> <td></td> </tr> <tr> <td>Performance-M</td> <td>2.5 GB</td> <td>100%</td> <td>12x</td> <td></td> <td>✔</td> </tr> <tr> <td>Performance-L</td> <td>14 GB</td> <td>100%</td> <td>50x</td> <td></td> <td>✔</td> </tr> <tr> <td><em>Performance/Private/Shield-L-RAM</em></td> <td><em>30 GB</em></td> <td><em>100%</em></td> <td><em>24x</em></td> <td></td> <td><em>✔</em></td> </tr> <tr> <td><em>Performance/Private/Shield-XL</em></td> <td><em>62 GB</em></td> <td><em>100%</em></td> <td><em>50x</em></td> <td></td> <td><em>✔</em></td> </tr> <tr> <td><em>Performance/Private/Shield-2XL</em></td> <td><em>126 GB</em></td> <td><em>100%</em></td> <td><em>100x</em></td> <td></td> <td><em>✔</em></td> </tr> </tbody> </table> <p>You can migrate applications in seconds using <a href="https://devcenter.heroku.com/articles/dyno-types#setting-dyno-types">simple CLI commands</a> or through the Heroku Dashboard. </p> <p>Pricing information is transparent and costs are prorated to the second, so you only pay for what you use. Visit the <a href="https://www.heroku.com/pricing">Heroku pricing page</a> for more details and the <a href="https://devcenter.heroku.com/articles/optimizing-dyno-usage#considering-different-dyno-types">Heroku Dev Center</a> on how to unlock more power with these new dynos. </p> <h2 class="anchored"> <a name="get-started-with-new-dynos" href="#get-started-with-new-dynos">Get Started with New Dynos</a> </h2> <p>All Heroku customers interested in using our new Performance dynos for their applications can start today. The process is simple and follows the typical process of spinning up and switching dyno types. </p> <p>To provision these dyno types from the Heroku Dashboard, follow the Heroku Dev Center steps on <a href="https://devcenter.heroku.com/articles/dyno-types#setting-dyno-types">setting dyno types.</a></p> <p>Or simply run the following <a href="https://devcenter.heroku.com/articles/dyno-types#from-the-heroku-cli">CLI command:</a></p> <pre><code>$ heroku dyno:type performance-2xl </code></pre> <p>Private Space customers can also use the new Private Dynos, and Shield Private Space customers can use the new Shield Dynos in their spaces.</p> <h2 class="anchored"> <a name="how-heroku-uses-the-new-dynos" href="#how-heroku-uses-the-new-dynos">How Heroku Uses the New Dynos</a> </h2> <p>As we started to internally test and prepare the new dyno types for general availability, the Heroku Connect team was a prime candidate as an internal customer. Its data-intensive operations power the <a href="https://www.heroku.com/connect">Heroku Connect product offering</a>, which enables developers seamlessly access Salesforce CRM data using <a href="https://www.heroku.com/postgres">Heroku Postgres</a>. This bi-directional data synchronization requires hundreds of Shield dynos to make sure data is up-to-date and accurate between Salesforce and Postgres. With a growing number of Heroku Connect customers, the Connect team was reaching the memory limits of our Shield-L dynos, requiring constant scale-ups to meet customer demands. </p> <p>At the beginning of February, the Connect team upgraded their dyno fleets from Shield-L to Shield-XL dynos. After monitoring the platform and re-scaling appropriately, the team successfully reduced the total number of dynos required to run the data synchronization. The new formation continued to meet all of the availability and data quality requirements that Connect customers expect. In total, by changing their formation to utilize the new dyno sizes, the team reduced the estimated compute-specific costs of running Heroku Connect jobs by almost 20%! </p> <p>From a senior engineer on the Heroku Connect team: </p> <blockquote> <p><strong>"We were able to reduce cost and reduce the number of dynos we needed because a lot of these operations are memory-heavy. With the newer dynos, we overcame this bottleneck of memory which required us to add more dynos in the past"</strong>.</p> </blockquote> <p>We hope that our customers can perform the same cost optimizations unlocked by these new dyno offerings. This launch is another step towards making Heroku a more cost-effective cloud platform.</p> <p>We’re excited for the internal wins for our Heroku teams. We’re even more excited to see what new projects and optimizations are possible for our customers now that these dynos are generally available. </p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>With the new larger dyno types, we’re pushing the boundaries of what is possible with Heroku. We’re working to make our platform, bigger, faster, and more resilient. We’re continuously listening to our customers on our <a href="https://github.com/heroku/roadmap">Github Public Roadmap</a>. The valuable feedback on the <a href="https://github.com/heroku/roadmap/issues/62">Larger Dynos roadmap item</a> led to this change.</p> <p>Paired with our recently announced plans for <a href="https://blog.heroku.com/introducing-new-heroku-postgres-plans">flexible storage on Heroku Postgres</a>, we're working hard to make sure Heroku can scale with your business. </p> Ethan Limchayseng SSO for Pay-as-you-go Customers https://blog.heroku.com/sso-pay-as-you-go Wed, 20 Mar 2024 22:27:00 GMT https://blog.heroku.com/sso-pay-as-you-go <p>Today, we're pleased to introduce a security feature addition for <a href="https://www.heroku.com/teams">Heroku pay-as-you-go customers</a>: Single Sign-On (<a href="https://devcenter.heroku.com/categories/sso">SSO</a>). SSO makes it easy to centralize and manage access to all the various tools and services used by your employees. Previously, SSO was only available for <a href="https://www.heroku.com/enterprise">Heroku Enterprise</a>. SSO improves the employee experience in several ways. You can use any identity provider <a href="https://devcenter.heroku.com/articles/using-sso-services-with-heroku#identity-providers-with-built-in-sso-support-for-heroku">(IdP) with built-in SSO support</a> for Heroku, or custom authentication solutions that support the SAML 2.0 standard.</p> <h3 class="anchored"> <a name="cybersecurity-threat-mitigation" href="#cybersecurity-threat-mitigation">Cybersecurity Threat Mitigation</a> </h3> <p>Usernames and passwords are prime targets for cybercriminals. Frequently, individuals use the same password across multiple platforms. In the event of a security breach, hackers can exploit these credentials to infiltrate corporate systems. Implementing Single Sign-On (SSO) minimizes the proliferation of credentials to a single, managed point.</p> <h3 class="anchored"> <a name="improved-usability" href="#improved-usability">Improved Usability</a> </h3> <p>Developers interact with a multitude of applications every day. SSO eliminates the hassle of maintaining distinct sets of usernames and passwords for each application.</p> <h3 class="anchored"> <a name="lower-support-overhead" href="#lower-support-overhead">Lower Support Overhead</a> </h3> <p>When users manage login credentials for different tools, they’re more likely to forget passwords. By adopting SSO, you can reduce support overhead.</p> <h2 class="anchored"> <a name="enable-sso" href="#enable-sso">Enable SSO</a> </h2> <p>Team admins can <a href="https://devcenter.heroku.com/articles/using-sso-services-with-heroku">enable SSO</a> in the Settings tab of the Heroku Dashboard.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1710878071-1529348394-sso-disabled-expanded-Cropped.png" alt="1529348394-sso-disabled-expanded-Cropped"></p> <p>Note: You must have team admin permissions to see this information and enable SSO.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1710878400-1529347959-sso-enabled-expanded-cropped.png" alt="1529347959-sso-enabled-expanded-cropped"></p> <p>To add end users, create accounts for those users in your IdP. The first time a user logs in to Heroku via the IdP, we create a Heroku account for them via automatic IdP provisioning. You can specify the <a href="https://devcenter.heroku.com/articles/using-sso-services-with-heroku#creating-end-user-accounts">default role</a> for new user creation, with the default set to member initially.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1710882490-Screenshot%202024-02-19%20at%2011.04.54%E2%80%AFAM.png" alt="Screenshot 2024-02-19 at 11"></p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>At Heroku, we take the trust, security, and availability of your apps seriously. Extending <a href="https://devcenter.heroku.com/articles/using-sso-services-with-heroku">SSO</a> to Heroku Teams is yet another step to improving security for all customers.</p> <p>If you have any thoughts or suggestions on future reliability improvements we can make, check out our <a href="https://github.com/heroku/roadmap">public roadmap</a> on GitHub and submit an issue!</p> Vivek Viswanathan Heroku Cloud Native Buildpacks: Bringing Heroku Magic to Container Images https://blog.heroku.com/heroku-cloud-native-buildpacks Tue, 19 Mar 2024 09:00:00 GMT https://blog.heroku.com/heroku-cloud-native-buildpacks <p>At Heroku, we believe the best choices are the ones you don't have to make. That’s why we’re thrilled to announce the preview release of <a href="https://github.com/heroku/buildpacks">Heroku Cloud Native Buildpacks</a>. Our Cloud Native Buildpack (CNB) offering brings the beloved Heroku language and framework experience to your local machine and beyond. Whether you're coding in Ruby, Node.js, Python, PHP, Go, Java, or Scala, Heroku’s set of opinionated CNBs streamline the process of building and managing containerized applications as OCI-compliant images. Developed and maintained by our language experts, these buildpacks ensure a native experience for each supported language ecosystem and frees you up to focus on what matters: building great features.</p> <h2 class="anchored"> <a name="buildpacks-for-heroku-and-beyond" href="#buildpacks-for-heroku-and-beyond">Buildpacks for Heroku and Beyond</a> </h2> <p><a href="https://www.heroku.com/dx">Deploying an app to Heroku</a> is as simple as running <code>git push heroku main</code>. Behind the scenes, <a href="https://blog.heroku.com/buildpacks">buildpacks</a> take care of the dependencies, caching, and compilation for any language your app uses. By open sourcing our buildpacks and the <a href="https://devcenter.heroku.com/articles/buildpack-api">Buildpack API</a>, Heroku lets you customize your build process. Extensibility remains a core principle on Heroku, whether that’s changing a single line in the buildpack or supporting an entirely new language.</p> <p>Our vision for buildpacks has always extended beyond Heroku. We strive to create a standard that minimizes lock-in, maximizes transparency, and enables developers to share application building practices.</p> <p>Today, OCI images are the new cloud executables. In a joint effort with Pivotal, we invented <a href="http://buildpacks.io">Cloud Native Buildpacks</a> as a standardized way to build container images directly from source code, without needing Dockerfiles. We built these CNBs on years of experience with our existing buildpacks and running them at scale in production. CNBs offer a new level of portability while also making containers more accessible to developers.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1710548740-Buildpacks%20Logo_Blog%20Image.png" alt="Buildpacks Logo_Blog Image"></p> <h2 class="anchored"> <a name="get-started-with-heroku-cloud-native-buildpacks" href="#get-started-with-heroku-cloud-native-buildpacks">Get Started with Heroku Cloud Native Buildpacks</a> </h2> <p>Building container images with Heroku Cloud Native Buildpacks is simple. All you need is a container runtime like <a href="https://www.docker.com/products/docker-desktop/">Docker</a> and the <a href="https://buildpacks.io/docs/for-platform-operators/how-to/integrate-ci/pack/#install"><code>pack</code> CLI</a>. With these tools, you can transform any source code into a portable OCI image using Heroku CNBs.</p> <p>Let’s see these CNBs in action with our existing <a href="https://devcenter.heroku.com/articles/getting-started-with-nodejs">Node.js Getting Started Guide</a>, which intentionally omits a <code>Dockerfile</code>:</p> <pre><code class="language-console">$ git clone https://github.com/heroku/node-js-getting-started $ cd node-js-getting-started $ pack build my-node-app --builder heroku/builder:22 22: Pulling from heroku/builder ... ===&gt; ANALYZING Image with name "my-node-app" not found ===&gt; DETECTING 3 of 5 buildpacks participating heroku/nodejs-engine 2.6.6 heroku/nodejs-npm-install 2.6.6 heroku/procfile 3.0.0 ===&gt; RESTORING ===&gt; BUILDING ... [Discovering process types] Procfile declares types -&gt; web ===&gt; EXPORTING ... Setting default process type 'web' Saving my-node-app... *** Images (97b42d93c354): my-node-app Adding cache layer 'heroku/nodejs-engine:dist' Adding cache layer 'heroku/nodejs-npm-install:npm_cache' Successfully built image my-node-app </code></pre> <p>This command builds a fully OCI-compliant container image named <code>my-node-app</code>. You can push it to any OCI registry, use it as a base image in a <code>Dockerfile</code>, or run it locally as a container.</p> <p>To run our sample <code>express</code> Node.js application locally on port <code>9292</code>, we can use a basic <code>docker run</code> command:</p> <pre><code class="language-console">$ docker run --env PORT=9292 -p 9292:9292 my-node-app </code></pre> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1710548374-Screenshot%202024-03-04%20at%209.43.04%20AM%20%281%29.png" alt="Screenshot 2024-03-04 at 9"></p> <p>The Heroku Cloud Native Buildpacks preview release is just the tip of the iceberg. We're so excited for you to try them even though our platform won’t officially support them until later this year. Get ahead of the curve and experiment with Heroku CNBs today. We're eager to <a href="https://github.com/heroku/buildpacks/discussions">hear your thoughts</a> and see what you create with them. Head over to the <a href="https://github.com/heroku/buildpacks">project on GitHub</a> and join us in shaping the future of application packaging!</p> Terence Lee 2023: Delivering Innovation and Customer Success https://blog.heroku.com/2023-wrap-up Fri, 01 Mar 2024 21:10:00 GMT https://blog.heroku.com/2023-wrap-up <p>2024 is going to be an exciting year at Heroku. Before we jump into 2024, let’s take a look back at 2023 and show you how we’re empowering developers to deliver amazing apps. First of all, we want to take a moment to thank you, our customers, partners, employees, and extended communities. Your passion for Heroku and the developer community makes our work possible. </p> <h2 class="anchored"> <a name="customer-success" href="#customer-success">Customer Success</a> </h2> <p>Our teams continued to grow to meet the demands of our many existing and new customers in 2023. Customers who do things like make safer cars, bring us live music, deliver last-minute items to our door, and ensure that more people get the affordable healthcare they need. The many ways that Heroku serves as the catalyst for businesses across the globe never fails to amaze our employees. </p> <p>One example is <a href="https://www.heroku.com/customers/healthsherpa">HealthSherpa</a> who enrolled 6.6 million individuals and families into Affordable Care Act health insurance during the 2024 open enrollment period. The enrollment made up 40% of the <a href="https://www.cms.gov/newsroom/press-releases/historic-213-million-people-choose-aca-marketplace-coverage">total enrollments</a> completed through the Federally Facilitated Marketplace. </p> <p>Equally exciting is the way that Live Nation brings entertainment to the world using Heroku. The Live Nation team joined us on stage at Dreamforce and shared how they use Heroku and Salesforce to create a custom concert planning system. The Heroku app shaved off 15+ hours from the old process for mounting a tour and ensured that everyone from roadie to food vendor to artist is paid a fair wage. </p> <h2 class="anchored"> <a name="delivering-innovations" href="#delivering-innovations">Delivering Innovations</a> </h2> <p>2023 marked a year of delivering on customer requests about how we can improve the product. We started with the release of <a href="https://blog.heroku.com/introducing-new-heroku-postgres-plans">larger Postgres plans</a>. Larger plans have been a popular request for a long time and we were excited to deliver it last year. </p> <p>Our global footprint has been front and center with requests for additional <a href="https://www.heroku.com/private-spaces">Private Space</a> regions. Now you can launch a <a href="https://blog.heroku.com/heroku-private-spaces-global-expansion">Private Space in Canada and India</a>, and we’ll continue to listen for other country requests. </p> <p>Our customers were very vocal in 2023 about their need to innovate efficiently and economically on Heroku. We listened and added <a href="https://blog.heroku.com/basicdynos-enterprise">Basic dynos for Enterprise customers</a>. Customers in India can once again <a href="https://blog.heroku.com/heroku-back-in-india">pay for services via credit card</a>. We also eliminated fees for <a href="https://www.heroku.com/continuous-integration">Heroku CI</a> and large <a href="https://www.heroku.com/teams">teams</a>. </p> <p>Salesforce and Heroku announced a <a href="https://blog.heroku.com/heroku-in-aws-marketplace">brand new partnership with AWS</a> at the end of 2023. Now customers can purchase Heroku on the AWS Marketplace. The partnership lets us accelerate our innovation in AI and offer more flexible compute and storage for products like <a href="https://www.heroku.com/postgres">Heroku Postgres</a> by leveraging Amazon Aurora.</p> <p>We believe Heroku has a key role to play in the future of AI apps. As we’ve done for general application development, we’re making the hard things easy and letting our customers focus on experiences that differentiate them. We closed out the year by launching the <a href="https://blog.heroku.com/pgvector-launch">support for pgvector</a>. pgvector allows Heroku Postgres to quickly find similar data points in complex data, which is great for applications like recommendation systems and prompt engineering for large language models (LLMs). This is just the beginning of what it looks like to bring the Heroku developer experience to AI.</p> <p>These innovations are just the highlights. We shipped <a href="https://devcenter.heroku.com/changelog">over 200 changes</a> to the platform, ranging from small to large improvements that keep our customers focused on delivering great experiences.</p> <h2 class="anchored"> <a name="growing-the-community" href="#growing-the-community">Growing the Community</a> </h2> <p>We know that many communities learn to code on Heroku. In 2023 we provided over 27,000 students access to Heroku through the GitHub Student program. You can learn more about our involvement in the GitHub student program or enroll as a student <a href="https://www.heroku.com/github-students">here</a>. We extended our student program and are now offering 2 years of Heroku credits to learn with Heroku. We're passionate about the open-source community, and in 2023, we proudly supported 28 projects through our new Open Source Credits program. One of these standout projects is Ember.js, a powerful frontend framework run entirely by volunteers. The team uses Heroku to show up just like giant projects with big corporate budgets backing them!</p> <p>Our teams were at EmberConf, RubyConf, KubeCon, TrailblazerDX, Dreamforce, and AWS re:Invent in 2023. Heroku’s CTO &amp; SVP of Engineering Gail Frederick <a href="https://www.youtube.com/watch?v=fZLcv7rwj7Y&amp;t=1959s">spoke</a> at re:Invent about database innovation. Each event brought us closer to the developer community and new opportunities to learn. The reception from our customers at these events has been amazing and validates how important it is for Heroku to represent not just at Salesforce events but broader industry events as well. We can’t wait to meet more of you in 2024! </p> <p>We’re looking forward to engaging with our customers and partners in 2024, starting with our <a href="https://hello.heroku.com/devmeetup-2403">Heroku Developer Meetup</a> on March 5, 2024 and <a href="https://www.salesforce.com/trailblazerdx">TrailblazerDX</a> on March 6-7, 2024. We’re hosting <a href="https://blog.heroku.com/trailblazerdx-2024-more-heroku-experiences">six sessions</a> including developing AI apps with Heroku, and so much more. If you have product-specific questions, come meet our technical team at our demo booths. We’re following up TrailblazerDX with <a href="https://www.heroku.com/events/2024/kubecon-paris">KubeCon in Paris</a> as we embark on our renewed commitment to Cloud Native. </p> <p>Want to learn more about what’s to come and how to interact with us? Follow us on <a href="https://www.youtube.com/c/SalesforceDevelopers/community">YouTube</a>, <a href="https://www.linkedin.com/company/heroku">LinkedIn</a>, <a href="https://twitter.com/heroku">X</a>. To see what else we’re working on, or to suggest enhancements and new features for Heroku, check out our <a href="https://github.com/heroku/roadmap">public roadmap on GitHub</a>.</p> Deb Robbins TrailblazerDX 2024: More Heroku Experiences https://blog.heroku.com/trailblazerdx-2024-more-heroku-experiences Mon, 12 Feb 2024 15:38:00 GMT https://blog.heroku.com/trailblazerdx-2024-more-heroku-experiences <p>The countdown has begun for Salesforce's annual developer conference, <a href="https://www.salesforce.com/trailblazerdx">TrailblazerDX</a>, set to take place on March 6-7, 2024, in San Francisco and streaming live on <a href="https://www.salesforce.com/plus/experience/trailblazerdx_2024">Salesforce+</a>. This year's conference has been touted as the "AI developer conference of the year," promising a wealth of insights and experiences for developers, architects, and IT leaders. If you're a Heroku enthusiast or looking to dive into the world of <a href="https://www.heroku.com/platform">Platform-as-a-Service (PaaS)</a>, this is an event you don’t want to miss. <a href="https://www.salesforce.com/trailblazerdx/register/" title="Register for TrailblazerDX">Register today</a> and then head over to the <a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog?_ga=2.224859027.883611082.1701793057-2113709122.1689602650&amp;=undefined&amp;utm_source=enablement&amp;utm_medium=slack-core-team&amp;utm_campaign=general&amp;d=7013y000002EppLAAS&amp;tab.day=20240306%22Build%20your%20own%20agenda.%22">Agenda Builder</a> to create a personalized agenda.</p> <!-- more --> <h2 class="anchored"> <a name="developer-meetup-connecting-the-heroku-community" href="#developer-meetup-connecting-the-heroku-community">Developer Meetup: Connecting the Heroku Community</a> </h2> <p>Heroku, Salesforce's robust PaaS offering, is set to take center stage with six insightful sessions catering to both novice developers and seasoned architects. The anticipation begins before the official conference kick-off, with the <a href="https://hello.heroku.com/devmeetup-2403">Heroku Developer Meetup</a> on March 5, from 2-6 pm at the Salesforce Tower. This afternoon promises a sneak peek into the latest Heroku releases, engaging discussions, and a chance to challenge your skills at the Heroku AI Arcade. For those eager to network, you’ll also get to hear from senior leadership and stay for a networking event. This event is SOLD OUT! We look forward to adding more Developer events later this year.</p> <h2 class="anchored"> <a name="trailblazerdx-heroku-hands-on-activations-and-demos" href="#trailblazerdx-heroku-hands-on-activations-and-demos">TrailblazerDX Heroku Hands-On Activations and Demos</a> </h2> <p>The hands-on activations and demos at TrailblazerDX 2024 offer attendees a chance to explore Heroku's capabilities and to directly interact with Heroku engineers and technical architects. These interactive experiences transform the learning environment into a collaborative space where attendees can tap into the wealth of knowledge possessed by Heroku team members.</p> <h3 class="anchored"> <a name="heroku-ai-arcade-solve-code-challenges-using-an-ai-assistant" href="#heroku-ai-arcade-solve-code-challenges-using-an-ai-assistant">Heroku AI Arcade - Solve code challenges using an AI assistant</a> </h3> <p>Come to the Heroku AI Arcade, where participants can put their skills to the test by solving code challenges with the assistance of an AI companion. Learn while actively applying your knowledge in a fun and dynamic environment.</p> <h3 class="anchored"> <a name="camp-mini-hacks-solve-a-30-minute-heroku-challenge" href="#camp-mini-hacks-solve-a-30-minute-heroku-challenge">Camp Mini Hacks - Solve a 30-minute Heroku challenge</a> </h3> <p>Immerse yourself in Camp Mini Hacks, where you have the opportunity to solve a unique 30-minute Heroku challenge that navigates a real-world scenario. Participants will gain practical insights into Heroku's functionalities and enhance their problem-solving skills.</p> <h3 class="anchored"> <a name="heroku-connect-synchronize-salesforce-data-with-postgres" href="#heroku-connect-synchronize-salesforce-data-with-postgres">Heroku Connect - Synchronize Salesforce data with Postgres</a> </h3> <p>In this demo, Heroku experts lead you through the seamless integration between Salesforce and Heroku as <a href="https://www.heroku.com/connect">Heroku Connect</a> takes center stage. Learn how to synchronize Salesforce data with Postgres effortlessly, unlocking new possibilities for data management and accessibility.</p> <h3 class="anchored"> <a name="vector-db-on-heroku-postgres-implement-retrieval-augmented-generation-with-ai-enabled-search" href="#vector-db-on-heroku-postgres-implement-retrieval-augmented-generation-with-ai-enabled-search">Vector DB on Heroku Postgres - Implement retrieval-augmented generation with AI-enabled search</a> </h3> <p>Step into the future of AI-driven search with the Vector DB on <a href="https://www.heroku.com/postgres">Heroku Postgres</a> demo. Discover how to implement retrieval-augmented generation, enhancing search capabilities with artificial intelligence. This hands-on experience empowers developers to harness the power of AI in their applications, bringing innovation to the forefront of their projects.</p> <h2 class="anchored"> <a name="trailblazerdx-heroku-theater-and-breakout-sessions" href="#trailblazerdx-heroku-theater-and-breakout-sessions">TrailblazerDX Heroku Theater and Breakout Sessions</a> </h2> <p>Heroku has a lineup of six sessions at this year’s TDX. These sessions cover topics from unlocking the full potential of customer engagement strategies to delving into the realm of artificial intelligence. Led by Heroku staff, these theater and breakout sessions cover topics specific to the developer and IT community.</p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465283124001trzl-boost-engagement-with-heroku-and-salesforce-data-cloud-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465283124001trzl-boost-engagement-with-heroku-and-salesforce-data-cloud-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465283124001trzL">Boost Engagement with Heroku and Salesforce Data Cloud</a> </h3> <p class="light" style="margin-bottom:0"><em>Also available on Salesforce+</em></p> <p><strong>Presenter:</strong> Vivek Viswanathan, Director of Product Management, Salesforce</p> <p>This session promises to unlock the full potential of your customer engagement strategy. Whether you're a developer or an IT leader, learn how to build trusted personalized ecommerce, loyalty, social engagement, and service apps that seamlessly integrate with Salesforce clouds. Get ready to take your customer engagement strategy to new heights.</p> <p style="font-size:14px; margin-bottom:0">Wednesday, March 6 | 2:30 PM - 3:10 PM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465283124001trzL" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465278636001tzpb-build-ai-applications-on-heroku-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465278636001tzpb-build-ai-applications-on-heroku-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465278636001tZPb">Build AI Applications on Heroku</a> </h3> <p class="light" style="margin-bottom:0"><em>Also available on Salesforce+</em></p> <p><strong>Presenter:</strong> Julián Duque, Principal Developer Advocate, Salesforce</p> <p>For architects and developers eager to harness the power of AI, this session is a must-attend. Julián Duque, a seasoned expert, guides you through building Heroku applications using AI patterns such as retrieval-augmented generation, agents, GPT actions, open-source languages, and leveraging Heroku Postgres with pgvector.. Dive into the world of AI and revolutionize your application development.</p> <p style="font-size:14px; margin-bottom:0">Thursday, March 7 | 9:30 AM - 10:10 AM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465278636001tZPb" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456116352001y4rw-build-an-event-experience-with-pgvector-similarity-search-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456116352001y4rw-build-an-event-experience-with-pgvector-similarity-search-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456116352001y4rw">Build an Event Experience with pgvector Similarity Search</a> </h3> <p><strong>Presenter:</strong> Valerie Woolard, Software Engineering LMTS, Salesforce Heroku</p> <p>In this session designed for architects and developers, Valerie Woolard demonstrates how to use pgvector to build an immersive experience for conference attendees with a Heroku application. Walk away with the ability to perform a similarity search with natural language processing, enhancing the user experience for your applications.</p> <p style="font-size:14px; margin-bottom:0">Wednesday, March 6 | 5:00 PM - 5:20 PM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456116352001y4rw" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465283571001tdfc-choosing-the-right-ai-model-for-your-heroku-application-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701465283571001tdfc-choosing-the-right-ai-model-for-your-heroku-application-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465283571001tdfc">Choosing the Right AI Model for Your Heroku Application</a> </h3> <p><strong>Presenter:</strong> Rand Fitzpatrick, Senior Director, Product Management, Heroku</p> <p>Learn the art of selecting the right AI models for your Heroku application. Rand Fitzpatrick, a Senior Director in Product Management at Heroku, guides developers and IT leaders through understanding how to choose models tailored to your specific task, data, and modalities. Achieve the efficiencies and effectiveness you need for your AI applications.</p> <p style="font-size:14px; margin-bottom:0">Thursday, March 7 | 2:00 PM - 2:40 PM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701465283571001tdfc" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456116890001ycb5-see-how-heroku-postgres-is-changing-with-amazon-aurora-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456116890001ycb5-see-how-heroku-postgres-is-changing-with-amazon-aurora-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456116890001ycb5">See How Heroku Postgres is Changing with Amazon Aurora</a> </h3> <p><strong>Presenters:</strong> Jonathan K Brown, Sr. Product Manager, Salesforce and Justin Downing, Software Engineering Architect, Salesforce</p> <p>Explore the evolution of Heroku Postgres with the development of new infrastructure on Amazon Aurora. Learn about enhanced performance, flexibility, scalability, extensibility, and the simplicity Heroku brings to the table. For developers and IT leaders, this session is an opportunity to stay at the forefront of database technology.</p> <p style="font-size:14px; margin-bottom:0">Thursday, March 7 | 8:00 AM - 8:20 AM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456116890001ycb5" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h3 class="anchored"> <a name="a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456117383001yq55-using-heroku-connect-to-leverage-your-salesforce-data-a" href="#a-href-https-reg-salesforce-com-flow-plus-tdx24-sessioncatalog-page-catalog-session-1701456117383001yq55-using-heroku-connect-to-leverage-your-salesforce-data-a"></a><a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456117383001yq55">Using Heroku Connect to Leverage Your Salesforce Data</a> </h3> <p><strong>Presenters:</strong> Dan Mehlman, Director, Technical Architecture, Salesforce and Jess Carosello, Senior Salesforce Admin - Heroku</p> <p>Discover the power of Salesforce data across your enterprise. Join this session to learn how to use Heroku Connect to easily leverage Salesforce and expand your data model. This session is ideal for developers looking to integrate Salesforce seamlessly into their applications.</p> <p style="font-size:14px; margin-bottom:0">Wednesday, March 6 | 3:30 PM - 3:50 PM PST</p> <p> <a class="btn btn-xs btn-primary-lightning" href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog/session/1701456117383001yq55" style="text-decoration: none;"> <span class="glyphicon" style="font-family: 'Glyphicons Halflings';position: relative;line-height: 1;top:2px;"></span> Add to Agenda </a> </p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>As we gear up for TrailblazerDX 2024, the excitement is mounting. For the Heroku team, it's about the technology and so much more. We look forward to connecting with a community of like-minded developers, architects, and IT leaders. Whether you're a seasoned Heroku user or just stepping into the world of PaaS, TDX promises a unique blend of learning, networking, and hands-on experiences.</p> <p><a href="https://www.salesforce.com/trailblazerdx/register/" title="Register for TrailblazerDX 2024">Register today</a> and add your favorite Heroku sessions to your <a href="https://reg.salesforce.com/flow/plus/tdx24/sessioncatalog/page/Catalog?tab.day=20240306&amp;search.product=1643812029327020eBEJ">agenda</a>. Salesforce Events mobile app available for <a href="https://apps.apple.com/us/app/salesforce-events/id1021413071" title="Salesforce Events for iOS">iOS</a> and <a href="https://play.google.com/store/apps/details?id=com.salesforce.dreamforce&amp;pcampaignid=web_share" title="Salesforce Events for Android">Android</a>.</p> Gillian Gual Hinkle Automatic Certificate Management for Eco Dynos https://blog.heroku.com/automatic-certificate-management-for-eco-dynos Thu, 08 Feb 2024 19:56:00 GMT https://blog.heroku.com/automatic-certificate-management-for-eco-dynos <p>TLS and HTTPS encryption have become foundational primitives and a requirement for running any app or service on the internet. Many Heroku customers told us through our <a href="https://github.com/heroku/roadmap/issues/125">public roadmap to make Heroku Automated Certificate Management</a> available to <a href="https://www.heroku.com/dynos">all dyno types</a>, including our Eco subscription. We're thrilled to announce that <a href="https://devcenter.heroku.com/articles/automated-certificate-management">Automatic Certificate Management(ACM)</a> and <a href="https://devcenter.heroku.com/articles/ssl#manually-upload-certificates">manual certificate support</a> are now available for apps running on Eco dynos. You can <a href="https://devcenter.heroku.com/articles/sslfasttrack">manually</a> add certificates, or use Heroku ACM to make getting set up with https quick and simple.</p> <p>Certificates handled by ACM automatically renew one month before they expire. New certificates are created automatically whenever you add or remove a custom domain to an app. Automated Certificate Management makes running secure and compliant apps on Heroku simple. Heroku ACM uses <a href="https://letsencrypt.org/">Let’s Encrypt</a>, the free, automated, and open certificate authority for managing TLS certificates. Heroku <a href="https://letsencrypt.org/sponsors/">sponsors Let’s Encrypt</a>, which the Internet Security Research Group (ISRG) runs for public benefit.</p> <p>You can enable ACM for any app by running the following command:</p> <pre><code class="term">$ heroku certs:auto:enable </code></pre> <p>Previously, Heroku automatically enabled ACM when apps were upgraded from Eco to larger dynos. We deprecated this behavior and ACM is no longer auto-enabled when making any dyno type change. See the <a href="https://devcenter.heroku.com/changelog-items/2728">changelog</a> entry for details.</p> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>At Heroku, we take the trust, reliability and availability of your apps seriously. Supporting ACM &amp; manual certificate uploads for Eco dynos is another step to improving security for all app types. Your satisfaction is our priority, and we're excited to continue delivering features that enhance your experience.</p> <p>If you have any thoughts or suggestions on future reliability improvements we can make, check out our <a href="https://github.com/heroku/roadmap">public roadmap</a> on GitHub and submit an issue!</p> Vivek Viswanathan Innovating on Heroku is now more cost-effective https://blog.heroku.com/basicdynos-enterprise Tue, 23 Jan 2024 17:52:00 GMT https://blog.heroku.com/basicdynos-enterprise <p>Heroku is improving the cost-effectiveness of <a href="https://devcenter.heroku.com/articles/heroku-enterprise">Heroku Enterprise</a> with the addition of Basic dynos. Now, Enterprise customers can unlock the power of Basic dynos on the Common Runtime. Basic dynos enable seamless app development and testing on the Heroku platform in the most efficient and cost-effective way. As part of our efforts to simplify our pricing and packaging, we’re ensuring parity in our product offerings between our card-paying and our Enterprise-contracted customers. Most frequently, Heroku customers use Basic dynos for testing new applications, creating reference apps, and for small-scale projects. By making Basic dynos available on Enterprise, these same apps can use other dyno types when ready for production. </p> <p>For Enterprise customers, Basic dynos consume 0.28 dyno units, a notable reduction from the existing minimum consumption of 1 dyno unit with Standard-1X dynos. Basic dynos are the new default dyno type for Common Runtime apps for Enterprise customers. If you’re interested in buying Heroku on an Enterprise contract, reach out to our dedicated <a href="https://www.heroku.com/contact-sales">account team</a>. If you’re a Premier or Signature support customer, our customer solution architects can help you identify cost optimizations for your implementation using Basic dynos.</p> <h2 class="anchored"> <a name="basic-dynos-uses-amp-features" href="#basic-dynos-uses-amp-features">Basic Dynos Uses &amp; Features</a> </h2> <p>There’s no change to the <a href="https://devcenter.heroku.com/articles/dyno-types#dyno-feature-support">features</a> Basic dynos supports. If you’re using a Basic dyno, review and ensure that you aren’t relying on a feature that the Basic dyno doesn’t support.</p> <table> <thead> <tr> <th>Feature</th> <th>Eco</th> <th>Basic</th> <th>Standard-1X</th> <th>Standard-2X</th> <th>Performance-M</th> <th>Performance-L</th> </tr> </thead> <tbody> <tr> <td>Deploy with <a href="https://devcenter.heroku.com/articles/git">Git</a> or <a href="https://devcenter.heroku.com/articles/container-registry-and-runtime">Docker</a> </td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/custom-domains">Custom Domain Support</a></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/pipelines">Pipelines</a></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td>Automatic OS patching</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td>Regular and timely updates to language version support</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td>Free SSL and <a href="https://devcenter.heroku.com/articles/automated-certificate-management">automated certificate management</a> for TLS certs</td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/metrics">Application metrics</a></td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/heroku-teams">Heroku Teams</a></td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/scaling">Horizontal scalability</a></td> <td></td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/preboot">Preboot</a></td> <td></td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/language-runtime-metrics">Language runtime metrics</a></td> <td></td> <td></td> <td>✔</td> <td>✔</td> <td>✔</td> <td>✔</td> </tr> <tr> <td><a href="https://devcenter.heroku.com/articles/scaling#autoscaling">Autoscaling for web dynos</a></td> <td></td> <td></td> <td></td> <td></td> <td>✔</td> <td>✔</td> </tr> <tr> <td>Dedicated compute resources</td> <td></td> <td></td> <td></td> <td></td> <td>✔</td> <td>✔</td> </tr> </tbody> </table> <h2 class="anchored"> <a name="conclusion" href="#conclusion">Conclusion</a> </h2> <p>At Heroku, we want to ensure all our customers can build apps rapidly and cost-effectively, no matter whether you’re a card-paying or Enterprise customer. Enabling Basic dynos for Heroku Enterprise represents a significant stride in that direction.</p> <p>If you have any thoughts or suggestions on future reliability improvements we can make, check out our <a href="https://github.com/heroku/roadmap">public roadmap</a> on GitHub and submit an issue!</p> Vivek Viswanathan Heroku in AWS Marketplace https://blog.heroku.com/heroku-in-aws-marketplace Tue, 28 Nov 2023 16:00:00 GMT https://blog.heroku.com/heroku-in-aws-marketplace <p>Today at <a href="https://reinvent.awsevents.com/">AWS re:Invent</a>, we’re excited to announce that Heroku is available for purchase in AWS Marketplace through the Private Offers program. Buying Heroku in AWS Marketplace gives you consolidated billing and seamless provisioning. There’s also more opportunity for Heroku and AWS to work with you to find the best mix of products for your apps and workloads.</p> <p><img src="https://heroku-blog-files.s3.amazonaws.com/posts/1701128141-%5BBlog%5D%20%5BProduct%5D%20Heroku%20in%20AWS%20Marketplace.png" alt="[Blog] [Product] Heroku in AWS Marketplace"></p> <p>If you’re a U.S. <a href="https://aws.amazon.com/pricing/enterprise/">AWS Enterprise Discount Program</a> (EDP) customer, starting today, you can buy <a href="https://www.heroku.com/dynos">Dynos</a>, <a href="https://www.heroku.com/private-spaces">Private Spaces</a>, <a href="https://www.heroku.com/postgres">Heroku Postgres</a>, <a href="https://www.heroku.com/redis">Heroku Key-Value Store</a>, <a href="https://www.heroku.com/kafka">Apache Kafka on Heroku</a>, and <a href="https://www.heroku.com/connect">Heroku Connect</a> through AWS Marketplace Private Offers. <a href="https://www.heroku.com/contact-sales">Get in touch with a Heroku sales representative</a> and let them know you’re interested in buying Heroku through AWS.</p> <p>Heroku is joined in AWS Marketplace by Salesforce Data Cloud, Service Cloud, Sales Cloud, Industry Clouds, Tableau, MuleSoft and Platform. Read the <a href="https://www.salesforce.com/news/press-releases/2023/11/27/aws-data-ai-strategic-partnership-expansion/">full announcement on the Salesforce Press Site</a>.</p> <p>If you’re at re:Invent, drop by the Heroku section of the <a href="https://reinvent.awsevents.com/sponsors/salesforce/">Salesforce booth at the Venetian Content Hub</a>. You can learn more about Heroku in AWS Marketplace, and about all of our features and products. You can also join Heroku CTO, Gail Frederick, at the database innovation talk on Wednesday at 2:30 p.m (<a href="https://www.youtube.com/watch?v=fZLcv7rwj7Y&amp;t=1959s">watch now</a>).</p> <p>To see what else we’re working on, or to suggest enhancements and new features for Heroku, check out our <a href="https://github.com/heroku/roadmap">public roadmap on GitHub</a>.</p> Michael Friis Enhancing Heroku Postgres with pgvector: Generating AI Insights https://blog.heroku.com/pgvector-launch Thu, 26 Oct 2023 16:18:00 GMT https://blog.heroku.com/pgvector-launch <p>We’re pleased to introduce the <a href="https://github.com/pgvector/pgvector">pgvector extension</a> on <a href="https://www.heroku.com/postgres">Heroku Postgres</a>. In an era where large language models (LLMs) and AI applications are paramount, pgvector provides the essential capability for performing high-dimensional vector similarity searches. This allows Heroku Postgres to quickly find similar data points in complex data, which is great for applications like recommendation systems and prompt engineering for LLMs. As of today, pgvector is fully compatible with <a href="https://devcenter.heroku.com/articles/heroku-postgres-production-tier-technical-characterization">all Production-tier databases</a> running Postgres 15 at no additional charge and you can get started with a simple <code>CREATE EXTENSION vector;</code> command in your <a href="https://devcenter.heroku.com/articles/managing-heroku-postgres-using-cli#pg-psql">client session</a>. In this post, we look at how you can use pgvector and its potential applications to enhance your business operations. </p> <h2 class="anchored"> <a name="understanding-pgvector-and-its-significance" href="#understanding-pgvector-and-its-significance">Understanding pgvector and Its Significance</a> </h2> <p>Heroku Postgres has evolved well beyond being “just” a relational database. It’s become an adaptable platform enriched with a range of extensions that add new functionalities. Like how we <a href="https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search#postgis">introduced PostGIS</a> for efficient geospatial data handling, we now introduce <a href="https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search#pgvector">pgvector</a>, an innovative extension that turns your Heroku Postgres instance into a robust vector database. This enhancement allows you to effectively store vectorized data and execute advanced similarity searches, a capability that can drive innovation in your business.</p> <p>Complex data can be reduced and represented as vectors. These vectors serve as coordinates in a multi-dimensional space, with hundreds or even thousands of dimensions to represent the data. Datasets that are similar are translated as vectors that are close together, making mathematical similarity calculations simple. For example, characterizing fruits through vectors based on attributes such as color, shape, size, and taste. Vectors that are close to each other share substantial similarities in fruit characteristics, a powerful insight enabled by pgvector.</p> <p>For AI inference applications, data transformed into its vector representation is called an "embedding". An AI embedding model commonly creates the embeddings. A vector database is a specialized system designed to store these "vectors" or "embeddings". It can quickly find vectors that are close in direction and magnitude across a spectrum of attributes.</p> <p>Building on this concept, imagine you have a database full of various fruits, each embedded with its unique vector through a machine learning model. Now, let’s say you’re on a quest to find the perfect substitutes for red apples in your fruit salad, with emphasis on their taste and texture. By deploying a vector similarity search, you’ll find alternatives such as green apples and pears, but not fruits like bananas and tomatoes. </p> <h2 class="anchored"> <a name="potential-use-cases-for-pgvector-extension" href="#potential-use-cases-for-pgvector-extension">Potential Use Cases for pgvector Extension</a> </h2> <p>Using pgvector lets you:</p> <ul> <li><p><strong>Run Prompt Engineering with Retrieval Augmented Generation (RAG):</strong> You can populate the database with embedded text segments, such as the latest product documentation for a specific domain, like your business. Given a prompt, RAG can retrieve the most relevant text segments, which are then augmented or “pasted” into the prompt for generative AI. The AI can then generate responses that are both accurate and contextually relevant.</p></li> <li><p><strong>Recommend Products:</strong> With a vector database containing various attributes, searching for alternatives based on the search criteria is simple. For example in the world of fashion, you can make recommendations based on similar products like dresses or shirts, or match the style and color to offer pants or shoes. You can further extend this with collaborative filtering where the similar preferences of other shoppers enhance the recommendations.</p></li> <li><p><strong>Search Salesforce Data:</strong> Use <a href="https://www.heroku.com/connect">Heroku Connect</a> to synchronize Salesforce data into Heroku, then create a new table with the embeddings since Heroku Connect can’t synchronize vector data types. This unlocks a whole new possibility to extend Salesforce like searching for similar support cases with embeddings from Service Cloud cases.</p></li> <li><p><strong>Search Multimedia :</strong> Search across multimedia contents, like image, audio, and video. You can <a href="https://www.sbert.net/examples/applications/image-search/README.html">embed the content</a> directly or work with transcriptions and other attributes to perform your search. For example, generating a music playlist by finding similar tracks based on embedded features like tempo, mood, genre, and lyrics.</p></li> <li><p><strong>Categorize and Segment Data:</strong> In a variety of fields, from healthcare to manufacturing, data segmentation and categorization are key to successful data analysis. For example, by converting patient records, diagnostic data, or genomic sequences into vectors, you can identify similar cases, aiding in rare disease diagnosis and personalized treatment recommendations.</p></li> <li><p><strong>Detect Anomalies:</strong> Detect anomalies in your data by comparing vectors that don’t fit the regular pattern. This can be useful in analyzing and detecting problematic or suspicious patterns in areas such as network traffic data, industrial sensor data, transactions data, or online behavior. </p></li> </ul> <p>For more details on how to actually prepare a database for vector search, look for a post coming soon on our engineering blog!</p> <h2 class="anchored"> <a name="a-glimpse-into-the-ai-future-of-heroku" href="#a-glimpse-into-the-ai-future-of-heroku">A Glimpse into the AI Future of Heroku</a> </h2> <p>The pgvector extension adds a whole new dimension to Heroku Postgres. We hope this post was helpful in sparking your interest to start experimenting with vector databases. This introduction to pgvector marks the first step in our journey towards AI-enabled offerings on Heroku. We plan on unveiling much more in the near future, so stay tuned for upcoming innovations that we hope will continue to transform how you build and deploy applications.</p> <p>We extend our appreciation to the community for their support in <a href="https://github.com/heroku/roadmap/issues/156">advocating for the significance of pgvector</a>. Your engagement has played a vital role in prioritizing this addition to Heroku Postgres. If you have questions, challenges, or require assistance, our dedicated <a href="https://help.heroku.com/">Support team</a> is available to assist you on your journey into this exciting new frontier.</p> Jonathan Brown