Commit a87c16ed authored by Ludvig Bohlin's avatar Ludvig Bohlin

Fixed headings

parent 5866455e
Pipeline #9621 passed with stage
in 58 seconds
#What is ShimmerCat QS?
# What is ShimmerCat QS?
*ShimmerCat QS* is a specially optimized HTTP/2 web-server.
We use the QS suffix to talk specifically of the web server software and
......@@ -24,7 +24,7 @@ development tool.
The standalone version of ShimmerCat can be downloaded [from here](https://storage.googleapis.com/downloads-shimmercat-com-561059/qs/shimmercat-x64-qs-latest.tar.gz).
##Server Architecture
## Server Architecture
ShimmerCat QS is a well-integrated, mostly monolithic program written in Haskell
with two user-facing running modes:
......@@ -37,13 +37,13 @@ to write compressed logs and manage instance-wide locks for the assets cache.
Our distributions of ShimmerCat already come with Redis, and unless instructed otherwise,
ShimmerCat can start and manage the Redis server on its own.
###Runtime disposition
### Runtime disposition
In devlove mode, ShimmerCat is just a single process that serves the requests.
Internet mode is explained below and is slightly more complicated.
####Worker lanes
#### Worker lanes
In Internet mode, ShimmerCat uses a `master` process to help coordinate `workers`.
Workers are the ones actually handling web traffic, and the amount of concurrent
......@@ -68,7 +68,7 @@ worker on that lane.
The number of worker lanes can be adjusted using the `--worker-count` option.
####Worker cycling
#### Worker cycling
During normal operation, the active worker on each lane will live for a random
amount of time decided at startup and
......@@ -81,7 +81,7 @@ Normal worker cycling *does not* reload the configuration, but ShimmerCat has
a special cycling operation that *does* reload the configuration, triggered by
`SIGHUP`, see below.
###Unix signals
### Unix signals
ShimmerCat writes a file `master.pid` in the [scratch folder](/explanation/shimmercat_qs/scratch_folder) with the PID of the
master process.
......@@ -105,7 +105,7 @@ killed with `SIGKILL`, so that the workers also exit without being prompted
by their controller.
###Filesystem access
### Filesystem access
In both modes, ShimmerCat QS uses a so-called "paths context", which is
a small set of root paths referencing for example ShimmerCat's working directory
......@@ -126,7 +126,7 @@ Due to path isolation, it is very easy to run multiple instances of ShimmerCat s
using a distinct configuration and a different set of files
###Cache architecture and changelists
### Cache architecture and changelists
Internally, ShimmerCat classify resources to be served in three types.
The first two are "static" (e.g. a Javascript file) and "dynamic" (e.g., dynamically
......@@ -152,7 +152,7 @@ In practice, those lists of changes
must be created by a
[different program](/explanation/accelerator/changelist_agent/).
##How ShimmerCat QS is tested
## How ShimmerCat QS is tested
Although there never is perfect testing, a good test suite is fundamental for a software enterprise.
ShimmerCat QS uses three automated testing mechanisms:
......@@ -172,7 +172,7 @@ We don't have a long release cycle, and instead rely in the following policies:
- Big changes in ShimmerCat need to pass all the automatic tests and be tested by hand,
both locally *and* on production websites.
##Logging and Telemetry
## Logging and Telemetry
ShimmerCat [emits logs in a binary format](/explanation/shimmercat_qs/logging) via
Redis, and to stdout.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment