Сайтът вече се хоства на OpenShift

Публикувано на

До сега този сайт се хостваше от вкъщи, но реших, че няма нужда да има пуснат един компютър постоянно, който да вдига шум. За жалост трудно се намира безплатен Django хостинг, не е както с PHP. Някой би предложил Heroku, тъй като те имат безплатен план, но той е доста ограничен. Също така Heroku има един друг проблем - няма постоянен сторидж за файловете и трябва да се ползва Amazon S3. Това никак не ми допада като идея.

И така един ден случайно попаднах на OpenShift и видях, че имат безплатен план и реших да се възползвам. За разлика от Heroku, при OpenShift има 1 GB сторидж, което е предостатъчно. Деплойването става по-същият начин, като при Heroku -  с git push.  Друга разлика е, че при OpenShift има повече контрол над нещата благодарение на т.нар action hooks. Това са обикновенни shell скриптове, чрез които може да се стартират дадени операции в подходящ момент от процеса на деплойване и дори да се инсталират допълнителни модули, които после да се стартират.

OpenShift предлагат т.нар Cartridge за Django, но той използва Python 2.6 и mod_wsgi на Apache. Поради тази причина аз използвах за основа cartridge-a на Python 2.7, a сайта се вдига с gevent wsgi сървър, а apache-то е само proxy към него. Така въпреки по-слабият перформънс при малък брой потребители (дължащ се на липсата на memcached), сега благодарение на gevent, сайтът scale-ва добре при увеличаване на броя на потребителите.

За в бъдеще ще се опитам да инсталирам memcached на OpenShift за да видя дали мога да си увелича перформънса, но за сега не го смятам за нужно.

Комитът с който направих възможно сайтът ми да се инсталира успешно на OpenShift с Python 2.7 е този: https://github.com/vstoykov/venko-django-site/commit/588870d6ca3b97722ac27caad604194c55ca3168

blog comments powered by Disqus