Skip to content

Open Source as a Service#1

Merged
stefwalter merged 9 commits into
mainfrom
open-source-as-a-service
Feb 10, 2021
Merged

Open Source as a Service#1
stefwalter merged 9 commits into
mainfrom
open-source-as-a-service

Conversation

@stefwalter

Copy link
Copy Markdown
Owner

This is an article describing why and what it means to enable Open Source contributions to a Service.

Sharing the source code to a Service is insufficient. We effectively enable users to contribute to the a running service for it to be Open Source.

@stefwalter stefwalter force-pushed the open-source-as-a-service branch 2 times, most recently from fcad116 to a25d547 Compare February 6, 2021 17:29
@stefwalter

Copy link
Copy Markdown
Owner Author

@martinpitt @thrix @TomasTomecek @major @durandom @emmanuelbernard @gsaslis Interested in reviewing? Here's an introductory blog post about the Open Source Services topic we've talked about.

I'm thinking of following it up with more content, perhaps some of the playbook ideas we've already drafted together. But one thing at a time.

@stefwalter stefwalter force-pushed the open-source-as-a-service branch from a25d547 to 332002b Compare February 6, 2021 17:39

@martinpitt martinpitt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice article, thanks!

Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment on lines +49 to +53
Yes, that means opening a pull request against a running service
and running that change before it's merged.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Connecting that to your point above -- the only way that this is feasible is if your own little shard of that SaaS with your PR operates on a cloned subset of the production data. If any random Joe Developer could submit a PR against gitlab that runs on the production data, what trust could you still place in the gitlab Saas? IMHO, it would be "none".

But again, I think having a playground with empty (or cloned data that belongs to you) is actually preferable, as it gives you the possibility of doing thorough, destructive, and risky tests.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll cover this in follow up articles and playbook. I believe that your statements are just as true of team contributions.
Many teams only merge code once they have gotten it into production. See the GitHub internal contribution process.

But yes, I'm happy leaving this as a controvesial topic to be discussed further.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@martinpitt i think the crucial bit that is mentioned above is that this change would only affect your data / how only you consume the service.

I think of it like this:
many SaaS offer an option to try their "beta" features or become part of their "fast" channel, with latest changes not-yet fully tested on everyone else. Other SaaS A/B test features all the time, so it's not like all the users of the service experience the same service anyway.

Switching to "contributor mode" for an Open Source Service would be very similar to those cases but the features you are beta testing are simply your own.

Comment thread content/technical/open-source-as-a-service.md
Comment thread content/technical/open-source-as-a-service.md Outdated
@stefwalter stefwalter force-pushed the open-source-as-a-service branch from 332002b to bffa223 Compare February 7, 2021 16:35
@stefwalter

Copy link
Copy Markdown
Owner Author

Thank you @martinpitt for your valuable critique and review. I hope I've addressed the points you raised.

One point in particular (about sharding/cloning data) is better covered in a follow up, and is a key example of the areas where we must apply existing known deployment techniques to solve.

@martinpitt martinpitt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this sounds great to me now! I can't resolve my comments above, but please do so (especially if/when others chime in, to keep track of discussions).

Comment on lines +129 to +132
After discussing this with others, I firmly believe we have all the techniques we need,
whether canary deployments, load balancing, continuous delivery,
infrastructure as code, and so on. It's been hard to find a single
problem that an existing practice doesn't solve.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for your article (perhaps), but a thought: Achieving this would also mean that you have full control of the "real" deployment, and constantly exercise and improve its (re)deployment. The importance of that can hardly be over-estimated for a project's/company's long-term resilience.

Comment thread content/technical/open-source-as-a-service.md Outdated

@gsaslis gsaslis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for bringing this out @stefwalter ! Love it.

I've left some minor edits that I think help readability. I also left some comments that I think help bring more emphasis on "Open Source Services" - so that this endeavor has a nice catchy name that will help us pull more people behind it.

Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment on lines +49 to +53
Yes, that means opening a pull request against a running service
and running that change before it's merged.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@martinpitt i think the crucial bit that is mentioned above is that this change would only affect your data / how only you consume the service.

I think of it like this:
many SaaS offer an option to try their "beta" features or become part of their "fast" channel, with latest changes not-yet fully tested on everyone else. Other SaaS A/B test features all the time, so it's not like all the users of the service experience the same service anyway.

Switching to "contributor mode" for an Open Source Service would be very similar to those cases but the features you are beta testing are simply your own.

Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
@radekvokal

Copy link
Copy Markdown

Hey @stefwalter , /lgtm . One thing I'd add is to figure out how to capture and open SOPs -- standard operating practices. You're talking about opening access to the components/services and making transparent changes there - that's great but I feel like it's often not about what you run but how you run it - how you operate it. That experience is often encoded in heads of SRE/operational team - debugging and troubleshooting services, actions triggered by monitoring events etc.

@durandom durandom left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️ it

Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md

@TomasTomecek TomasTomecek left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! Would be nice to add at least a single picture so it doesn't feel like a wall of text :)

Comment thread content/technical/open-source-as-a-service.md Outdated
Comment thread content/technical/open-source-as-a-service.md Outdated
TomasTomecek added a commit to TomasTomecek/the-real-blog that referenced this pull request Feb 8, 2021
Related: stefwalter/blog#1

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
TomasTomecek added a commit to TomasTomecek/the-real-blog that referenced this pull request Feb 8, 2021
Related: stefwalter/blog#1

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
Co-authored-by: Marcel Hild <mhild@redhat.com>
stefwalter and others added 5 commits February 9, 2021 19:51
@stefwalter

Copy link
Copy Markdown
Owner Author

Thanks for reviews. I've made all the changes, but I agree we could add a couple pictures. I'll work on those.

@durandom @martinpitt @gsaslis @TomasTomecek @radekvokal Would you be open to me linking back to this pull request at the bottom of the article as a way of thanking you for your feedback?

@thrix

thrix commented Feb 9, 2021

Copy link
Copy Markdown

I did not find anything to comment, lgtm

@martinpitt

Copy link
Copy Markdown

@stefwalter : Sure! Linking to PRs is very much the spirit of FOSS 😉

@stefwalter stefwalter merged commit e664464 into main Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants