Hosting in God's Service
========================
Sat Aug 28 21:53:43 CEST 2010
-----------------------------
Today, a new idea was born from some latent intentions. My brother, Michael,
gave me the push to realize what needed to be done when he asked me, "Why is
this important enough to you to spend money on if you won't be making money
with it?" I have provided free website and e-mail hosting to friends of mine
for quite some time, now, and I am currently pursuing improving the hosting
infrastructure by making it redundant and globally spread. So, Michael thought
this was getting a bit serious for just running a server for fun in my spare
time, and I guess he's right.
The idea that finally developed in my mind is as follows: I will start a
non-profit organization (gemeinnützige GmbH) and offer free hosting and other
internet services to churches, missionaries, and other projects that I take an
interest in. Besides websites and e-mail, this is to include VoIP specially
designed for the needs of the missionary. Furthermore, my e-mail services will
be tailored to the needs of missionaries. Their needs are unique due to their
need for a high level of connectivity despite unreliable internet links.
Assuming this service becomes popular, at some point it will grow beyond the
bounds of what a couple of cheap servers with limited bandwidth can accomplish.
Then it will start costing me money that I will feel. That's the primary reason
for creating the non-profit organization. That will give people the opportunity
to support this work with donations if they so choose. Furthermore, certain
people will undoubtedly approach me with requirements that are more
resource-hungry than the basic services I plan on providing. They will be able
to pay a nominal fee to cover expenses through the non-profit organization.
Depending on how this develops, I will keep my regular job or not. If I am
inundated with donations and requests, I will let the non-profit organization
hire me full-time. Otherwise I will continue to fund this project and this
organization out of my own pocket for as long as necessary. If it should become
clear that this type of service is not desired, then it will be closed.
The primary domain for this service shall be sbronner.com, which will also be
its brand name. The idea for this was given to me by my colleagues at the FTA,
now `FTH `_. However, an additional, possibly
Swahili, domain-name may be provided for a less branded use by customers. The
name should convey the spirit of the project and convey that this is being done
in faith and service to Jesus Christ. The TLD .org would be most appropriate
for it.
Initially, the services will be coordinated in a fully redundant manner using
two servers. One will be in Germany (probably a vserver at Server-Ware KG), the
other in the USA. I am currently engaged in talks with Michael about using his
office to provide the connection. There are two issues to get sorted out: (1)
the availability of a dedicated IP address and (2) whether the upstream
bandwidth is sufficient. Later on, as needs grow, I can see using a setup of a
larger cluster of servers with a redundancy level of one server (that is all
services continue uninterrupted if one system fails), analog to RAID-5 with
hard-drives.
All file-based content will be stored in /srv, which will be shared using a
distributed fault-tolerant file system (see `Distributed file systems
`_).
The servers will be accessed based in the closest logical connection by the
client. The exact mechanism still needs to be determined, and will probably be
asynchronous. That means the first connection will be assigned by quickly
guessing which is "closer", and then the connection will be analyzed more
thoroughly, updating a database entry, which will be used for future requests.
This is made possible by the flexible back-end structure of `PowerDNS
`_. I see a combination of the following backends
proving fruitful for this purpose: pipe, mysql, geo. However, whether mysql can
be used depends on whether I decide to use mysql as the distributed database on
these servers. I looked into other solutions, like anycast routing, but that
requires support from the data center housing my servers, which is unfeasible
at this time. Furthermore, instantaneous fail-over can't be provided if using
location-based server selection. That is because in that case only a single IP
address may be included in a response by the DNS server. An ordered list of IP
addresses will not work because it will be re-ordered by the caching
name-server doing the request on behalf of the client. That means that the DNS
server must start specifying the live IP if the IP otherwise specified goes
down. Once that happens it will take up to the length of TTL for the domain
(probably 5m) for caching name servers to get the update, and browsers will get
it after their standard host time-out, which is up to 30m.
That brings me to the database. Either mysql as master/slave setup or some kind
of consistent-eventually technology with a master/master capability. The
master/slave setup of mysql can cause noticeable performance hits when someone
causes a change on the server that is not running the master mysql process.
Any further synchronization details haven't been worked out yet.
Preliminary resources for the creation of the non-profit organization can be
found at the following links:
* `Gemeinnützige Organisation `_
* `Steuerbegünstigte Zwecke `_
* `Gesetz zur weiteren Stärkung des bürgerschaftlichen Engagements `_
Mon Aug 30 06:57:15 CEST 2010
-----------------------------
Another detail, that is not to be forgotten, is that many people and companies
in my target audience will not realize that the domain name is quite a separate
thing from the hosting. And from those that do realize, many won't want to
bother about that detail. To make life more comfortable for them and easier for
me, it would be prudent to be able to offer them domain names myself. There are
a couple of companies that I know that offer attractive domain reseller
contracts:
* `Host Europe GmbH `_
* `dopoly `_
* Anyone in the US?
A price and TLD comparison between them, especially between a European and an
American company would be good.