mirror of
https://github.com/google/nomulus.git
synced 2025-04-30 03:57:51 +02:00
Use "Nomulus" name in documentation
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=135509458
This commit is contained in:
parent
86d8f35f79
commit
f9fe25f00a
9 changed files with 56 additions and 54 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Domain Registry EPP Command API Documentation
|
# Nomulus EPP Command API Documentation
|
||||||
|
|
||||||
## ContactUpdateFlow
|
## ContactUpdateFlow
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class TestRegistryConfig implements RegistryConfig {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDocumentationProjectTitle() {
|
public String getDocumentationProjectTitle() {
|
||||||
return "Domain Registry";
|
return "Nomulus";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Add table
Reference in a new issue