TestEngineering/Services/LoopTestEnvironments: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(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

Revision as of 20:52, 19 May 2015

PRODUCTION Environments

URLs

Monitoring

Access

  • Restricted to Ops team
  • Pointing Fx Nightly to Production
    • NOTE: Fx Nightly is already set to point to Production by default

Quick Verifications

loop-server

In the browser: https://loop.services.mozilla.com
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__
{"storage":true,"provider":true}

In the browser: https://loop.services.mozilla.com/push-server-config
{"pushServerURI":"wss://autopush.services.mozilla.com/"}

curl https://loop.services.mozilla.com
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

loop-client

In the browser: https://hello.mozilla.com
Welcome to the Firefox Hello web client.

Browser: https://hello.mozilla.com/config.js
now returns all of this info:
var loop = loop || {};
loop.config = {
     bunch of loop-client specific info
};

Browser: https://hello.mozilla.com/VERSION.txt

TOS: https://hello.mozilla.com/legal/terms/

curl https://hello.mozilla.com/
returns a page of HTML

curl -I https://hello.mozilla.com/

msisdn-gateway

In the browser: https://msisdn.services.mozilla.com
{"name":"mozilla-msisdn-gateway","description":"The Mozilla MSISDN  
Gateway","version":"0.3.2","homepage":"https://github.com/mozilla-services/msisdn-gateway"
,"endpoint":"https://msisdn.services.mozilla.com"}

curl https://msisdn.services.mozilla.com
{"name":"mozilla-msisdn-gateway","description":"The Mozilla MSISDN 
Gateway","version":"0.3.2","homepage":"https://github.com/mozilla-services/msisdn-gateway"
,"endpoint":"https://msisdn.services.mozilla.com"}

curl -I https://msisdn.services.mozilla.com

STAGE Environments

Access

  • Restricted to Ops/Dev/QA teams

URLs

loop-server

(needs updating)

  • Versions
    • rpm -qa | grep loop
    • Example:
      • loop-server-svcops 0.10.0-1 x86_64 20905864
      • puppet-config-loop 20140811172607-1 x86_64 14277
  • VERSION.txt
    • ./data/loop-server/VERSION.txt
  • AWS
    • CF stack: loop-server-stage (or similar name)
    • ELB: loop-server-st-ELB-<some value>
    • One instance: look for "loop-server-stage"
  • OS
    • Running SciLinux 6.4
  • Files
    • /data/loop-server
      • especially /data/loop-server/config/settings.json
    • /data/hekad
    • /opt/aws
    • /opt/ec2
    • /opt/openresty
    • /opt/rh
    • /opt/stackdriver
    • /etc/circus.ini
    • /etc/circus.d
    • /etc/circus.d/loopserver.ini
    • /etc/circus.d/hekad-loop.ini
    • /etc/puppet/*
      • especially /etc/puppet/yaml/app
      • /etc/puppet/yaml/app/loop_server.dev.yaml
      • /etc/puppet/yaml/app/loop_server.prod.yaml
      • /etc/puppet/yaml/app/loop_server.stage.yaml
      • /etc/puppet/yaml/app/loop_server.yaml
    • /var/log/*
  • Processes
    • node loop/index.js
    • stackdriver
    • circusd
    • heka.d
    • nginx
  • Logs
    • /var/log/circus.log
    • /var/log/hekad/loop.stdout.log
    • /var/log/hekad/loop.stderr.log
    • /media/ephemeral0/circus/loop_server/loop_server.err.log
    • /media/ephemeral0/circus/loop_server/loop_server.eout.log
    • /media/ephemeral0/nginx/logs/default.access.log (not in use)
    • /media/ephemeral0/nginx/logs/default.error.log (not in use)
    • /media/ephemeral0/nginx/logs/loop_server.access.log
    • /media/ephemeral0/nginx/logs/loop_server.error.log
  • Setting STAGE configuration:
    • Toggling the config setting to use either a mock server or a third-party server
    • File: /data/loop-server/config/settings.json
  • Quick Verifications
curl https://loop.stage.mozaws.net

curl -I https://loop.stage.mozaws.net

In the browser: https://loop.stage.mozaws.net/

In the browser: https://loop.stage.mozaws.net/__heartbeat__

In the browser: https://loop.stage.mozaws.net/push-server-config

loop-client

  • Versions
    • rpm -qa | grep loop
  • VERSION.txt
    • /data/loop-client/content/VERSION.txt
  • AWS
    • CF Stack: look for four loop-client-* stacks
    • ELB: loopstage1-loo-ELB-<some value>
    • One loop-client instance: look for "loop-client app server"
  • OS
    • Scientific Linux release 6.4 or 6.5
  • Files
    • /opt/aws
    • /opt/ec2
    • /opt/openresty
    • /opt/rh
    • /opt/stackdriver
    • /data/loop-client
      • especially /data/loop-client/content/config.js
      • Note: this does not contain any app-specific config file in the config directory
    • /data/hekad
    • /etc/heka.d
    • /etc/puppet/yaml
      • especially the following files
      • /etc/puppet/yaml/app/loop_client.dev.yaml
      • /etc/puppet/yaml/app/loop_client.prod.yaml
      • /etc/puppet/yaml/app/loop_client.stage.yaml
      • /etc/puppet/yaml/app/loop_client.yaml
  • Processes
    • look for stackdriver, nginx, python, circus, heka
  • Logs
    • /var/log/circus.log
    • /var/log/hekad/loop-client.stderr.log
    • /var/log/hekad/loop-client.stderr.log
    • /media/ephemeral0/nginx/logs
      • default.access.log
      • default.error.log
      • loop-client.access.log
      • loop-client.error.log
  • Heka
    • /data/hekad
    • /etc/heka.d
  • Quick Verifications
In the browser: https://call.stage.mozaws.net
Welcome to the Firefox Hello web client.

Check the version: https://call.stage.mozaws.net/VERSION.txt 

Check the TOS: https://call.stage.mozaws.net/legal/terms/

curl https://call.stage.mozaws.net

curl -I https://call.stage.mozaws.net

Check that loop-client STAGE is talking to loop-server STAGE 
In the browser: https://call.stage.mozaws.net/config.js
should return something similar to this
var loop = loop || {};
loop.config = {
 serverUrl: 'https://loop.stage.mozaws.net',
 and a bunch of other loop-client specific stuff
};


msisdn (real server)

  • 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!
  • Versions
    • rpm -qa | grep msisdn
  • Version string
    • /data/msisdn-gateway/VERSION.txt
  • AWS
    • CF Stack: msisdn-gateway-stage or msisdnstage1
    • ELB: msisdn-gateway-ELB-<SOME VALUE> or msisdnstage1-m-ELB-<SOME VALUE>
    • Currently one m3.medium instance, look for msisdn-gateway
  • OS
    • Scientific Linux release 6.4 (Carbon)
  • Files
    • /opt/aws
    • /opt/ec2
    • /opt/openresty
    • /opt/rh
    • /opt/stackdriver
    • /data/hekad
    • /data/msisdn-gateway
    • /etc/puppet/yaml/app, especially
      • msisdn_gateway.dev.yaml
      • msisdn_gateway.prod.yaml
      • msisdn_gateway.stage.yaml
      • msisdn_gateway.yaml
  • Processes
    • Look for stackdriver, python, circus, resty, nginx, node, heka
  • Logs
    • /media/ephemeral0/msisdn-gateway/msisdn-gateway_err.log
    • /media/ephemeral0/msisdn-gateway/msisdn-gateway_out.log
    • /media/ephemeral0/nginx/logs/default.access.log (not in use)
    • /media/ephemeral0/nginx/logs/default.error.log (not in use)
    • /media/ephemeral0/nginx/logs/msisdn-gateway.access.log
    • /media/ephemeral0/nginx/logs/msisdn-gateway.error.log
    • /var/log/circus.log
    • /var/log/hekad/msisdn_gateway.stderr.log
    • /var/log/hekad/msisdn_gateway.stdout.log
  • Configuration File
    • /data/msisdn-gateway/config/production.json
  • Quick Verifications
In the browser: https://msisdn.stage.mozaws.net

In the browser: https://msisdn.stage.mozaws.net/__heartbeat__
returns {"storage":true}

curl https://msisdn.stage.mozaws.net

curl -I https://msisdn.stage.mozaws.net

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)
  • AWS
    • This is in the new Dev IAM
    • This is one t2.small
    • Look for omxen.dev.mozaws.net
  • Access: SSH
  • OS
    • Amazon Linux AMI release 2014.03
  • Versions
    • TBD
  • Processes
    • Look for nginx, python, omxen
  • Files
    • /home/ec2-user/omxen
    • /opt/aws
  • Logs
    • /var/log/nginx
    • Use: sudo cat nginx/*.log, etc
  • Restarting
    • TBD
  • Quick Verifications
In the browser, http://omxen.dev.mozaws.net/
OMXEN SMS GATEWAY

curl omxen.dev.mozaws.net
OMXEN SMS GATEWAY

curl -I omxen.dev.mozaws.net


Server Configuration (loop-client & loop-server)

  • 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

  • Versions
    • rpm -qa | grep sentry
  • AWS
    • TBD
  • OS
    • Scientific Linux release 6.3
  • Files
    • /opt/sentry
  • Processes
    • root /usr/bin/python /usr/bin/circusd --log-output /var/log/circus.log --pidfile /var/run/
    • apache /opt/sentry/bin/python /opt/sentry/bin/sentry --config=/etc/sentry.d/sentry.shared.us-east-1.stage.mozaws.net.py start ud
  • Logs
    • /var/log
    • nothing in /media/ephemeral0
  • Heka
    • TBD
  • Quick Verifications
    • For now, just verify the service is running on the host: ps aux | grep sentry

QA Access via a Bastion Host

  • 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".
  • 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".

Monitoring

STAGE Environment

Production Environment

Loads V1 Services Cluster Environment

Dev Environment

  • AWS
    • CF Stack: ulfr-devstack-loop
    • ELB: ulfr-devstack-ELB-<some value>
    • One instance: search for "loop app server (ulfr-devstack-loop)"
    • CF Stack: bwong-msisdn-dev
    • ELB: bwong-msisdn-d-ELB-<some value>
    • One instance: search for "msisdn_gateway server (bwong-msisdn-dev)"
  • OS
    • TBD
  • Files
    • TBD
  • Processes
    • TBD
  • Logs
    • TBD
  • Heka
    • TBD
  • Quick Verifications
http://loop.dev.mozaws.net
Returns
{
 "name": "mozilla-loop-server",
 "description": "The Mozilla Loop (WebRTC App) server",
 "version": "0.7.0",
 "homepage": "https://github.com/mozilla-services/loop-server/",
 "endpoint": "http://loop.dev.mozaws.net",
 "fakeTokBox": false
}
or similar

http://loop.dev.mozaws.net/__heartbeat__
Returns
 {
 "storage": true,
 "provider": false
}
or similar
http://loop-webapp.dev.mozaws.net
Returns
    Loop
    Welcome to the Loop web client.

http://loop-webapp.dev.mozaws.net/__heartbeat__
Returns 404
http://msisdn.dev.mozaws.net
Returns
{
 "name": "mozilla-msisdn-gateway",
 "description": "The Mozilla MSISDN Gateway",
 "version": "0.3.0-DEV",
 "homepage": "https://github.com/mozilla-services/msisdn-gateway/",
 "endpoint": "https://msisdn.dev.mozaws.net"
}
or similar

http://msisdn.dev.mozaws.net/__heartbeat__
Returns
{
 "storage": true
}
or similar
https://msisdn-dev.stage.mozaws.net
Returns
{
 "name": "mozilla-msisdn-gateway",
 "description": "The Mozilla MSISDN Gateway",
 "version": "0.3.0-DEV",
 "homepage": "https://github.com/mozilla-services/msisdn-gateway/",
 "endpoint": "https://msisdn-dev.stage.mozaws.net"
}
or similar

https://msisdn-dev.stage.mozaws.net/__heartbeat__
Returns
{
 "storage": true
}
or similar

Reference

Wikis

Docs

Github Repos

Bugzilla