ReleaseEngineering/Applications: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(removing obsolete applications)
 
(28 intermediate revisions by 10 users not shown)
Line 1: Line 1:
= RelEng App Store =
This page is an incomplete attempt to categorize all of the applications (or systems, or infrastructures, or whatever you'd like to call them) installed and in use by release engineering.
== build masters ==
we have lots!


canonical list is supposed to be http://hg.mozilla.org/build/tools/raw-file/default/buildfarm/maintenance/production-masters.json
= App Store =
* [[ReleaseEngineering/Applications/Ship It]]
* [[ReleaseEngineering/Applications/Tooltool]]
* [[ReleaseEngineering/Applications/RelengAPI]]
* [[Balrog]]


source for buildbot is at http://hg.mozilla.org/build/buildbot/
= What the heck? =
We're not quite sure yet what these pages should contain.  Here are some questions that should be answered for each application:


== clobberer ==
== Deployment Questions ==
https://build.mozilla.org/clobberer/ and https://build.mozilla.org/stage-clobberer
 
Source is at http://hg.mozilla.org/build/tools/file/default/clobberer
 
DB is a sqlite file local to the web server
 
== buildapi ==
includes self-serve, wait time reports, pending/running
 
=== Source Code ===
http://hg.mozilla.org/build/buildapi
 
=== Public Interfaces ===
https://build.mozilla.org/buildapi
 
=== Current Setup ===
production instance is running on cruncher.b.m.o out of
~catlee/buildapi-official. There is a cron job that checks for new changes
every 5 minutes and deploys them. This instance is exposed to the public
behind LDAP auth via the build.m.o url.
 
The buildapi instance communicates with a rabbitmq server also running on
cruncher. It also connects to two read-only databases (schedulerdb, statusdb)
on a slave mysql host maintained by IT.
 
The self-serve agent, which is responsible for performing many of the job
requests, is running on production-master03 out of ~cltbld/buildapi. It is a
long-running process that waits for messages from the rabbitmq server on
cruncer, and then makes various DB modifications or pokes at masters' web
interfaces. The self-serve agent is started via init, and monitored via
nagios.
 
To modify the list of branches supported by buildapi and self-serve, read [[ReleaseEngineering/BuildAPI#Maintenance]]
 
=== Setup Instructions ===
Described at [[ReleaseEngineering/BuildAPI]]
 
== slavealloc ==
See [[User:Djmitche/Slave Allocator Proposal]] for now.
 
== regression detection ==
code is http://hg.mozilla.org/graphs/file/9c02347596b4/server/analysis
 
runs on cruncher via cronjob under catlee's account from ~/graphs/server/analysis
 
=deployment questions=
* what languages are needed and their version
* what languages are needed and their version
** if python, what python modules - can they be run in a virtualenv
** if python, what python modules - can they be run in a virtualenv
Line 60: Line 17:
* what is the command line parameters to start the web service
* what is the command line parameters to start the web service
* does it have any special configuration or init files
* does it have any special configuration or init files
** How are those backed up?
* does it require root or sudo
* does it require root or sudo
* does it require a special directory layout
* does it require a special directory layout
* will it generate/use temp files or non-database assets?
* will it generate/use temp files or non-database assets?
** which of those need to be backed up?
** how is that done?
* what version of mysql and what database config, where is the sql to init the tables
* what version of mysql and what database config, where is the sql to init the tables
** what is the backup strategy?
* does memcached have a min/max memory? which processes read/write to it - can it be on different IP
* does memcached have a min/max memory? which processes read/write to it - can it be on different IP
* what ports will be opened for listening
* what ports will be opened for listening
Line 69: Line 30:
* if outside services are utilized, what is that list
* if outside services are utilized, what is that list


=maintenance questions=
== Maintenance Questions ==
* what are common issues we run into, and how to debug?
* what are common issues we run into, and how to debug?
** place in buildduty docs?
** place in buildduty docs?
* where is the code/schema for hacking/reading?
* where is the code/schema for hacking/reading?
* are there special passwords/accounts/acl's, and what are they? (not in public docs)
* are there special passwords/accounts/acl's, and what are they? (not in public docs)

Latest revision as of 21:50, 19 November 2018

This page is an incomplete attempt to categorize all of the applications (or systems, or infrastructures, or whatever you'd like to call them) installed and in use by release engineering.

App Store

What the heck?

We're not quite sure yet what these pages should contain. Here are some questions that should be answered for each application:

Deployment Questions

  • what languages are needed and their version
    • if python, what python modules - can they be run in a virtualenv
    • if perl, what cpan modules are needed
    • if php, what php version and what php.ini entries are needed
  • what is the command line parameters to start the web service
  • does it have any special configuration or init files
    • How are those backed up?
  • does it require root or sudo
  • does it require a special directory layout
  • will it generate/use temp files or non-database assets?
    • which of those need to be backed up?
    • how is that done?
  • what version of mysql and what database config, where is the sql to init the tables
    • what is the backup strategy?
  • does memcached have a min/max memory? which processes read/write to it - can it be on different IP
  • what ports will be opened for listening
  • cronjobs that need to be run
  • if outside services are utilized, what is that list

Maintenance Questions

  • what are common issues we run into, and how to debug?
    • place in buildduty docs?
  • where is the code/schema for hacking/reading?
  • are there special passwords/accounts/acl's, and what are they? (not in public docs)