TestEngineering/Services/LoopTestEnvironments: Difference between revisions

Jump to navigation Jump to search
long overdue updates (WIP) & updates for msisdn STAGE
(long overdue updates (WIP) & updates for msisdn STAGE)
Line 1: Line 1:
== Loop Server Production Environments ==
* Loop-Server: https://loop.services.mozilla.com
* Loop-Client: https://call.mozilla.com
* MSISDN Gateway: https://msisdn.services.mozilla.com


* Monitoring
= PRODUCTION Environments =
** See below: https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Monitoring_the_Production_Environment
== URLs ==
* loop-server: https://loop.services.mozilla.com
* loop-client: https://hello.mozilla.com
* msisdn-gateway: https://msisdn.services.mozilla.com


* QA Access: not allowed
== Monitoring ==
* See below: https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Monitoring_the_Production_Environment
 
== Access ==
* Restricted to Ops team


* Pointing Fx Nightly to Production
* Pointing Fx Nightly to Production
** NOTE: Fx Nightly is already set to point to Production by default
** NOTE: Fx Nightly is already set to point to Production by default


* Quick Verifications
== Quick Verifications ==
Loop-Server
=== loop-server ===
  In the browser: https://loop.services.mozilla.com
  In the browser: https://loop.services.mozilla.com
  Note: the default value of "fakeTokBox" is true for the mock server, false for the live server
  Note: the default value of "fakeTokBox" is false for the mock server, false for the live server
      (both STAGE and PROD now use live server)
   
   
  In the browser: https://loop.services.mozilla.com/__heartbeat__
  In the browser: https://loop.services.mozilla.com/__heartbeat__
Line 21: Line 25:
   
   
  In the browser: https://loop.services.mozilla.com/push-server-config
  In the browser: https://loop.services.mozilla.com/push-server-config
  {"pushServerURI":"wss://push.services.mozilla.com/"}
  {"pushServerURI":"wss://autopush.services.mozilla.com/"}
   
   
  curl https://loop.services.mozilla.com
  curl https://loop.services.mozilla.com
  Note: the default value of "fakeTokBox" is true for the mock server, false for the live server
  Note: the default value of "fakeTokBox" is false for the mock server, false for the live server
      (both STAGE and PROD now use live server)
   
   
  curl -I https://loop.services.mozilla.com
  curl -I https://loop.services.mozilla.com


Loop-Client
=== loop-client ===
  In the browser: https://call.mozilla.com
  In the browser: https://hello.mozilla.com
  Welcome to the Firefox Hello web client.
  Welcome to the Firefox Hello web client.
   
   
  Browser: https://call.mozilla.com/config.js
  Browser: https://hello.mozilla.com/config.js
  now returns all of this info:
  now returns all of this info:
  var loop = loop || {};
  var loop = loop || {};
Line 39: Line 44:
  };
  };
   
   
  Browser: https://call.mozilla.com/VERSION.txt
  Browser: https://hello.mozilla.com/VERSION.txt
   
   
  TOS: https://call.mozilla.com/legal/terms/
  TOS: https://hello.mozilla.com/legal/terms/
   
   
  curl https://call.mozilla.com/
  curl https://hello.mozilla.com/
  returns a page of HTML
  returns a page of HTML
   
   
  curl -I https://call.mozilla.com/
  curl -I https://hello.mozilla.com/


MSISDN-Gateway
=== msisdn-gateway ===
  In the browser: https://msisdn.services.mozilla.com
  In the browser: https://msisdn.services.mozilla.com
  {"name":"mozilla-msisdn-gateway","description":"The Mozilla MSISDN   
  {"name":"mozilla-msisdn-gateway","description":"The Mozilla MSISDN   
Line 61: Line 66:
  curl -I https://msisdn.services.mozilla.com
  curl -I https://msisdn.services.mozilla.com


== Loop Server Stage Environment ==
= STAGE Environments =
* URLs
== Access ==
** Loop-Server: https://loop.stage.mozaws.net
* Restricted to Ops/Dev/QA teams
** Mock (load): https://loop-delayed-response.stage.mozaws.net (see below)
 
** Third-Party (load): TBD
== URLs ==
** loop-redis-stage - need the details
* loop-server: https://loop.stage.mozaws.net
** Loop-Client: https://call.stage.mozaws.net
* msisdn-gatway (Real: for e2e-test): https://msisdn.stage.mozaws.net (see below)
** MSISDN: https://msisdn.stage.mozaws.net (see below)
** uses: Nexmo
** Mock (load): http://omxen.dev.mozaws.net
* msisdn-gateway (Fake: for loadtest): https://msisdn-loadtest.stage.mozaws.net (see below)
** Sentry: http://sentry.shared.us-east-1.stage.mozaws.net (see below)
** uses: http://omxen.dev.mozaws.net
* loop-client: https://call.stage.mozaws.net
* Sentry: http://sentry.shared.us-east-1.stage.mozaws.net (see below)
 
== loop-server ==
(needs updating)


== Loop Server Stage Details ==
* URL
* URL
** Loop-Server: https://loop.stage.mozaws.net
** loop-server: https://loop.stage.mozaws.net


* Versions
* Versions
Line 132: Line 141:
** /media/ephemeral0/nginx/logs/loop_server.error.log
** /media/ephemeral0/nginx/logs/loop_server.error.log


* Setting Stage configuration:
* Setting STAGE configuration:
** Toggling the config setting to use either a mock server or a third-party server
** Toggling the config setting to use either a mock server or a third-party server
** File: /data/loop-server/config/settings.json
** File: /data/loop-server/config/settings.json
Line 147: Line 156:
  In the browser: https://loop.stage.mozaws.net/push-server-config
  In the browser: https://loop.stage.mozaws.net/push-server-config


== Loop Client and Server Configurations ==
== loop-client ==
* Live Server vs. Mock Server
** By default, the Loop-Server in Stage is configured to talk to our mock server:
*** https://loop-delayed-response.stage.mozaws.net/
** Default load testing will hit the mock server.
** To hit the partner test servers, the following configuration file will need to be updated by OPs:
*** /data/loop-server/config/settings.json
** Talk to OPs to toggle that configuration file and restart the Loop-Server in Stage.
** REFs:
*** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Mock_Server_Stage_Details
 
* Yaml Files
** /etc/puppet/yaml/app
*** loop_client.dev.yaml
*** loop_client.prod.yaml
*** loop_client.stage.yaml
*** loop_client.yaml
*** loop_server.dev.yaml
*** loop_server.prod.yaml
*** loop_server.stage.yaml
*** loop_server.yaml


== Loop Client Stage Details ==
* URL
* URL
** Loop-Client: https://call.stage.mozaws.net
** loop-client: https://call.stage.mozaws.net


* Versions
* Versions
Line 234: Line 222:
  curl -I https://call.stage.mozaws.net
  curl -I https://call.stage.mozaws.net
   
   
  Check that Loop-Client Stage is talking to Loop-Server Stage
  Check that loop-client STAGE is talking to loop-server STAGE
  In the browser: https://call.stage.mozaws.net/config.js
  In the browser: https://call.stage.mozaws.net/config.js
  should return something similar to this
  should return something similar to this
Line 243: Line 231:
  };
  };


== Loop Mock Server Stage Details ==
** NOTE: This server is used for load testing whenever we do not want to hit the third-party servers. A configuration change must be made in the Loop Server in order to make this work.
* URL
** Mock: https://loop-delayed-response.stage.mozaws.net
* AWS
** CF stack: loop-delayed-response (or similar)
** ELB: loop-delayed-r-ELB-<some value>
** R53AliasRecord: loop-delayed-response.stage.mozaws.net
** Instances: 1 m1.small, search for "delayed HTTP server"


* OS
== msisdn (real server) ==
** Scientific Linux release 6.4
* Description
** This server is more-or-less a duplicate of the PRODUCTION one.
** It uses the real Nexmo service
** NOTE: Since Nexmo bills on a per text basis, this server should only be used for e2e testing,
    not for loadtesting!


* Files
** /data/delayed
** /data/delayed/delayed-master
** /etc/circus.d/
** /etc/circus.d/loopserver.ini
** /etc/circus.d/hekad-loop.ini
** /etc/circus.ini
* Processes
** root /usr/bin/python /usr/bin/circusd --log-output /var/log/circus.log --pidfile /var/run/
** nobody node index.js
* Logs
** /var/log/circus.log
* Quick Verifications
In the browser: https://loop-delayed-response.stage.mozaws.net
ok
* Access
** Log in as "ec2-user"
== MSISDN Gateway Server Stage Details ==
* URL
* URL
** MSISDN Gateway: https://msisdn.stage.mozaws.net
** MSISDN Gateway: https://msisdn.stage.mozaws.net
Line 339: Line 297:
  curl -I https://msisdn.stage.mozaws.net
  curl -I https://msisdn.stage.mozaws.net


== MSISDN Mock Server Stage Details ==
== msisdn-loadtest (fake server) ==
* Description
** This server is uses a fake endpoint (Omxen) and can thus be used for loadtesting
** NOTE: for e2e testing, use the real endpoint instead (see above)
 
* URL: http://omxen.dev.mozaws.net
* URL: http://omxen.dev.mozaws.net
* Endpoint: http://omxen.dev.mozaws.net/send
* Endpoint: http://omxen.dev.mozaws.net/send
Line 379: Line 341:
  curl -I omxen.dev.mozaws.net
  curl -I omxen.dev.mozaws.net


== Sentry Server Stage Details ==
 
= Server Configuration (loop-client & loop-server) =
* /data/loop-server/config/settings.json
* edit configuration file and restart the loop-server in STAGE.
** REFs:
*** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Mock_Server_Stage_Details
 
* Yaml Files
** /etc/puppet/yaml/app
*** loop_client.dev.yaml
*** loop_client.prod.yaml
*** loop_client.stage.yaml
*** loop_client.yaml
*** loop_server.dev.yaml
*** loop_server.prod.yaml
*** loop_server.stage.yaml
*** loop_server.yaml
 
 
 
= Sentry Server =
== STAGE Details ==
* URL
* URL
** http://sentry.shared.us-east-1.stage.mozaws.net
** http://sentry.shared.us-east-1.stage.mozaws.net
Line 411: Line 394:
== QA Access via a Bastion Host ==
== QA Access via a Bastion Host ==
* Old Dev IAM
* Old Dev IAM
** SSH with AWS keys to the Stage bastion host in US-East-1. From there SSH directly into any instance using your LDAP name. For the mock server, log in as "ec2-user".
** SSH with AWS keys to the STAGE bastion host in US-East-1. From there SSH directly into any instance using your LDAP name. For the mock server, log in as "ec2-user".
* New Dev IAM
* New Dev IAM
** SSH with AWS keys to the Stage bastion host in US-East-1 or EU-West-1. From there SSH directly into any instance using your LDAP name. For the mock server, log in as "ec2-user".
** SSH with AWS keys to the STAGE bastion host in US-East-1 or EU-West-1. From there SSH directly into any instance using your LDAP name. For the mock server, log in as "ec2-user".


== Monitoring the Stage Environment ==
== Monitoring ==
== STAGE Environment ==
* Sentry: https://sentry.shared.us-east-1.stage.mozaws.net
* Sentry: https://sentry.shared.us-east-1.stage.mozaws.net
** Getting access to Sentry Stage - talk to the OPs team
** Getting access to Sentry STAGE - talk to the OPs team


* Stackdriver
* Stackdriver
Line 474: Line 458:
*** https://heka.shared.us-east-1.stage.mozaws.net/#sandboxes/LoopUrls/outputs/LoopUrls.FirefoxOS.cbuf
*** https://heka.shared.us-east-1.stage.mozaws.net/#sandboxes/LoopUrls/outputs/LoopUrls.FirefoxOS.cbuf


== Monitoring the Production Environment ==
=== Production Environment ===
* Sentry: http://sentry.shared.us-west-2.prod.mozaws.net
* Sentry: http://sentry.shared.us-west-2.prod.mozaws.net
** Getting access to Sentry Prod - talk to the OPs team
** Getting access to Sentry Prod - talk to the OPs team
Line 494: Line 478:
** https://heka.shared.us-west-2.prod.mozaws.net/#plugins/filters/MsisdnGatewayHTTPStatus
** https://heka.shared.us-west-2.prod.mozaws.net/#plugins/filters/MsisdnGatewayHTTPStatus


* Loop-Server Dashboard
* loop-server Dashboard
** https://metrics.fxa.us-west-2.prod.mozaws.net/loop-server-dashboard
** https://metrics.fxa.us-west-2.prod.mozaws.net/loop-server-dashboard


Line 502: Line 486:


* Pingdom:
* Pingdom:
** Loop-Client: http://stats.pingdom.com/20dar76w4hmv/1304575
** loop-client: http://stats.pingdom.com/20dar76w4hmv/1304575
** Loop-Server: http://stats.pingdom.com/20dar76w4hmv/1304565
** loop-server: http://stats.pingdom.com/20dar76w4hmv/1304565


== Loads V1 Services Cluster Environment ==
= Loads V1 Services Cluster Environment =
* For details on the Loads V1 cluster, see the following link:
* For details on the Loads V1 cluster, see the following link:
** https://wiki.mozilla.org/QA/Services/LoadsToolsAndTesting1
** https://wiki.mozilla.org/QA/Services/LoadsToolsAndTesting1


