Launchpad edge site deprecated

I previously posted about ourĀ continuous deployment efforts in Launchpad. Since then the project has come a long way. We can deploy to nearly all our services without downtime. The remaining services are a bit trickier – but we are working on them.

As part of the project we are consolidating theĀ ’edge’ domain – https://edge.launchpad.net/, https://bugs.edge.launchpad.net/ and other similar domains – into the main launchpad UI. These domains are now deprecated.

The most important thing this means for you is that for members of our beta test program, we will no longer redirect you to https://edge.launchpad.net/ – instead we are serving our beta UI directly from the main website. The edge site is now running exactly the same code as the main Launchpad cluster and is updated at exactly the same time.

We have done this to deliver new features to our users more efficiently and at the same time simplify our production environment. So far the project has been very successful from our perspective – as I write this we have 5 days of inventory – code we’ve written but not deployed. This is down from an average of 2 weeks prior to this initiative starting, and we often sit lower – 1 to 2 days worth.

In the coming months as we refine this process and project we want to remove the edge cluster. As part of this we will start redirecting browser requests to ‘edge’ domains to the main Launchpad domain.

API clients cannot be redirected in this way, so we also ask that anyone writing or using Launchpad API scripts update them to use the primary cluster. We will slowly decrease the cluster size and disable it completely once we see no traffic on it. The main cluster is currently 3 times the size and should perform better for nearly any API script. To do this, use LPNET_SERVICE_ROOT rather than EDGE_SERVICE_ROOT. To get the LPNET_SERVICE_ROOT symbol, import it from launchpadlib.uris:

from launchpadlib.uris import LPNET_SERVICE_ROOT

If you have any questions about any of this we’d be delighted to hear from you – here, on IRC or the launchpad-user mailing list.

Rob Collins
Technical Architect

Tags:

6 Responses to “Launchpad edge site deprecated”

  1. Gavin Panella Says:

    > API clients cannot be redirected in this way, so we also ask that
    > anyone writing or using Launchpad API scripts update them to use the
    > primary cluster.

    httplib2 (which is used by launchpadlib, albeit indirectly) doesn’t
    seem to be very fussy about SSL certificates, so it might be safe to
    make api.edge.launchpad.net resolve to the same as api.launchpad.net.

  2. Robert Collins Says:

    https://bugs.launchpad.net/launchpad-foundations/+bug/670013 covers this topic in detail, I’d love to have your thoughts incorporated into that bug.

  3. Martin Pool Says:

    I’m thrilled that features are going to be tested and released in a more integrated way, and that the server hardware’s going to be recombined.

    But why not just keep accepting requests to the old URLs indefinitely, from the main server cluster? For several years now the world has basically been told they should use edge for API clients. Breaking all those clients would be pretty unfortunate.

    Perhaps launchpadlib should change to transparently redirect everything on edge to lpnet?

  4. Robert Collins Says:

    Folk were certainly asked to use edge when APIs were being created, but I understand that to have changed some time ago – when 1.0 was created.

    The bug I link to above covers the technical limitations making it hard to do this transparently; if I could I’d be delighted to do that.

    launchpadlib will be changed in natty to have EDGE_SERVICE_ROOT to point to LPNET_SERVICE_ROOT, and do some sort of communication to users that they should be changing.

  5. Martin Pool Says:

    One trap here for old api clients is that there is no LPNET_SERVICE_ROOT in maverick and earlier.

    I think they need something like this, but it might actually be more complicated:

    try:
        from launchpadlib.launchpad import LPNET_SERVICE_ROOT
        SERVICE_ROOT = LPNET_SERVICE_ROOT
    except ImportError, e:
        from launchpadlib.launchpad import EDGE_SERVICE_ROOT
        SERVICE_ROOT = EDGE_SERVICE_ROOT.replace('.edge', '')
    
  6. Brian Murray Says:

    Actually there is an LPNET_SERVICE_ROOT in Lucid.

    http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/lucid/python-launchpadlib/lucid/view/head:/src/launchpadlib/uris.py

Leave a Reply