Live data from Hacker News

OpenDev is a collaboratory for open source software development at scale

opendev.org

11–18 of 18 posts

Re: OpenDev is a collaboratory for open source software development at scale

#11
post #7

> The difference is subtle, but significant. In the pull request model, you create a fork of the original repository, push changes to it, and ultimately propose to merge changes back. In the change proposal model, you prepare a change, and propose it. You do not create a complete fork and everyone contributes into the same original repository with what are basically lightweight, ephemeral topic branches This is an od…

From where I sit, the primary distinction seems to be where the fork lives. On Github, forks are public. You get a copy of the repo in your own namespace on Github which you can pull from and push to from wherever. Others can see it and any changes you make to it as well.

On OpenDev, your clone/fork/personal branch is only on your dev machine and you only push patches, if I'm reading it right.

I guess the OpenDev model discourages people from forking the repo, modifying it to suit their needs, and then not sharing the results. To some degree.

I think I actually prefer the GitHub model where people's branches/changes are public by default unless they choose to go through the trouble to make their fork private. I have found many good bug fixes and enhancements for repos abandoned by their upstream authors this way.

Re: OpenDev is a collaboratory for open source software development at scale

#12
post #11
post #7

> The difference is subtle, but significant. In the pull request model, you create a fork of the original repository, push changes to it, and ultimately propose to merge changes back. In the change proposal model, you prepare a change, and propose it. You do not create a complete fork and everyone contributes into the same original repository with what are basically lightweight, ephemeral topic branches This is an od…

From where I sit, the primary distinction seems to be where the fork lives. On Github, forks are public. You get a copy of the repo in your own namespace on Github which you can pull from and push to from wherever. Others can see it and any changes you make to it as well. On OpenDev, your clone/fork/personal branch is only on your dev machine and you only push patches, if I'm reading it right. I guess the OpenDev mod…

The key philosophical difference is that in Gerrit you are proposing a specific change, where in GitHub you are proposing a branch be merged.

It's a very subtle distinction, but having worked on OpenStack in the past, I much prefer the Gerrit model. Patch revisions are much easier to track over time than pushes to a PR branch during review.

Re: OpenDev is a collaboratory for open source software development at scale

#13

So time for a history lesson. First, who am I? I'm JayF -- I've been working on OpenStack for about a decade, and am the currently serving TC Chair. This is not an official history, but my attempt to give you the story behind this from my perspective. OpenDev collaboratory originally started as part of OpenStack itself -- as the team that enabled us to test the giant software suite. When it became clear that the tool…

OpenDev may not have been created as an alternative, yet it may well be an alternative. i get what you are saying, and i appreciate the history. i always love it when people who are/were deeply involved share their insights. but i don't see a problem with calling it an alternative when it actually is one. there is no rule that alternatives need to be newer or be created with the intention to be an alternative.

walking is an alternative to taking a car for short distances, even though walking as a mode of transportation clearly came first.

Re: OpenDev is a collaboratory for open source software development at scale

#14

Earlier quoted context omitted.

From what I've seen, it's more like "what patterns you should follow if you want to do a lot of collaboration with openstack upstream." OpenStack uses opendev, so anyone who wants to contribute upstream to openstack will need to know about the opendev ecosystem, possibly by dogfooding tools like Gerrit and Zuul in their own infrastructure. I don't think openstack will go away any time soon, and I don't think they'll…

There's an interesting thing about complicated tools: they often exist to serve complicated requirements. OpenStack is a large, complex piece of infrastructure software used at scale that many people, even on HN, will never experience directly. Why don't you hear about us much? Because people running at that scale frequently don't enjoy talking about the details of their infrastructure. Ask the question next time you…

Of course, I wasn't claiming that openstack is doing anything wrong. As someone who uses openstack every day and has contributed (a little) code upstream, it is all straightforward enough for me. One of the reasons we use gerrit in-house is that we like to maintain close ties with upstream, and a couple of our tech leads are core upstream developers/maintainers. I only don't want to name them because I prefer to keep my hackernews identity fairly anonymous :)

My intention was to reply to the commenter who assumed that opendev only exists for gerrit fans, and it seemed like they were missing out on a bigger picture about what it exists for.

Re: OpenDev is a collaboratory for open source software development at scale

#15

Earlier quoted context omitted.

From what I've seen, it's more like "what patterns you should follow if you want to do a lot of collaboration with openstack upstream." OpenStack uses opendev, so anyone who wants to contribute upstream to openstack will need to know about the opendev ecosystem, possibly by dogfooding tools like Gerrit and Zuul in their own infrastructure. I don't think openstack will go away any time soon, and I don't think they'll…

