summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Lambert <joshua@gitlab.com>2019-04-27 23:01:33 -0400
committerJoshua Lambert <joshua@gitlab.com>2019-04-27 23:01:33 -0400
commitb3c09a60aa3f03fecf545b165a4aabf4c0c055d5 (patch)
tree873891e81679e0d5feb2e5c3998508e541028a44
parent26923d39ca4631e6acbc351294bbefa42d6950c5 (diff)
downloadgitlab-ce-b3c09a60aa3f03fecf545b165a4aabf4c0c055d5.tar.gz
Add additional components
-rw-r--r--doc/development/architecture.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/doc/development/architecture.md b/doc/development/architecture.md
index bd2e4f5e37c..1b06db5766f 100644
--- a/doc/development/architecture.md
+++ b/doc/development/architecture.md
@@ -212,9 +212,11 @@ To serve repositories over SSH there's an add-on application called gitlab-shell
```mermaid
graph TB
+
+ HTTP(HTTP/HTTPS) -- TCP 80, 443 --> NGINX
+ SSH((SSH)) --TCP 22 --> GitLabShell(GitLab Shell)
+
subgraph Omnibus GitLab EE
- SSH((SSH)) --TCP 22 --> GitLabShell(GitLab Shell)
- HTTP(HTTP/HTTPS) -- TCP 80, 443 --> NGINX
GitLabShell --TCP 8080 -->Unicorn("Unicorn (GitLab Rails)")
GitLabShell --> Gitaly
GitLabShell --> Redis
@@ -251,14 +253,19 @@ graph TB
Unicorn --> Registry
end
+ HTTPK8s(HTTP/HTTPS) -- TCP 80, 443 --> LoadBalancerK8s(Load Balancer)
+ LoadBalancerK8s -- TCP 80, 443 --> nginx-ingressK8s
subgraph Kubernetes
PrometheusK8s(Prometheus)
TillerK8s(Tiller)
nginx-ingressK8s(NGINX Ingress)
Cert-ManagerK8s(Cert-Manager)
GitLabRunnerK8s(GitLab Runner)
+ GitLabRunnerK8s --> NGINX
JupyterHubK8s(JupyterHub)
+ nginx-ingressK8s --> JupyterHubK8s
KnativeK8s(Knative)
+ Istio
end
Unicorn -- TCP 9200 --> ElasticSearch
Sidekiq -- TCP 9200 --> ElasticSearch
@@ -273,6 +280,8 @@ class Cert-ManagerK8s defaultoff
class GitLabRunnerK8s defaultoff
class JupyterHubK8s defaultoff
class KnativeK8s defaultoff
+class HTTPK8s defaultoff
+class LoadBalancerK8s defaultoff
```
A typical install of GitLab will be on GNU/Linux. It uses Nginx or Apache as a web front end to proxypass the Unicorn web server. By default, communication between Unicorn and the front end is via a Unix domain socket but forwarding requests via TCP is also supported. The web front end accesses `/home/git/gitlab/public` bypassing the Unicorn server to serve static pages, uploads (e.g. avatar images or attachments), and precompiled assets. GitLab serves web pages and a [GitLab API](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/api) using the Unicorn web server. It uses Sidekiq as a job queue which, in turn, uses redis as a non-persistent database backend for job information, meta data, and incoming jobs.