TestEngineering/Services/LoopTestEnvironments

From MozillaWiki
Jump to navigation Jump to search

Loop Server Production Environments

  • Monitoring
    • NOTE: TBD
  • QA Access: not allowed
  • Pointing Fx Nightly to Production
    • NOTE: Fx Nightly is already set to point to Production by default
    • Loop-Server - TBD
    • MSISDN Gateway - TBD
  • Quick Verifications
curl https://loop.services.mozilla.com
should return something similar to this
{"name":"mozilla-loop-server","description":"The Mozilla Loop (WebRTC App) server","version":"0.4.0-DEV",
"homepage":"https://github.com/mozilla-services/loop-server/","endpoint":"http://loop.services.mozilla.com"}
curl -I https://loop.services.mozilla.com
should return something similar to this
    HTTP/1.1 200 OK
    Content-length: 210
    Content-Type: application/json; charset=utf-8
    Date: Mon, 16 Jun 2014 20:04:58 GMT
    ETag: W/"d2-2131342919"
    Server: nginx/1.6.0
    Timestamp: 1402949098207
    Connection: keep-alive
curl https://call.services.mozilla.com/
returns a page of HTML
curl -I https://call.services.mozilla.com/
should return something similar to this
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Content-length: 1935
    Content-Type: text/html
    Date: Sat, 07 Jun 2014 01:20:49 GMT
    ETag: "539220d7-78f"
    Last-Modified: Fri, 06 Jun 2014 20:13:11 GMT
    Server: nginx/1.6.0
    Connection: keep-alive

Loop Server Stage Environment

Loop Server Stage Details

  • Versions
    • TBD
  • AWS
    • CF stack: loop-server-stage (or similar name)
    • ELB: loop-server-st-ELB-<some value>
    • One instance: look for "loop-server app server"
  • OS
    • Running SciLinux 6.4
  • Files
    • /data/loop-server
    • /data/hekad
    • /etc/circus.ini
    • /etc/circus.d
    • /etc/circus.d/loopserver.ini
    • /etc/circus.d/hekad-loop.ini
    • /etc/puppet/*
    • /var/log/*
  • Processes
    • node loop/index.js
    • stackdriver-collectd
    • circusd
    • heka.d
    • nginx
  • Logs
    • /var/log/circus.log
    • /var/log/loop_err.log
    • /var/log/loop_out.log
    • /var/log/hekad/loop.stdout.log
    • /var/log/hekad/loop.stderr.log
    • /var/log/nginx/access.log
    • /var/log/nginx/error.log
  • Heka
    • heka.d
    • /var/log/hekad/loop.stdout.log
    • /var/log/hekad/loop.stderr.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
should return something similar to this
{"name":"mozilla-loop-server","description":"The Mozilla Loop (WebRTC App) server","version":"0.6.0-DEV",
"homepage":"https://github.com/mozilla-services/loop-server/","endpoint":"http://loop.stage.mozaws.net"}
curl -I https://loop.stage.mozaws.net
should return something similar to this
    HTTP/1.1 200 OK
    Content-length: 209
    Content-Type: application/json; charset=utf-8
    Date: Wed, 11 Jun 2014 23:01:11 GMT
    ETag: W/"d1-3663081557"
    Server: nginx/1.6.0
    Timestamp: 1402527671972
    Connection: keep-alive
In the browser: https://loop.stage.mozaws.net/
should return something similar to this
{"name":"mozilla-loop-server","description":"The Mozilla Loop (WebRTC App) server","version":"0.6.0-DEV",
"homepage":"https://github.com/mozilla-services/loop-server/","endpoint":"http://loop.stage.mozaws.net"}

Loop Client Stage Details

  • Versions
    • TBD
  • AWS
    • CF Stack: loop-client-stage2
    • ELB: loop-client-st-ELB-<some value>
    • One instance: look for "loop-client app server"
  • OS
    • Scientific Linux release 6.4
  • Files
    • /opt/aws
    • /opt/ec2
    • /opt/rh
    • /opt/stackdriver
    • /data/loop-client
  • Processes
    • TBD
  • Logs
    • /var/log/nginx
    • /media/ephemeral0 (empty)
  • Heka
    • TBD
  • Quick Verifications
In the browser: https://call.stage.mozaws.net
Should see this
    Loop
    Welcome to the Loop web client.
curl https://call.stage.mozaws.net
Returns a bunch of HTML
curl -I https://call.stage.mozaws.net
should return something similar to this
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Content-length: 1935
    Content-Type: text/html
    Date: Wed, 11 Jun 2014 22:24:19 GMT
    ETag: "539220d7-78f"
    Last-Modified: Fri, 06 Jun 2014 20:13:11 GMT
    Server: nginx/1.6.0
    Connection: keep-alive
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://https://loop.stage.mozaws.net'};

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.
  • Versions
    • TBD
  • 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
    • Scientific Linux release 6.4
  • 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
  • Heka
    • TBD
  • Quick Verifications
In the browser: https://loop-delayed-response.stage.mozaws.net
Returns:
ok

MSISDN Gateway Server Stage Details

  • Versions
    • TBD
  • AWS
    • TBD
  • OS
    • TBD
  • Files
    • TBD
  • Processes
    • TBD
  • Logs
    • TBD
  • Heka
    • TBD
  • Quick Verifications
TBD

Sentry Server Stage Details

  • Versions
    • TBD
  • AWS
    • TBD
  • OS
    • TBD
  • 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
TBD

QA Access via a Bastion Host

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

Stage Monitoring

  • Getting access to Sentry Stage - talk to the OPs team

Prod Monitoring

  • Getting access to Sentry Prod - talk to the OPs team

Loads Services Cluster Environment

  • Versions
Loads Cluster/Broker/Agents:
$ cd /home/ubuntu/loads/bin
$ ./loads-runner --version
  • AWS in US West
    • loads-master (broker and agent processes)
    • loads-slave-1 (agent processes)
    • loads-slave-2 (agent processes)
    • NOTE: there is no stack or ELB for this cluster
  • Files
    • /home/ubuntu
      • loads
      • loads-aws
      • loads-web
  • Processes
    • Search for processes owned by ubuntu, loads, nginx, circus
  • Logs
    • /var/log/redis
    • /var/log/nginx
  • QA access
    • You need special access to be able to SSH into these devices
    • You need to make some changes to your .ssh/config file
  • Monitoring
  • Cluster status
    • Check directly from the Loads Cluster dashboard:
Agents statuses
Launch a health check on all agents

Dev Environment

  • Versions
    • TBD
  • AWS
    • CF Stack: bwong-loop-server (or similar)
    • ELB: bwong-loop-ser-ELB-<some value>
    • One instance: search for "loop app server (bwong-loop-server)"
  • OS
    • TBD
  • Files
    • TBD
  • Processes
    • TBD
  • Logs
    • TBD
  • Heka
    • TBD
  • Quick Verifications
curl http://loop.dev.mozaws.net/
{
 "name": "mozilla-loop-server",
 "description": "The Mozilla Loop (WebRTC App) server",
 "version": "0.3.0-dev",
 "homepage": "https://github.com/mozilla-services/loop-server/",
 "endpoint": "http://loop.dev.mozaws.net"
}
or similar
curl http://msisdn.dev.mozaws.net/
{
 "name": "mozilla-msisdn-gateway",
 "description": "The Mozilla MSISDN Gateway",
 "version": "0.1.0-dev",
 "homepage": "https://github.com/mozilla-services/msisdn-gateway/",
 "endpoint": "http://msisdn.dev.mozaws.net"
}
or similar

References

OPs Mana and GitHub Pages