SORU
14 Mart 2010, Pazar


Nasıl dağıtım ele pip, virtualenv ve Kumaş kullanıyor musunuz?

Ne ayarlarınızı, hileler, ve her şeyden önce, iş akışı?

Bu araçlar harika ama bunları kullanmak için en etkili yolu nedir bilmiyorum o yüzden hala en iyi uygulamaların kullanımına bağlı, yok.

  • pip demetleri kullanmak mı yoksa her zaman download?
  • Elle Apache/Cherokee/MySQL kurmak mı istiyorsunuz yoksa bunun için bir komut var mı?
  • virtualenv her şeyi koymak ve kullanmak --no-site-packages?
  • Çeşitli projeler için bir virtualenv kullanıyor musunuz?
  • Senin için Fabric ne kullanıyorsunuz hangi kısmını ( dağıtımınız betik)?
  • İstemci veya sunucu üzerinde Kumaş komut dosyalarınızı koymak mı?
  • Nasıl veritabanı ve medya dosyası göç ne yapmalıyım?
  • Hiç SCons gibi inşa aracı gerekiyor?
  • Dağıtım aşamaları nelerdir? Ne sıklıkta her konser verdiniz mi?
  • vb.

CEVAP
15 Mart 2010, PAZARTESİ


"En iyi uygulamalar" uygulamalarımı iddia etmez yani bağlam-bağımlı, çok benim işime yarıyor o en iyisidir. Çoğunlukla küçük siteleri, birden fazla sunucu dağıtımları, CDN vb yok yani üzerinde çalışıyorum. Webfaction hosting dağıtım desteği gerekiyor, bazı istemciler en ucuz bulabildikleri hosting lazım. Siteler farklı ortamlarda birden çok kez dağıtmak için var sık tekrarlanabilir senaryosunu dağıtır önemlidir.

  • Pip demetleri kullanmıyorum, requirements.txt ben yükleyin. İhtiyacım olan her şeyi sdists chishop kendi server kurdum, oluşturma işlemi başarısız birden fazla tek puan yok. Ben de benim geliştirme makinede PİP_DOWNLOAD_CACHE önyükleme proje ortamları, benim projelerin çoğu ihtiyaçlarına oldukça örtüşüyor. beri hızlandırmak için kullanın
  • Otomatik olarak ayarlanmış ve bir Ubuntu/mod_wsgi VPS'İN Apache nginx yapılandırma veya Webfaction paylaşılan eşdeğer barındırma ve proje dağıtın yapılandırabilirsiniz Fabric senaryo var.
  • Ben kullanmıyorum --no-site-paketleri ile virtualenv, çünkü ben tercih olması, yavaş hareket eden derlenmiş paketleri (Python Görüntüleme Kütüphane, psycopg2) yüklü sistem düzeyi; çok yavaş ve zahmetli yapmak içinde her virtualenv. Ben genellikle kirletmez yok çünkü kirli sistemi site paketleri ile sorun almadım. Ve her durumda, virtualenv bir şey farklı bir sürümünü yükleyebilirsiniz ve önceliklidir.
  • Her proje kendi virtualenv vardır. Ben biraz bash komut dosyaları (virtualenvwrapper ama bir sürü insan kullanan ve aşk) otomatikleştirme dağıtma virtualenv verilen bir proje için bilinen bir yer ve yükleme bu projenin koşulları.
  • Tüm dağıtım süreci, çalışan bir web sitesine veya Webfaction paylaşılan çıplak Ubuntu server VPS hosting hesabından, Kumaş kullanarak komut dosyası.
  • Kumaş kodları proje kaynak ağaç parçası, ve yerel kalkınma bir çıkış onları çalıştırın.
  • SCons farkında olduğum için ihtiyacım yok.

Dağıtım

Şu anda yeni bir dağıtım aşağıdaki adımları ayrılır:

  • fab staging bootstrap (sunucu kurulumu ve ilk kod dağıtmak)
  • fab staging enable (Bu site için Apache/nginx config enable)
  • fab staging reload_server (yeniden Apache/nginx config).

Bu elbette tek bir komut satırı fab staging bootstrap enable reload_server birleştirilebilir.

Bu adımları tamamladıktan sonra, yeni bir kod ile dağıtım güncelleme sadece fab staging deploy.

Eğer bir güncelleştirme geri almak istersem fab staging rollback. Özellikle büyülü bir şey olarak geri alma; sadece geri alır bu kod için son sürüm olarak dağıtılan ve göç veritabanı önceki durum (bu kayıt gerektiren bazı verilerine ilişkin geçiş devletin DB sonrası dağıtmak, sadece bunu bir metin dosyası).

Örnekler

Almadım kullanılan Kumaş komut açıklanan bu cevap için bir kaç yıl, öyle değil mi korunur ve ben reddetmektedirler sorumluluk kalite :-) Ama sen de onları görebilirsiniz https://bitbucket.org/carljm/django-project-template - fabfile.py repo kök ve deploy/ alt.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008