When a wild idea becomes an open-source product you need to get organized, automate and make a contributor-friendly environment - It is more than just writing code. This talk will walk through the phases that the product has been through, how I was discouraged by others and how important it is to not become the slave of your own success.
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Techorama 2022 - Adventures of building Promitor, an open-source product
1. Adventures of building Promitor,
an open-source product
Tom Kerkhove
Software Engineer at Microsoft
2. Introduction
• Software Engineer at Microsoft on Azure API Management
• CNCF Ambassador, ex-Microsoft Azure MVP & ex-GitHub Star
• Member of Azure UG (AZUG)
• Maintainer of KEDA, Promitor, Azure Deprecation Notices
• Lives in Belgium near Bruges
• blog.tomkerkhove.be
@TomKerkhov
e
tomkerkhove
3. Agenda
• What do I work on?
• Being a maintainer
• Sustainability, Sponsorship & Free Open-Source Software (FOSS)
• Measuring Adoption
• Wrap-up
5. What is Promitor?
• Promitor is an Azure Monitor scraper which makes the metrics
available to a variety of metric systems such as Atlassian
Statuspage, Prometheus and StatsD.
• It’s free and available as a container for Linux/Windows,
optimized for Kubernetes.
• Promitor.io
6. History of Promitor
First
Commit
(Feb 2018)
Alpha
release at
Intelligent
Cloud
Conference
(2018)
Microsoft
Hackaton
(March
2019)
v1.0
v2.0
(Resource
Discovery &
sinks)
Azure
Monitor
partner
integrations
(Aug 2020)
Azure
credits for
open-
source (Sept
2021)
7. This is where it started
In a hotel room, living the glamours life of working abroad
8. Where is Promitor today?
• In March, Promitor did 160 million API calls to Azure Monitor
per day
And I’m the sole maintainer.
9. What is KEDA?
• Kubernetes Event-driven Autoscaling (KEDA) strives to make
application autoscaling on Kubernetes dead-simple.
• CNCF Incubation project
• It’s free and available as a container
for Linux, optimized for Kubernetes.
• Keda.sh
10. History of KEDA
First
Commit
(Feb 2019)
Open
Sourced
(May 2019)
v1.0
(Nov 2019)
Joins CNCF
as Sandbox
project
(March 2020)
v2.0
(Nov 2020)
Alibaba
Cloud
standardizes
on KEDA for
EDAS
CNCF
Incubation
(Aug 2021)
Azure
Container
Apps
announced,
built on
KEDA
(Nov 2021)
11. Where is KEDA today?
• We have no idea how many people are using KEDA, but here are
a few:
This time, I have friends to help! We have 5 maintainers.
And [redacted], [redacted] & [redacted].
20. • As a maintainer, you get to wear a lot of hats
• Engineer to implement features
• Tester to ensure your product is of top-notch quality (and automate it)
• Support engineer to help customers having issues and diagnose them
• Product Manager to spec out new features
• Designer for building logos, website design, hosting, etc.
• Content writer to offer well-written and dummy-proof documentation,
changelog
• Release captain to ensure your work is shipped, changelog, deprecation
notices, …
• Strategist to build a roadmap and come up with a product strategy
• Customer because you have to think what’s best for end-users
• Lawyer for licensing and open-source foundations
• …
Maintainer =
21. Iceberg of open-source maintainership
What the community sees
• Code, PRs & Releases
What actually happens behind
the scenes
• Customer support & relations
• Documentation
• (Automated) Testing
• (Azure) Funding
• Dependency Management
• Migrations
• Planning / (long-term) strategy
• Costs (DNS, hosting, test
resourcing, tooling)
• Governance & (OSS)
foundation relationship
22. • It’s not because it’s shiny, that you should use it
• Does it improve your project/UX? Is it worth your time?
• Ignore it if it doesn’t
Don’t migrate for sake of migrating
Shiny new features! 💎
.NET 3.1
.NET 5
.NET 6
24. Thinking about your open-source legacy1
• Avoid the bus-factor, have multiple maintainers on project(s)
• Being part of an open-source foundation helps
• Maintaining ownership continuity through GitHub Successors, it’s
your open-source will. A trusted person to take care of your projects (but
not maintain)
• Create a digital/physical will2, so your successor knows what to do
• Docs, docs, docs! Document how things work, where to find more info,
etc.
• Why you should care:
• End-users are waiting for bug fixes, somebody should let you know you have passed
• Donate your work to a foundation or look for new maintainer(s)
• Stop your sponsorship(s) to avoid draining your credit card
• Trademarks & licensing
1 Read more on https://blog.tomkerkhove.be/2021/08/06/thinking-about-your-open-source-legacy/
2 You can find my will on GitHub - Learn more on https://github.com/tomkerkhove/testament
27. Open-source maintainership is no joke.
It takes blood, sweat and tears to do it. A LOT of time.
I have spent a lot of time travelling to conferences/customers,
spending my evenings in the hotel maintaining project(s)
28.
29. Oct 1st, 2020 – The day the .NET community was on 🔥🔥🔥
34. Open-source != Free
Writing it yourself might be cheaper than a
license, but who do you call for support?
Who will maintain it?
A person working on your own implementation, is
one person less bringing business value
35. Support the open-source products
that you use
Contribute back, donate money, pay for additional support, etc.
36. Support the open-source products that
you depend on
Contribute back, donate money, pay for additional support, etc.
I don’t think you want maintainers to burn out and/or stop their product
Otherwise, you can start migrating to an alternative ($$$)
If there even is one...
37. Sustainability & Sponsorship in Promitor
• Promitor is free, but does not give dedicated support and is best-
effort. Unless they pay for it.
• It relies on free services and products as well –
https://docs.promitor.io/thank-you
• Azure Credits for Open-Source
• I was reluctant to use GitHub Sponsors and felt guilty, but I
have to pay for things in the end as well (hosting, DNS, tooling, etc)
• Allow end-users to show their gratitude
• I sponsor the things I use, I don’t want them to stop maintaining it and am
grateful.
38. Sustainability & Promitor
• Promitor has grown to a full-time job, but I already have one.
• Personal situation has changed from frequent traveling and no
kids, to fully working from home with a baby & toddler
• This can have an impact on Promitor long-term if nobody starts co-
maintaining it
• Why I love being a maintainer
• Awesome to see how your work is being used by (big) corporations
• Great to have an impact and help solve problems for others
• It changed how I work and do/use open-source, tremendously
• I love doing it, so I keep on doing it! But the moment I don’t,
then it’s time to think about its future.
42. Who’s interested?
• “Who is using it and
how do I reach out
to them?”
• “What is the
adoption [of a given
version]?”
• “Is it worth my
time?”
• “Who is using it?”
• “Should we embrace
this technology?”
• “Who is using it?”
• “How many
organizations use
your project?”
• “Should I sponsor
this project, or this
other one?”
Sponsors 💘
End-Users &
Foundations🏢
Maintainers 👨💻
43.
44.
45.
46. But that’s not enough…
• A “Star” is a “favorite”, not an adoption measurement
• GitHub Insight’s “Used By” doesn’t cover everything (yet)
• Ie containers support is very low
• Information is spread across various places
(GitHub, external package registries, tools, …)
47. Ways to work around the problem
• Build your own metrics dashboard to measure adoption
• Downstream system tracking with user-agents
• Anonymous Usage Tracking
• However, make sure to be transparent to end-users
• OctoPrint - tracking.octoprint.org | data.octoprint.org
• Promitor – promitor.io/legal
48. Listed end-users
• Allow end-user to be listed on your website/ADOPTERS.md to
support them and convince others.
• Make sure end-users open PRs, not you. Logos are subject to
legal regulations
• Don’t be surprised if they ask you “what’s in it for them?!”,
although your work is for free
• You’ll end up chasing people to get them listed, just like me.
52. Adoption Metadata
• Provide metadata metrics in GitHub Packages [based on IP] such
as:
• Who owns the IP address? (~ who’s the end-user)
• What cloud does it run on?
• Where in the world are they located?
• Scarf.sh is a good example that helps me a lot!
53.
54. Community Metadata
• Provide information in GitHub Insights about the contributors:
• What company do they work for?
• What area do the contribute the most in?
• When was the last time they have contributed?
• Orbit.love is a good example that helps me a lot
57. How you, as an end-user, can help
• If it’s just a PR away, go for it! Reduce the load on the
maintainer and contribute back, instead of waiting for your issue
to be implemented. (code, automation, docs, etc.)
• But read the contribution guide first & make sure they know you work
on a feature.
• Become a listed end-user. It helps potential new end-users
gain trust, allows maintainers to reach out to you and helps
them with open-source foundations
• Be gentle. They have feelings and work hard to help you.
58. Lessons Learned
• Start simple, grow over time. There will always be a new shiny
thing to adopt/pattern to use, but does it bring value?
• An open-source product is very similar to a startup, and has
become a full-time job (if I wanted to)
• Create a virtual will and find a successor. This brings
continuity in your work after you have passed away.
• Don't be discouraged. There will always be negative people,
“competitors”, etc.
• Do what you love. If maintaining the project doesn’t make you happy
anymore, then don’t.
Notes de l'éditeur
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes … (slideshare.net)
Announcing Promitor v1.0 (tomkerkhove.be)
Announcing Promitor 2.0 (tomkerkhove.be)
Partners that integrate with Azure Monitor - Azure Monitor | Microsoft Docs
Announcing: Azure credits for open source projects - Microsoft Open Source Blog
Thank you! | Promitor
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes … (slideshare.net)
Announcing Promitor v1.0 (tomkerkhove.be)
Announcing Promitor 2.0 (tomkerkhove.be)
Partners that integrate with Azure Monitor - Azure Monitor | Microsoft Docs
Announcing: Azure credits for open source projects - Microsoft Open Source Blog
Thank you! | Promitor
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes … (slideshare.net)
Announcing Promitor v1.0 (tomkerkhove.be)
Announcing Promitor 2.0 (tomkerkhove.be)
Partners that integrate with Azure Monitor - Azure Monitor | Microsoft Docs
Announcing: Azure credits for open source projects - Microsoft Open Source Blog
Thank you! | Promitor
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes … (slideshare.net)
Announcing Promitor v1.0 (tomkerkhove.be)
Announcing Promitor 2.0 (tomkerkhove.be)
Partners that integrate with Azure Monitor - Azure Monitor | Microsoft Docs
Announcing: Azure credits for open source projects - Microsoft Open Source Blog
Thank you! | Promitor
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes … (slideshare.net)
Announcing Promitor v1.0 (tomkerkhove.be)
Announcing Promitor 2.0 (tomkerkhove.be)
Partners that integrate with Azure Monitor - Azure Monitor | Microsoft Docs
Announcing: Azure credits for open source projects - Microsoft Open Source Blog
Thank you! | Promitor