Mobile app version of vmapp.org
Login or Join
Annie201

: Packaging a web application for deploying at customer site I want to develop a Django web application that would get deployed at the customer site. The web application would run in a private

@Annie201

Posted in: #Django #SiteDeployment

I want to develop a Django web application that would get deployed at the customer site. The web application would run in a private cloud environment (ESX server here) of the customer. My web application would use a MySQL database. The problem is, I would not have direct access or control of the web application.

My question is, how to package such a web application with it's database and other entities so that it's easier to upgrade and update the application and it's database in future. Right now the idea I have is that I would provide a virtual machine with the Django application and database setup. The customer can just start the virtual machine and he would have the web application running. What are the other options I should consider?

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Annie201

1 Comments

Sorted by latest first Latest Oldest Best

 

@Angie530

There is probably an easier way.
You can do a lot of this with Bash.
Here is what your shell script might look like.

Install Script:


Is git installed? Yes / No
Install git
Download latest git repository (you can host your scripts on GitHub or BitBucket or privately)
If you don't want to use git, just have the shell script wget download your zip file from your site, and unzip it.
Check for MySQL
Install MySQL
Check for latest version
Do an upgrade.


Once you get the application running, you can build an updater web script into your application.
Sort of like how WordPress does updates: "A new version is available."
This has a SQL update script that runs, and downloads new pages.

The problem with using ESX server is that you are locking in your clients to Vmware. What about those that use Xen, or Hyper-v or OnApp or OpenVZ? Do you really want to maintain multiple virtual machine images? And what if your client updates something custom on their server? Like sets cron jobs? Don't they lose this data if you update?

One last option is just to offer your product as a hosted "cloud" service. Might be a better alternative than dealing with client deployments. This is how things are moving. Even Interspire got rid of their installed cart and moved to their hosted "big commerce" solution. It will cost you the same as your clients to host it. Maybe just offer it in the cloud, and give options to pull data in and out via an API?

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme