Django Uygulamaları İçin Heroku

Django uygulaması yazmak diğer birçok dil ve framework'a gore hem kolay hem de zevkli.Bu sayede çok kısa surede kendi blogunuzu veya hayalinizdeki scripti yazabiliyorsunuz.Bende en son pytr.org domaini için guzel bir blog çalışması yaptım.Tam olarak bitmemiş olsada bir blogta olması gereken en temel şeyleri ekledim.Zaten scripti de git uzerinde tuttuğum için belirli aralıklarla geliştirmeye devam ediyorum.İşte bir noktada artık bu uygulamanızı değploy etme zorunluğu duyacaksınız.Sonuçta bir yerde localhost'ta çalıştırmak size yetmeyecek.Ve kullandığınız domain uzerine kurmak isteyeceksiniz.İşte bu noktada ucretsiz alternatiflerin başında gelen Heroku kullanabilirsiniz.

Django Heroku Deploy

Öncelikle kendi uygulamanızı yazdığınızı varsayıyorum.Ben son kodladığım blog olan PyTr nin kaynak kodlarını kullanacağım.Öncelikli olarak bilgisayarınıza heroku kurulumunu yapmanız gerekiyor.Debian ve Ubuntu kullanıcıları aşağıdaki komut ile kurabilirler.Windows kullanıcıları ise bu dosyayı indirip kurması lazım.Bu kurulumu yaptıktan sonra ilk çalıştırmanızda sizden bilgilerinizi isteyeceğinizi unutmayın.

wget -qO- https://toolbelt.heroku.com/install.sh | sh

Uygulamanızı eğer virtualenv kullanarak yaparsanız çok daha rahat edersiniz.Mumkun olduğunca daha fazla kullanmaya çalışın.Eğer virtualenv kullanıyorsanız aşağıdaki komut ile gerekli olacak olan modulleri requirements.txt de toplayabilirsiniz.Yoksa bu dosyayı kendiniz oluşturup teker teker eklemeniz gerekecektir.

pip freeze > requirements.txt

Gerekliliklerimizi tanımladıktan sonra django uygulamamızın veritabanını herokuya uygun hale getirmemiz lazım.Ben PostgreSQL kullanacağım.settings.py dosyamızın içindeki veritabanı bolgesini aşağıdaki gibi değiştiriyoruz.

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

Şimdi heroku açısından herşeyimiz hazır.Artık git kurulumunu yapalım ve dosyalarımızı ekleyelim.

git init
git add .
git commit -m "pytr first upload"

Şimdi de heroku kurulumunu yapalım.

heroku create pytrdeploy

Herşeyimiz hazır olduğuna gore pushlayabiliriz artık.Push işlemi başladıktan sonra otomatik olarak requirements.txt dosyası içindeki bağımlılıklarda kurulacak.Daha sonrada eklemeler yaparak bunları ekleyebilirsiniz.

git push heroku master

Dosyalarımızı gonderdikten sonra ekrana gelen url'ye girdiğinizde django hatası alacaksınız çunku henuz veritabanı kurulumunu yapmadık.Bunun için aşağıdaki komutu çalıştırıyoruz.Zaten bunun mantığını anlayabilirsiniz.Buna gore bundan sonra istediğiniz komutu kendi bulutunuzda çalıştırabilirsiniz.

heroku run python manage.py syncdb

Herhangibi bir hata almazsanız siteniz heroku uzerinde başarıyla deploy edilmiş olacak.Benim herokuyu seçme sebeplerim arasında git kullanması ve deploy kısmında çok fazla uğraştırmaması geliyor.Çunku kendi serverınızda nginx+uwsgi gibi kurulumları kendiniz yapacaksınız.Üstune postgresql kurup bunun guvenlik ayarlarını yapacaksınız.Heroku'da bu kısımla uğraşmıyoruz.Git kullandığı için de belirli aralıklarla geliştirmesine devam edebiliyoruz.Gerçekten çok harika.Çalışan uygulama orneği olarak PyTr bakabilirsiniz.

Neden google apps engine değil diyenler olabilir.Gerçeği soylemek gerekirse Google'ın fiyatlandırma politikasını çok fazla beğenmiyorum.Bunun yerine heroku veya dotcloud gayet idealdir.

comments powered by Disqus