Tuesday, 19 April 2016

Docker Java App With MariaDB – Deployment In Less Than A Minute


خلفية

ناضل مطوري جافا والمهنيين DevOps طويلة لأتمتة نشر تطبيقات جافا المؤسسة. الطبيعة المعقدة لهذه التطبيقات عادة يعني أن تبعيات تطبيق والتكامل الخارجية كان لا بد من إعادة تهيئتها في كل مرة تم نشر تطبيق في بيئات / اختبار DEV.
الإعلان عن العديد من الحلول الرسالة "نموذج مرة واحدة، نشر في أي مكان" لنشر التطبيق. في الواقع، ومع ذلك كانت هناك دائما تعقيدات التي جعلت من الصعب جدا إعادة استخدام قالب تطبيق عبر كل بيئة افتراضية على فرضية vSphere وبيئة AWS، على سبيل المثال.
وفي الآونة الأخيرة، ومع ذلك، شعبية حاويات عامل الميناء فكرة مكونات التطبيق التعبئة والتغليف في لينكس الحاويات التي يمكن نشرها بالضبط نفس الشيء على أي مضيف لينكس طالما يتم تثبيت عامل الميناء المحرك.
containerizing للأسف تطبيقات جافا الشركة لا يزال يشكل تحديا لأن معظمهم الأطر تكوين التطبيقات الموجودة لا تعالج تبعيات المعقدة، التكامل الخارجية أو السيارات القشور مهام سير العمل في مرحلة ما بعد الحكم. وعلاوة على ذلك، وتصميم سريع الزوال الحاويات يعني أن المطورين زيارتها للدوران حاويات جديدة وإعادة إنشاء تبعيات معقدة والتكامل الخارجية مع كل إصدار التحديث.
DCHQ، وهي متاحة في استضافتها والإصدارات على فرضية، يعالج كل هذه التحديات ويبسط الحاويات من تطبيقات جافا للشركات من خلال تكوين إطار تطبيق مقدما الذي يمتد عامل الميناء يؤلف مع البيئة عبر صورة الارتباطات المتغيرة، للمد باش سكريبت المكونات الإضافية التي يمكن يجوز الاحتجاج في وقت الطلب أو بعد الحكم، وتجميع طلب توافر عالية عبر المضيفين أو مناطق متعددة مع تخفيض الدعم لصناعة السيارات.
مرة واحدة يتم توفير تطبيق، يمكن للمستخدم مراقبة وحدة المعالجة المركزية، الذاكرة، وI / O للحاويات على التوالي، الحصول على تنبيهات وتحذيرات، وأداء يوم 2 العمليات مثل النسخ الاحتياطي المجدولة، والمستجدات الحاويات باستخدام باش سكريبت المكونات الإضافية، ومقياس في / خارج. وعلاوة على ذلك، سير العمل خارج مربع التي تسهل تسليم المستمر مع جنكينز تسمح للمطورين لتحديث ملف الحرب جافا من تطبيق قيد التشغيل دون تعطيل التبعيات والتكامل الحالي.
في هذا بلوق، سوف نذهب خلال أتمتة نهاية إلى نهاية تطبيق جافا ودعا بيتزا شوب التي يتم نشرها على نوعين مختلفين من مداخن تطبيق بالحاويات:
  • إنجن إكس (للموازنة)، تتجمع القط وMariaDB ل(مثل قاعدة البيانات)
  • إنجن إكس (للموازنة)، تتجمع جيتي وMariaDB ل(مثل قاعدة البيانات)
