<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>devops — jd:/dev/blog</title><description>Posts tagged &quot;devops&quot; on jd:/dev/blog.</description><link>https://julien.danjou.info/</link><item><title>GitHub Actions Pricing: The Platform Reality Check</title><link>https://julien.danjou.info/blog/github-actions-isnt-getting-greedy/</link><guid isPermaLink="true">https://julien.danjou.info/blog/github-actions-isnt-getting-greedy/</guid><description>GitHub Actions Pricing: The Platform Reality Check</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://resources.github.com/actions/2026-pricing-changes-for-github-actions/&quot;&gt;GitHub just announced pricing changes for GitHub Actions&lt;/a&gt;, and as expected, parts of the CI ecosystem panicked.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/41bef043-9868-48d4-a99c-bd9bf74df245_2582x946.webp&quot; alt=&quot;Screenshot of GitHub Actions pricing changes announcement&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Some people are celebrating the price drop on GitHub-hosted runners. Others are furious that GitHub will start charging for self-hosted runners. And a few businesses are suddenly asking existential questions.&lt;/p&gt;
&lt;p&gt;Since then, &lt;a href=&quot;https://github.com/orgs/community/discussions/182186&quot;&gt;GitHub has paused the self-hosted runner billing change&lt;/a&gt;, acknowledging they moved too fast and didn’t involve the ecosystem enough.&lt;/p&gt;
&lt;p&gt;That doesn’t change the underlying reality. It just delays the conversation.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;GitHub Actions Was Never “Free”&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;GitHub Actions is not just a binary that runs on your machines.&lt;/p&gt;
&lt;p&gt;It’s a platform:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;job queuing and scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;runner registration and lifecycle management&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;workflow orchestration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;security, isolation, secrets handling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;reliability at massive scale&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even when you run your own hardware, GitHub is still doing a lot of work on your behalf. That infrastructure has always existed; hosted runners simply subsidized it.&lt;/p&gt;
&lt;p&gt;GitHub explicitly said it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“We have real costs in running the Actions control plane.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s not new. It’s just now being made explicit.&lt;/p&gt;
&lt;p&gt;Charging a small per-minute platform fee for self-hosted runners isn’t conceptually unfair: it’s GitHub aligning pricing with reality.&lt;/p&gt;
&lt;p&gt;If you believe this is unacceptable, there has always been a clear alternative: run Jenkins, GitLab CI, or any other system where you fully own the control plane.&lt;/p&gt;
&lt;p&gt;But you don’t get GitHub Actions “for free” just because the CPU cycles are yours.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Vendor Lock-In? Yes. And Everyone Chose It.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Some people are suddenly discovering that GitHub Actions can lead to vendor lock-in.&lt;/p&gt;
&lt;p&gt;That’s… not new.&lt;/p&gt;
&lt;p&gt;GitHub Actions is a GitHub App deeply embedded in the GitHub ecosystem. YAML workflows, permissions, APIs, events. The lock-in was the trade-off for convenience, reliability, and speed of adoption.&lt;/p&gt;
&lt;p&gt;And let’s be honest: most teams are perfectly happy with vendor lock-in (right up until pricing becomes visible). You can’t have a deeply integrated platform &lt;strong&gt;and&lt;/strong&gt; complain when the platform prices itself like one.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/33178faf-02e9-447c-9284-33371515b8c8_1376x864.png&quot; alt=&quot;Illustration of vendor lock-in as a trade-off for platform convenience&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;The Real Problem: CI Cost Arbitrage&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The real pain isn’t for users. It’s for companies whose business model is essentially:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“We’ll run GitHub Actions cheaper than GitHub.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That model was always fragile. If you are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;buying cloud compute from AWS, GCP, or another provider&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;reselling CI minutes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;competing on price against &lt;strong&gt;Microsoft + Azure&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You are not competing on technology. You are competing on &lt;strong&gt;arbitrage&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And arbitrage disappears the moment the platform owner decides to price closer to cost, or decides they don’t want that game played anymore.&lt;/p&gt;
&lt;p&gt;This is not new. This is how platforms work.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;When Self-Hosting Still Makes Sense&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Self-hosted runners absolutely still make sense when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;you are very large&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;you have predictable workloads&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;you already operate infra at scale&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;growth is slow, and margin optimization matters more than velocity&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, when infrastructure &lt;em&gt;is&lt;/em&gt; your business or a stable internal cost.&lt;/p&gt;
&lt;p&gt;But for growing startups, optimizing CI costs too early is usually a mistake. Time spent shaving a few cents off a CI minute is time not spent shipping product.&lt;/p&gt;
&lt;p&gt;(And yes: &lt;a href=&quot;https://julien.danjou.info/p/why-engineers-shouldnt-decide-your&quot;&gt;this is precisely why engineers should not be the sole decision-makers on infra strategy&lt;/a&gt;.)&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;What GitHub’s Pause Actually Signals&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;GitHub’s follow-up message is important:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;They acknowledged real platform costs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They admitted poor communication&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They paused to listen, not to abandon the direction&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not GitHub “giving up.” It’s GitHub realizing that CI/CD has become &lt;strong&gt;critical infrastructure&lt;/strong&gt;, and changes must be introduced with more ecosystem buy-in.&lt;/p&gt;
&lt;p&gt;Hosted runners still get cheaper. Actions is still being positioned as a core execution layer (including for agentic workloads). The platform direction hasn’t changed.&lt;/p&gt;
&lt;p&gt;Only the timeline has.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;The Takeaway&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;GitHub Actions isn’t “turning evil.” It’s finishing its transition from a feature to a platform.&lt;/p&gt;
&lt;p&gt;If your CI strategy depends on GitHub never charging for orchestration, scheduling, and reliability, that was never a safe assumption.&lt;/p&gt;
&lt;p&gt;And if your business depends on undercutting a hyperscaler on compute, you were always racing the clock.&lt;/p&gt;
&lt;p&gt;For everyone else, this remains mostly good news:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;clearer economics&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cheaper hosted runners&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a stronger, more explicit platform contract&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And a reminder that CI/CD is not just about cost. It&apos;s about leverage — whether that&apos;s &lt;a href=&quot;https://julien.danjou.info/blog/the-challenges-of-merge-queues&quot;&gt;merge queues that keep your main branch green&lt;/a&gt; or cheaper runners that let you ship faster.&lt;/p&gt;
</content:encoded><category>devops</category><category>mergify</category></item><item><title>Why Engineers Shouldn’t Decide Your Cloud Strategy</title><link>https://julien.danjou.info/blog/why-engineers-shouldnt-decide-your/</link><guid isPermaLink="true">https://julien.danjou.info/blog/why-engineers-shouldnt-decide-your/</guid><description>Growth Is the Battlefield</description><pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/8f63cdd6-a53f-45db-b373-6ad8a3ae3d86_1376x864.png&quot; alt=&quot;Illustration of engineers debating cloud vs bare metal strategy&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Every few months, a new wave of engineers proudly announces their exit from the cloud. “We’re going bare metal. Look at our savings!”.&lt;/p&gt;
&lt;p&gt;The thread goes viral. Everyone nods wisely.&lt;/p&gt;
&lt;p&gt;But here’s the truth: if you’re making infra decisions without thinking about your growth model, you’re optimizing the wrong thing.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;The cloud is not a cost problem. It’s a scaling solution.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Startups don’t pay AWS bills because it’s cheap. They pay because it gives them instant access to global infrastructure they couldn’t build or operate themselves, and arguable, they should not spend time building a team to operate it.&lt;/p&gt;
&lt;p&gt;If your business is growing 100% year over year, optimizing gross margin is not your first battle. Surviving growth is.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/fb575c3d-c68d-403a-b54f-f945fda2099d_1557x874.png&quot; alt=&quot;Datadog revenue growth chart showing 150x scale over 10 years&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Datadog has been in the cloud since day one. They’ve &lt;strong&gt;scaled revenue 150× over 10 years&lt;/strong&gt;. The cloud didn’t kill them. It enabled them. They did that while controlling and optimizing their gross margin, but also without spinning up a giant project to double them by leaving the cloud (yet). Why? Because they’re still (a little bit more slowly) growing.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Bare metal works — if you’re not growing much.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://basecamp.com/cloud-exit&quot;&gt;Basecamp left AWS.&lt;/a&gt; They made noise. But they also “only” grew 6**×** in 12 years — not 150**×**. When growth is slow and predictable, you can (and should) optimize for margin. You have time. You have predictability. Maybe you even have ops engineers with spare cycles. And if you don’t, as you’re not struggling to grow your team, you can expand into infrastructure and internalize it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/5df8cdbb-31cc-4f5d-a20d-339a9bbbfd13_1673x503.png&quot; alt=&quot;Basecamp growth comparison showing 6x growth over 12 years&quot; /&gt;&lt;/p&gt;
&lt;p&gt;When you run out of stamina for growth, you optimize your gross margin; therefore, your cost is what you want to shrink. It’s a different phase.&lt;/p&gt;
&lt;p&gt;The same goes for any small or internal project; there might be no need to deal with a cloud provider if you know your infrastructure will not double every year. Just rent or buy a bunch of bare metal servers and deal with them.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Most engineers don’t see the whole picture.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you follow engineers, they always want to optimize. The problem is that most of them can’t optimize your market, your growth. The only thing they know how to optimize is resource consumption and cost by working more.&lt;/p&gt;
&lt;p&gt;Therefore, they’ll look at a line item on the AWS invoice and say, “We could get this cheaper with low-cost bare metal and our team spending time spinning things up.”&lt;/p&gt;
&lt;p&gt;Maybe.&lt;/p&gt;
&lt;p&gt;Who’s factoring in the cost of talent to manage infra? The time you won’t spend shipping product? The opportunity cost of slowing down? (This is a classic case of &lt;a href=&quot;https://julien.danjou.info/blog/solving-build-vs-buy&quot;&gt;solving build vs. buy&lt;/a&gt;.)&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;So… bare metal or cloud?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;It depends.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you’re building a startup and aiming for fast growth: &lt;strong&gt;cloud, 100%.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you’re a slow-growth company with predictable traffic: &lt;strong&gt;maybe bare metal.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you’re a big org running an intranet or legacy app: &lt;strong&gt;buy servers, no big deal.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But let’s stop pretending this is just a technical decision.&lt;/p&gt;
&lt;p&gt;It’s not.&lt;/p&gt;
&lt;p&gt;It’s a strategic one.&lt;/p&gt;
</content:encoded><category>startup</category><category>devops</category></item><item><title>Why We Left Heroku</title><link>https://julien.danjou.info/blog/why-we-left-heroku/</link><guid isPermaLink="true">https://julien.danjou.info/blog/why-we-left-heroku/</guid><description>A Tale of Contracts, Challenges, and Change</description><pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In January 2023, everything was smooth sailing for Mergify. Our infrastructure was humming along on Heroku, a platform we had trusted for over three years. Heroku was once the go-to choice for startups—simple, reliable, and developer-friendly. We were happy customers, growing steadily and paying our invoices month-to-month.&lt;/p&gt;
&lt;p&gt;Then things started to change.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;The Start of a Rocky Relationship&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In early 2023, Heroku reached out with an enticing offer: transition from month-to-month billing to an annual Heroku Enterprise contract. The deal included significant discounts on everything—dynos (containers), databases, and add-ons—in exchange for a one-year commitment to a certain number of resources.&lt;/p&gt;
&lt;p&gt;We were told we’d be allowed to overuse our resources up to 30% during the year without being bothered—with the understanding that if we grew beyond that, the contract would be adjusted fairly in the next cycle.&lt;/p&gt;
&lt;p&gt;It sounded like a win-win.&lt;/p&gt;
&lt;p&gt;We signed the contract and carried on. For the first year, everything was fine. By the end of 2023, we had indeed surpassed the 30% growth threshold, but Heroku didn’t reach out. The contract auto-renewed, and we moved into 2024 with no issues.&lt;/p&gt;
&lt;p&gt;That was until the automated emails started arriving.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/3299f3cc-673a-415f-b374-6f61fe6201a0_1456x816.webp&quot; alt=&quot;Illustration of automated emails arriving from Heroku about contract changes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;A Series of Surprises&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In May 2024, we received an &lt;strong&gt;automated&lt;/strong&gt; email from Heroku. It informed us that the discounts on our containers were being rescinded, effective immediately. Naturally, we contacted Heroku’s support team to understand how that would affect our current contract and were redirected to a new account executive to clarify.&lt;/p&gt;
&lt;p&gt;Their explanation was straightforward: we had doubled our usage, and they wanted us to pay the difference for the current contract term—for the next 9 months.&lt;/p&gt;
&lt;p&gt;While this was unexpected, we decided to comply. We signed an amendment to the contract and paid the outstanding amount. We chalked it up to a policy change, and, as Heroku has been fair so far, we decided to move on.&lt;/p&gt;
&lt;p&gt;But then, in October 2024, another email arrived. This time, Heroku announced that discounts on add-ons, such as PostgreSQL databases and Redis, would also be removed. Once again, we reached out to their team for clarification.&lt;/p&gt;
&lt;p&gt;This conversation, however, was &lt;em&gt;very&lt;/em&gt; different.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/080a6562-068e-43c0-9e8f-61fa6e083f97_1166x1548.png&quot; alt=&quot;Screenshot of the automated Heroku email rescinding add-on discounts&quot; /&gt;
&lt;em&gt;The Heroku automated email we received&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;When Contracts Don’t Matter&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Our current account executive explained that the discounted add-ons we had purchased as part of our original enterprise agreement were no longer “fair” for Heroku.&lt;/p&gt;
&lt;p&gt;Indeed, two years before, our previous account executive offered us a 60% discount on the listed price, which was a power move to make us commit for a whole year to the platform. A practice that worked: we committed to Heroku, and the account executive won a “top deal France SMB” award at Heroku.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/c0c592fa-006d-43e0-9fd3-f0a7448dfb35_1456x816.png&quot; alt=&quot;Illustration of the account executive winning a top deal award for the original Heroku contract&quot; /&gt;&lt;/p&gt;
&lt;p&gt;But now, Heroku wanted us to pay the full price for these services, even though our contract explicitly stated otherwise.&lt;/p&gt;
&lt;p&gt;We reminded them of the terms we agreed to in the contract, but their response was, essentially, “it’s not fair for us anymore.”&lt;/p&gt;
&lt;p&gt;I spent a lot of time trying to understand how getting a few thousand euros more from a loyal startup would impact Salesforce P&amp;amp;L, or how bullying us into paying money we didn’t owe would help our account executive gain respect from their boss, with no luck.&lt;/p&gt;
&lt;p&gt;Despite their efforts to pressure us to pay more, we held firm. A contract is a contract, and we weren’t going to be oppressed into paying for something that wasn’t part of the original agreement.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/1f12cf3e-e8fc-447b-9884-58f90c92808e_1456x816.png&quot; alt=&quot;Illustration of standing firm against unfair contract pressure from a vendor&quot; /&gt;&lt;/p&gt;
&lt;p&gt;However, at this point, it was clear that Heroku was no longer a reliable partner for us. Their lack of stability, constant policy changes, and disregard for contractual terms made it impossible to trust them with our infrastructure.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;The Move Away from Heroku&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;By late 2024, we made the decision to move Mergify’s infrastructure to Google Cloud Platform (GCP). Migrating a live product is never easy, but it was the right choice. Heroku, once the pioneer of developer-friendly hosting, had stagnated. The platform’s lack of innovation, combined with its increasingly unpredictable business practices, made it clear that it was time to leave.&lt;/p&gt;
&lt;p&gt;GCP offered the flexibility, scalability, and reliability we needed to grow. The migration was a success, and while it wasn&apos;t a move we originally planned for, it&apos;s one we&apos;re glad we made. Google helped us a lot in moving to their platform, which made the whole process smooth — and it gave us a chance to rethink our entire CI/CD stack, including how we handle &lt;a href=&quot;https://julien.danjou.info/blog/the-challenges-of-merge-queues&quot;&gt;merge queue challenges&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Reflections on Heroku&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Despite the rocky ending, it’s important to acknowledge Heroku’s role in our journey. The platform played a significant part in our early success, providing the simplicity and ease of use that helped us focus on building our product. For small apps and early-stage startups, Heroku can still be a good choice.&lt;/p&gt;
&lt;p&gt;But over time, Heroku failed to evolve. As the tech industry moved forward, Heroku seemed to stand still. Features stagnated, the platform became less relevant, and dealing with them as a customer grew increasingly frustrating. In 2025, it’s hard to recommend Heroku as a reliable choice for scaling companies.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/243ebb5b-c23b-4ace-b314-d44da9537c5d_1456x816.webp&quot; alt=&quot;Illustration of migrating infrastructure from Heroku to Google Cloud Platform&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Advice for Other Startups&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Our experience with Heroku taught us some valuable lessons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Beware of Contracts with Large Companies:&lt;/strong&gt; Big corporations can change their terms, policies, or priorities on a whim. Make sure you fully understand the risks before signing long-term agreements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stand Your Ground:&lt;/strong&gt; If a vendor tries to pressure you into unfair terms, don’t be afraid to push back. Contracts exist for a reason. Be ready to jump and save your ass.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose Platforms That Grow with You:&lt;/strong&gt; Heroku was perfect for us in the beginning, but as our needs grew, it became clear that we needed a more robust and innovative platform.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For startups navigating similar challenges, remember that your infrastructure choices are critical. Hosting platforms should be partners in your growth, not obstacles.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Leaving Heroku wasn’t an easy decision, but it was the right one for Mergify. We’ve learned a lot from this experience, and we’re excited about what’s ahead with our new infrastructure.&lt;/p&gt;
&lt;p&gt;If you’re a startup considering Heroku—or debating whether to stay or move on—ask yourself this: is your hosting platform helping you scale or holding you back? At the end of the day, it’s all about finding a partner you can trust to grow with you.&lt;/p&gt;
</content:encoded><category>devops</category><category>mergify</category></item><item><title>There&apos;s (almost) no GitLab</title><link>https://julien.danjou.info/blog/theres-almost-no-gitlab/</link><guid isPermaLink="true">https://julien.danjou.info/blog/theres-almost-no-gitlab/</guid><description>A word on a French bias.</description><pubDate>Tue, 29 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Do you guys support GitLab? Is there any way this can work with GitLab? Does this support merge requests?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No, we don’t.&lt;/p&gt;
&lt;p&gt;As I spent hours screening software engineer candidates those last weeks, I repeatedly answered the same question: where’s Mergify support for GitLab?&lt;/p&gt;
&lt;p&gt;To put things into perspective, we mostly hire in the French market, and I think it deserves some context.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/029f09ae-ee03-4204-bc15-24a420f099f2_1376x864.webp&quot; alt=&quot;Illustration of the French bias toward self-hosted GitLab over GitHub&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Culture Bias&lt;/h2&gt;
&lt;p&gt;I’ve known software engineers for more than 20 years in the country of the baguette, and something is pretty clear. We have amazing engineers, but they suck at understanding what ROI means. Most people have no conception of the value of time, and for most average French engineers, it’s OK to spend time on anything as long as it avoids spending money (or requesting a budget).&lt;/p&gt;
&lt;p&gt;It’s not even a frugality thing; it really is just the inability to compute a basic return on investment and put a price on an hour of work.&lt;/p&gt;
&lt;p&gt;In the context of software forges, that means something: French companies, from startups to scaleups, are heavily biased towards deploying GitLab Community Edition because it’s free. They would do this over a cheap hosting bare metal server. You can find such hosting for around $20/month.&lt;/p&gt;
&lt;p&gt;At this price, the average French software engineer will not buy a GitHub license. They’d call that a rip-off.&lt;/p&gt;
&lt;p&gt;I’ve heard it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/670182a1-7e8a-4579-8241-7a869b24e9e1_1375x720.jpeg&quot; alt=&quot;Fire at OVH datacenter in Strasbourg, March 2021&quot; /&gt;
&lt;em&gt;Fire at OVH datacenter in Strasbourg, March 2021&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you don’t factor in the time it takes to spin up and maintain the GitLab instance or the impact of having &lt;a href=&quot;https://www.reuters.com/article/world/millions-of-websites-offline-after-fire-at-french-cloud-services-firm-idUSKBN2B20NT/&quot;&gt;your server on fire&lt;/a&gt;, then, indeed, a price of $20/month is unbeatable.&lt;/p&gt;
&lt;p&gt;I remember asking one young French engineer in a startup about their GitLab instance and how they would maintain it and manage its security compliance. The answer was straightforward:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We just run `apt upgrade` every night so we’re sure we’ve every security deployment installed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;YMMV.&lt;/p&gt;
&lt;h2&gt;The Market Share&lt;/h2&gt;
&lt;p&gt;In April 2024, the Mergify team spent a few days at Devoxx France, the country&apos;s largest developer conference with nearly 5,000 attendees. We talked to dozens of engineers, and roughly 50% of them were using GitLab at work. Some large teams were moving away from GitLab to GitHub, but for a large majority, we were weirdos for not supporting GitLab. Their view of the market share is biased toward the French market, where GitLab might indeed have a large usage, which might not tend to generate large revenue, though. Remember that the Community Edition of GitLab is &lt;em&gt;free&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/ff991deb-3cd5-484c-be03-511a6ddf6833_3079x1800.webp&quot; alt=&quot;Mergify team at their booth at Devoxx France 2024&quot; /&gt;
&lt;em&gt;Mergify’s team at Devoxx France 2024&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If we compare &lt;a href=&quot;https://telanganatoday.com/githubs-annual-revenue-run-rate-hits-2-billion-driven-by-copilot-nadella&quot;&gt;GitHub’s $2 billion revenue&lt;/a&gt; to &lt;a href=&quot;https://about.gitlab.com/press/releases/2024-03-04-gitlab-reports-fourth-quarter-and-full-fiscal-year-2024-financial-results/&quot;&gt;GitLab’s $579 million revenue&lt;/a&gt; for 2024, this is a 1:4 ratio, which is already pretty huge. Sure, revenue is not usage, but considering that GitHub has Microsoft behind it and &lt;a href=&quot;https://www.spiceworks.com/tech/tech-general/news/gitlab-explores-sale-datadog-google-potential-buyers/&quot;&gt;GitLab is reportedly looking for a buyer&lt;/a&gt;, the future looks way brighter for GitHub — something I explored in more depth in &lt;a href=&quot;https://julien.danjou.info/blog/is-github-the-future-or-becoming&quot;&gt;Is GitHub the Future?&lt;/a&gt;. And I&apos;m not even talking about the fact that the vast majority of open-source projects use GitHub.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/fc24de53-43e4-46af-8e71-c3047d4d4bae_576x811.png&quot; alt=&quot;Screenshot of a LinkedIn comment misunderstanding GitHub vs GitLab market dynamics&quot; /&gt;
&lt;em&gt;No Gauthier, I don’t think that this is how it works.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a href=&quot;https://www.linkedin.com/feed/update/urn:li:activity:7254503750344622080/?commentUrn=urn%3Ali%3Acomment%3A(activity%3A7254503750344622080%2C7254531496810541056)&amp;amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A(7254531496810541056%2Curn%3Ali%3Aactivity%3A7254503750344622080)&amp;amp;dashReplyUrn=urn%3Ali%3Afsd_comment%3A(7255100415971659776%2Curn%3Ali%3Aactivity%3A7254503750344622080)&amp;amp;replyUrn=urn%3Ali%3Acomment%3A(activity%3A7254503750344622080%2C7255100415971659776)&quot;&gt;LinkedIn post&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Innovation&lt;/h2&gt;
&lt;p&gt;Now that I’ve set the scenery, I feel it’s safe to answer about GitLab support for Mergify. The main reasons why Mergify’s Merge Queue is not looking for GitLab support anytime soon are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Innovation happens on GitHub nowadays. Ten years ago, GitHub was behind on certain topics (hello CI), but they are now way ahead of the competition. GitHub is the place where most open-source is built and where you need to be if you’re building new products;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Most teams using GitLab CE have no intention to buy any software;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The market share of GitLab is small and probably shrinking.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’ve nothing against GitLab, and their software might be pretty good. All we know is that they’re outsiders, while a lot of the tech market in Europe seems to think that betting on GitLab is the best go-to-market strategy.&lt;/p&gt;
&lt;p&gt;I beg to differ.&lt;/p&gt;
</content:encoded><category>mergify</category><category>devops</category></item><item><title>What&apos;s going on with Dependabot?</title><link>https://julien.danjou.info/blog/whats-going-on-with-dependabot/</link><guid isPermaLink="true">https://julien.danjou.info/blog/whats-going-on-with-dependabot/</guid><description>We&apos;re moving away from it and I&apos;m not sure why it started to suck.</description><pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I loved Dependabot. I’ve used it since Grey Baker started it in 2017. I’ve seen it grow from a one-person shop to being acquired by GitHub in 2019. It’s been a fantastic tool that created more than 5,000 pull requests on Mergify repositories. I remember the excitement of finally having a tool that would bring all the new fancy features and bug fixes of my dependencies to my project in a snap.&lt;/p&gt;
&lt;p&gt;Dependabot allowed us to fix a lot of security updates introduced by dependencies, and to be aware of anything new being released in the libraries we use.&lt;/p&gt;
&lt;p&gt;But today, we kicked Dependabot out. Dependabot let us down.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/0ee45b61-3086-492a-8caa-6348ae3405ad_2000x1256.jpeg&quot; alt=&quot;Illustration of frustration with Dependabot&apos;s declining reliability&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Security You Said?&lt;/h2&gt;
&lt;p&gt;The move to acquire Dependabot from GitHub was smart. It was one of the key features that started their security roadmap with the acquisition of Semmle and their CodeQL engine the same year. GitHub has become all about security over the last few years, which makes sense considering the cybersecurity segment&apos;s hyper-growth over the last and upcoming years.&lt;/p&gt;
&lt;p&gt;However, as Dependabot matured under GitHub, cracks started to show in what was once a flawless experience. The tool that was supposed to streamline security and updates became a source of frustration.&lt;/p&gt;
&lt;p&gt;It has major design flaws that GitHub does not seem to care about.&lt;/p&gt;
&lt;p&gt;First, Dependabot can fail silently. That happened to us multiple times a year when Dependabot would just stop working and create pull requests to update our packages. You’d think that debugging such an issue would be possible by going into the Dependabot tab of your repository, but no. The log for this is actually hidden in &lt;em&gt;Insight → Dependency graph → Dependabot.&lt;/em&gt; A strange and unintuitive location for such crucial information.&lt;/p&gt;
&lt;p&gt;Once you find your log, you can then read it and debug it yourself.&lt;/p&gt;
&lt;p&gt;That’s a major problem because there’s nothing warning you that Dependabot is broken. We are used to updating our packages regularly, so we’d know, but there’s nothing preventing your dependencies and security updates from getting stale for months without you noticing. Terrible experience.&lt;/p&gt;
&lt;h2&gt;Always Lagging Behind&lt;/h2&gt;
&lt;p&gt;We’re a Python shop. We leverage &lt;em&gt;poetry&lt;/em&gt; to manage our dependencies, and we use the latest Python version in our containers.&lt;/p&gt;
&lt;p&gt;As a Python shop, staying on the latest version helps us ensure security, performance, and compatibility. So we update it as soon as we can, usually a few days after it’s released.&lt;/p&gt;
&lt;p&gt;And then Dependabot is broken.&lt;/p&gt;
&lt;p&gt;And you have to wait weeks for GitHub to fix the problem.&lt;/p&gt;
&lt;p&gt;The last few times, we had to update ourselves Dependabot itself, &lt;a href=&quot;https://github.com/dependabot/dependabot-core/pull/10470&quot;&gt;as shown here&lt;/a&gt; or even &lt;a href=&quot;https://github.com/dependabot/dependabot-core/pull/10622&quot;&gt;here&lt;/a&gt;. We’re basically doing GitHub’s job for free, maintaining the Dependabot database ourselves for all their customers.&lt;/p&gt;
&lt;p&gt;We contacted GitHub support about this already, and they did not care at all. Their laconic answer was, “Wait for it to be updated.”&lt;/p&gt;
&lt;p&gt;Sure, thank you. We’re the ones doing the updates.&lt;/p&gt;
&lt;p&gt;I get it—maybe Fortune 500 companies don’t care about the latest Python micro releases. But for startups like ours? It’s a big deal.&lt;/p&gt;
&lt;p&gt;So today, we got rid of Dependabot and replaced it with &lt;a href=&quot;https://docs.renovatebot.com/&quot;&gt;Renovate&lt;/a&gt;. It seems better maintained and supports a larger package ecosystem than Dependabot. So far, it has simplified our workflow and is not broken on a simple Python micro update. 🤞&lt;/p&gt;
&lt;p&gt;We&apos;re also adding support for Renovate in &lt;a href=&quot;https://mergify.com&quot;&gt;Mergify&lt;/a&gt; Merge Protections, as we have done for Dependabot in the past. That will ensure you can write advanced rules for &lt;a href=&quot;https://julien.danjou.info/blog/automating-github-workflows&quot;&gt;automating your GitHub workflows&lt;/a&gt;, including automatically merging your dependency update. 🦾 Let me know if you’re interested in trying it out!&lt;/p&gt;
</content:encoded><category>devops</category><category>mergify</category></item><item><title>Is GitHub the Future or Becoming Obsolete?</title><link>https://julien.danjou.info/blog/is-github-the-future-or-becoming/</link><guid isPermaLink="true">https://julien.danjou.info/blog/is-github-the-future-or-becoming/</guid><description>Is GitHub the Future or Becoming Obsolete?</description><pubDate>Tue, 17 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Over the last few months, I stumbled upon a few articles on GitHub&apos;s history and future. I find those quite interesting. &lt;a href=&quot;https://graphite.dev/blog/github-monopoly-on-code-hosting?ref=blog.gitbutler.com&quot;&gt;Greg Foster gives a quick history of the rise of GitHub over the years&lt;/a&gt;, while Scott Chacon, one of GitHub’s co-founder, &lt;a href=&quot;https://blog.gitbutler.com/why-github-actually-won/&quot;&gt;retraces the history of GitHub from the inside&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The story is great, and I’ll leave it to you to read those posts if you want to learn more. I was alive at that time; I saw and lived it all. I started using Git in 2005, and I’m the 2644th of the 100 million GitHub users—I joined GitHub in 2008 when it was still in beta.&lt;/p&gt;
&lt;p&gt;It’s definitely true that Git won, and especially GitHub. I’ll probably have to write about GitLab at some point (&lt;a href=&quot;https://julien.danjou.info/blog/theres-almost-no-gitlab&quot;&gt;I eventually did&lt;/a&gt;) — but you won’t read any ranting here today. As Scott Chacon writes, GitHub had a taste and perfect timing and soon gained traction from the open-source community.&lt;/p&gt;
&lt;p&gt;Ok, great, so GitHub wins. Where do we go now?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/2a67ca8f-23bc-40da-bf28-f18b10b0be60_2000x1000.jpeg&quot; alt=&quot;Illustration of GitHub&apos;s dominance in code hosting&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Microsoft&lt;/h2&gt;
&lt;p&gt;I believe that GitHub&apos;s growth was already on track before Microsoft bought it in 2018, but that move still changed everything. At that time, GitHub still lacked major features, such as a CI/CD system, and had a hard time being compared to GitLab. The following year that changed, and GitHub Actions started (thanks, Azure) and shook everything up.&lt;/p&gt;
&lt;p&gt;If you read opinions about GitHub vs. GitLab, CodeCommit, Azure DevOps, or any other platform, you’ll mostly see engineers comparing user-visible features. And sure, this has value, and that might be your main criteria to pick one or the other if you’re a small team with full power over their choice.&lt;/p&gt;
&lt;p&gt;However, this is not what GitHub and Microsoft are after anymore. Take a look at the &lt;a href=&quot;https://github.com/github/roadmap&quot;&gt;roadmap&lt;/a&gt; of the last few years, and you’ll see a pattern: &lt;em&gt;enterprise&lt;/em&gt;. Pushing code, creating pull requests, and any part of software engineers&apos; day-to-day activities have been covered for the last 15 years.&lt;/p&gt;
&lt;p&gt;They designed it, the industry adopted it, and GitHub has nothing in its roadmap to change that paradigm. They’re building on the momentum they raised.&lt;/p&gt;
&lt;p&gt;Security, Copilot (AI), and compliance are items that the largest corporation needs to embrace a platform such as GitHub. This is only the beginning: this year, the GitHub sales organization underwent a reorganization to look more like Microsoft&apos;s sales organization. I suspect GitHub is now able to leverage even more Microsoft resources to push its platform to large corporations—which definitely makes sense. The link between GitHub and Azure is tightening, both technically and commercially.&lt;/p&gt;
&lt;p&gt;For the best and the worst.&lt;/p&gt;
&lt;h2&gt;Relevance&lt;/h2&gt;
&lt;p&gt;How is GitHub still relevant if it does not innovate on developer workflow? &lt;a href=&quot;https://www.mistys-internet.website/blog/blog/2024/07/12/github-is-starting-to-feel-like-legacy-software/&quot;&gt;Is it becoming legacy software&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;There is certainly a disjunction between what developers and corporations expect, and at this point, if you look at the ratio between features, compliance, and price, there&apos;s no better alternative than GitHub. I don’t think this is going to change anytime soon.&lt;/p&gt;
&lt;p&gt;For open-source projects, there might be alternatives, but if you’re pragmatic (and lazy), GitHub is the pick. There have been a number of projects trying to escape GitHub over the years, such as when Microsoft acquired it. The latter is still seen as an enemy of open source by some folks (I suspect this is PTSD caused by the &lt;a href=&quot;https://www.zdnet.com/article/ballmer-i-may-have-called-linux-a-cancer-but-now-i-love-it/&quot;&gt;Balmer&lt;/a&gt; era). More recently, another exodus was triggered by the announcement of Copilot and the fear that the training was done on free software. However, at this stage, it’s like emptying an ocean with a spoon, and the impact does not compensate for larger projects moving to GitHub (e.g., &lt;a href=&quot;https://peps.python.org/pep-0512/&quot;&gt;Python&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/3051d896-9814-41f5-9866-20a74692b5d0_1200x630.jpeg&quot; alt=&quot;Steve Ballmer portrait&quot; /&gt;
&lt;em&gt;Steve Ballmer&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;On the other hand, GitHub is attracting more competitors. It has grown to a point where many startups want to disrupt it: one can look at &lt;a href=&quot;https://radicle.xyz/&quot;&gt;Radicle&lt;/a&gt; and its decentralized approach, &lt;a href=&quot;https://pierre.co/&quot;&gt;Pierre&lt;/a&gt; and its modern design, &lt;a href=&quot;https://www.diversion.dev/&quot;&gt;Diversion&lt;/a&gt; with its game-centric approach, or &lt;a href=&quot;https://www.palmier.io/&quot;&gt;Palmier,&lt;/a&gt; who’s building a new kind of repository.&lt;/p&gt;
&lt;p&gt;They might succeed, but the road is going to be long to get massive adoption — and migration.&lt;/p&gt;
&lt;p&gt;There’s nothing replacing GitHub in the short term. We better deal with it.&lt;/p&gt;
</content:encoded><category>devops</category><category>mergify</category></item><item><title>Reflecting on the Journey of &quot;Nom d&apos;un Pipeline !&quot;</title><link>https://julien.danjou.info/blog/reflecting-on-the-journey-of-nom/</link><guid isPermaLink="true">https://julien.danjou.info/blog/reflecting-on-the-journey-of-nom/</guid><description>A Podcast About CI/CD for the French Tech Scene</description><pubDate>Tue, 30 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&quot;&lt;a href=&quot;https://nomdunpipeline.com&quot;&gt;Nom d&apos;un Pipeline !&lt;/a&gt;&quot; (translation for English readers: &quot;What a Pipeline!&quot;) has been an incredible journey, filled with learning, growth, and connecting with some of the brightest minds in the French tech scene. As a French-based startup for over five years, with most of our customers and audience in the US, we noticed a significant gap in the knowledge and maturity around CI/CD among French engineering teams. This realization motivated us to create a platform to elevate the understanding and practices of CI/CD in our home country, leading to the birth of &quot;Nom d&apos;un Pipeline !&quot;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/37d5f1f1-3eb9-4cae-984c-ba4f49a99615_1323x1323.png&quot; alt=&quot;Nom d&apos;un Pipeline podcast logo&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Birth of an Idea&lt;/h2&gt;
&lt;p&gt;Starting a podcast was a new adventure for me. With the help of Mergify’s marketing team, we built everything from the ground up and began reaching out to potential guests. We aimed to find the right candidates and teams to feature in our 45-minute episodes, sharing their journeys and insights around continuous integration, continuous deployment, and quality assurance.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://julien.danjou.info/images/blog/60f0e810-d2cf-4180-b93a-b71e84f49613_1536x768.webp&quot; alt=&quot;Nom d&apos;un Pipeline podcast banner&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Highlights from Season 1&lt;/h2&gt;
&lt;p&gt;All episodes were amazing, and the content we built was really valuable. I think several episodes stood out for their depth and impact:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nomdunpipeline.com/episode/definir-identifier-et-tester-pour-performer&quot;&gt;Mathieu Leroux-Huet&lt;/a&gt; discussed performance, offering valuable insights into optimizing systems for better efficiency.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nomdunpipeline.com/episode/ep-10-faire-des-economies-avec-ses-propres-runners&quot;&gt;Cyril Rohr&lt;/a&gt; from RunsOn shared how improving GitHub Actions runner can significantly enhance CI workflows speed and cost.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nomdunpipeline.com/episode/ep-6-vers-des-pipelines-ci-cd-imposes-et-standardises-avec-olivier-pillaud-tirard-de-manomano&quot;&gt;Olivier Pillaud-Tirard&lt;/a&gt; from ManoMano detailed how they have improved their CI over the last couple of years, providing a roadmap for other teams to follow.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These episodes were not only informative but also showcased the diverse approaches and innovations happening within the French tech community.&lt;/p&gt;
&lt;h2&gt;Overcoming Challenges&lt;/h2&gt;
&lt;p&gt;Producing a podcast comes with its own set of challenges. One of the biggest hurdles we faced was recording remotely. There were times when technical issues disrupted the recordings, but we managed to overcome these obstacles with perseverance and technical adjustments. While I would love to record in a studio, living in Toulouse makes it challenging since none of my guests are local. Despite these difficulties, the remote setup has allowed us to connect with a broader range of guests.&lt;/p&gt;
&lt;h2&gt;Positive Feedback and Growing Momentum&lt;/h2&gt;
&lt;p&gt;The feedback we&apos;ve received has been overwhelmingly positive. Listeners appreciate the insights and real-world experiences shared by our guests. Knowing that the show provides value and helps the French tech scene advance in CI/CD practices is incredibly rewarding. Recently, we passed the 2,000 views/listens mark, indicating growing momentum after just eight months. This milestone is a testament to the show&apos;s impact and the increasing interest in CI/CD topics.&lt;/p&gt;
&lt;h2&gt;Personal and Professional Growth&lt;/h2&gt;
&lt;p&gt;On a personal level, hosting &quot;Nom d&apos;un Pipeline !&quot; has been a delightful experience. I discovered that I genuinely enjoy talking to people and learning about their teams and tech stacks. It&apos;s been an eye-opening journey that has enriched my understanding of CI/CD and connected me with some brilliant minds in the industry.&lt;/p&gt;
&lt;h2&gt;Acknowledging Our Guests&lt;/h2&gt;
&lt;p&gt;I want to extend my heartfelt thanks to all our guests for their confidence and for sharing their journeys: Clément, Sofiyan, Romaric, Aurélien, Frédéric, Olivier, Dan, Thomas, Mathieu, Cyril and François.&lt;/p&gt;
&lt;p&gt;Your contributions have been invaluable in making this podcast a success.&lt;/p&gt;
&lt;h2&gt;Looking Ahead to Season 2&lt;/h2&gt;
&lt;p&gt;As we wrap up the first season, we are already gearing up for season 2, set to launch in September. We are excited to bring new hosts from major French companies like Doctolib and Alan, promising even more insightful content and engaging discussions. While we don&apos;t have specific plans for season 2 yet, we are committed to continuing our mission of educating and inspiring the French tech community about CI/CD.&lt;/p&gt;
&lt;p&gt;&quot;Nom d&apos;un Pipeline !&quot; has been an extraordinary journey, and I&apos;m proud of what we&apos;ve accomplished so far. We hope that this podcast continues to serve as a valuable resource for the French tech scene, helping teams to improve their continuous integration, testing, continuous deployment, and overall development workflows — including tackling tough topics like &lt;a href=&quot;https://julien.danjou.info/blog/the-challenges-of-merge-queues&quot;&gt;the challenges of merge queues&lt;/a&gt;. Stay tuned for more exciting episodes and insights in the upcoming season!&lt;/p&gt;
&lt;p&gt;If you understand French, don’t forget to subscribe to the podcast &lt;a href=&quot;https://www.nomdunpipeline.com/&quot;&gt;on your favorite podcast platform&lt;/a&gt; or on &lt;a href=&quot;https://www.youtube.com/@NomdunPipeline&quot;&gt;YouTube&lt;/a&gt;!&lt;/p&gt;
</content:encoded><category>mergify</category><category>devops</category></item><item><title>The Challenges of Merge Queues</title><link>https://julien.danjou.info/blog/the-challenges-of-merge-queues/</link><guid isPermaLink="true">https://julien.danjou.info/blog/the-challenges-of-merge-queues/</guid><description>Why They’re Hard and Why We’re Simplifying Them</description><pubDate>Tue, 23 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Merge queues are a tough concept to grasp, and over the last five years at &lt;a href=&quot;https://mergify.com&quot;&gt;Mergify&lt;/a&gt;, we&apos;ve spent countless hours educating developers about their importance and utility. We&apos;ve published numerous blog posts, written extensive documentation, and even gone to conferences to teach software engineers what a merge queue is. This process of spreading awareness has been a rewarding yet challenging endeavor.&lt;/p&gt;
&lt;p&gt;One of our developers, Charly Laurent, gave an insightful talk on the subject, highlighting how merge queues can revolutionize CI/CD processes. You can check out his talk here:&lt;/p&gt;
&lt;h2&gt;Understanding Merge Queues&lt;/h2&gt;
&lt;p&gt;Merge queues are not an obvious choice for most teams, and they often require a shift in the balance between safety and speed of delivery. Deploying a merge queue means prioritizing quality over quantity, which is not an easy decision for many development teams, who might be pressured to ship fast.&lt;/p&gt;
&lt;p&gt;For example, without a merge queue, teams often merge untested code. This is due to outdated test runs, meaning that they are deploying code that might not work. Without a merge queue, there is no way to prevent merging pull requests with outdated tests and breaking the CI for everyone — which is exactly why you should &lt;a href=&quot;https://julien.danjou.info/blog/stop-merging-your-pull-request-manually&quot;&gt;stop merging your pull requests manually&lt;/a&gt; in the first place. One of our customers faced this exact issue, which meant they needed the equivalent of a full-time engineer dedicated to tracking issues in the main branch that broke the CI.&lt;/p&gt;
&lt;p&gt;Most platform engineers find the concept of moving the post-merge tests to pre-merge tests challenging.&lt;/p&gt;
&lt;h2&gt;The Trade-offs&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://vercel.com/blog/deploy-safely-on-vercel-without-merge-queues&quot;&gt;This blog post from Vercel&lt;/a&gt; captures this common misunderstanding and the trade-off around merge queues and their CI costs and latency:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Despite the majority of commits being safe to merge after the local CI checks complete on their pull request, the merge queue will incur running the cost of running the CI again every time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While this is true, the problem here lies in the word &quot;majority.&quot; The definition of &quot;majority&quot; can vary significantly across teams. If a minority of pull requests break the main branch after merging, it can cause considerable downtime and require substantial effort from CI engineers to restore stability. We&apos;ve seen teams come to Mergify with a 30% failure rate on their &lt;code&gt;main&lt;/code&gt; branch. While a merge queue won&apos;t magically improve the failure rate, it ensures that it doesn&apos;t worsen, even if it means a small decrease in merge speed. That ensures that the effort invested in improving the CI is not wasted the day after.&lt;/p&gt;
&lt;p&gt;Another perspective from Vercel states:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With merge queues, changes from developers depend on changes from other developers even if they are unrelated to each other, and this makes it hard to scale monorepo merge times with more developers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This concern is valid for merge queues that don&apos;t support monorepo and queue parallelization. However, most modern merge queues (GitHub&apos;s own being an exception) do allow for optimization in these scenarios.&lt;/p&gt;
&lt;p&gt;Vercel’s blog post concludes with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With this workflow in place, the merge queue can be safely removed because checks will still always be run before users ever see the deployment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This reflects the workflow of many teams that don&apos;t use a merge queue: merge, run tests on &lt;code&gt;main&lt;/code&gt;, then deploy. However, this approach doesn&apos;t solve the issue of merging something that breaks the main branch. During the downtime, teams have to identify the culprit, revert changes, and ensure everything works, causing delays and frustration. Bad developer experience ensues.&lt;/p&gt;
&lt;p&gt;Teams like &lt;a href=&quot;https://www.uber.com/blog/research/keeping-master-green-at-scale/&quot;&gt;Uber recognized this problem six years ago&lt;/a&gt; and started building their merge queues. Similarly, in OpenStack, we had a system supporting multiple repositories with &lt;a href=&quot;https://zuul-ci.org/&quot;&gt;Zuul&lt;/a&gt; over ten years ago.&lt;/p&gt;
&lt;h2&gt;Build New Solutions&lt;/h2&gt;
&lt;p&gt;Considering the merge queue adoption issues, we&apos;ve spent the last few months reworking our merge queue system to simplify deployment and enhance user experience. We know for a fact that developers appreciate the reliability it brings to CI processes, but we also observe the difficulty of discovering and integrating the system. By deploying a merge queue, teams can eliminate the need for a &quot;check that main works before deployment&quot; step because this is done before the actual merge.&lt;/p&gt;
&lt;p&gt;One notable example is a team that previously needed a full-time engineer to manage CI issues due to frequent breaks in the &lt;code&gt;main&lt;/code&gt; branch. After adopting Mergify&apos;s merge queue, they drastically reduced these disruptions, allowing their engineers to focus on more productive tasks.&lt;/p&gt;
&lt;h2&gt;The Road Ahead&lt;/h2&gt;
&lt;p&gt;Merge queues are not without their challenges, and the trade-offs between safety and speed are not always apparent. However, we believe in their potential to transform development workflows. We&apos;re on the verge of redefining the merge queue concept at Mergify, and we think it has far greater potential than what has been realized over the past decade. I’ll be happy to write about that soon and share what we’ve built.&lt;/p&gt;
</content:encoded><category>mergify</category><category>devops</category></item></channel></rss>