Saturday, 16 April 2016

Docker Java Application With Solr, Mongo, & Cassandra: Design, Deployment, Service Discovery, And Management In Production


Bu örnek "İsimler Dizini" GitHub Java uygulaması klonlayabilirsiniz. Gitclone https://github.com/dchqinc/dchq-docker-java-solr-mongo-cassandra-example.git
Adım Dockerizing için Kılavuzu ve oluşan bir Java uygulaması yönetme Bir Adım:
  • Apache HTTP Sunucusu (httpd) ve Nginx ( yük dengeleme için )
  • JBoss , Tomcat ve İskelesi ( uygulama sunucusu olarak )
  • Solr ( tam metin araması için )
  • Mongo , Cassandra , MySQL ve Oracle ( veritabanı için )
Bu, bu projenin (bir uzantısıdır https://github.com/dchqinc/dchq-docker-java-example ). Uygulama şimdi destekler Solr tam metin arama ve hem Mongo & Cassandra desteklenen veritabanları gibi.
Çalıştırmak ve yönetmek için 24 size bu da emin olun, 13 farklı bulutlar ve (vb vSphere, openstack, AWS, Rackspace, Microsoft Azure, Google Compute Engine, DigitalOcean IBM SoftLayer, dahil) sanallaştırma platformları üzerinde bu projeye Java uygulaması şablonları :
resim

arka plan

kurumsal Java 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ı, can genişletilebilir BASH komut eklentileri ile Docker Yaz'ı uzanan bir avans uygulaması kompozisyon çerçevesinde aracılığıyla kurumsal Java uygulamaları 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 de çağrılabilir.
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, Jenkins ile sürekli Teslim kolaylaştırmak out-of-box iş akışları geliştiricilerin varolan bağımlılıkları ve entegrasyonları bozmadan çalışan bir uygulama Java WAR dosyasını yenilemek için izin 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:
  • Nerede bu do ortam değişkenleri için YAML tabanlı uygulama şablonda geliyor?
  • Nasıl bir veritabanı uygun şemaları ile başlatıldı benim Java uygulaması gerekli?
  • Zaten benim WebLogic Application Server için bir uygulama planı var. Ben Can Kendi komut dosyasını çalıştırın bir Java uygulaması dağıtmak için?
Bu soruları çözmek için, bu uygulama yığınlarının üzerinde kurulabilir, bu GitHub projesinde "İsimler Dizini" Java uygulaması bir örnek yarattı:
  • Apache HTTP Sunucusu (httpd) ve Nginx (yük dengeleme için)
  • JBoss, Tomcat ve İskelesi (uygulama sunucusu gibi)
  • (Tam metin araması için) Solr
  • (Veritabanı için) Mongo, Cassandra, MySQL ve Oracle
Bu projede, farklı uygulama yığınlarını kullanarak bu Java uygulaması 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:
  • Veritabanı ve Solr bağlantı ortam değişkenleri için Java dosyaları yapılandırma
  • liquibase fasulye kullanılarak bağlanan veritabanını başlatmak için
  • Herhangi bir Linux ana bir yere çalıştıran kullanılan yeniden yapabilirsiniz YAML tabanlı uygulama şablonları bina
  • Sağlama & (Rackspace bu blog örnek olmak) herhangi bir bulutun üzerinde yatan altyapıyı otomatik ölçeklendirme
  • Rackspace küme üzerinde çok katmanlı bir Java uygulaması dağıtma
  • CPU İzleme, Hafıza & I Koşu Konteyner / Ç
  • Bir yapı tetiklendiğinde Jenkins ile sürekli Teslim İş Akışı etkinleştirilmesi çalışan uygulamaların WAR dosyasını güncelleştirmek için
  • Uygulama Sunucusu küme dışarı ölçekleme uygulama kaynak kısıtlı yük dengeleme hizmeti güncellemek için Servis Keşif çerçevesini kullanarak olduğunda

Veritabanı Ve Solr Bağlantı ortam değişkenleri için Java dosyaları yapılandırma

Sen GitHub Bu örnek "İsimler Dizini" Java uygulamasını klonlayabilirsiniz.
Bu "Dockerizing" Java uygulaması 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:
  • Solr URL ve bağlantı noktası kullanmak istiyorum
  • Veritabanı sürücüsü kullanmak istiyorum
  • veritabanı URL
  • veritabanı kimlik
  • istek anda değiştirmek istediğiniz herhangi diğer parametreler (örneğin min / max bağlantı havuzu boyutu, boşta kalma zaman aşımı, vb)
Bunu başarmak için, biz veritabanı ve Solr bağlanmak için kullanmak gerekir ortam değişkenleri bildirmek için birkaç Java dosyaları oluşturdu. Java dosyaları config dizinine bulunabilir:
resim
Bunu fark edeceksiniz solr_host ve solr_port uygulama sunucusu konteyner çalıştırırken geçebilir ortam değişkenleri olarak ilan edilir.

resim
Bunu fark edeceksiniz database_driverClassName , database_url , database_username ve database_password uygulama sunucusu konteyner çalıştırırken geçebilir ortam değişkenleri olarak ilan edilir. Bunlar MySQL, PostgreSQL ve Oracle veritabanları bağlamak için kullanılacaktır.
resim
Bunu fark edeceksiniz mongo_url uygulama sunucusu konteyner çalıştırırken geçebilir ortam değişkenleri olarak ilan edilir.
bu tablo zaten bulunmazsa - Ancak MongoConfig.java de başlangıçta doğru şema ve tablo ile veritabanı doldurmak için kullanılır.
resim
Bunu fark edeceksiniz cassandra_url uygulama sunucusu konteyner çalıştırırken geçebilir ortam değişkenleri olarak ilan edilir.

Bağlı MySQL, PostgreSQL ve Oracle veritabanları başlatılamadı Liquibase Bean Kullanımı

Biz genellikle Java uygulaması 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.
Mongo ve Cassandra veritabanlarını başlatılıyor MongoConfig.java ve CassandraConfig.java dosyaları kaplıdır.
MySQL, PostgreSQL ve Oracle için, liquibase fasulye dataSource kontrol ve upgrade.sql SQL ifadeleri çalıştırmak için DatabaseConfig.java dosyasında kullanılır. Changelog ifadeleri her veritabanı karşı çalıştırmak Liquibase izler.
resim
Burada bağlı MySQL, PostgreSQL veya Oracle veritabanı üzerinde şema başlatmak için SQL ifadeleri ile gerçek upgrade.sql dosya.
resim

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 24 uygulama şablonları kullanarak Docker Hub resmi görüntüleri aynı "İsimler Dizini" Java uygulaması için - ancak farklı uygulama sunucuları ve veritabanları için.
şablonları (aynı Java uygulaması için) Aşağıdaki uygulama yığınlarının örnekleri şunlardır:
  • Apache HTTP Sunucusu (httpd) & Nginx - yük dengeleme için
  • Solr - tam metin araması için
  • Tomcat İskele ve JBoss - uygulama sunucuları için
  • Mongo, Cassandra, MySQL ve Oracle XE veritabanları için -

Talep Time & Post-Karşılığı anda Web sunucuları ve uygulama sunucuları yapılandırma için eklentileri

Tüm bu uygulama şablonları karşısında, konteyner bazı kabı yapılandırmak için istek zaman BASH komut eklentileri yürütmesini olduğunu göreceksiniz. Bu eklentiler de post-hüküm infaz edilebilir.
Bu eklentiler giderek oluşturulabilir eklentiler . BASH komut dosyası temin edildikten sonra, DCHQ ajan bu script yürütülür konteyner içinde . Bir kullanıcı isteği zaman ve post-hükmü de geçersiz kılınabilir argümanlar belirtebilirsiniz. Öncesinde her şey $ işareti bir argüman olarak kabul edilir - örneğin, $ FILE_URL geliştiriciler WAR dosyasının indirme URL'sini belirtmek için izin veren bir argüman olabilir. Bu istek zaman ve bir kullanıcı bir çalışan kap üzerinde Java WAR dosyasını yenilemek isteyen sonrası hükmü de geçersiz kılınabilir.
Plug-in ID YAML tabanlı uygulama şablonu tanımlarken sağlanmalıdır. Örneğin, aşağıdaki gibi kimliği plug-başvurmak, Nginx için BASH komut plug-in çağırmak için:
resim
örnek şablonlar, biz 4 BASH komut eklentileri çağırıyoruz.
Nginx (istek zaman veya) dinamik default.conf dosyasında konteyner IP uygulama sunucularının enjekte bir BASH komut plug-in yürütmesini olduğunu. Plug-in ID 0H1Nk .
Apache HTTP Sunucusu (httpd) bir BASH komut plug-in konteyner IP uygulama sunucularının dinamik httpd.conf dosyasında enjekte (veya istek zamanında) yürütmesini edilir. Plug-in ID uazUi .
Nginx ve Apache HTTP Sunucusu (httpd) eklentileri güzelliği onlar uygulama sunucusu küme ölçek parçası olarak post-hüküm infaz ya da dışarı ölçek olmasıdır. Bu mümkün otomatik olarak web sunucusu (veya yük dengeleyici) güncelleme otomatik ölçekli ilkeleri tanımlamak için yapar. Bu DCHQ en parçasıdır Hizmet Bulma çerçevesinde.

Plug-In Yaşam Döngüsü Aşamaları ile Hizmet Bulma

Yaşam döngüsü eklentileri parametre plug-in yürütmek için tam sahne ya da olay belirlemenizi sağlar. Değil yaşam döngüsü belirtilirse, varsayılan olarak, plug-in yürütmek olacak on_create . İşte desteklenen yaşam döngüsü aşamaları şunlardır:
  • on_create - konteyner oluştururken plug-in çalıştırır
  • on_start - bir kap başladıktan sonra plug-in yürütür
  • on_stop - bir kap durak önce plug-in yürütür
  • on_destroy - bir kap yok önce plug-in yürütür
  • post_create - konteyner oluşturulur ve çalıştıktan sonra plug-in yürütür
  • post_start [: Düğüm] - Başka bir konteyner başladıktan sonra plug-in yürütür
  • post_stop [: Düğüm] - Başka bir konteyner durduktan sonra plug-in yürütür
  • post_destroy [: Düğüm] - Başka bir kap tahrip edildikten sonra plug-in yürütür
  • post_scale_out [: Düğüm] - konteyner başka bir küme dışarı ölçekli sonra plug-in yürütür
  • post_scale_in [: Düğüm] - konteyner başka bir küme tartılır sonra plug-in yürütür
Nginx ve Apache HTTP Sunucusu erişmek için (httpd), EULA lisansı altında ins-plug emin ya olun:
uygulama sunucuları (Tomcat, İskele ve JBoss) da erişilebilir GitHub URL'den Java WAR dosyasını dağıtmak için bir BASH komut plug-in çağırıyoruz.

Tomcat JBoss ve İskelesi aynı BASH komut plug-in (ID plug-in: yürütmesini olan oncXN ) - WAR dosyası dışında farklı dizinlere konuşlanmış oluyor:
  • Tomcat - dir = / usr / local / tomcat / webapps / ROOT.war
  • İskelesi - dir = / var / lib / iskele / webapps / ROOT.war
  • JBoss - dir = / opt / jboss / wildfly / bağımsız / dağıtımları / ROOT.war
Solr farklı bir BASH komut plug-in yürütmesini olan (ID plug-in: doX8s ) names.zip dosyasını almak ve / opt unzip edecek / Solr / sunucu / Solr /

Birden fazla makine karşısında HA Dağıtım İçin CLUSTER_SIZE ve Ana Bilgisayar Parametreleri

Bunu fark edeceksiniz CLUSTER_SIZE parametresi (aynı uygulama bağımlılıkları ile) başlatmak için konteyner sayısını belirlemenizi sağlar.
Ev sahibi parametresi Eğer konteyner dağıtımları için kullanmak istediğiniz ana belirlemenizi sağlar. Eğer seçtiyseniz bu mümkündür Weave sizin kümeler oluştururken ağ katmanı olarak. Bu şekilde farklı bilgisayarlar (ya da bölgeler) genelinde uygulama sunucusu kümeleri için yüksek kullanılabilirliği sağlamak ve veritabanı örneğin ayrı bir host üzerinde çalışmasını sağlamak için afinite kurallarına uymak olabilir. İşte ev sahibi parametresi için desteklenen değerler şunlardır:
  • host1, host2, host3 , vb - konteyner dağıtımları için bir veri merkezi (veya küme) içinde rastgele bir ev sahibi seçer
  • IP Adresi 1 IP Adresi 2, vb - Bir kullanıcı konteyner dağıtımları için kullanılacak gerçek IP adreslerini belirtmek için izin verir
  • Hostname 1, Hostname 2, vb - Bir kullanıcı konteyner dağıtımları için kullanılacak gerçek hostnames belirlemenizi sağlar
  • Joker karakterler (örneğin "db- ", ya da "app-srv- ") - hostnameinden içinde kullanıma joker belirtmek için

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. Bu durumda, biz birkaç bağları yaptık - database_url = jdbc dahil: mysql: // {{MySQL | container_hostname}}: 3306 / {{MySQL | MYSQL_DATABASE}} - hangi veritabanı konteyner adı isteği zamanında dinamik çözümlenir ve uygulama sunucuları veritabanı ile bağlantı kurabilir sağlamak için kullanılır.
İşte desteklenen ortam değişken değerleri listesi aşağıdadır:
  • {{alphanumeric | 8}} - rastgele 8 karakterli alfanumerik dize oluşturur. Bu rasgele şifreler oluşturmak için yararlıdır.
  • {{Image Name | ip}} - Bir ortam değişkeni için bir değer olarak bir kabın ana bilgisayar IP adresini girmek için izin verir. Bu veritabanı ile bağlantı kurmak için katman katman izin verdiği için çok yararlıdır.
  • {{Image Name | container_ip}} - Bir ortam değişkeni için bir değer olarak bir kabın adını girmek için izin verir. Bu (veritabanı bağlantı noktasını maruz kalmadan) veritabanı ile güvenli bir bağlantı kurmak için katman katman izin verdiği için çok yararlıdır.
  • {{Image Name | container_private_ip}} - Bir ortam değişkeni için bir değer olarak bir kabın iç IP girmek için izin verir. Bu (veritabanı bağlantı noktasını maruz kalmadan) veritabanı ile güvenli bir bağlantı kurmak için katman katman izin verdiği için çok yararlıdır.
  • {{Image Name | port_Port Number}} - Bir ortam değişkeni için bir değer olarak bir kabın Liman numarasını girmek için izin verir. Bu veritabanı ile bağlantı kurmak için katman katman izin verdiği için çok yararlıdır. Bu durumda, belirtilen port numarası dahili port numarası olmalıdır - konteyner tahsis edilir harici port değil yani. Örneğin, {{PostgreSQL | port_5432}} katman katman veritabanı ile bağlantı kurmak için izin verecek gerçek harici bağlantı noktasına tercüme edilecektir.
  • {{Image Name | Environment Variable Name}} - Başka bir resmin ortam değişkeni içine bir görüntünün ortam değişkeni değerini girmek için izin verir. Burada kullanım durumları sonsuzdur - En çok katmanlı uygulamaları çapraz görüntü bağımlılıkları olacak gibi.
İşte dört örnektir. Özelleştirmek ve 24 şablonları kendi başınıza çalıştırmayı edinin.
resim

Çok Katmanlı Java (Nginx-Tomcat-Solr-Mongo)

resim
resim

Çok Katmanlı Java (Nginx-JBoss-Solr-Oracle XE)

resim
resim

Çok Katmanlı Java (ApacheLB-Tomcat-Solr-Cassandra)

resim
resim

Çok Katmanlı Java (ApacheLB-İskele-Solr-Mongo)

resim
resim

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.

resim
Makine Oluştur şablon için desteklenen parametreler aşağıda özetlenmiştir:
  • Açıklama : plan / şablon Açıklaması
  • instancetype : Bulut sağlayıcı spesifik bir değer (örneğin general1-4)
  • bölge : Bulut sağlayıcı spesifik bir değer (örneğin IAD)
  • Görüntü : Zorunlu - tam görüntü kimliği / ad (örneğin IAD / 5ed162cc-b4eb-4371-b24a-a0ae73376c73 veya vSphere VM Şablon adı)
  • kullanıcı adı : Opsiyonel - Sadece vSphere VM Template username
  • Şifre : Opsiyonel - Sadece vSphere VM Template şifresini şifreli. Sen son nokta kullanarak parolayı şifreleyebilirsiniz https://www.dchq.io/#/encrypt
  • : Opsiyonel - Bulut sağlayıcı özgü değer (örneğin varsayılan)
  • SecurityGroup : Bulut sağlayıcı spesifik bir değer (örneğin dchq güvenlik grubu)
  • keypair : Bulut sağlayıcı spesifik bir değer (örneğin özel anahtar)
  • OpenPorts : Opsiyonel - virgülle ayrılmış liman değerleri
  • saymak : VM hiçbir, varsayılan 1 Toplam.
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 Java Uygulamasını Dağıtma

Bulut Sunucular sağlanan sonra, bir kullanıcı bir multi-katmanlı, yeni Bulut Sunucuları Docker tabanlı Java uygulamaları 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ı tıklamadan önce oluşturulmuş (DEV veya QE gibi) bir Çevre Etiketi ve Rackspace küme seçebilirsiniz Makineleri oluşturun .

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 Tomcat dağıtım için, Java WAR dosyası / usr / local / tomcat / webapps / dizini altında konuşlandırıldı 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.

Bir Yapı tetiklendiğinde Jenkins ile Sürekli Teslim İş Akışı etkinleştirilmesi Koşu Uygulaması SAVAŞ dosyası güncelleştirmek için

Uygulama kodu içeren Docker görüntüleri yeniden ve her uygulama güncelleme ile yeni konteynerleri iplik "değişmez" konteyner modeli takip etmek isteyen geliştiriciler için DCHQ otomatik içeren Dockerfiles gelen Docker görüntüleri veya özel GitHub projeler oluşturmak için geliştiriciler sağlayan otomatik bir yapı özelliği sağlar Dockerfiles.

Ancak, pek çok geliştirici isteyebilirsiniz en son Java WAR dosyası ile çalışan uygulama sunucusu kapları güncelleme yerine. Bunun için, DCHQ geliştiriciler Jenkins ile sürekli dağıtım iş akışını sağlamak için izin verir. Bu tıklayarak yapılabilir Eylemler seçilmesi ardından koşu uygulamasının menü ve Sürekli teslim . Bir kullanıcı zaten DCHQ kayıtlı olan bir Jenkins örneğini seçebilir, en son WAR dosyasını üretecek ve daha sonra bir BASH komut plug-in, bu yapı kapmak ve bir çalışan uygulama sunucusunda dağıtmak Jenkins gerçek iş. Bu politika kaydedildikten sonra, DCHQ Jenkins son WAR dosyasını bir yapı tetiklenir her zaman kapmak ve çalışan uygulama sunucusu üzerinde dağıtmak olacaktır.
Geliştiriciler, sonuç olarak her zaman DEV / TEST ortamlarında kendi çalışma kapları üzerinde konuşlanmış son Java WAR dosyası olacak.

resim

Tomcat Uygulama Sunucusu küme Out ölçekleme Ve Servis Keşif Framework Kaldıraç Yük Dengeleyici güncelleştirmek için

ç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 2 ila Tomcat sunucu kümesini 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 .
Ölçek dışarı idam gibi, Servis Keşif çerçeve yük dengeleyici güncellemek için kullanılacaktır. Bir plug-in otomatik olarak eklenen yeni uygulama sunucusu farkında olduğunu bu nedenle Apache HTTP Sunucusu httpd.conf dosyasını güncellemek için Apache HTTP Sunucusu üzerinde yürütülür. Belirlediğimiz Bunun nedeni AppServer: post_scale_out bu eklenti için yaşam döngüsü etkinliği olarak.
resim
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. Bu durumda, Servis Keşif çerçeve Apache HTTP Sunucusu eklentisi idam otomatik Uygulama Sunucusu küme dışarı ölçekli hemen sonra.
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 Java 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ğlamaları, çağrılabildiğinden genişletilebilir BASH komut eklentileri kolaylaştıran bir avans uygulaması kompozisyon çerçevesinde aracılığıyla kurumsal Java uygulamaları 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.

Üzerinde ÜCRETSİZ Kayıt Ol http://DCHQ.io veya indirmek İçi DCHQ
Giriş / çıkış ve sürekli teslim uygulama yaşam döngüsü yönetimi izleme gibi işlevselliği, konteyner güncellemeleri, ölçek ile birlikte out-of-box çok katmanlı Java uygulama şablonları erişmek için.

No comments:

Post a Comment