Use "Nomulus" name in documentation

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135509458
This commit is contained in:
mcilwain 2016-07-30 13:17:47 -04:00 committed by Ben McIlwain
parent 86d8f35f79
commit f9fe25f00a
9 changed files with 56 additions and 54 deletions

View file

@ -2,7 +2,7 @@
Nomulus includes a command-line registry administration tool that is invoked Nomulus includes a command-line registry administration tool that is invoked
using the `nomulus` command. It has the ability to view and change a large using the `nomulus` command. It has the ability to view and change a large
number of things in a running domain registry environment, including creating number of things in a running Nomulus environment, including creating
registrars, updating premium and reserved lists, running an EPP command from a registrars, updating premium and reserved lists, running an EPP command from a
given XML file, and performing various backend tasks like re-running RDE if the given XML file, and performing various backend tasks like re-running RDE if the
most recent export failed. Its code lives inside the tools package most recent export failed. Its code lives inside the tools package

View file

@ -1,11 +1,13 @@
# App Engine architecture # App Engine architecture
This document contains information on the overall architecture of the Domain This document contains information on the overall architecture of Nomulus as
Registry project as it is implemented in App Engine. pertains to App Engine.
[TOC]
## Services ## Services
The Domain Registry contains three Nomulus contains three
[services](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [services](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine),
which were previously called modules in earlier versions of App Engine. The which were previously called modules in earlier versions of App Engine. The
services are: default (also called front-end), backend, and tools. Each service services are: default (also called front-end), backend, and tools. Each service
@ -88,10 +90,10 @@ tasks to push queues at regularly scheduled intervals, and the [MapReduce
framework](https://cloud.google.com/appengine/docs/java/dataprocessing/) adds framework](https://cloud.google.com/appengine/docs/java/dataprocessing/) adds
tasks for each phase of the MapReduce algorithm. tasks for each phase of the MapReduce algorithm.
The Domain Registry project uses a particular pattern of paired push/pull queues Nomulus uses a particular pattern of paired push/pull queues that is worth
that is worth explaining in detail. Push queues are essential because App explaining in detail. Push queues are essential because App Engine's
Engine's architecture does not support long-running background processes, and so architecture does not support long-running background processes, and so push
push queues are thus the fundamental building block that allows asynchronous and queues are thus the fundamental building block that allows asynchronous and
background execution of code that is not in response to incoming web requests. background execution of code that is not in response to incoming web requests.
However, they also have limitations in that they do not allow batch processing However, they also have limitations in that they do not allow batch processing
or grouping. That's where the pull queue comes in. Regularly scheduled tasks in or grouping. That's where the pull queue comes in. Regularly scheduled tasks in
@ -99,12 +101,12 @@ the push queue will, upon execution, poll the corresponding pull queue for a
specified number of tasks and execute them in a batch. This allows the code to specified number of tasks and execute them in a batch. This allows the code to
execute in the background while taking advantage of batch processing. execute in the background while taking advantage of batch processing.
Particulars on the task queues in use by the Domain Registry project are The task queues used by Nomulus are configured in the `queue.xml` file. Note
specified in the `queue.xml` file. Note that many push queues have a direct that many push queues have a direct one-to-one correspondence with entries in
one-to-one correspondence with entries in `cron.xml` because they need to be `cron.xml` because they need to be fanned-out on a per-TLD or other basis (see
fanned-out on a per-TLD or other basis (see the Cron section below for more the Cron section below for more explanation). The exact queue that a given cron
explanation). The exact queue that a given cron task will use is passed as the task will use is passed as the query string parameter "queue" in the url
query string parameter "queue" in the url specification for the cron task. specification for the cron task.
Here are the task queues in use by the system. All are push queues unless Here are the task queues in use by the system. All are push queues unless
explicitly marked as otherwise. explicitly marked as otherwise.
@ -159,9 +161,9 @@ explicitly marked as otherwise.
* `load[0-9]` -- Queues used to load-test the system by `LoadTestAction`. * `load[0-9]` -- Queues used to load-test the system by `LoadTestAction`.
These queues don't need to exist except when actively running load tests These queues don't need to exist except when actively running load tests
(which is not recommended on production environments). There are ten of (which is not recommended on production environments). There are ten of
these queues to provide simple sharding, because the Domain Registry system these queues to provide simple sharding, because Nomulus is capable of
is capable of handling significantly more Queries Per Second than the handling significantly more Queries Per Second than the highest throttle
highest throttle limit available on task queues (which is 500 qps). limit available on task queues (which is 500 qps).
* `lordn-claims` and `lordn-sunrise` -- Pull queues for handling LORDN * `lordn-claims` and `lordn-sunrise` -- Pull queues for handling LORDN
exports. Tasks are enqueued synchronously during EPP commands depending on exports. Tasks are enqueued synchronously during EPP commands depending on
whether the domain name in question has a claims notice ID. whether the domain name in question has a claims notice ID.
@ -184,10 +186,10 @@ explicitly marked as otherwise.
## Environments ## Environments
The domain registry codebase comes pre-configured with support for a number of Nomulus comes pre-configured with support for a number of different
different environments, all of which are used in Google's registry system. Other environments, all of which are used in Google's registry system. Other registry
registry operators may choose to user more or fewer environments, depending on operators may choose to user more or fewer environments, depending on their
their needs. needs.
The different environments are specified in `RegistryEnvironment`. Most The different environments are specified in `RegistryEnvironment`. Most
correspond to a separate App Engine app except for `UNITTEST` and `LOCAL`, which correspond to a separate App Engine app except for `UNITTEST` and `LOCAL`, which
@ -202,8 +204,8 @@ The full list of environments supported out-of-the-box, in descending order from
real to not, is: real to not, is:
* `PRODUCTION` -- The real production environment that is actually running * `PRODUCTION` -- The real production environment that is actually running
live TLDs. Since the Domain Registry is a shared registry platform, there live TLDs. Since Nomulus is a shared registry platform, there need only ever
need only ever be one of these. be one of these.
* `SANDBOX` -- A playground environment for external users to test commands in * `SANDBOX` -- A playground environment for external users to test commands in
without the possibility of affecting production data. This is the without the possibility of affecting production data. This is the
environment new registrars go through environment new registrars go through
@ -287,7 +289,7 @@ cron.xml is:
## Cloud Datastore ## Cloud Datastore
The Domain Registry platform uses [Cloud Nomulus uses [Cloud
Datastore](https://cloud.google.com/appengine/docs/java/datastore/) as its Datastore](https://cloud.google.com/appengine/docs/java/datastore/) as its
primary database. Cloud Datastore is a NoSQL document database that provides primary database. Cloud Datastore is a NoSQL document database that provides
automatic horizontal scaling, high performance, and high availability. All automatic horizontal scaling, high performance, and high availability. All
@ -388,15 +390,14 @@ registry codebase:
## Cloud Storage buckets ## Cloud Storage buckets
The Domain Registry platform uses [Cloud Nomulus uses [Cloud Storage](https://cloud.google.com/storage/) for bulk storage
Storage](https://cloud.google.com/storage/) for bulk storage of large flat files of large flat files that aren't suitable for Datastore. These files include
that aren't suitable for Datastore. These files include backups, RDE exports, backups, RDE exports, Datastore snapshots (for ingestion into BigQuery), and
Datastore snapshots (for ingestion into BigQuery), and reports. Each bucket name reports. Each bucket name must be unique across all of Google Cloud Storage, so
must be unique across all of Google Cloud Storage, so we use the common we use the common recommended pattern of prefixing all buckets with the name of
recommended pattern of prefixing all buckets with the name of the App Engine app the App Engine app (which is itself globally unique). Most of the bucket names
(which is itself globally unique). Most of the bucket names are configurable, are configurable, but the defaults are as follows, with PROJECT standing in as a
but the defaults are as follows, with PROJECT standing in as a placeholder for placeholder for the App Engine app name:
the App Engine app name:
* `PROJECT-billing` -- Monthly invoice files for each registrar. * `PROJECT-billing` -- Monthly invoice files for each registrar.
* `PROJECT-commits` -- Daily exports of commit logs that are needed for * `PROJECT-commits` -- Daily exports of commit logs that are needed for

View file

@ -3,6 +3,8 @@
This document contains information on the overall structure of the code, and how This document contains information on the overall structure of the code, and how
particularly important pieces of the system are implemented. particularly important pieces of the system are implemented.
[TOC]
## Dagger dependency injection ## Dagger dependency injection
## Bazel build system ## Bazel build system

View file

@ -30,15 +30,14 @@ different values for different environments. This is especially pronounced in
the `UNITTEST` and `LOCAL` environments, which don't run on App Engine at all. the `UNITTEST` and `LOCAL` environments, which don't run on App Engine at all.
As an example, some timeouts may be long in production and short in unit tests. As an example, some timeouts may be long in production and short in unit tests.
See the "App Engine architecture" documentation for more details on environments See the [App Engine architecture](./app-engine-architecture.md) documentation
as used in the domain registry. for more details on environments as used by Nomulus.
## App Engine configuration ## App Engine configuration
App Engine configuration isn't covered in depth in this document as it is App Engine configuration isn't covered in depth in this document as it is
thoroughly documented in the [App Engine configuration docs][app-engine-config]. thoroughly documented in the [App Engine configuration docs][app-engine-config].
The main files of note that come pre-configured along with the domain registry The main files of note that come pre-configured in Nomulus are:
are:
* `cron.xml` -- Configuration of cronjobs * `cron.xml` -- Configuration of cronjobs
* `web.xml` -- Configuration of URL paths on the webserver * `web.xml` -- Configuration of URL paths on the webserver
@ -72,8 +71,8 @@ provides the instance of `RegistryConfig`, and defaults to returning
In order to create a configuration specific to your registry, we recommend In order to create a configuration specific to your registry, we recommend
copying the `ProductionRegistryConfigExample` class to a new class that will not copying the `ProductionRegistryConfigExample` class to a new class that will not
be shared publicly, setting the `google.registry.config` system property in the be shared publicly, setting the `google.registry.config` system property in the
`appengine-web.xml` files to the fully qualified class name of that new class `appengine-web.xml` files to the fully qualified class name of that new class so
so that `RegistryConfigLoader` will load it instead, and then editing said new that `RegistryConfigLoader` will load it instead, and then editing said new
class to add your specific configuration options. There is one class to add your specific configuration options. There is one
`appengine-web.xml` file per service (so three per environment). The same `appengine-web.xml` file per service (so three per environment). The same
configuration class must be used for each service, but different ones can be configuration class must be used for each service, but different ones can be

View file

@ -8,11 +8,11 @@ including how to set up an IDE environment and run tests.
`RegistryTestServer` is a lightweight test server for the registry that is `RegistryTestServer` is a lightweight test server for the registry that is
suitable for running locally for development. It uses local versions of all suitable for running locally for development. It uses local versions of all
Google Cloud Platform dependencies, when available. Correspondingly, its Google Cloud Platform dependencies, when available. Correspondingly, its
functionality is limited compared to a Domain Registry instance running on an functionality is limited compared to a Nomulus instance running on an actual App
actual App Engine instance. It is most helpful for doing web UI development such Engine instance. It is most helpful for doing web UI development such as on the
as on the registrar console: it allows you to update JS, CSS, images, and other registrar console: it allows you to update JS, CSS, images, and other front-end
front-end resources, and see the changes instantly simply by refreshing the resources, and see the changes instantly simply by refreshing the relevant page
relevant page in your browser. in your browser.
To see the registry server's command-line parameters, run: To see the registry server's command-line parameters, run:

View file

@ -1,4 +1,4 @@
# Domain Registry EPP Command API Documentation # Nomulus EPP Command API Documentation
## ContactUpdateFlow ## ContactUpdateFlow

View file

@ -11,13 +11,13 @@ production registry system.
### Premium list file format ### Premium list file format
The default domain registry codebase comes with a Nomulus comes with a `StaticPremiumListPricingEngine` that determines premium
`StaticPremiumListPricingEngine` that determines premium prices of domain labels prices of domain labels (i.e. the part of the domain name without the TLD) by
(i.e. the part of the domain name without the TLD) by checking for their checking for their presence on a list of prices in Datastore. `nomulus` is used
presence on a list of prices in Datastore. `nomulus` is used to load and to load and update these lists from flat text files. The format of this list is
update these lists from flat text files. The format of this list is simple: It simple: It is a newline-delimited CSV text file with each line containing the
is a newline-delimited CSV text file with each line containing the label and its label and its price (including currency specifier in ISO-4217 format). As an
price (including currency specifier in ISO-4217 format). As an example: example:
``` ```
premium,USD 100 premium,USD 100

View file

@ -187,7 +187,7 @@ public final class ProductionRegistryConfigExample implements RegistryConfig {
@Override @Override
public String getDocumentationProjectTitle() { public String getDocumentationProjectTitle() {
return "Domain Registry"; return "Nomulus";
} }
@Override @Override

View file

@ -134,7 +134,7 @@ public class TestRegistryConfig implements RegistryConfig {
@Override @Override
public String getDocumentationProjectTitle() { public String getDocumentationProjectTitle() {
return "Domain Registry"; return "Nomulus";
} }
@Override @Override