Docker LAMP, Lapp Ve LAOP Stacks Üzerine Bir PHP Uygulama dağıtma ve yönetme için Adım Kılavuzu ile Bir Adım
Çalıştırmak ve yönetmek için 9 13 farklı bulutlar ve (vSphere, openstack, AWS, Rackspace, Microsoft Azure, Google Compute Engine, DigitalOcean IBM SoftLayer dahil sanallaştırma platformları üzerinde bu projede PHP uygulama şablonları (LAMP, LAPP ve LAOP Yığınlar), vb), emin olun size bu da:
Özelleştirmek & (LAMP, Lapp ve LAOP Stacks dahil) yayınlanan Docker PHP uygulama şablonları ve çok katmanlı Java uygulaması yığınları, Mongo Replica Kümesi, Drupal, Wordpress, MEAN.JS, vb dahil olmak üzere birçok diğer şablonları (herhangi çalıştırın )
arka plan
kurumsal uygulamalar containerizing hala mevcut uygulama kompozisyon çerçeveler karmaşık bağımlılıkları, dış entegrasyon veya otomatik ölçeklendirme sonrası hüküm iş akışları adresi yok çünkü çoğunlukla bir sorundur. Ayrıca, konteynerlerin geçici tasarım geliştiricileri yeni kapları dönmesi ve her versiyon güncellemesi ile karmaşık bağımlılıkları ve dış entegrasyonları yeniden oluşturmak zorunda anlamına geliyordu.
DCHQ, barındırılan ve içi sürümlerinde kullanılabilir, tüm bu zorlukların ele ve çapraz görüntü ortam değişkeni bağları olabilir genişletilebilir BASH komut eklentileri ile Docker Yaz'ı uzanan gelişmiş bir uygulama kompozisyon çerçevesinde aracılığıyla kurumsal uygulamaların konteyner kullan kolaylaştırır otomatik ölçekleme desteği ile birden çok ana bilgisayara veya bölgeler arasında yüksek kullanılabilirlik için istek zaman ya da post-hükmün ve uygulama kümeleme çağrıldığında.
Bir uygulama hazırlığı sonra, bir kullanıcı CPU, Bellek izleyebilirsiniz, ve ben çalışan kaplar / O, bildirimleri ve uyarıları almak ve giriş / çıkış iş akışlarında uygulama yedekleri erişimi, otomatik ölçek almak ve plug-in yürütme iş akışları için konteynerleri çalışan güncelleyin. Ayrıca, otomatik "Uygulama Çalıştır" Kullanıcıların kendi gece kurar veya değişiklikler GitHub birleştirilmiş verildiğinde kapların dağıtımını planlamak için onların Sürekli Entegrasyon iş akışlarını entegre etmelerine olanak verir.
Önceki bloglar, biz 13 farklı bulutlar ve sanallaştırma platformlarında çok katmanlı Docker tabanlı uygulama yığınlarının üzerinde (Pizza Shop ve Film Mağaza uygulamalar gibi) çeşitli Java uygulamaları uçtan uca dağıtım otomasyonu gösterdi. : Bu bloglar tam listesi için bu sayfayı ziyaret edebilirsiniz http://dchq.co/docker-java-applications.html
Ancak birçok kullanıcı hala uygulama modelleme bazı temel konuları üzerine karıştı. Bu sorular şunlardır:
Bu soruları çözmek için, bu uygulama yığınlarının üzerinde kurulabilir, bu GitHub projesinde "İsimler Dizini" PHP uygulama bir örnek yarattı:
Bu projede, farklı uygulama yığınlarını kullanarak bu PHP uygulama yapılandırma, dağıtma ve yönetmek için ve farklı bulut / sanal altyapı üzerinde bir adım-adım rehber sağlayacaktır.
Biz kapsayacaktır:
Config.php PHP Uygulama Yapılandırma
Sen GitHub Bu örnek "İsimler Dizini" PHP uygulama klonlayabilirsiniz.
Bu "Dockerizing" PHP uygulamasında en önemli adımdır. kapları çalıştırırken geçebilir ortam değişkenlerini yararlanmak için, size uygulama istek anda belirli özelliklerini değiştirmek için izin verecektir şekilde yapılandırılmış olduğundan emin olmak gerekir - benzeri:
Bunu başarmak için, öncelikle yapılandırmanız gerekir config.php .
Belirli veri kaynağı özellikleri istek anda geçilecek aşağıdaki ortam değişkenleri referans olduğunu göreceksiniz:
PHP Başvuru İçin Veritabanı başlatılıyor
Biz genellikle PHP uygulama dağıtım kendisinin bir parçası olarak veritabanı şemasını başlatılıyor öneririz. Bu şekilde, ayrı ayrı veritabanında yürütülen gereken ayrı bir SQL dosyalarını bakımı hakkında endişelenmenize gerek yok.
Zaten o SQL dosyaları ve hala ayrı ayrı veritabanında onları infaz tercih Ancak - o DCHQ onun plug-in çerçevesi ile bu işlemi otomatik yardımcı olabilir. Bu başvurabilirsiniz bölüm Daha fazla bilgi için.
PHP uygulamalarında veritabanı tabloları oluşturmak için SQL komut dosyaları dahil etmek için, yapılandırmak gerekir Persistence.php (kullanılan veritabanı bağlı olarak) farklı SQL deyimlerini kullanarak veritabanı doldurmak için dosyayı. PopulateDatabase () işlevi MySQL, PostgreSQL ve Oracle ile çalışır.
5.6-Apache: Php kullanarak Docker Resmi Bina
PHP uygulama yapılandırıldıktan sonra, sadece PHP kodu ile bir Docker görüntü oluşturmanız gerekir.
Bir kez (barındırılan DCHQ.io veya içi versiyonu ya), bir kullanıcı gidebilirsiniz DCHQ için giriş Görüntü Oluştur'den ve sonra tıklayın + yeni oluşturmak için düğmeye Dockerfile (Git / GitHub / BitBucket) görüntü yapı.
aşağıdaki gibi gerekli değerleri sağlayın:
Gerekli alanlar tamamlandığında, bir kullanıcı tıklayabilirsiniz Kaydet .
Bir kullanıcı daha sonra tıklayabilirsiniz Play butonuna on-demand Docker görüntü oluşturmak için.
İşte bu GitHub deposundan Bu Docker görüntüyü oluşturmak için kullanılan gerçek Dockerfile var:
Herhangi Linux Ana Anywhere Running On-el Re Can YAML-Tabanlı Uygulama şablonları Bina
Bir kez (ya barındırılan DCHQ.io veya içi versiyonu) DCHQ için giriş, bir kullanıcı gidebilirsiniz App & Makine ve ardından tıklayın + yeni oluşturmak için düğmeye Docker Oluştur şablonu.
Biz yarattık 9 uygulama şablonları kullanarak Docker Hub resmi görüntüleri aynı "İsimler Dizini" PHP uygulaması için - ancak farklı uygulama sunucuları ve veritabanları için.
şablonları (aynı PHP uygulaması için) Aşağıdaki uygulama yığınlarının örnekleri şunlardır:
Görüntüler karşısında Çevre Değişken Bağlama
Ayrıca, bir kullanıcının başka bir resmin ortam değişkeni bir başvuru yaparak çapraz görüntü ortam değişkeni bağları oluşturabilirsiniz. Dahil olmak üzere - bu durumda, biz birkaç bağları yaptık | DB_HOST = {container_private_ip} {MySQL} veritabanı konteyner IP isteği zamanında dinamik çözümlenir ve Apache PHP Sunucusu ile bağlantı kurabilir sağlamak için kullanıldığı - veri tabanı.
İşte desteklenen ortam değişken değerleri listesi aşağıdadır:
LAMBA Stack (Linux Apache MySQL PHP)LAPP Stack (Linux Apache-PostgreSQL-PHP)LAOP Stack (Linux Apache-Oracle PHP)LAMBA Stack (3-Tier Nginx-PHP-MySQL)LAPP Stack (3-Tier Nginx-PHP-PostgreSQL)LAOP Stack (3-Tier Nginx-PHP-Oracle XE)LAMBA Stack (3-Tier ApacheHTTP-PHP-MySQL)LAPP Stack (3-Tier ApacheHTTP-PHP-PostgreSQL)LAOP Stack (3-Tier ApacheHTTP-PHP-Oracle XE)Bir Plug-In çağırma Bir Docker LAMBA Stack üzerinde ayrı ayrı Veritabanı başlatılamadı
Biz PHP uygulama dağıtım kendisinin bir parçası olarak veritabanı şemasını başlatılıyor öneririz. Hala ayrı SQL veritabanı dosyaları yürütme tercih Ancak - o DCHQ onun plug-in çerçevesi ile bu işlemi otomatik yardımcı olabilir.
Bu örnekte, bu lamba yığın MySQL populate.sql dosyayı yürütmek için bir BASH komut plug-in yürütmesini olduğunu. BASH komut plug-in giderek kuruldu eklentiler ve şuna benzer:
Bu BASH komut plug-in olarak, $ MYSQL_USER , $ MYSQL_ROOT_PASSWORD ve $ MYSQL_DATABASE istek zaman geçirilir ortam değişkenleri vardır.
$ FILE_URL uygulamasını isterken plug-in oluştururken veya tanımlayabilirsiniz bir geçersiz kılınamaz argümandır. Bu populate.sql dosyasının URL olacak.
Hazırlama & Herhangi Cloud hakkında Dayanak Altyapı Otomatik ölçekleme
Bir uygulama kaydedildikten sonra, bir bulut sağlayıcısı kayıt bir kullanıcı sağlama ve VMware vSphere, openstack, CloudStack, Amazon Web Services, Rackspace, Microsoft Azure, DigitalOcean, IBM olmak üzere 12 farklı bulut uç noktalara kümelerin otomatik ölçeklendirme otomatik hale getirmek için SoftLayer, Google Compute Engine, ve diğerleri.
İlk olarak, bir kullanıcının giderek Rackspace (örneğin) bir bulut sağlayıcısı kayıt olabilirsiniz Bulut Sağlayıcıları üzerinde tıklatarak ve + seçmek için düğmeye Rackspace şirketinin . Rackspace Cloud Kontrol Paneli Hesap Ayarları bölümünden alınabilir ki - Rackspace API Anahtarı sağlanmalıdır.
Bir kullanıcı daha sonra otomatik olarak yeni Bulut Sunucular dönmesi için otomatik ölçekli politikası ile bir küme oluşturabilirsiniz. Bu giderek yapılabilir Kümeleri tıklayarak sonra sayfanın ve + düğmesi. Bir kapasite tabanlı yerleştirme politikası seçin ve ardından yapabilirsiniz Örgü bir küme içinde birden fazla makinede güvenli, şifre korumalı çapraz konteyner iletişimi kolaylaştırmak için ağ katmanı olarak. Auto-Scale Politikası örneğin, 10 VM (veya Bulut Sunucular) maksimum sayısını ayarlayabilirsiniz.
Bir kullanıcı artık hüküm ya UI tabanlı iş akışı yoluyla veya Self-Service Library talep edilebilir basit bir YAML tabanlı Makine Oluştur şablonu tanımlayarak yeni oluşturulan kümede Bulut Sunucular bir dizi.
UI tabanlı iş akışı - Bir kullanıcı giderek Rackspace Cloud Sunucular talep edebilirsiniz Makineler üzerinde tıklatarak ve + seçmek için düğmeye Rackspace şirketinin . Bulut Sağlayıcı seçildiğinde, bir kullanıcı gerekli bölge, boyutu ve görüntü seçebilirsiniz. Limanlar (RabbitMQ için Weave için Docker, 6783 örneğin 32000-59000 ve 5672) bağlantı noktası gereksinimleri bazı karşılamak için Rackspace Cloud Sunucular varsayılan olarak açılır. Bir Küme sonra seçilir ve Bulut Sunucuları sayısı belirtilebilir.
YAML merkezli Makine Oluştur Template - Bir kullanıcı ilk giderek Rackspace için bir makine Oluştur şablonu oluşturabilirsiniz Makineleri seçerek ve sonra Makine Oluşturüzerine .
İşte 4GB Bulut Sunucu istemek için şablon var.
Makine Oluştur şablon için desteklenen parametreler aşağıda özetlenmiştir:
Makine Oluştur şablon kaydedildikten sonra, bir kullanıcı Self Servis bu makineyi talep edebilirsiniz Kütüphane . Bir kullanıcı tıklayabilirsiniz Özelleştir seçin ve sonra Bulut sağlayıcı ve Küme bu Rackspace Cloud Sunucular hazırlık için kullanılacak.
Rackspace Cluster üzerinde Multi-Tier PHP Uygulama Dağıtma
Bulut Sunucular sağlanan sonra, bir kullanıcı bir multi-katmanlı, yeni Bulut Sunucuları Docker tabanlı PHP uygulamalarını dağıtabilirsiniz. Bu çok katmanlı bir uygulama talep etmek için Özelleştir üzerine tıklatarak Self Servis Kütüphanesi gezinme ve yapılabilir.
Bir kullanıcı Run tıklamadan önce oluşturulmuş (DEV veya QE gibi) bir çevre Etiket ve Rackspace küme seçebilirsiniz.
Koşu Konteynerler için In-Tarayıcı Terminali erişme
Bir komut istemi simgesi Canlı Uygulamalar sayfasındaki konteynırların 'adlarının yanında mevcut olmalıdır. Bu, kullanıcıların ajan ileti sırası ile güvenli bir iletişim protokolü kullanarak kabı girmek için izin verir. komutların bir beyaz liste kullanıcıları çalışan kapları üzerinde herhangi bir zararlı değişiklik yapmazsanız emin olmak için Kiracı Admin tanımlanabilir.
Örneğin PHP dağıtım için, PHP kodu / var / www / html / dizini altında aslında olduğundan emin olmak için komut istemini kullanılır.
CPU İzleme, Hafıza ve Koşu Konteynerler Of I / O Kullanımı
Uygulama yukarı ve çalışmaya başladığında, bizim geliştiriciler CPU, Bellek izlemek, ve bu ölçümleri önceden tanımlanmış bir eşiği aştığında ben çalışan konteyner / Ç uyarıları almak için. Bizim geliştiricilerin fonksiyonel ve yük testi gerçekleştirirken özellikle yararlıdır.
Bir kullanıcı tarihsel izleme analizi gerçekleştirmek ve konteyner güncellemelerine sorunları ilişkilendirmek ya da dağıtımları inşa edebilirsiniz. Bu tıklayarak yapılabilir Eylemler çalışan uygulamanın menü ve ardından İzleme . Özel bir tarih aralığı tarihsel CPU, Bellek ve I / O görüntülemek için seçilebilir.
Otomatik Uygulama Çalıştır'ı kullanma Sürekli Entegrasyon etkinleştirme
uygulama kodu içeren ve her uygulama güncelleme ile yeni kapları kadar iplik Docker görüntüleri yeniden tarafından "değişmez" konteyner modeli takip etmek isteyen geliştiriciler için DCHQ otomatik bir görüntü yapı ve geliştiriciler otomatik olarak Dockerfiles gelen Docker görüntüler oluşturmak için izin otomatik uygulama çalıştırma özellikleri sağlar veya özel GitHub projeleri Dockerfiles içeren ve daha sonra uygulama dağıtımını zamanlama ve uygulama kira özelleştirerek son görüntüleri kullanarak tam LAMP yığınları yukarı döndürün.
Docker görüntü oluşturma açıklandığı üzere bölümünde , bir kullanıcı iki paralel (yani dayanıyor PHP görüntü için inşa zamanlayabilirsiniz : 5.6-apache php ).
Bir kullanıcı sonra gidebilirsiniz Görüntü Kurar ve sonra tıklayın + yeni bir "Otomatik Uygulama Çalıştır" politikası oluşturmak için düğmeye. Bir kullanıcı daha sonra gerekli alanları doldurun edebilirsiniz - benzeri:
PHP Uygulama Out ölçekleme
çalışan uygulama kısıtlı kaynaklarla olur, bir kullanıcı artan yükü karşılamak için başvuru ölçekli olabilir. Ayrıca, bir kullanıcı örneğin hafta sonları iş saatleri ve ölçek sırasında ölçek dışarı planlayabilirsiniz.
1 ila 2 PHP konteyner küme dışarı ölçeklemek için bir kullanıcı tıklayabilirsiniz Eylemler çalışan uygulama menüsünden seçin ve sonra Ölçek Out . Bir kullanıcı daha sonra küme için yeni boyutu belirtin ve sonra tıklayabilirsiniz Şimdi Run .
Biz o zaman eklenen yeni uygulama sunucusu farkında olduğunu bu nedenle Apache HTTP Sunucusu httpd.conf dosyasını güncelleştirmek için BASH plug-in kullanılır. BASH komut eklentileri de günlükleri temizleyerek veya tanımlanmış frekanslarda yapılandırmaları güncellenmesi gibi kullanım durumları karşılamak için planlanmış olabilir.
Çalışan bir kap üzerinde bir plug-in yürütmek için, bir kullanıcı tıklayabilirsiniz Eylemler çalışan uygulamanın menü seçin ve sonra Plug-ins . Bir kullanıcı, daha sonra yük dengeleyici (Apache HTTP Sunucusu) konteyner seçmek idam gereken plug-in için arama geçiş düğmesini kullanarak konteyner yeniden etkinleştirebilirsiniz. Bu plug-in için varsayılan argüman dinamik tüm konteyner ip çalışan PHP konteyner çözmek ve httpd.conf dosyasının bir parçası olarak katacak.
Bir uygulama süresi-line denetim ve teşhis için uygulama yapılan her değişiklik izlemek için kullanılabilir. Bu çalışan bir uygulama sayfanın altındaki genişletilebilir menüden ulaşılabilir.
Uyarılar ve bildirimler ya host veya konteynerlerin CPU ve Bellek Kullanımı tanımlı eşiğini aştığında kaplar veya ana aşağı veya mevcuttur.
Sonuç
kurumsal PHP uygulamalarının containerizing hala mevcut uygulama kompozisyon çerçeveler karmaşık bağımlılıkları, dış entegrasyon veya otomatik ölçeklendirme sonrası hüküm iş akışları adresi yok çünkü çoğunlukla bir sorundur.
DCHQ, barındırılan ve içi sürümlerinde kullanılabilir, tüm bu zorlukların ele ve çapraz görüntü ortam değişkeni bağlamaları, çağrılabildiğinden genişletilebilir BASH komut eklentileri kolaylaştıran bir avans uygulaması kompozisyon çerçevesinde aracılığıyla kurumsal PHP uygulamalarının konteyner kullan kolaylaştırır otomatik ölçekleme desteği ile birden çok ana bilgisayara veya bölgeler arasında yüksek kullanılabilirlik için zaman ya da post-hüküm ve uygulama kümeleme isteyin.
izleme, konteyner güncellemeleri gibi uygulama yaşam döngüsü yönetimi işlevselliği ile birlikte out-of-box çok katmanlı PHPapplication şablonları erişmek için ölçek in / out ve sürekli teslim.
|
Saturday, 16 April 2016
A Step By Step Guide For Deploying & Managing A PHP Application On Docker LAMP, LAPP, And LAOP Stacks
Labels:
Turkish
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment