Services/Mobile-ID: Difference between revisions

m
overview update
m (overview update)
 
(23 intermediate revisions by 4 users not shown)
Line 1: Line 1:


= Overview =
The Mobile-ID service provides a global mobile number validation system that
The Mobile-ID service provides a global mobile number validation system that
can be used to authenticate a user's device. It interacts with SMS gateways to send and receive SMSs.
can be used to authenticate a user's device. It interacts with SMS gateways to send and receive SMS messages.
 
'''More Info:'''
* https://wiki.mozilla.org/Loop/Architecture#MSISDN_.28Phone_Number.29_Verification
* https://bugzilla.mozilla.org/show_bug.cgi?id=988469#c5
 
 
[[#toc]]


See : https://wiki.mozilla.org/Loop/Architecture#MSISDN_.28Phone_Number.29_Verification


=Contacts=
=Contacts=
Line 11: Line 18:
** Alexis Metaireau <alexis@mozilla.com>
** Alexis Metaireau <alexis@mozilla.com>
** Rémy Hubscher <natim@mozilla.com>
** Rémy Hubscher <natim@mozilla.com>
* <b>OPS</b>
* <b>Ops</b>
** Benson Wong <mostlygeek@mozilla.com>
** Dean Wilson <dwilson@mozilla.com>
** Wesley Dawson <whd@mozilla.com>
** Bob Micheletto <bobm@mozilla.com>
* <b>QA</b>
* <b>QA</b>
** James Bonacci <jbonacci@mozilla.com>
** Richard Pappalardo <rpappalardo@mozilla.com>
** Karl Thiessen <kthiessen@mozilla.com


=Deployement=


There are three environments.
[[#toc]]




==Dev==
= Deployment Environments =
== Summary ==
There are 4 deployed environments.
{| class="wikitable"
|-
| '''Environment'''
| '''URL'''
| '''Endpoint Used'''
| '''Usage'''
|-
| DEV
| http://msisdn-dev.stage.mozaws.net
| Nexmo
| Development and integration
|-
| STAGE
| http://msisdn.stage.mozaws.net
| Nexmo
| End-2-End (client-side) testing
|-
| STAGE-LOADTEST
| http://msisdn-loadtest.stage.mozaws.net
| Omxen
| Load (server-side) testing
|-
| PRODUCTION
| http://msisdn.services.mozilla.com
| Nexmo
| Production apps
|-
|}


[[#toc]]
==DEV==
'''Description'''
* <b>Host:</b> https://msisdn-dev.stage.mozaws.net/
* <b>Host:</b> https://msisdn-dev.stage.mozaws.net/
* <b>Maintainer:</b> DEVs
* <b>Maintainer:</b> Dev Team
* <b>SMS Gateway:</b> Nexmo
* <b>SMS Gateway:</b> Nexmo
* <b>Usage:</b> Development and integration
* <b>Usage:</b> Development and integration


This environment is updated with the master branch by devs on a regular basis - or upon request. you can get the version by displaying the root URL of the server.


This environment provides a Mobile number validation for the following countries:
'''Notes'''
* This environment is updated with the master branch by devs on a regular basis - or upon request.
* you can get the version by displaying the root URL of the server.
* This environment provides a Mobile number validation for the countries listed below
   
   
{|
 
! class="wikitable"| Client Country
{| class="wikitable"
! Provider
| '''Client Country'''
! MCC
| '''Provider'''
! Server Number
| '''MCC'''
| '''Server Number'''
|-
|-
|USA
|USA
|Nexmo
|Nexmo
|302 - 310 - 311 - 312 - 313 - 314 - 315 - 316 - 332 - 544
|302 - 310 - 311 - 312 - 313 - 314 - 315 - 316 - 332 - 544
|117142940188
|XXXX
|-
|-
|France
|France
|Nexmo
|Nexmo
|208 - 308 - 340 - 543 - 546 - 547 - 647 - 742
|208 - 308 - 340 - 543 - 546 - 547 - 647 - 742
|33644630007
|XXXX
|-
|-
|Spain
|Spain
|Nexmo
|Nexmo
|214
|214
|34911067077
|XXXX
|-
|-
|Others
|Others
|Nexmo
|Nexmo
|
|
|447937946655
|XXX
|}
|}


==Stage==


[[#toc]]
==STAGE (E2E-TEST) ==
'''Description'''
* <b>Host:</b> https://msisdn.stage.mozaws.net/
* <b>Host:</b> https://msisdn.stage.mozaws.net/
* <b>Maintainer:</b> OPS
* <b>Maintainer:</b> Ops Team
* <b>SMS Gateway:</b> OMXEN
* <b>SMS Gateway:</b> NEXMO (<u>feal endpoint</u>)
* <b>Usage:</b> QA and Loadtesting
* <b>Usage:</b> End-2-End Test (client-side testing against a <u>real</u> endpoint: Nexmo)
 
 
'''Notes'''
* This environment is used for end-to-end testing of the service once it hits the stable channel.
* This server is a perfect mirror of the production environment, updated with the tag of the upcoming release
* '''ATTENTION!:''' - This uses is a real endpoint!
** We pay for each text message so <u>DO NOT</u> loadtest against it!!
 
 
[[#toc]]
 
 
== STAGE (LOADTEST) ==




This environment is used by QA and dev for load tests. The goal is to measure how many connections can be handled by the server and anticipate errors that might happen on high load.
'''Description'''
* <b>Host:</b> https://msisdn-loadtest.stage.mozaws.net/
* <b>Maintainer:</b> Ops Team
* <b>SMS Gateway:</b> OMXEN (fake endpoint)
* <b>Usage:</b> Loadtesting (server-side and testing)


'''SMS are not sent for real''', they are collected by a fake SMS Gateway: OMXEN. We deployed it at  http://omxen.dev.mozaws.net/
'''Notes'''
* This environment is used by QA and dev teams for load tests.
* The goal is to measure how many connections can be handled by the server and anticipate errors that might happen on high load.
* SMS are not sent for real - they are collected by a fake SMS Gateway: OMXEN.  
* Load tests can interact with OMXEN to check what SMS messages are sent out of the system.
* You can verify that an SMS message has been received by OMXEN through your browser: <br />
** http://omxen.dev.mozaws.net/receive?to=<DEVICE PHONE NUMBER>


Load tests can interact with OMXEN to check what SMSs are sent out of the system.


==Production==
[[#toc]]


==PRODUCTION==
'''Description'''
* <b>Host:</b> https://msisdn.services.mozilla.com/
* <b>Host:</b> https://msisdn.services.mozilla.com/
* <b>Maintainer:</b> OPS
* <b>Maintainer:</b> Ops Team
* <b>SMS Gateway:</b> Nexmo
* <b>SMS Gateway:</b> Nexmo
* <b>Usage:</b> Production apps
* <b>Usage:</b> Production apps


<i>Only OPS can access it.</i>
'''Notes'''
* This environment is used for production and is the default server for '''Firefox Nightly'''.  
* The prod environment provide a Mobile number validation for the countries listed below


This environment is used for production and will be used for the Loop app.


 
{| class="wikitable"
The prod environment provide a Mobile number validation for the following countries:
| '''Client Country'''
 
| '''Provider'''
{|
| '''MCC'''
! class="wikitable"| Client Country
| '''Server Number'''
! Provider
! MCC
! Server Number
|-
|-
|USA
|USA
|Nexmo
|Nexmo
|302 - 310 - 311 - 312 - 313 - 314 - 315 - 316 - 332 - 544
|302 - 310 - 311 - 312 - 313 - 314 - 315 - 316 - 332 - 544
|12182967993
|XXXX
|-
|-
|More to come
|More to come
|}
|}


=Release Cycle=


The service is continuously pushed into the dev server when client developers can test it.
[[#toc]]
 
 
== Release Cycle ==
 
* The service is continuously pushed into the '''DEV''' server where client developers can test it.
* The service is released in: '''STAGE''', '''STAGE-LOADTEST''' then '''PRODUCTION''' every other week (or asap if we discover a security breach)
 
 
[[#toc]]
 
 
= Branches and bugfix deployments =
 
'''In case of a bugfix:'''
* A commit will with the fix will be pushed to master.
* A new branch will be created on the github repository with the versions that needs the patch, and the fixes will be applied there (backported).
* A new tag will be created with the new version (the patch version will be updated) and a deployment request will be filled.
 
 
For instance, in case the 0.9.0 release contains a bug that needs to be fixed:
# Fix the code in master;
# Backport (cherrypick) the commit in the 0.9.x branch (create it if needed);
# Tag a new minor release: 0.9.1 and fill a new deployment request.
 
 
[[#toc]]


The service is released in production every other week when needed (or asap if we discover a security breach)
= Reference =
* https://wiki.mozilla.org/Loop/Architecture/ID
* https://github.com/mozilla-services/msisdn-gateway


* Tuesday - end of previous cycle. tagging. pushed to stage
[[#toc]]
* Tuesday through Friday - load testing by James on stage
* Monday - push to prod if no regression, if any regression backed off
Confirmed users
487

edits