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:

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:

A price and TLD comparison between them, especially between a European and an American company would be good.