Code/AnonymousSmartServer

Not logged in - Log In / Register

Provide an anonymous smart server

Provide read-only smart server access to public branches without *any* configuration on the user side

On Launchpad: bug 164790, Launchpad should run a Bazaar server and advertise bzr:// URLs.

As a new user to launchpad
I want smart server access to public branches
so that I don't have a poorly-performing first experience of Launchpad

Rationale

Why are we doing this now?

Good question.

What value does this give our users? Which users?

It makes users' first impressions of Launchpad and likely Bazaar better.

Stakeholders

Who really cares about this feature? When did you last talk to them?

New users? By the time you talk to them, they aren't new any more though, so it's inherently a bit hard to be certain how much benefit this will bring.

Constraints

What MUST the new behaviour provide?

Efficient branch access at urls like lp:project or bzr://bazaar.launchpad.net/~user/project/branch

What MUST it not do?

Overload the servers to the point that use of the existing services is degraded.

Success

How will we know when we are done?

When the majority of branch access to Launchpad is over the smart protocol.

How will we measure how well we have done?

Graphs like https://lpstats.canonical.com/graphs/Branch_HTTP_Hits/ should show a decline.

Thoughts?

Put everything else here. Better out than in.

I think this should be implemented by having one or more separate boxes to run the bzr serve processes (to avoid the memory pressure these processes will create from impinging on other services). Connections to port 4155 (the bzr:// port) on bazaar.launchpad.net should be forwarded to one of these machines. On connection, we should run something like bzr lp-serve --inet, as we do for the ssh server. We could either write a very simple Twisted daemon to do this or even use honest to God inetd.

The bzr lp-serve process can access branch data over http or even NFS if we've got that set up by the time we come to deploy this.

I think the only coding required is to allow lp-serve to support anonymous access, maybe a simple daemon to launch these processes and a bunch of configuration work to set it all up. So in all honesty, how soon we can do this mostly depends on IS.

Code/AnonymousSmartServer (last edited 2010-03-04 05:52:17 by mwhudson)