++djangohosting
This commit is contained in:
parent
2b9240fe1e
commit
e865eb9002
3 changed files with 170 additions and 6 deletions
|
@ -25,21 +25,38 @@ feature3_text: Because our Django hosting runs inside
|
||||||
[Data Center Light](/u/projects/data-center-light), you can run your
|
[Data Center Light](/u/projects/data-center-light), you can run your
|
||||||
application with a good conscience and without emitting extra carbon.
|
application with a good conscience and without emitting extra carbon.
|
||||||
|
|
||||||
|
---
|
||||||
|
content1_text:
|
||||||
|
## Development flow
|
||||||
|
|
||||||
|
The below diagram gives an overview of a typical development flow with
|
||||||
|
our Django hosting:
|
||||||
|
|
||||||
|
---
|
||||||
|
content1_image: djangohosting.svg
|
||||||
---
|
---
|
||||||
description2:
|
description2:
|
||||||
|
|
||||||
## How it works
|
## How it works
|
||||||
|
|
||||||
The below diagram gives an overview of how our Django hosting is
|
## Components
|
||||||
structured:
|
|
||||||
|
|
||||||
![](djangohosting.png)
|
Our Django hosting consists of 1-2 virtual machines and an optional
|
||||||
|
backup. Our customers often start with a development system
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
We strongly recommend to develop Django (like any other application)
|
We strongly recommend to develop Django (like any other application)
|
||||||
with a version control system, even if you are just a single
|
with a version control system, even if you are just a single
|
||||||
developer. You can even use the [ungleich code
|
developer. You can even use the [ungleich code
|
||||||
repository](https://code.ungleich.ch) for free
|
repository](https://code.ungleich.ch) for free
|
||||||
(you only need to [register an account] create an account
|
(you only need to [register an account](https://account.ungleich.ch)).
|
||||||
on
|
|
||||||
|
|
||||||
|
## Pricing
|
||||||
|
|
||||||
|
* Setup fee is 35 CHF
|
||||||
|
* Monthly fee is 20 CHF + price of the VM
|
||||||
|
* Typical development VM: 1 cores, 2 GB RAM, 10 GB SSD
|
||||||
|
* Typical small prod VM: 2 cores, 4 GB RAM, 20 GB SSD
|
||||||
|
* Typical default prod VM: 4 cores, 8 GB RAM, 50 GB SSD
|
||||||
|
* All VMs can be extended with extra HDD space
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 72 KiB |
147
content/u/products/django-hosting/djangohosting.svg
Normal file
147
content/u/products/django-hosting/djangohosting.svg
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.42.3 (0)
|
||||||
|
-->
|
||||||
|
<!-- Title: G Pages: 1 -->
|
||||||
|
<svg width="760pt" height="443pt"
|
||||||
|
viewBox="0.00 0.00 760.00 443.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 439)">
|
||||||
|
<title>G</title>
|
||||||
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-439 756,-439 756,4 -4,4"/>
|
||||||
|
<g id="clust1" class="cluster">
|
||||||
|
<title>cluster_local</title>
|
||||||
|
<polygon fill="none" stroke="black" points="8,-281 8,-427 400,-427 400,-281 8,-281"/>
|
||||||
|
</g>
|
||||||
|
<g id="clust2" class="cluster">
|
||||||
|
<title>cluster_production_datacenter</title>
|
||||||
|
<polygon fill="none" stroke="black" points="109,-8 109,-248 642,-248 642,-8 109,-8"/>
|
||||||
|
<text text-anchor="middle" x="375.5" y="-232.8" font-family="Times,serif" font-size="14.00">First data center</text>
|
||||||
|
</g>
|
||||||
|
<g id="clust3" class="cluster">
|
||||||
|
<title>cluster_production</title>
|
||||||
|
<polygon fill="none" stroke="black" points="117,-16 117,-217 459,-217 459,-16 117,-16"/>
|
||||||
|
<text text-anchor="middle" x="288" y="-201.8" font-family="Times,serif" font-size="14.00">Production environment</text>
|
||||||
|
</g>
|
||||||
|
<g id="clust4" class="cluster">
|
||||||
|
<title>cluster_staging</title>
|
||||||
|
<polygon fill="none" stroke="black" points="467,-17 467,-92 634,-92 634,-17 467,-17"/>
|
||||||
|
<text text-anchor="middle" x="550.5" y="-76.8" font-family="Times,serif" font-size="14.00">Staging environment</text>
|
||||||
|
</g>
|
||||||
|
<g id="clust5" class="cluster">
|
||||||
|
<title>cluster_offsite</title>
|
||||||
|
<polygon fill="none" stroke="black" points="408,-281 408,-356 708,-356 708,-281 408,-281"/>
|
||||||
|
<text text-anchor="middle" x="558" y="-340.8" font-family="Times,serif" font-size="14.00">Second data center</text>
|
||||||
|
</g>
|
||||||
|
<!-- editor -->
|
||||||
|
<g id="node1" class="node">
|
||||||
|
<title>editor</title>
|
||||||
|
<polygon fill="none" stroke="black" points="247.5,-419 146.5,-419 146.5,-383 247.5,-383 247.5,-419"/>
|
||||||
|
<text text-anchor="middle" x="197" y="-397.3" font-family="Times,serif" font-size="14.00">Local editor</text>
|
||||||
|
</g>
|
||||||
|
<!-- git -->
|
||||||
|
<g id="node2" class="node">
|
||||||
|
<title>git</title>
|
||||||
|
<polygon fill="none" stroke="black" points="182,-325 16,-325 16,-289 182,-289 182,-325"/>
|
||||||
|
<text text-anchor="middle" x="99" y="-303.3" font-family="Times,serif" font-size="14.00">Local version control</text>
|
||||||
|
</g>
|
||||||
|
<!-- editor->git -->
|
||||||
|
<g id="edge1" class="edge">
|
||||||
|
<title>editor->git</title>
|
||||||
|
<path fill="none" stroke="black" d="M178.57,-382.7C163.37,-368.43 141.65,-348.04 124.74,-332.16"/>
|
||||||
|
<polygon fill="black" stroke="black" points="127.04,-329.52 117.35,-325.23 122.25,-334.62 127.04,-329.52"/>
|
||||||
|
</g>
|
||||||
|
<!-- localweb -->
|
||||||
|
<g id="node3" class="node">
|
||||||
|
<title>localweb</title>
|
||||||
|
<polygon fill="none" stroke="black" points="391.5,-325 200.5,-325 200.5,-289 391.5,-289 391.5,-325"/>
|
||||||
|
<text text-anchor="middle" x="296" y="-303.3" font-family="Times,serif" font-size="14.00">Development webserver</text>
|
||||||
|
</g>
|
||||||
|
<!-- editor->localweb -->
|
||||||
|
<g id="edge3" class="edge">
|
||||||
|
<title>editor->localweb</title>
|
||||||
|
<path fill="none" stroke="black" d="M215.62,-382.7C230.97,-368.43 252.91,-348.04 270,-332.16"/>
|
||||||
|
<polygon fill="black" stroke="black" points="272.52,-334.6 277.46,-325.23 267.75,-329.47 272.52,-334.6"/>
|
||||||
|
</g>
|
||||||
|
<!-- repo -->
|
||||||
|
<g id="node5" class="node">
|
||||||
|
<title>repo</title>
|
||||||
|
<polygon fill="none" stroke="black" points="256.5,-186 125.5,-186 125.5,-148 256.5,-148 256.5,-186"/>
|
||||||
|
<text text-anchor="middle" x="191" y="-170.8" font-family="Times,serif" font-size="14.00">Code repository</text>
|
||||||
|
<text text-anchor="middle" x="191" y="-155.8" font-family="Times,serif" font-size="14.00">(f.i. git)</text>
|
||||||
|
</g>
|
||||||
|
<!-- git->repo -->
|
||||||
|
<g id="edge2" class="edge">
|
||||||
|
<title>git->repo</title>
|
||||||
|
<path fill="none" stroke="black" d="M110.47,-288.8C126.2,-265.2 154.64,-222.54 173.16,-194.75"/>
|
||||||
|
<polygon fill="black" stroke="black" points="176.17,-196.56 178.8,-186.3 170.34,-192.67 176.17,-196.56"/>
|
||||||
|
</g>
|
||||||
|
<!-- prodvm -->
|
||||||
|
<g id="node4" class="node">
|
||||||
|
<title>prodvm</title>
|
||||||
|
<polygon fill="none" stroke="black" points="398,-62 228,-62 228,-24 398,-24 398,-62"/>
|
||||||
|
<text text-anchor="middle" x="313" y="-46.8" font-family="Times,serif" font-size="14.00">Production Server</text>
|
||||||
|
<text text-anchor="middle" x="313" y="-31.8" font-family="Times,serif" font-size="14.00">uwsgi,nginx,postgres</text>
|
||||||
|
</g>
|
||||||
|
<!-- backupvm -->
|
||||||
|
<g id="node8" class="node">
|
||||||
|
<title>backupvm</title>
|
||||||
|
<polygon fill="none" stroke="black" points="699.5,-325 580.5,-325 580.5,-289 699.5,-289 699.5,-325"/>
|
||||||
|
<text text-anchor="middle" x="640" y="-303.3" font-family="Times,serif" font-size="14.00">Backup server</text>
|
||||||
|
</g>
|
||||||
|
<!-- prodvm->backupvm -->
|
||||||
|
<g id="edge6" class="edge">
|
||||||
|
<title>prodvm->backupvm</title>
|
||||||
|
<path fill="none" stroke="black" d="M358.83,-62.1C388.13,-72.81 427.22,-85.51 463,-92 480.84,-95.24 613.06,-87.3 626,-100 673.73,-146.84 659.33,-234.8 648.01,-279.08"/>
|
||||||
|
<polygon fill="black" stroke="black" points="644.6,-278.28 645.38,-288.84 651.36,-280.1 644.6,-278.28"/>
|
||||||
|
<text text-anchor="middle" x="705.5" y="-163.3" font-family="Times,serif" font-size="14.00">Daily backup</text>
|
||||||
|
</g>
|
||||||
|
<!-- repo->prodvm -->
|
||||||
|
<g id="edge4" class="edge">
|
||||||
|
<title>repo->prodvm</title>
|
||||||
|
<path fill="none" stroke="black" d="M167.56,-147.99C162.46,-142.8 157.77,-136.7 155,-130 149.9,-117.68 147.31,-110.89 155,-100 169.9,-78.91 193.45,-65.71 217.86,-57.47"/>
|
||||||
|
<polygon fill="black" stroke="black" points="219.1,-60.75 227.61,-54.44 217.03,-54.07 219.1,-60.75"/>
|
||||||
|
<text text-anchor="middle" x="228.5" y="-111.3" font-family="Times,serif" font-size="14.00">Deploy after staging</text>
|
||||||
|
</g>
|
||||||
|
<!-- stagingvm -->
|
||||||
|
<g id="node7" class="node">
|
||||||
|
<title>stagingvm</title>
|
||||||
|
<polygon fill="none" stroke="black" points="600.5,-61 475.5,-61 475.5,-25 600.5,-25 600.5,-61"/>
|
||||||
|
<text text-anchor="middle" x="538" y="-39.3" font-family="Times,serif" font-size="14.00">Staging Server</text>
|
||||||
|
</g>
|
||||||
|
<!-- repo->stagingvm -->
|
||||||
|
<g id="edge5" class="edge">
|
||||||
|
<title>repo->stagingvm</title>
|
||||||
|
<path fill="none" stroke="black" d="M256.74,-152.12C264.89,-150.62 273.12,-149.2 281,-148 356.55,-136.49 383.03,-162.91 452,-130 480.51,-116.4 505.08,-89.32 520.56,-69.16"/>
|
||||||
|
<polygon fill="black" stroke="black" points="523.47,-71.12 526.63,-61.01 517.85,-66.94 523.47,-71.12"/>
|
||||||
|
<text text-anchor="middle" x="567.5" y="-111.3" font-family="Times,serif" font-size="14.00">Pre prod deployment</text>
|
||||||
|
</g>
|
||||||
|
<!-- monitoring -->
|
||||||
|
<g id="node6" class="node">
|
||||||
|
<title>monitoring</title>
|
||||||
|
<polygon fill="none" stroke="black" points="436,-185 290,-185 290,-149 436,-149 436,-185"/>
|
||||||
|
<text text-anchor="middle" x="363" y="-163.3" font-family="Times,serif" font-size="14.00">Monitoring server</text>
|
||||||
|
</g>
|
||||||
|
<!-- monitoring->prodvm -->
|
||||||
|
<g id="edge7" class="edge">
|
||||||
|
<title>monitoring->prodvm</title>
|
||||||
|
<path fill="none" stroke="black" d="M330.58,-148.81C323.93,-143.69 317.81,-137.42 314,-130 304.96,-112.4 305.01,-89.98 307.16,-72.45"/>
|
||||||
|
<polygon fill="black" stroke="black" points="310.67,-72.66 308.71,-62.25 303.75,-71.61 310.67,-72.66"/>
|
||||||
|
<text text-anchor="middle" x="383" y="-118.8" font-family="Times,serif" font-size="14.00">Verify operation</text>
|
||||||
|
<text text-anchor="middle" x="383" y="-103.8" font-family="Times,serif" font-size="14.00">and alert on failure</text>
|
||||||
|
</g>
|
||||||
|
<!-- monitoringmonitor -->
|
||||||
|
<g id="node9" class="node">
|
||||||
|
<title>monitoringmonitor</title>
|
||||||
|
<polygon fill="none" stroke="black" points="562,-325 416,-325 416,-289 562,-289 562,-325"/>
|
||||||
|
<text text-anchor="middle" x="489" y="-303.3" font-family="Times,serif" font-size="14.00">Monitoring server</text>
|
||||||
|
</g>
|
||||||
|
<!-- monitoringmonitor->monitoring -->
|
||||||
|
<g id="edge8" class="edge">
|
||||||
|
<title>monitoringmonitor->monitoring</title>
|
||||||
|
<path fill="none" stroke="black" d="M427.45,-288.81C418.09,-284.17 409.18,-278.33 402,-271 381.78,-250.37 371.85,-218.21 367.1,-195.33"/>
|
||||||
|
<polygon fill="black" stroke="black" points="370.49,-194.42 365.21,-185.23 363.61,-195.7 370.49,-194.42"/>
|
||||||
|
<text text-anchor="middle" x="514" y="-259.8" font-family="Times,serif" font-size="14.00">Monitor the monitoring service</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.9 KiB |
Loading…
Reference in a new issue