forked from IDR/idr.openmicroscopy.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeployment.html
54 lines (51 loc) · 4.09 KB
/
deployment.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
---
layout: idr
title: Deployment
---
<!-- begin marketing header -->
<div class="logo"><a href="index.html"><img src="{{ "/img/logos/logo-idr.svg" | prepend: site.baseurl }}?{{ site.time | date: '%s%N' }}" alt="IDR logo"/></a></div>
<header class="marketing-hero">
<div class="row homepage text-center">
<div class="medium-12 columns">
<h1 class="hero-main-header">Openstack and IDR Ansible Playbooks</h1>
<p class="hero-subheader small-10 medium-10 large-10 small-offset-1 medium-offset-1 large-offset-1">
The Image Data Resource (IDR) infrastructure is managed using <a href="https://www.ansible.com/">Ansible</a>. This includes provisioning virtual resources on an <a href="https://www.openstack.org/">OpenStack</a> cloud at <a href="https://www.ebi.ac.uk/">EMBL-EBI</a>.
</p>
<p class="hero-subheader small-10 medium-10 large-10 small-offset-1 medium-offset-1 large-offset-1">
Any queries should be sent to the <a href="http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel/">[email protected] mailing list</a>
</p>
</div>
</div>
</header>
<!-- begin Background section -->
<hr class="whitespace">
<div class="row column text-center">
<h2>Servers</h2>
</div>
<hr>
<div class="row">
<div class="small-10 small-centered medium-10 medium-centered columns">
<div class="row horizontal">
<div>
<p>The main <a href="/webclient/userdata/?experimenter=-1">production IDR</a> consists of three servers:</p>
<ul>
<li>Database: A dedicated <a href="https://www.postgresql.org/">PostgreSQL</a> server.</li>
<li>OMERO: <a href="https://www.openmicroscopy.org/">OMERO.server and OMERO.web</a> with a highly customised configuration optimised for the data access patterns of the IDR.</li>
<li>Web proxy: Front-end <a href="https://nginx.org/">Nginx</a> proxy that mediates all public access to the IDR. It incorporates an aggressive caching configuration to reduce the load on OMERO.</li>
</ul>
<p>In addition to the production IDR we also have a virtual analysis platform based around
<a href="https://github.com/jupyterhub/jupyterhub">JupyterHub</a> and
<a href="https://docs.docker.com/engine/swarm/">Docker Swarm</a>.
This uses a separate copy of the IDR to ensure that heavy access loads resulting from analysis workflows do not have a detrimental impact on the production server, and requires three or more servers:</p>
<ul>
<li>Database</li>
<li>OMERO: API access only, OMERO.web is currently installed by default but is not required</li>
<li>Docker manager: The central controlling node for a Docker Swarm running JupyterHub.</li>
<li>Docker workers: In addition to the Docker manager zero or more Docker workers can be included in the analysis platform. If multiple users are logged on to JupyterHub they should be automatically spread amongst all Docker servers.</li>
</ul>
<p>The <a href="https://github.com/IDR/deployment/">IDR deployment GitHub repository</a> contains Ansible playbooks and full instructions for <a href="https://github.com/IDR/deployment/blob/master/docs/provisioning.md">provisioning resources</a> and <a href="https://github.com/IDR/deployment/blob/master/docs/deployment.md">deploying the IDR</a>, as well as our <a href="https://github.com/IDR/deployment/blob/master/docs/operating-procedures.md">internal operating procedures</a>.</p>
</div>
</div>
</div>
</div>
<!-- end Background section -->