== Dev Environment ==
= Dev Environment =
* URLs
* URLs
** Server: https://loop-dev.stage.mozaws.net/
** Server: https://loop-dev.stage.mozaws.net/
Line 606: Line 590:
  or similar
  or similar


== References ==
= Reference =
* Main Sites
== Wikis ==
** https://wiki.mozilla.org/CloudServices/Loop
* https://wiki.mozilla.org/CloudServices/Loop
** https://wiki.mozilla.org/CloudServices/Loop/Server
* https://wiki.mozilla.org/CloudServices/Loop/Server
** https://wiki.mozilla.org/Services/Loop
* https://wiki.mozilla.org/Services/Loop
** https://wiki.mozilla.org/Loop
* https://wiki.mozilla.org/Loop
** https://wiki.mozilla.org/Loop/Architecture
* https://wiki.mozilla.org/Loop/Architecture
** https://wiki.mozilla.org/Loop/Architecture/ID
* https://wiki.mozilla.org/Loop/Architecture/ID
** https://wiki.mozilla.org/Loop/Telemetry
* https://wiki.mozilla.org/Loop/Telemetry
** Loop MVP Features: https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AlJmiyFngeSwdGJEVnItQ2NVbGx6NXdjbVBUYmIxSGc#gid=0
* Loop MVP Features: https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AlJmiyFngeSwdGJEVnItQ2NVbGx6NXdjbVBUYmIxSGc#gid=0
** https://people.mozilla.org/~dhenein/labs/loop-docs/
* https://people.mozilla.org/~dhenein/labs/loop-docs/
** https://people.mozilla.org/~dhenein/labs/loop-mvp-spec/
* https://people.mozilla.org/~dhenein/labs/loop-mvp-spec/
** https://wiki.mozilla.org/Loop/Architecture/MVP
* https://wiki.mozilla.org/Loop/Architecture/MVP
* settings: https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Mock_Server_Stage_Details
* Puppet Config: https://github.com/mozilla-services/puppet-config
* Cloud Formation: https://github.com/mozilla-services/svcops


* Documentation
== Docs ==
** https://docs.services.mozilla.com/loop/index.html
* https://docs.services.mozilla.com/loop/index.html
** https://docs.services.mozilla.com/loop/apis.html
* https://docs.services.mozilla.com/loop/apis.html


* GitHub Repos
== Github Repos ==
** https://github.com/orgs/mozilla-services/teams/loop
* https://github.com/orgs/mozilla-services/teams/loop
** https://github.com/mozilla-services/loop-server
* https://github.com/mozilla-services/loop-server
** https://github.com/mozilla/loop-client
* https://github.com/mozilla/loop-client
** https://github.com/mozilla/loop-client/releases
* https://github.com/mozilla/loop-client/releases
** https://github.com/mozilla-services/msisdn-gateway
* https://github.com/mozilla-services/msisdn-gateway
** https://github.com/mozilla-services/msisdn-gateway/blob/master/API.md
* https://github.com/mozilla-services/msisdn-gateway/blob/master/API.md
** https://github.com/mozilla/videur
* https://github.com/mozilla/videur
** https://github.com/mozilla/fxa-auth-server/wiki/API-extensions-for-supporting-MSISDN-verification-in-FxA-auth-server
* https://github.com/mozilla/fxa-auth-server/wiki/API-extensions-for-supporting-MSISDN-verification-in-FxA-auth-server
** https://github.com/mozilla/gecko-projects/tree/elm/browser/components/loop/standalone
* https://github.com/mozilla/gecko-projects/tree/elm/browser/components/loop/standalone
** https://github.com/mozilla-services/svcops
* https://github.com/mozilla-services/svcops
** https://github.com/mozilla-services/puppet-config
* https://github.com/mozilla-services/puppet-config


* Bugzilla
== Bugzilla ==
** https://bugzilla.mozilla.org/enter_bug.cgi?product=Loop&component=Server
* https://bugzilla.mozilla.org/enter_bug.cgi?product=Loop&component=Server
*** Other Products
** Other Products
*** Product: Loop
** Product: Loop
*** Component: General/Client/Server
** Component: General/Client/Server


** https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla%20Services@component=MobileID
* https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla%20Services@component=MobileID
*** Client Software
** Client Software
*** Product: Mozilla Services
** Product: Mozilla Services
*** Component: MobileID
** Component: MobileID
 
== OPs Mana and GitHub Pages ==
* NOTE: Talk to OPs for the links to Mana.
* Puppet Config: https://github.com/mozilla-services/puppet-config
* Cloud Formation: https://github.com/mozilla-services/svcops
* Loop-specific: TBD
Confirmed users
487

edits

Navigation menu