Saturday, 16 April 2016

Deployment Automation Of Docker WebLogic Cluster On Any Cloud

Herhangi Cloud üzerinde Docker WebLogic Kümesi Of Dağıtım Otomasyon

arka plan

Java geliştiricileri ve DevOps uzmanları uzun kurumsal Java uygulamaları dağıtımını otomatik hale getirmek için mücadele etti. Bu uygulamaların karmaşık doğası genellikle uygulama bağımlılıkları ve dış entegrasyonlar bir uygulama DEV / TEST ortamlarında konuşlandırıldı her zaman yeniden yapılandırılacak gerektiği anlamına geliyordu.
Birçok çözümler uygulama dağıtımları için "her yerde dağıtmak, bir zamanlar modeli" mesajı reklamı. Gerçekte ise her zaman çok zor bir uygulama şablonu yeniden kullanmak yapılan inceliklerini vardı bir şirket içi vSphere sanal ortamda ve örneğin bir AWS ortamında, hem de karşısında.
Daha yakın zamanlarda, ancak, Docker kaplar sürece Docker Motor yüklü olarak herhangi bir Linux ana bilgisayarda aynı dağıtılabilir Linux Konteynerler içine paketleme uygulama bileşenleri fikrini popüler.
Ne yazık ki hala mevcut uygulama kompozisyon çerçeveler karmaşık bağımlılıkları, dış entegrasyon veya otomatik ölçeklendirme adresi yok çünkü çoğunlukla bir meydan okuma kurumsal Java uygulamaları olduğunu containerizing sonrası hüküm iş akışları. 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 Konteyner Güncellemeler BASH komut eklentileri kullanarak Planlı Yedeklemeler gibi gün 2 işlemleri gerçekleştirmek ve Ölçek Dışarıda. 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.
Bu blog, bir Docker merkezli WebLogic Kümesi uçtan uca dağıtım otomasyonu üzerinden gidecek. Biz kapsayacaktır:
  • Herhangi bir Linux ana bir yere çalıştıran kullanılan yeniden yapabilirsiniz WebLogic Kümesi için uygulama şablonu Bina
  • Sağlama & (Rackspace bu blog örnek olmak) herhangi bir bulutun üzerinde yatan altyapıyı otomatik ölçeklendirme
  • Rackspace Cloud Sunucular üzerinde WebLogic küme dağıtma
  • Yönetici Server Alışveriş Sepeti Java WAR Dosya Dağıtma
  • Konteynerler Koşu için In-Tarayıcı Terminal erişme
  • Bir yapı tetiklendiğinde Jenkins ile sürekli Teslim İş Akışı etkinleştirilmesi çalışan uygulamaların WAR dosyasını güncelleştirmek için
  • CPU İzleme, Hafıza & I Koşu Konteyner / Ç

Oracle WebLogic 12c Cluster için Başvuru Şablonu Bina

O nce bir kullanıcı gidebilir, (sürüm ya barındırılan DCHQ.io veya içi) DCHQ için giriş App & Makine ve ardından tıklayın + yeni oluşturmak için düğmeye Docker Oluştur şablonu.
Biz Radu Dobrinescu imajını (: 2.0 radudobrinescu / wls12c) yararlanarak kurduğumuz özel bir görüntü kullanılarak bir WebLogic küme uygulama şablonu oluşturduk.
Bunu fark edeceksiniz CLUSTER_SIZE parametresi (aynı uygulama bağımlılıkları ile) başlatmak için konteyner sayısını belirlemenizi sağlar. Biz Yönetilen Server küme boyutunu tanımlamak için kullanabilirsiniz.
Ev sahibi parametresi Eğer konteyner dağıtımları için kullanmak istediğiniz ana belirlemenizi sağlar. 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ı gerçek IP konteyner dağıtımları için kullanmak adresleri belirlemenizi sağlar
  • <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- *") - joker belirtmek için bir hostname içinde kullanmak
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 bu CAES bağlayıcı bir yaptık: ADMIN_HOSTNAME = {{AdminServer | ip}} - hangi Yönetici Sunucu ana bilgisayar IP isteği zamanında dinamik çözümlenir ve Yönetilen Sunucular Yönetici Server 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 kapsayıcı adı 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.
resim
Docker WebLogic resmin gerçek yapı da DCHQ yoluyla otomatik hale getirilebilir. Bir kullanıcı tıklayabilirsiniz Görüntü Oluştur'den ve sonra + düğmesine tıklayın. Bir kullanıcı, bir Dockerfile veya Dockerfile sahip bir kamu / özel GitHub proje kullanarak bir görüntü oluşturabilir.
WebLogic için yarattığımız görüntü Radu Dobrinescu imajını (radudobrinescu / wls12c: 2.0) kullanılarak inşa edildi ( https://hub.docker.com/r/radudobrinescu/wls12c/ ). Biz kendi Dockerfile görüntüye değişiklikler bir çift yapılmış ve daha sonra kendi havuzuna yeni bir imaj itti (dchq / weblogic: son). Görüntülerin bina cron ifadesi kullanarak planlanmış olabilir. Ayrıca, bir kullanıcının her yeni yapı ile benzersiz etiket adları oluşturmak için etiket adı {{damgası}} kullanabilirsiniz. Bir kullanıcı yedekleme için eski resimlere geri dönebilirsiniz bu şekilde.

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 vSphere, openstack, CloudStack, Amazon Web Services, Rackspace, Microsoft Azure, DigitalOcean HP Kamu dahil 13 farklı bulut uç noktalara kümelerin otomatik ölçeklendirme otomatik hale getirmek için bulut, IBM 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.
Bir kullanıcı artık hüküm giderek yeni oluşturulan kümede Bulut Sunucular bir dizi Makineleri tıklayarak ve daha sonra + 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. Bir Küme sonra seçilir ve Bulut Sunucuları sayısı belirtilebilir.

Rackspace Cloud Sunucular için WebLogic küme 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ı Run tıklamadan önce oluşturulmuş (DEV veya QE gibi) bir çevre Etiket ve Rackspace küme seçebilirsiniz.
WebLogic küme sağlanan sonra, Yönetici Server Konsolu erişebileceği bir kullanıcı Managed Sunucular keşfetti ve çalıştığından emin olun. URL olurdu http: // <admin_server_host_ip>: 7001 / konsol . Varsayılan kimlik weblogic / welcome1 olacaktır.

resim

Plug-In Framework kullanarak Alışveriş Sepeti Java WAR Dosya Dağıtma

WebLogic Küme yukarı ve çalışmaya başladığında, bir kullanıcı bir Java WAR sunuculardan birinde Dosya dağıtmak için bir BASH komut plug-in yürütebilirsiniz. Bu durumda, biz sadece Yönetici Server Alışveriş Sepeti uygulamayı dağıtmak için bir plug-in çağrılan. Gönderen Eylemler menüsünden, bir kullanıcı seçebilir Plug-ins ve sonra plug-in idam edileceği kabı (lar) ı seçin. Bir kullanıcı daha sonra plug-in için arama ve maruz argümanlar geçersiz kılabilirsiniz.

resim
bu basit plug-in, biz uygulamayı dağıtmak için uzak erişilebilir sunucudan üç dosya kapma ediyoruz.
  • deploy.py
  • deploy_app.sh
  • shoppingcart.war
Burada kullanılan gerçek dosyalar şunlardır:
deploy.py
---------------------
resim
deploy_app.sh
---------------------
resim

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.
Bu durumda, biz deploy.py dosya gerçekten Yönetici Server karşıdan emin olmak için komut istemini kullanılır. Basit bir kedi /oracle/fmwhome/wlst_custom/deploy.py yaparak - biz dosya aslında bu kabın üzerine bulunduğunu doğrulamak için başardık.
resim
Daha sonra Admin Server Konsolu erişilebilir ve Alışveriş Sepeti uygulaması gerçekten konuşlandırıldı emin olmak için Dağıtımları gittiniz.
resim
// <Admin_server_host_ip>: 7001 / shoppingcart Son olarak, biz http gerçek uygulama erişilen
resim

RunningContainers Of CPU, Bellek ve I / O Kullanımının İzlenmesi

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.
resim

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.
BASH komut plug-in adımların doğru sırası WebLogic Server alınır sağlamak için özelleştirilebilir unutmayın. Örneğin, bir kullanıcı yeni WAR dosyası dağıtımı ardından belirli bir dağıtım planı kullanmak ya da un-dağıtmadan önce bazı komut dosyalarını çalıştırmak ve isteyebilirsiniz.
Geliştiriciler, sonuç olarak her zaman DEV / TEST ortamlarında kendi çalışma kapları üzerinde konuşlanmış son Java WAR dosyası olacak.
resim

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 indirme DCHQ On-Pemise
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