Prepare MLS for taking on geo.mozilla.org load

RESOLVED FIXED

Status

Cloud Services
Location
RESOLVED FIXED
2 years ago
a year ago

People

(Reporter: Hanno Schlichting, Assigned: Hanno Schlichting)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Assignee)

Description

2 years ago
Tracking bug for all the things we'd need to do to use the current MLS stack to also serve geo.mozilla.org traffic.

Running two different stacks which both offer the same functionality is rather wasteful. The software behind geo.mozilla.org is no longer maintained, so it makes sense to switch away from it. geo.mozilla.org also still runs on expensive physical hardware.

geo.mozilla.org offers two endpoints available via HTTP GET: /country.json and /country.js. Most clients use /country.js. The known clients all cache the data in different places in the browser (localStorage or cookies) for 30 days and all include exception handling to deal with failures or invalid responses:

* https://dxr.mozilla.org/mozilla-central/source/browser/base/content/abouthome/aboutHome.js
* https://github.com/mozilla/snippets-service/blob/master/snippets/base/templates/base/includes/snippet_js.html
* https://github.com/mozilla/kitsune/blob/master/kitsune/sumo/static/sumo/js/geoip-locale.js
* https://github.com/mozilla/self-repair-server/blob/master/src/common/geo.js

The only exception is marketplace, which uses a POST API to the /country.json endpoint. But there is no longer any traffic to this special API endpoint seen in the geo.mozilla.org access logs (https://github.com/mozilla/zamboni/blob/master/lib/geoip/__init__.py).

In terms of overall load, geo.mozilla.org sees about 500 requests / second on average, which is no problem given the current underutilized MLS EC2 instances.

ToDo:

* Bug 1223744 to react to potential traffic spikes.
* Confirm status of marketplace API calls.
* Implement geo.mozilla.org (geodude) API in ichnaea code (https://github.com/mozilla/ichnaea/issues/467)
* Allow MLS to be reachable under both location.services.mozilla.com and geo.mozilla.org, including SSL setup.
(Assignee)

Updated

2 years ago
Depends on: 1223768
(Assignee)

Updated

2 years ago
Depends on: 1225835
(Assignee)

Comment 1

2 years ago
Updated status:

* marketplace uses a separate geodude cluster at geodude.services.mozilla.com, which explains why geo.mozilla.org only gets GET traffic
* The geodude API is implemented by MLS, both https://location.services.mozilla.com/country.js and https://location.services.mozilla.com/country.json endpoints are now available.

Remaining:

* Bug 1223744 to react to traffic spikes
* Bug 1223768 to setup SSL certs
(Assignee)

Comment 2

2 years ago
We decided to force everyone to use the new MLS API and not offer the geodude API anymore. General preparations for dealing with the increased traffic are done.

We now have individual bugs for each project to switch over:

* SUMO/kitsune: https://bugzilla.mozilla.org/show_bug.cgi?id=1248594
* Fennec portion of snippets: https://bugzilla.mozilla.org/show_bug.cgi?id=1248399
* self-repair: https://github.com/mozilla/self-repair-server/issues/239
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.