-1

Investigating the possibilities, i am quite confused what is the best tool for us.

We want to deploy a few web services, for start a gitlab and a wiki. The plan is to use docker images for these services and to store the data externally.

This services need to be accessible from outside.

I looked into Marathon and kubernetes and both seemed like overkill.

A problem we face as academics is that most people only stay for about three years and it's not our main job to administrate stuff. So we would like an easy to use, easy to maintain solution.

We have 3-4 nodes we want to use for this, we'd like it to be fault tolerant (restarting the service on another node if one dies for example).

So to sum up:

  • 3-4 nodes
  • gitlab with CI and runners
  • a wiki
  • possibly one or two services more
  • auto deployment, load balancing
  • as failsafe as possible

What would you recommend?

MaxNoe
  • 14,470
  • 3
  • 41
  • 46
  • Did you consider Docker Swarm? A lot less overkill than Kubernetes, and used with native Docker commands, Docker Machine and compose. – Hasan Can Saral Jun 03 '16 at 21:15
  • So you want to deploy a collection of failsafe services to support at least several-dozen developers with no dedicated IT staff, and you don't want to be cloud hosted? What about access control, backups and maintenance? – antlersoft Jun 03 '16 at 21:24
  • Welcome to academia. Access control is done via LDAP backups is done via the university IT services. Maintenance is done by us. – MaxNoe Jun 03 '16 at 21:28
  • You should look into [Rancher](http://docs.rancher.com/), it's dead simple to deploy, there is a nice webui to manage/deploy/monitor (you can even open a shell inside a container from your browser), you still can use all the docker commands as usual directly on a host (the changes are visible in the webui within seconds), you can use Swarm as the underlying orchestrator but the default one (Cattle) is already quite good and more than enough for your needs IMHO (it does all the usual stuff, high avalaibility, load balancing, scheduling...) and it supports LDAP for access control :) – Shanoor Jun 04 '16 at 05:31
  • Rancher looks really good, thanks! How can one map our domains to the running services (e. g. the gitlab to `gitlab.ourdomain.org`)? – MaxNoe Jun 04 '16 at 11:09
  • I just found out how to do this with the build in LoadBalancer. I think we will go for this, thanks. – MaxNoe Jun 04 '16 at 20:17
  • Did you give DC/OS (https://dcos.io/) a try? Should be easy enough and incl. Marathon, Swarm, etc. – Michael Hausenblas Jun 05 '16 at 10:42

1 Answers1

0

I would recommend a managed container service like https://aws.amazon.com/ecs/

Running your own container manager swarm/kubernetes comes with a whole host of issues that it sounds like you should avoid.

Drew
  • 701
  • 2
  • 10
  • 22
  • Personally I would also go for this. Unfortunately that's not possible. Mainly for political reasons. Also the hardware is already there. – MaxNoe Jun 04 '16 at 20:16
  • 1
    Understood. In that case, with fixed hardware that is not going to scale, I'd simply run the docker server on each system and load balance, which brings you fault tolerance as well. – Drew Jun 04 '16 at 20:29
  • I fully agree to @DrewOConnor's comment. What I would suggest is to run a very minimal Swarm cluster (basically install Docker on each node, join them all together and treat them as a single node with Swarm). You don't have staff to manage a complex DevOps here, so definitely keep it simple. – Hasan Can Saral Jun 05 '16 at 19:48
  • @MaxNoe -- Can you accept either of my proposed solutions as an answer? – Drew Jun 13 '16 at 16:08