وسوف يتم نشر نفس ملف الحرب جافا على اثنين من خوادم التطبيقات المختلفة. DCHQ بأتمتة ليس فقط نشر التطبيق - لكنه يتكامل أيضا مع 12 الغيوم المختلفة لأتمتة التوفير والسيارات القشور من مجموعات مع الشبكات المعرفة بالبرمجيات. وسوف تشمل ما يلي:
  • بناء قوالب التطبيقات التي يمكن إعادة استخدامها في أي مضيف تشغيل لينكس في أي مكان
  • المخصصات والسيارات والتوسع في البنية التحتية الأساسية في أي سحابة (مع راك سبيس كونه المثال في هذه بلوق)
  • نشر متعدد المستويات جافا القائمة على التطبيقات بيتزا تسوق في الكتلة راك سبيس
  • مراقبة وحدة المعالجة المركزية، وذاكرة & I / O للحاويات الجري
  • تمكين تسليم سير العمل المستمر مع جنكينز لتحديث ملف الحرب من التطبيقات التي تعمل عند تشغيل بناء
  • التوسع خارج الكتلة خادم التطبيق لاختبارات قابلية

بناء قوالب طلب للحصول على بيتزا متجر تطبيقات جافا المستندة على القط وجيتي

بمجرد تسجيل الدخول إلى DCHQ (إما DCHQ.io استضافت أو إصدار على فرضية)، يمكن للمستخدم التنقل إلى التطبيقات والآلات وثم انقر على زر + لإنشاء قالب عامل الميناء يؤلف الجديد.
لقد أنشأنا أربعة قوالب تطبيق باستخدام الصور الرسمية من عامل الميناء محور لنفس التطبيق بيتزا شوب - ولكن لمدة أربعة خوادم التطبيقات المختلفة.
  • 3-المستوى PizzaShop (إنجن إكس - قط - MariaDB ل)
  • 3-المستوى PizzaShop (إنجن إكس - جيتي - MariaDB ل)
عبر كل من القوالب، ستلاحظ أن إنجن إكس هو الاحتجاج باش سكريبت في المكونات لإضافة الحاوية IP للخوادم التطبيقات في ملف default.conf حيوي (أو في وقت الطلب).
خوادم التطبيقات (القط وجيتي) ويستشهدون أيضا باش سكريبت المكونات في نشر الملفات بيتزا متجر جافا الحرب من عنوان URL خارجي قط، جبوس وجيتي واستدعاء بالضبط نفس المكونات في - باستثناء ملف الحرب هو الحصول على نشرها على دلائل مختلفة:
  • هر - دير = / البيرة / المحلية / هر / webapps / ROOT.war
  • رصيف - دير = / فار / ليب / رصيف / webapps / ROOT.war
ستلاحظ أن المعلمة CLUSTER_SIZE تسمح لك بتحديد عدد الحاويات لإطلاق (مع نفس تبعيات التطبيق).
المعلمة المضيف يسمح لك لتحديد المضيف الذي ترغب في استخدامه لنشر الحاويات. بهذه الطريقة يمكنك التأكد من توفر عالية لكتل ​​الملقم طلبك عبر المضيفين مختلفة (أو المناطق) والتي يمكن أن يتوافق مع قواعد تقارب لضمان أن قاعدة البيانات يعمل على مجموعة منفصلة على سبيل المثال. وفيما يلي القيم المعتمدة للمعلمة المضيف:
  • host1، host2، host3 ، وما إلى ذلك - يختار المضيف بشكل عشوائي داخل مركز البيانات (أو الكتلة) لنشر الحاويات
  • <IP عنوان 1، عنوان IP 2، الخ> - يسمح للمستخدم لتحديد عناوين IP الفعلي لاستخدامها لنشر الحاويات
  • <اسم المضيف 1، اسم المضيف 2، الخ> - يسمح للمستخدم لتحديد أسماء مضيفين الفعلية لاستخدامها لنشر الحاويات
  • البدل (على سبيل المثال "DB- *"، أو "التطبيق srv- *") - لتحديد البدل للاستخدام داخل المضيف