There's an interesting thing about complicated tools: they often exist to serve complicated requirements. OpenStack is a large, complex piece of infrastructure software used at scale that many people, even on HN, will never experience directly. Why don't you hear about us much? Because people running at that scale frequently don't enjoy talking about the details of their infrastructure. Ask the question next time you…

> OpenStack is a large, complex piece of infrastructure software used at scale that many people, even on HN, will never experience directly

IME, openstack is being chopped up and the good parts are moving into Kubernetes. I don't think "openstack" will be a thing in the future, you'll just be using bits and pieces of it. There may come a ship of theseus moment where suddenly openstack is Kubernetes and no one notices

Re: OpenDev is a collaboratory for open source software development at scale

#17
One of the most interesting parts of OpenDev is that the infrastructure that builds and deploys all the OpenDev services is open.

Anyone can propose changes to practically all of the infrastructure via the https://opendev.org/opendev/system-config project.

Anyone can look through all of the changes; https://review.opendev.org/q/project:opendev/system-config+s...

Every change gets run through an extremely thorough CI system that tests the change and reports results, e.g. https://zuul.opendev.org/t/openstack/buildset/50ce144851224b...

Most of these CI jobs do things like apply your proposed change, deploy the service, then connect up a headless client and take screenshots of the results so you can confirm the correct behaviour of your change; e.g. http://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b62... is from a job that was modifying the gita deployment.

Humans approve changes for merge with Zuul, but Zuul commits the code. When Zuul merges the change, another set of jobs will push things to the production hosts automatically. There is a talk on the overall process at https://www.youtube.com/watch?v=apLHQ4DkIHU

There are obviously bastion hosts and private components to the production deployment, but as much as practical is completely open. There have been contributors with no special access that have developed the deployment of infrastructure services and admins helped only at the end committing some secrets and providing production hardware resources. More commonly, people who have CI issues can jump in and fix their own problems, especially relating to things specific to them (e.g. mirror setup on CI nodes, software versions used, etc.)

One cool thing is that the Zuul jobs publish their production deployment logs in public, but encrypted (these might contain secrets, so are not made open by default). If you work on a particular system, you can request to commit your public key to the service you like and access all the deployment logs. For example, say you are interested in maintaining codesearch.opendev.org. The "infra-prod-codesearch" job deploys changes relating to this service. You can look at all the jobs at https://zuul.opendev.org/t/openstack/builds?job_name=infra-p..., and every job has an artifact that lets you download the logs; e.g. https://zuul.opendev.org/t/openstack/build/c76ec695d19a4e9e9.... Details are at https://docs.opendev.org/opendev/system-config/latest/open-i...

Wikimedia is the only other platform I've seen with a comparable commitment to open infrastructure (unsurprisingly there has been collaboration between the two over the years)

Re: OpenDev is a collaboratory for open source software development at scale

#18

Earlier quoted context omitted.

There's an interesting thing about complicated tools: they often exist to serve complicated requirements. OpenStack is a large, complex piece of infrastructure software used at scale that many people, even on HN, will never experience directly. Why don't you hear about us much? Because people running at that scale frequently don't enjoy talking about the details of their infrastructure. Ask the question next time you…

> OpenStack is a large, complex piece of infrastructure software used at scale that many people, even on HN, will never experience directly IME, openstack is being chopped up and the good parts are moving into Kubernetes. I don't think "openstack" will be a thing in the future, you'll just be using bits and pieces of it. There may come a ship of theseus moment where suddenly openstack is Kubernetes and no one notices

I was originally not going to respond to this, as I don't think this was written in a tone to encourage good discourse; however I wrote something on one of my socials on Friday which is relevant, which I'll paraphrase here.

It's been an extremely long time since I've seen an extreme scale Kubernetes environment which didn't have some OpenStack components, and it's been a long time since I've seen an OpenStack installation which didn't include (at least one) Kubernetes cluster.

And even if this wasn't true... would it matter? We're all working towards a vision of open infrastructure, trying to serve the infrastructure needs of developers who are counting on us. Why do we have to be so tribal about it? It doesn't matter if you're using OpenStack or Kubernetes to automate your infrastructure; it matters that your infrastructure is automated and that you automated it with open source software.

In the end, it's all better when we cooperate. That's happening all over the place! Metal3.io is bringing the power of OpenStack Ironic to an API design more familiar to the CNCF/K8s community. The OpenStack Magnum community continues to make installing Kubernetes clusters on top of OpenStack easier.

Tribalism is just another form of taking your eye off the ball. Open infrastructure is winning; we can't lose focus now!

Post reply on HN