(A few days back, we published a piece on Vaultize, an online backup service which is the first product of Pune-based startup Anoosmar. This article, take from their blog, talks about the various technologies they’ve used in building their software. We thought this would be of interest to PuneTech readers. Re-published here with permission.)
This is an explanation of the Vaultize credits page :-).
Vaultize desktop client is made out of pure C and Python. All the parts that require performance (e.g. chunking of data, de-duplication) are written in C, while Python does the application logic, communication, wrapping of platform-specificness, helpers and the UI. This makes the client nicely portable and yet keeps the performance high. It runs on PCs, Macs and Linux – although we have tested it mostly on Windows because of the market requirements. Mac is probably going to be the next “supported” platform. Book-keeping is done using SQLite, including local search support (not an exposed/advertised feature yet) using theFTS engine. The whole thing is built into an Windows executable or Mac app using PyInstaller. The Windows installer is built using NSIS and MSI tools.
Vaultize API server is also written in Python and C. It makes use of the web.py framework and is basically a HTTPS-based API server (umm, somewhat REST – no HEAD, PUT etc) that all clients talk to over HTTPS. It has also been designed to be as platform-independent as possible owing to market requirements. This was also one of the reasons for choosing web.py over, say, Tornado, because it runs on Windows without much pain. [Django, Pylons et al were out of question, but more on that in some other post.]
The hosted Vaultize servers (in Rackspace cloud) and appliance run on customized and hardened CentOS Linux, with a nginx and FCGI frontend. In the cloud, data chunks are stored in Rackspace CloudFiles, although we support a few other storage options also, like S3 and, obviously, filesystems. The meta-data is stored in MongoDB server clusters running in a sharded and replica-set configuration. These DB servers are themselves backed up and also snapshot as a whole periodically. [Side note: During private beta, our servers were handling more than half a million API requests per day and the number is growing quickly with Vaultize going into public beta.]
P.S. Many people have also asked about our product website (www.vaultize.com). It’s WordPress (& MySQL) with a highly modified theme and general ugliness of PHP all around :-).