بالإضافة إلى ذلك، يمكن للمستخدم إنشاء صورة عبر ربط متغير البيئة بالإشارة إلى متغير بيئة صورة آخر. في هذه الحالة، وحققنا العديد من الارتباطات - includingdatabase.url = جدبك: الخلية: // {{MariaDB ل| container_ip}}: 3306 / {{MariaDB ل| MYSQL_DATABASE}} - في التي يتم حل IP حاوية قاعدة البيانات بشكل حيوي في وقت الطلب ويستخدم للتأكد من أن خوادم التطبيقات يمكن تأسيس اتصال مع قاعدة البيانات.
وهنا لائحة من القيم متغير البيئة المعتمدة:
  • {{أبجدية | 8}} - يخلق عشوائية 8 أحرف سلسلة أبجدية رقمية. هذا هو الأكثر فائدة لخلق كلمات السر العشوائية.
  • {{<اسم الصورة> | الملكية الفكرية}} - يسمح لك بإدخال عنوان IP مجموعة من حاوية كقيمة لمتغير بيئة. هذا هو الأكثر فائدة للسماح الطبقة الوسيطة لتأسيس اتصال مع قاعدة البيانات.
  • {{<اسم الصورة> | container_ip}} - يسمح لك لدخول IP الداخلي للحاوية كقيمة لمتغير بيئة. هذا هو الأكثر فائدة للسماح الطبقة الوسيطة لإنشاء اتصال آمن مع قاعدة البيانات (دون تعريض ميناء قاعدة البيانات).
  • {{<اسم الصورة> | ميناء _ <رقم منفذ>}} - يسمح لك بإدخال عدد ميناء الحاويات كقيمة لمتغير بيئة. هذا هو الأكثر فائدة للسماح الطبقة الوسيطة لتأسيس اتصال مع قاعدة البيانات. في هذه الحالة، يحتاج رقم المنفذ المحدد ليكون رقم المنفذ الداخلي - أي ليس منفذ خارجي التي تم تخصيصها إلى الحاوية. على سبيل المثال، {{كيو | port_5432}} سوف تترجم إلى منفذ خارجي الفعلي من شأنها أن تسمح الطبقة الوسيطة لتأسيس اتصال مع قاعدة البيانات.
  • {{<اسم الصورة> | <البيئة متغير اسم>}} - يسمح لك بإدخال قيمة متغير البيئة للصورة إلى متغير بيئة صورة آخر. حالات الاستخدام هنا لا حصر لها - حيث أن معظم تطبيقات متعددة المستويات سيكون لها تبعيات عبر الصورة.
صورة
صورة

المخصصات والسيارات وتوسيع نطاق البنية التحتية الكامنة في أي الغيمة

مرة واحدة يتم حفظ التطبيق، يمكن للمستخدم تسجيل موفر الغيمة لأتمتة التوفير والسيارات القشور من مجموعات في 12 مختلفة سحابة نهاية نقاط بما في ذلك أوبن ستاك، CloudStack، خدمات ويب الأمازون، راك سبيس، مايكروسوفت أزور، DigitalOcean، HP السحابية العامة، IBM SOFTLAYER أجهزة Google Compute Engine، وغيرها الكثير.
أولا، يمكن للمستخدم تسجيل موفر الغيمة لراك سبيس (على سبيل المثال) من خلال الانتقال إلى مقدمي سحابة ثم النقر على زر + لتحديد راك سبيس. يلزم توفير واجهة برمجة التطبيقات مفتاح راك سبيس - التي يمكن الاطلاع عليها من قسم إعدادات الحساب من لوحة التحكم راك سبيس الغيمة.
ثم يمكن للمستخدم إنشاء كتلة مع سياسة السيارات على نطاق تدور تلقائيا خوادم سحابة جديدة. ويمكن أن يتم ذلك عن طريق الانتقال إلى صفحة المجموعات وثم النقر على زر +. يمكنك تحديد سياسة التوظيف القائم على القدرات وثم نسج كطبقة الشبكات من أجل تسهيل آمن، محمي بكلمة مرور الاتصالات عبر الحاويات عبر المضيفين متعددة ضمن كتلة. سياسة TheAuto النطاق في هذا المثال تحدد الحد الأقصى لعدد من VM (أو الخوادم السحابية) إلى 10.

ويمكن للمستخدم الآن توفير عدد من الخوادم السحابية على الكتلة التي أنشئت حديثا قبل الانتقال إلى الآلات وثم النقر على زر + لتحديد راك سبيس. مرة واحدة يتم تحديد مزود الغيمة، يمكن للمستخدم تحديد المنطقة، حجم والصور اللازمة. يمكن فتح منافذ على خوادم سحابة جديدة (على سبيل المثال 32000-59000 للعامل الميناء، 6783 لنسج، وعن 5672 RabbitMQ). ثم يتم اختيار مركز البيانات (أو مجموعة) ويمكن تحديد عدد من خوادم الغيمة.

نشر البيتزا متجر التطبيقات متعدد المستويات جافا المستندة على الكتلة راك سبيس

مرة واحدة يتم توفيرها ملقمات الغيمة، يمكن للمستخدم نشر ومتعدد المستويات، وتطبيقات جافا على خوادم سحابة جديدة تقوم عامل الميناء. ويمكن أن يتم ذلك عن طريق الانتقال إلى مكتبة الخدمة الذاتية ومن ثم النقر على تخصيص لطلب تطبيق متعدد المستويات.

ويمكن للمستخدم حدد علامة البيئة (مثل DEV أو QE) والكتلة راك سبيس إنشاؤها قبل النقر على تشغيل

مراقبة وحدة المعالجة المركزية، وذاكرة وأنا يا استخدام / الحاويات الجري

مرة واحدة في التطبيق وتشغيلها، والمطورين لدينا مراقبة وحدة المعالجة المركزية، الذاكرة، وI / O للحاويات التوالي للحصول على تنبيهات عندما تتجاوز هذه المقاييس عتبة محددة مسبقا. وهذا مفيد خصوصا عندما المطورين لدينا يؤدون الاختبارات الوظيفية والحمل.
ويمكن للمستخدم إجراء تحليل الرصد التاريخي وترتبط القضايا إلى تحديثات الحاوية أو بناء نشر. ويمكن القيام بذلك عن طريق النقر على القائمة إجراءات لتطبيق تشغيل ثم onMonitoring. يمكن تحديد نطاق زمني مخصص لعرض وحدة المعالجة المركزية والذاكرة وI / O تاريخيا.

تمكين والمستمر تسليم سير العمل مع جنكينز لتحديث ملف الحرب للتطبيق قيد التشغيل عندما يتم تشغيل البناء

للمطورين الذين يرغبون في اتباع نموذج حاويات "غير قابل للتغيير" عن طريق إعادة بناء الصور عامل الميناء تحتوي على رمز التطبيق والغزل حتى حاويات جديدة مع كل تحديث التطبيق، يوفر DCHQ ميزة بناء الآلية التي تسمح للمطورين لإنشاء الصور عامل الميناء من Dockerfiles أو مشاريع جيثب خاصة التي تحتوي على تلقائيا Dockerfiles.

ومع ذلك، قد يرغب العديد من المطورين ل تحديث حاويات خادم التطبيقات قيد التشغيل مع أحدث ملف الحرب جافا بدلا من ذلك. لذلك، DCHQ تسمح للمطورين لتمكين سير عمل تسليم المستمر مع جنكينز. ويمكن القيام بذلك عن طريق النقر على القائمة إجراءات لتطبيق تشغيل ومن ثم اختيار الدفع المستمر. ويمكن للمستخدم تحديد مثيل جنكينز الذي سبق ان سجلت مع DCHQ، والوظيفة الفعلية على جنكينز الذي سوف ينتج أحدث ملف الحرب، ثم في المكونات باش سكريبت لانتزاع هذا البناء ونشر على خادم التطبيق قيد التشغيل. مرة واحدة يتم حفظ هذه السياسة، سوف DCHQ استيلاء على أحدث ملف الحرب من جنكينز أي وقت يتم تشغيل بناء ونشرها على خادم التطبيق قيد التشغيل.
المطورين، ونتيجة لذلك سوف يكون دائما على أحدث ملف جافا الحرب المنتشرة على حاويات تشغيل في البيئات / اختبار DEV.
صورة

التوسع خارج كتلة الملقم القط التطبيق

إذا يصبح التطبيق قيد التشغيل محدودة الموارد، يمكن للمستخدم لتوسيع نطاق من التطبيق لتلبية زيادة الحمولة. وعلاوة على ذلك، يمكن للمستخدم جدولة نطاق من خلال ساعات العمل، وعلى نطاق وفي خلال عطلة نهاية الأسبوع على سبيل المثال.
لتوسيع نطاق خارج الكتلة من خوادم القط 2-4، يمكن للمستخدم النقر على القائمة إجراءات لتطبيق تشغيل ثم حدد مقياس خارج. ويمكن للمستخدم ثم تحديد الحجم الجديد للمجموعة، ثم انقر على تشغيل الآن.

ثم استخدمنا باش المكونات في تحديث ملف default.conf إنجن إكس بحيث انها على علم خادم التطبيق الجديد المضافة. ويمكن أيضا أن من المقرر أن تستوعب حالات الاستخدام مثل تنظيف سجلات أو تحديث تكوينات على ترددات محددة السيناريو باش المكونات الإضافية. وقت خط التطبيق متاح لتتبع كل تغيير يطرأ على طلب التدقيق والتشخيص.
لتنفيذ المكونات في وعاء على التوالي، يمكن للمستخدم النقر على القائمة إجراءات لتطبيق قيد التشغيل ثم حدد المكونات الإضافية. ويمكن للمستخدم ثم حدد الحاوية موازن التحميل (إنجن إكس)، ابحث عن المكونات التي يجب تنفيذها، يمكن إعادة تشغيل الحاويات باستخدام زر تبديل. والوسيطة الافتراضية لهذه المكونات في حل حيوي عن الحاوية IP من ملقمات القط تشغيل وإضافتها كجزء من ملف default.conf.
وقت خط التطبيق متاح لتتبع كل تغيير يطرأ على طلب التدقيق والتشخيص. هذا ويمكن الوصول إليها من القائمة قابلة للتوسيع في أسفل الصفحة من تطبيق تشغيل.
متاحة للعندما حاويات أو المضيفين منخفضة أو عندما يتجاوز وحدة المعالجة المركزية والذاكرة استخدام أي من المضيفين أو حاويات عتبة محددة التنبيهات والإشعارات.

استنتاج

Containerizing تطبيقات جافا الشركة لا يزال يشكل تحديا لأن معظمهم الأطر تكوين التطبيقات الموجودة لا تعالج تبعيات المعقدة، التكامل الخارجية أو السيارات القشور سير العمل في مرحلة ما بعد الحكم. وعلاوة على ذلك، وتصميم سريع الزوال الحاويات يعني أن المطورين زيارتها للدوران حاويات جديدة وإعادة إنشاء تبعيات معقدة والتكامل الخارجية مع كل إصدار التحديث.
DCHQ، وهي متاحة في استضافتها والإصدارات على فرضية، يعالج كل هذه التحديات ويبسط الحاويات من تطبيقات جافا للشركات من خلال تكوين إطار تطبيق مسبقا التي تسهل البيئة عبر صورة الارتباطات المتغيرة، للمد باش سكريبت المكونات الإضافية التي يمكن الاستناد إليها في طلب وقت أو بعد الحكم، وتجميع طلب توافر عالية عبر المضيفين أو مناطق متعددة مع تخفيض الدعم لصناعة السيارات.

اشترك مجانا على http://DCHQ.io
للوصول إلى خارج مربع قوالب متعددة المستويات تطبيق جافا جنبا إلى جنب مع تطبيق وظيفة إدارة دورة حياة مثل الرصد والتحديثات الحاويات، وعلى نطاق و/ التصغير والمستمر التسليم.


No comments:

Post a Comment