SORU
1 EKİM 2014, ÇARŞAMBA


Nasıl bir LAMBA, bir web uygulama Docker, Kukla ve Serseri kullanarak geliştirmek için?

Karanlık çağlarda, LAMBA web uygulamaları geliştirme için benim her zamanki set benim yerel makinede test edildi. PHP (benim durumumda), veritabanı ve web sunucusu yerel olarak yüklü.

Sunucu Apache standart yükler ve MySQL ile kuruldu, ve web uygulamasının farklı parçaları için çok sayıda sanal konak vardı. Benim yerel makinede geçirdim sonuçları ile mutlu olduğumda, bir hazırlama ortamında sunucu ve git pull oturum açmak istiyorum. Her şey benim makinede olduğu gibi sunucu üzerinde çalıştığını varsayarsak, üretim için aynı şeyi yapardım.

Yeni başlangıçlar...

Şimdi sıfırdan yeni bir web uygulaması başladım ve yapmak istediğim o kadar "doğru yolu". Docker, Serseri ve Kukla (Şef, ben şahsen bağımlılıklar Kukla sistem yerine Şef yinelemeli süreç tercih rağmen) hakkında okuduklarım. Yaptığım tüm araştırmalara rağmen, hala bir cevap bulmak için görünmüyor olabilir birkaç soru var:

Web sunucusu (Apache gibi), veritabanı sunucusu (MySQL gibi) için ayrı Docker konteyner ve olmalıdırherweb uygulamasının bir parçası mı?

Hakkında konuşurkenparçalarweb uygulamasının, şey gibi yanimysite.com,controlpanel.mysite.comvb. "Parçalar" aynı veritabanını paylaşır. bu

Docker web ve veritabanı sunucuları gibi şeyler için hazır konteyner sağlamak gibi görünüyor bu yana, bu şeyler en azından ayrı bir kapta olması gerektiği gibi görünüyor. Benim web uygulaması farklı kısımlarını ayrı kaplarda olmalıdır?

Docker konteyner içlerinde yazılım güncellemesi için bana sahip olmak yerine değiştirilebilir olması için tasarlanmış gibi görünüyor. Ne verileri hakkında kaybetmek istemiyorum bu yaz?

Veritabanı sunucusu dosyaları veritabanı yedekleme olmasını isterim () içeriği ile ilgili yönetecek. Web sunucusu günlükleri oluşturmak olacaktır, ve benim web uygulamaları dosyaları ve önbelleğe, vb çeşitli yönetmek olacaktır. Tüm bu dosyalar uygulamanın kaplar güncelleme ne zaman? onların yerini olabilirim çünkü) dışında yazılması gerekiyor nereye giderler? Ev sahibi düz makine dosya sistemi? Ya da ayrı bir "Docker Ses"? Eğer Docker birimleri içine girerlerse, veritabanı, web sunucusu, uygulama, vb için ayrı bir birim kullanmalıyım? Yine de şimdi yaptığım gibi kolayca içeriğini benim yerel makineden SFTP kullanarak erişebilir miyim? Herhangi bir kolaylık burada kaybetmek istemiyorum!

İyi bir fikir Kukla ve Docker konteyner, sunucu geliştirme ve üretim sunucusu için oluşturmak ve yönetmek için kullanılır mı?

Kukla doğrudan Docker konteyner yönetme desteği vardır, bu kolayca bir sunucu veya üretim ortamı (Serseri kullanarak) sıfırdan kurma oldukça iyi bir yol gibi görünüyor öyle görünüyor.

Umarım ettim sorulan bazı soruları; harika olur için biraz uygun "en iyi uygulamalar" geliştirme ve üretim LAMBA gibi web uygulamaları, Sadece orada değil, galiba daha ben görmedim!

CEVAP
5 EKİM 2014, Pazar


Web sunucusu (Apache gibi), veritabanı sunucusu (MySQL gibi) için ayrı Docker konteyner ve web uygulama her bölümü olmalı mı?

Bu soruya doğru cevap yok. Eğer üretim docker kullanacaksa, o zaman üretim olacak gibi dev ortamınızda docker kaplar çalıştırmayı deneyin. Başka docker konteyner edebilirsiniz en kolay yolu kullanın.

docker hub, veritabanları, vb php için kap hazır sağlar ve kolay alıyor. Diğer taraftanlinkonlarla etkileşim için izin vermek için onları bir araya. Dev bir çevre ve eğer birden fazla konteyner kullanıyorsanız, docker-compose tercih etmenizi öneririm.

Başka bir yol veritabanı, web sunucusu ve php olan üretim makine (sadece bir makine olduğunu varsayarsak) en yakın olduğunu docker bir görüntü oluşturmaktır. Böyle bir resim bir kabın birden çok işlem çalıştırın. Bu farklı şekillerde elde edilebilir. supervisor phusion/baseimage bir göz atın.

Web uygulama parçaları hakkında konuşurken, mysite.com, controlpanel.mysite.com vb gibi şeyler yani.

Onları ayrı olabilir. Eğer bu uygulamalar oturumların docker bir birimde veritabanı veya depolandığından emin olun paylaşma ihtiyacı varsa herkes için erişilebilir.

Docker konteyner içlerinde yazılım güncellemesi için bana sahip olmak yerine değiştirilebilir olması için tasarlanmış gibi görünüyor. Ne verileri hakkında kaybetmek istemiyorum bu yaz?

Docker bir şey veri kapsayıcı bir dosya sistemi üzerine yazılmasına izin vermek için ses çağırdı. 5 ** konteyner hacmi, ya da data volume containers. hacimleri ile çalışmak için farklı yolları vardır:

Docker birimleri önemli bir kavram ve değer onları master için zaman ayırın.

Eğer kolayca veri kaplar tarafından kullanılan erişmek istiyorsanız, docker ana bilgisayarda bir dizin montaj gitmek yoludur.

Yedekleme ile ilgili, birimlerle ilgili bilmeniz gereken her şeyi ayrıntılı olduğu docker user guide bir göz atın.

İyi bir fikir Kukla ve Docker konteyner, sunucu geliştirme ve üretim sunucusu için oluşturmak ve yönetmek için kullanılır mı?

En iyi uygulama dev ortamı üretim ortamı üzerinde çalışacaktır, aynı şekilde çalışır. Hiçbir anlamı doğru ise bu kadar iş üretim ortamı için kullanılacak kazandı. dev ortamınız için kukla kurma geçiyor. Vagrantfile that provision a VM with docker shell provisioning ; IMHO puppet/chef ile çok kolay... sahip overkill.


Doğru sorular soruyorsun ama tüm durumlara uygun cevap yok. Benim görüşüme göre bir şeyler yapmanın iki yolu vardır:

  • dev ortamınızı tam olarak üretim ortamını taklit yapmak
  • geliştiriciler sürtünme yeni araçlar kullanarak bağlı hissetmeyecek kadar dev çevre üretimden farklı olarak ve ileri derecede sade düz tutun

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • The Onion

    The Onion

    14 Mart 2006