Loop/Test/Stack Check
Summary
Many of the services in the Loop ecosystem are essentially nginx servers and can be verified using similar techniques. i.e. If you've verified one service in any given environment (DEV, STAGE or PRODUCTION), in most cases, you can just change the URL and the verification process will be roughly the same.
URLS
You want these:
| loop-server | DEV | http://loop-dev.stage.mozaws.net |
| STAGE | http://loop.stage.mozaws.net | |
| PRODUCTION | http://loop.services.mozilla.com | |
| loop-client | DEV | http://loop-webapp.dev.mozaws.net |
| STAGE | http://call.stage.mozaws.net | |
| PRODUCTION | http://hello.firefox.com | |
| msisdn-server | DEV | http://msisdn-dev.stage.mozaws.net |
| STAGE | http://msisdn.stage.mozaws.net http://msisdn-loadtest.stage.mozaws.net | |
| PRODUCTION | http://msisdn.services.mozilla.com |
PRODUCTION deployment verification
Verifying a PRODUCTION deployment can be done in phases to reduce risk. Also, unlike DEV and STAGE environments, the PRODUCTION environment is restricted to Ops team so, verifying server version directly on server may not be possible. A few extra steps are outlined here to ensure a smooth PROD rollout.
To verify that DNS has switched from outgoing ELB to the newly-deployed one, it's a good practice to 'dig' the PROD URL both before and after DNS switch. This way, you will can verify that DNS has propagated before doing final verification.
Prior to DNS switch (and once the new PROD stack has been deployed), you can also verify the newly-spun ELB, by modifying your /etc/hosts file locally and pointing it to the IP of the incoming service. NOTE: make sure to flush your cache before proceeding or you may still be pointing to the original address.
Summary of Steps
- Run
digin terminal against existing PRODUCTION stack (to determine IP) - Ops deploys new PRODUCTION stack
- Modify /etc/hosts (on your local machine) to point to IP address of new stack
- Flush cache
- Do (pre-DNS-switch) verification on incoming stack (see steps outlined below)
- Remove record from /etc/hosts (on your local machine)
- Flush cache
- Ops switches DNS
- Run
digagain until IP address of PRODUCTION URL changes - Now you're ready to verify the new stack! (see steps outlined below)
NOTE:
Any verification on a PRODUCTION service requiring direct server access via terminal is restricted to Ops team.
loop-server
STAGE
In Terminal (on STAGE server):
STAGE STACK - PACKAGE VERSION
$ sed -n '/version/p' /data/loop-server/package.json:
"version": "0.17.7",
Open following URL in Browser: https://loop.stage.mozaws.net returns:
{
"name": "mozilla-loop-server",
"description": "The Mozilla Loop (WebRTC App) server",
"version": "0.17.7",
"homepage": "https://github.com/mozilla-services/loop-server/",
"endpoint": "https://loop.stage.mozaws.net",
"fakeTokBox": false,
"fxaOAuth": true,
"i18n": {
"defaultLang" : "en-US",
"lang": "en-US"
}
}
Open following URL in Browser: https://loop.stage.mozaws.net/push-server-config: returns:
{
"pushServerURI" : "wss://loop-push1.stage.mozaws.net/"
}
Open following URL in Browser: https://loop.stage.mozaws.net/__heartbeat__ returns:
{
"storage" : true,
"provider": true
}
In Terminal: $ curl -I https://loop.stage.mozaws.net
HTTP/1.1 200 OK Date: Mon, 27 Apr 2015 19:58:43 GMT Content-Type: application/json; charset=utf-8 Content-Length: 273 Connection: keep-alive Vary: Origin ETag: W/"111-e944a68d" Timestamp: 1430164723
PRODUCTION
Since direct server access is limited to Ops team, verifying that DNS has switched to a newly-deployed instance cannot be done the same way as on STAGE (where server access may be possible).
In Terminal:
"version": "0.17.7",
Open following URL in Browser: https://loop.services.mozilla.com returns:
{
"name": "mozilla-loop-server",
"description": "The Mozilla Loop (WebRTC App) server",
"version": "0.17.7",
"homepage": "https://github.com/mozilla-services/loop-server/",
"endpoint": "https://loop.services.mozilla.com",
"fakeTokBox": false,
"fxaOAuth": true,
"i18n": {
"defaultLang" : "en-US",
"lang": "en-US"
}
}
Open following URL in Browser: https://loop.services.mozilla.com/push-server-config: returns:
{
"pushServerURI" : "wss://loop-push1.services.mozilla.com/"
}
Open following URL in Browser: https://loop.services.mozilla.com/__heartbeat__ returns:
{
"storage" : true,
"provider": true
}
In Terminal: $ curl -I https://loop.services.mozilla.com
HTTP/1.1 200 OK Date: Mon, 27 Apr 2015 19:58:43 GMT Content-Type: application/json; charset=utf-8 Content-Length: 273 Connection: keep-alive Vary: Origin ETag: W/"111-e944a68d" Timestamp: 1430164723
loop-client
STAGE
<TBD>
PRODUCTION
<TBD>
msisdn-gateway
STAGE
<TBD>
PRODUCTION
<TBD>