Sunday, June 2, 2013

Re: Deployment Conundrum


On Sun, Jun 2, 2013 at 3:37 PM, Daniel Braun <dbraun86@gmail.com> wrote:
Hello,
I'm working in a non-profit organization. It's a design archive and research institute based in Israel.
We're developing (me actually, the only developer) a Django website to replace our ASP/MS-Access horrible system.

To the point - the only server I am allocated by the IT department is a Windows 2008 server.
I'm currently working with Heroku, and needless to say, deployment is a breeze.
(Would love to stay with it, except I don't have the budget to pay for heroku/s3)

I realize I can run apache as a server, or even IIS. But how do I go about replicating heroku's deployment process (with git)?

Well, it depends what you mean by replicating Heroku.

If you just mean "getting a website up and running", then all you need is a git checkout of your source code, a web server configuration that points at that checkout, and a Python environment that can be called from the web server. I can't provide much specific advice here, but mod_wsgi configuration should be mostly standard regardless of the operating system, and it's not *that* hard to get working. Google has plenty of hits for "Django deployment windows"; you should be able to cobble something together from those links.

Once you've got your configuration working, redeploying should just be a matter of refreshing your git checkout and restarting/reloading the web server. It might be worthwhile writing some scripts to automate the update procedure, but worse case, it should only be a couple of commands.

If you want all the nifty auto scaling stuff that Heroku does -- that's another issue entirely. *That* sort of functionality means you need to have a deep understanding of your hosting environment. I don't think there are going to be any simple solutions here.

Is it viable to install a Ubuntu server virtual machine on top of the Windows installation? Does anyone have experience with it?

Is it possible? Yes. Will it perform as well as a native web server running on the native platform? No. Will the different between native and VM matter? That depends.

Whether this is a viable approach really depends on how comfortable you are with Unix vs Windows, and how much traffic you're actually going to serve. If you're going to serve a *lot* of traffic, then you probably want to avoid virtualisation - every little bit of extra performance will help. However, if you're only serving a handful of pages to a small internal group, then the overhead doesn't really matter -- If you've only got three people visiting your site, you could probably run the site on a Commodore 64 and still have CPU cycles to spare :-)

Yours,
Russ Magee %-)


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment