زمینه
توسعه دهندگان جاوا و حرفه ای DevOps به مدت طولانی تلاش به طور خودکار به کارگیری برنامه های کاربردی جاوا. ماهیت پیچیده از این برنامه ها معمولا بدان معنی است که وابستگی نرم افزار و یکپارچگی خارجی تا به حال به دوباره پیکربندی هر بار یک برنامه کاربردی در محیط / آزمون DEV مستقر شد.
بسیاری از راه حل پیام "مدل یک بار، استقرار در هر نقطه" برای استقرار برنامه آگهی. در واقعیت اما وجود دارد همیشه پیچیدگیهای ساخته شده است که آن را بسیار دشوار است برای استفاده مجدد از قالب نرم افزار در سراسر هر دو محیط در فرض ماکروسافت مجازی و محیط AWS، برای مثال.
اخیرا، با این حال، کانتینرهای Docker ایده اجزای نرم افزار بسته بندی در ظروف لینوکس است که می تواند همان بر روی هر میزبان لینوکس مستقر دقیقا تا زمانی که کارگر بارانداز موتور نصب شده است محبوبیت.
متاسفانه containerizing برنامه های سازمانی جاوا هنوز هم یک چالش عمدتا به دلیل موجود چارچوب ترکیب نرم افزار انجام وابستگی پیچیده، یکپارچگی خارجی و یا خودکار پوسته پوسته شدن نمی گردش پس از ارائه. علاوه بر این، طراحی زودگذر ظروف بدان معنی است که توسعه دهندگان به حال به چرخش تا ظروف جدید و دوباره ایجاد وابستگی پیچیده و یکپارچگی خارجی با هر به روز رسانی نسخه.
DCHQ، موجود در نسخه های میزبانی و بر فرض، به تمام این چالش ها و ساده کانتینری از برنامه های شرکت جاوا از طریق یک چارچوب ترکیب برنامه پیش که گسترش کارگر بارانداز نوشتن با محیط cross-تصویر اتصالات متغیر های درب اسکریپت bash پلاگین است که می توانید در زمان درخواست و یا پس از ارائه، و خوشه بندی نرم افزار برای در دسترس بودن بالا در سراسر میزبان های مختلف و یا مناطق با پشتیبانی از پوسته پوسته شدن خودکار استناد شده است.
هنگامی که یک برنامه کاربردی فراهم شده است، یک کاربر می تواند پردازنده، حافظه، نظارت بر و I / O از ظروف در حال اجرا، دریافت اطلاعیه ها و هشدارها، و انجام روز 2 عملیات مانند پشتیبان گیری برنامه ریزی، کانتینر به روز رسانی با استفاده از اسکریپت bash پلاگین، و مقیاس در / از. علاوه بر این، گردش خارج از جعبه است که تسهیل تحویل مداوم با جنکینز اجازه می دهد توسعه دهندگان به روز کردن فایل WAR جاوا از برنامه در حال اجرا بدون ایجاد اختلال در وابستگی های موجود و یکپارچگی.
در این وبلاگ، ما را بیش از اتوماسیون پایان به پایان یک برنامه جاوا به نام پیتزا فروشگاه است که در دو پشته برنامه کانتینری مختلف مستقر بروید:
- Nginx را (برای حفظ تعادل بار)، خوشه تامکت و ماریادیبی (به عنوان پایگاه داده)
- Nginx را (برای حفظ تعادل بار)، خوشه اسکله و ماریادیبی (به عنوان پایگاه داده)
همان فایل WAR جاوا خواهد شد در دو سرور برنامه های مختلف مستقر شده اند. DCHQ نه تنها خودکار استقرار نرم افزار - اما آن را نیز با 12 ابرهای مختلف ادغام به طور خودکار به تأمین و خودکار پوسته پوسته شدن از خوشه با شبکه نرم افزار تعریف شده. ما را پوشش خواهد داد:
- ساخت قالب نرم افزار است که می تواند دوباره استفاده می شود بر روی هر میزبان لینوکس در حال اجرا در هر نقطه
- تأمین و خودکار پوسته پوسته شدن زیرساخت های اساسی در هر ابر (با Rackspace را که به عنوان مثال در این وبلاگ)
- استقرار چند لایه مبتنی بر جاوا برنامه های کاربردی فروشگاه پیتزا در خوشه Rackspace را
- نظارت بر CPU، حافظه و I / O از ظروف در حال اجرا
- فعال کردن گردش کار تحویل مداوم با جنکینز به روز رسانی فایل WAR از برنامه های کاربردی در حال اجرا هنگامی ساخت باعث شده است
- پوسته پوسته شدن خوشه سرور برنامه برای تست مقیاس پذیری
ساخت قالب نرم افزار برای جاوا مبتنی بر پیتزا فروشگاه نرم افزار بر روی تامکت و اسکله
هنگامی که در به DCHQ وارد (یا DCHQ.io میزبان و یا در فرض نسخه)، کاربر می تواند به نرم افزار و ماشین حرکت و سپس کلیک بر روی دکمه + برای ایجاد یک قالب جدید کارگر بارانداز نوشتن.
ما چهار قالب برنامه ایجاد کرده اند با استفاده از تصاویر رسمی از کارگر بارانداز توپی برای همان برنامه فروشگاه پیتزا - اما برای چهار سرور برنامه های مختلف.
- 3 لایه PizzaShop (از Nginx - تامکت - ماریادیبی)
- 3 لایه PizzaShop (از Nginx - اسکله - ماریادیبی)
در هر دو قالب، شما متوجه خواهید شد که از Nginx است با استناد به یک اسکریپت bash پلاگین در به اضافه کردن ظرف IP سرورهای نرم افزار در فایل default.conf به صورت پویا (و یا در زمان درخواست).
سرور برنامه (تامکت و اسکله) نیز با استناد به یک اسکریپت bash پلاگین برای استقرار فایل های پیتزا فروشگاه جاوا جنگ از یک URL خارجی تامکت، JBoss و اسکله می استناد همان پلاگین در دقیق - به جز فایل جنگ است گرفتن مستقر در دایرکتوری های مختلف:
- تامکت - دیر = / usr / محلی / تامکت / وبی / ROOT.war
- اسکله - دیر = / var / معاونت / اسکله / وبی / ROOT.war
شما متوجه خواهید شد که پارامتر CLUSTER_SIZE اجازه می دهد تا به شما برای مشخص تعداد از ظروف برای راه اندازی (با وابستگی نرم افزار همان).
پارامتر میزبان اجازه می دهد تا به شما برای مشخص میزبان شما می خواهم به استفاده برای استقرار ظرف. به این ترتیب شما می توانید بالا در دسترس برای استفاده خوشه های سرور خود را در سراسر میزبان های مختلف (و یا مناطق) اطمینان و شما می توانید با قوانین میل مطابق به اطمینان حاصل شود که پایگاه داده قابل اجرا بر روی یک میزبان جداگانه به عنوان مثال. در اینجا مقادیر پارامتر میزبان پشتیبانی می شوند:
- host1، host2، host3 ، و غیره - یک میزبان به طور تصادفی انتخاب در یک مرکز داده (و یا خوشه ای) برای استقرار کانتینر
- <نشانی 1، IP نشانی 2، و غیره IP> - اجازه می دهد تا کاربر را مشخص واقعی آدرس های IP استفاده برای استقرار کانتینر
- <نام میزبان 1، نام سرور 2، و غیره> - اجازه می دهد تا کاربر را مشخص اسامی گره واقعی برای استفاده برای استقرار کانتینر
- نویسه عام (به عنوان مثال "db- *"، و یا "برنامه-srv- *") - برای مشخص کردن نویسه عام به استفاده در نام میزبان
علاوه بر این، کاربر می تواند عبور تصویر اتصالات متغیر محیطی با ساخت یک مرجع به متغیر محیطی تصویر دیگری ایجاد کنید. در این مورد، ما را ساخته اند چند اتصالات - includingdatabase.url = JDBC: خروجی زیر: // {{ماریادیبی | container_ip}}: 3306 / {{ماریادیبی | MYSQL_DATABASE}} - که در آن IP ظرف پایگاه داده به صورت پویا در زمان درخواست حل و استفاده می شود برای اطمینان حاصل شود که نرم افزار سرویس دهنده می تواند یک اتصال با پایگاه داده برقرار کند.
در اینجا لیستی از مقادیر متغیر محیطی پشتیبانی است:
- {{الفبایی | 8}} - ایجاد یک 8 شخصیت رشته تصادفی الفبایی. این مناسب ترین روش برای ایجاد رمزهای عبور تصادفی است.
- {{<نام تصویر> | IP}} - اجازه می دهد تا شما را به آدرس IP میزبان از یک ظرف وارد کنید به عنوان یک ارزش برای یک متغیر محیطی. این مناسب ترین روش برای اجازه دادن به لایه میان به برقراری ارتباط با پایگاه داده است.
- {{<نام تصویر> | container_ip}} - اجازه می دهد تا شما را به IP داخلی یک ظرف به عنوان یک ارزش برای یک متغیر محیطی. این مناسب ترین روش برای اجازه دادن به لایه میان برای ایجاد یک ارتباط امن با پایگاه داده (بدون افشای پورت پایگاه داده) است.
- {{<نام تصویر> | پورت _ <پورت شماره>}} - اجازه می دهد تا شما را به شماره پورت از یک ظرف به عنوان یک ارزش برای یک متغیر محیطی. این مناسب ترین روش برای اجازه دادن به لایه میان به برقراری ارتباط با پایگاه داده است. در این مورد، شماره پورت مشخص شده نیاز به شماره پورت داخلی - یعنی پورت های خارجی است که به ظرف اختصاص داده است. به عنوان مثال، {{PostgreSQL و | port_5432}} را به پورت های خارجی واقعی است که اجازه خواهد داد که ردیف میان به برقراری ارتباط با پایگاه داده ترجمه شده است.
- {{<نام تصویر> | <محیط زیست نام متغیر>}} - اجازه می دهد تا شما را به ارزش یک تصویر متغیر محیطی به محیط متغیر تصویر دیگری است. موارد استفاده در اینجا بی پایان هستند - به عنوان اکثر برنامه های کاربردی چند لایه خواهد وابستگی متقابل تصویر داشته باشد.
تأمین و خودرو پوسته پوسته شدن زیرساخت های اساسی در هر ابر
هنگامی که یک برنامه ذخیره شده است، کاربر می تواند یک ارائه دهنده ابر ثبت نام به طور خودکار به تأمین و خودکار پوسته پوسته شدن از خوشه در 12 ابر نقاط پایانی مختلف از جمله OpenStack، CloudStack، خدمات وب سایت آمازون، Rackspace را، مایکروسافت لاجورد، DigitalOcean، HP ابر عمومی، آی بی ام SoftLayer، موتور محاسبه گوگل، و بسیاری دیگر.
اول، یک کاربر می تواند یک ارائه دهنده ابر برای Rackspace را (به عنوان مثال) با مرور به ارائه دهندگان ابر و سپس کلیک بر روی دکمه + را برای انتخاب Rackspace را ثبت نام کنید. نیاز به Rackspace را کلید API ارائه می شود - که می تواند از بخش تنظیمات حساب از کنترل پنل Rackspace ابر بازیابی.
کاربر پس از آن می توانید یک خوشه با یک سیاست مقیاس خودکار به طور خودکار چرخش تا سرور جدید ابر ایجاد کنید. این را می توان با مرور به صفحه خوشه و سپس کلیک بر روی دکمه + انجام می شود. شما می توانید یک سیاست قرار دادن مبتنی بر ظرفیت را انتخاب کنید و پس از آن به عنوان لایه های شبکه های بافت به منظور تسهیل امن، با کلمه عبور محافظت ارتباطات میان ظرف در سراسر میزبان های مختلف در یک خوشه. سیاست TheAuto مقیاس در این مثال مجموعه حداکثر تعداد VM (یا ابر سرور) به 10.
یک کاربر می تواند در حال حاضر ارائه تعدادی از ابر سرور در خوشه به تازگی ایجاد شده را با مرور به ماشین آلات و سپس کلیک بر روی دکمه + را برای انتخاب Rackspace را. هنگامی که ارائه دهنده ابر انتخاب شده است، کاربر می تواند منطقه، اندازه و تصویر مورد نیاز را انتخاب کنید. بنادر را می توان در ابر سرور جدید باز (به عنوان مثال 32،000-59،000 برای کارگر بارانداز، 6783 برای بافت، و 5672 برای از RabbitMQ). مرکز داده (و یا خوشه) است و سپس انتخاب شده و تعداد از ابر سرور می تواند مشخص شود.
استقرار چند لایه جاوا مبتنی بر پیتزا فروشگاه نرم افزار بر روی Rackspace را خوشه
هنگامی که سرور ابر مشروط شده است، یک کاربر می تواند یک چند لایه، برنامه های کاربردی بر اساس کارگر بارانداز-جاوا بر روی سرور جدید ابر استقرار. این را می توان با مرور به کتابخانه سلف سرویس و سپس کلیک کردن بر روی سفارشی به درخواست یک برنامه چند لایه انجام می شود.
کاربر می تواند یک برچسب محیط زیست (مانند DEV یا QE) و خوشه Rackspace را قبل از کلیک کردن بر روی Run ایجاد شده انتخاب کنید
نظارت بر پردازنده، حافظه و من O استفاده / از ظروف در حال اجرا
هنگامی که برنامه و در حال اجرا، توسعه دهندگان ما نظارت بر CPU، حافظه، و I / O از ظروف در حال اجرا برای دریافت هشدار زمانی که این معیارهای تجاوز یک آستانه از پیش تعریف شده. این امر به ویژه زمانی مفید است که توسعه دهندگان ما در حال انجام تست عملکرد و بار.
کاربر می تواند تجزیه و تحلیل نظارت تاریخی انجام و ارتباط مسائل به روز رسانی ظرف و یا ساخت استقرار. این را می توان با کلیک بر روی منوی عملیات از برنامه در حال اجرا و پس از آن onMonitoring انجام می شود. یک محدوده تاریخ سفارشی را می توان به مشاهده پردازنده، حافظه و I / O در طول تاریخ انتخاب شده است.
فعال کردن گردش کار تحویل مداوم با جنکینز برای به روز رسانی جنگ فایل از نرم افزار در حال اجرا هنگامی A ساخت باعث شده است
برای توسعه دهندگان که مایل به دنبال مدل "تغییر ناپذیر" ظروف با بازسازی تصاویر کارگر بارانداز حاوی کد برنامه و چرخش تا ظروف جدید با هر به روز رسانی نرم افزار، DCHQ فراهم می کند ویژگی ساخت خودکار که اجازه می دهد توسعه دهندگان به طور خودکار تصاویر کارگر بارانداز از Dockerfiles و یا پروژه های گیتهاب خصوصی حاوی ایجاد Dockerfiles.
با این حال، بسیاری از توسعه دهندگان ممکن است مایل به روز رسانی نرم افزار در حال اجرا ظروف سرور با آخرین جاوا فایل WAR به جای. برای که، DCHQ اجازه می دهد تا توسعه دهندگان را قادر می سازد یک گردش کار تحویل مداوم با جنکینز. این را می توان با کلیک بر روی منوی عملیات از برنامه های در حال اجرا و سپس انتخاب تحویل مداوم انجام می شود. کاربر می تواند یک نمونه جنکینز که در حال حاضر با DCHQ ثبت شده است را انتخاب کنید، کار واقعی در جنکینز که آخرین فایل WAR تولید خواهد کرد، و سپس یک اسکریپت bash پلاگین برای گرفتن این ساخت و گسترش آن در سرور برنامه در حال اجرا. هنگامی که این سیاست ذخیره شده است، DCHQ آخرین فایل جنگ از جنکینز هر زمان ساخت باعث شده است گرفتن و استقرار آن بر روی سرور برنامه در حال اجرا.
توسعه دهندگان، به عنوان یک نتیجه همیشه آخرین فایل جاوا جنگ مستقر در ظروف در حال اجرا در محیط / آزمون DEV دارند.
پوسته پوسته شدن تامکت سرور برنامه خوشه
اگر برنامه در حال اجرا می شود با منابع محدود، کاربر می تواند به مقیاس از نرم افزار برای دیدار بار افزایش می یابد. علاوه بر این، کاربر می تواند مقیاس کردن در ساعات کسب و کار و مقیاس در طول تعطیلات آخر هفته برای مثال برنامه.
به مقیاس از مجموعه ای از سرور های مردان از 2 تا 4، کاربر می تواند در منوی عملیات از برنامه های در حال اجرا کلیک کنید و سپس مقیاس کردن را انتخاب کنید. کاربر پس از آن می تواند به اندازه جدید برای خوشه مشخص و سپس بر روی Run کلیک کنید در حال حاضر.
پس از آن ما با استفاده از BASH پلاگین در به روز رسانی فایل default.conf Nginx را به طوری که آن را از سرور نرم افزار جدید اضافه شده آگاه است. اسکریپت bash پلاگین نیز می تواند برنامه ریزی به جای موارد استفاده مانند تمیز کردن سیاهههای مربوط و یا به روز رسانی تنظیمات در فرکانس تعریف شده است. یک برنامه زمان خط در دسترس است برای پیگیری هر تغییر ایجاد شده در نرم افزار برای حسابرسی و تشخیص.
برای اجرای یک پلاگین در یک ظرف در حال اجرا، کاربر می تواند در منوی عملیات از برنامه در حال اجرا کلیک کنید و سپس پلاگین را انتخاب کنید. پس از آن کاربر می تواند انتخاب ظرف متعادل کننده بار (از Nginx)، جستجو برای پلاگین که نیاز به اعدام شد، فعال کردن راه اندازی مجدد ظرف با استفاده از دکمه ضامن. استدلال پیش فرض برای این پلاگین در صورت پویا حل و فصل همه ظرف IP از در حال اجرا سرور تامکت و اضافه کردن آنها را به عنوان بخشی از فایل default.conf.
یک برنامه زمان خط در دسترس است برای پیگیری هر تغییر ایجاد شده در نرم افزار برای حسابرسی و تشخیص. این را می توان از منوی قابل ارتقا در پایین صفحه از یک برنامه در حال اجرا قابل دسترسی است.
هشدارها و اطلاعیه برای زمانی که ظروف یا میزبان پایین و یا زمانی که CPU و حافظه استفاده از هر دو میزبان و یا ظروف بیش از یک حد آستانه تعریف شده در دسترس هستند.
نتیجه گیری
Containerizing شرکت برنامه های کاربردی جاوا هنوز هم یک چالش عمدتا به دلیل موجود چارچوب ترکیب نرم افزار انجام وابستگی پیچیده، یکپارچگی خارجی و یا خودکار پوسته پوسته شدن گردش پس از ارائه آدرس نیست. علاوه بر این، طراحی زودگذر ظروف بدان معنی است که توسعه دهندگان به حال به چرخش تا ظروف جدید و دوباره ایجاد وابستگی پیچیده و یکپارچگی خارجی با هر به روز رسانی نسخه.
DCHQ، موجود در نسخه های میزبانی و بر فرض، به تمام این چالش ها و ساده کانتینری از برنامه های شرکت جاوا از طریق یک برنامه چارچوب ترکیب پیش که تسهیل محیط cross-تصویر اتصالات متغیر های درب اسکریپت bash پلاگین است که می توان در استناد درخواست زمان و یا پس از ارائه، و خوشه بندی نرم افزار برای در دسترس بودن بالا در سراسر میزبان های مختلف و یا مناطق با پشتیبانی از پوسته پوسته شدن خودکار.
برای ثبت نام رایگان در http://DCHQ.io
برای دسترسی به خارج از جعبه قالب های چند لایه نرم افزار جاوا همراه با نرم افزار قابلیت مدیریت چرخه عمر مانند نظارت، به روز رسانی ظرف، مقیاس در / و مستمر تحویل.
No comments:
Post a Comment