همین امروز از بهترین ابزارهای DevOps استفاده کنید!
انقلاب DevOps سرانجام جهان را فرا گرفت و ابزارهای DevOps بسیار محبوب شدند. به گزارش سرویس
متدولوژی DevOps کل چرخه عمر توسعه نرم افزار را پوشش می دهد، بنابراین متخصصان می توانند ابزارهای مختلفی را انتخاب کنند. اما، همانطور که می دانید، هیچ ابزاری نمی تواند به یک ابزار جهانی برای همه تبدیل شود. با این حال، برخی از راه حل ها طیف گسترده ای از عملکردها را ارائه می دهند که می توانند تقریباً هر کاری را انجام دهند.
بیایید ابزارهای DevOps را به دسته ها تقسیم کنیم و آنها را با آنالوگ ها مقایسه کنیم:
- توسعه و ساخت ابزار
- تست ابزارهای اتوماسیون
- ابزارهای سازماندهی استقرار
- ابزارهای زمان اجرا
- ابزارهای همکاری
اجرای موفق و مدبرانه
توسعه و ساخت ابزار
این اساس پشته خط لوله CI/CD است. همه چیز درست از اینجا شروع می شود! بهترین ابزارها در این دسته میتوانند جریانهای رویداد متعدد را مدیریت کرده و به راحتی با محصولات دیگر ادغام شوند.
در این مرحله از چرخه عمر توسعه، سه گروه ابزار وجود دارد:
- سیستم کنترل نسخه (SCM)
- ادغام پیوسته (CI)
- مدیریت اطلاعات
GIT در سال 2020 سابقه مثبتی داشته است، بنابراین ابزار SCM شما باید از GIT پشتیبانی یکپارچه داشته باشد. برای CI، یک پیش نیاز توانایی اجرا و اجرای بیلدها در یک محیط کانتینر ایزوله است. وقتی صحبت از مدیریت داده می شود، نیاز به توانایی ایجاد تغییرات در طرح پایگاه داده و نگهداری پایگاه داده مطابق نسخه برنامه دارد.
ابزار SCM + CI شماره 1
برنده: GitLab و GitLab-CI
بهترین ابزار چرخه DevOps 2020 بدون شک GitLab است و قطعاً در آینده نزدیک به نوآوری ادامه خواهد داد.
عملکرد اصلی GitLab ارائه مدیریت راحت یک مخزن Git است. رابط وب بصری و آسان برای استفاده است. GitLab هر آنچه را که نیاز دارید را در یک نسخه رایگان فراهم می کند و به صورت SaaS و on-prem ارائه می شود (با استفاده از منابع خود برای میزبانی نرم افزار).
هیچ ابزار SCM دیگری از ادغام پیوسته (CI) به طور مستقیم در مخزن شما استفاده نکرده است و GitLab برای مدت طولانی این کار را انجام می دهد. برای استفاده از GitLab-CI، باید یک فایل .gitlab-ci.yml را به ریشه کد منبع خود اضافه کنید، و هر گونه تغییر در پروژه، دقیقاً بر اساس آنچه شما مشخص کرده اید، اقداماتی را انجام می دهد. GitLab و GitLab-CI به طور شایسته به عنوان رهبران در زمینه یکپارچه سازی مداوم (CI-as-code) شناخته می شوند.
مزایای اصلی
- قابلیت اطمینان - این محصول از سال 2013 وارد بازار شده است. پایدار؛ به خوبی پشتیبانی می شود.
- منبع باز - نسخه رایگان GitLab عملکرد اصلی مورد نیاز تیم های توسعه را محدود نمی کند. بستههای خدمات پولی ویژگیهای مفید دیگری را برای شرکتهایی با اندازهها و نیازهای مختلف فراهم میکنند.
- Engrained CI - هیچ ابزار دیگری در بازار مانند GitLab-CI یکپارچه سازی مستمر را مستقیماً در SCM ایجاد نکرده است. استفاده از Docker ساخت های ایزوله بدون دردسر را تضمین می کند و گزارش های داخلی اشکال زدایی را آسان می کند. ما به یکپارچه سازی پیچیده و مدیریت چندین ابزار به طور همزمان نیاز نداریم.
- ادغام نامحدود - GitLab ادغام آسان تمام ابزارهای DevOps را که نیاز دارید فراهم می کند. این تضمین می کند که تیم های توسعه و نگهداری یک منبع اطلاعاتی واحد در مورد کاربرد خود در هر محیطی دارند.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
ابزارهای محبوب دیگری نیز در این دسته وجود دارند، اما به خوبی GitLab نیستند. و به همین دلیل:
GitHub - این یک سیستم کنترل نسخه SaaS عالی برای شرکت های کوچک و مراحل اولیه توسعه است. برای شرکتهای بزرگ که حفظ آدرسهای IP در شبکهشان مهم است، تنها راهحل GitHub، ماشین مجازی .OVA بدون پشتیبانی از سیستمهای در دسترس بالا بود. این امر تعمیر و نگهداری اولیه را دشوار می کند؛ علاوه بر این، OVA فقط برای مشاغل متوسط مناسب است، در غیر این صورت سرور به سادگی تحت بارگذاری بیشتر از کار می افتد. فقدان GitHub Actions (تا همین اواخر و هنوز در نسخه اولیه) یا CI-as-code به این معنی است که شما باید یک ابزار CI جداگانه انتخاب کنید و سپس آن یکپارچگی را مدیریت کنید. در نهایت، GitHub بسیار گرانتر از هر یک از نسخه های GitLab است.
جنکینز - اگرچه جنکینز به طور پیشفرض استاندارد در میان ابزارهای یکپارچهسازی مداوم در نظر گرفته میشود، اما همیشه فاقد قابلیتهای کنترل نسخه بوده است. به نظر می رسد که شما از جنکینز به علاوه نوعی ابزار SCM استفاده می کنید. وقتی GitLab می تواند هر دو را انجام دهد، بسیار دشوار است. طراحی UX متوسط برای یک برنامه وب مدرن مناسب نیست و چیزهای زیادی باقی می گذارد.
BitBucket/Bamboo - من باید او را به عنوان یک بازنده خودکار بشناسم: چرا دو ابزار زمانی که GitLab همه چیز را کاملاً مستقل انجام می دهد. BitBucket Cloud از عملکرد GitLab-CI / GitHub Action پشتیبانی می کند، اما هیچ شرکتی بزرگتر از یک استارت آپ نمی تواند به راحتی آن را پیاده سازی کند. سرور اولیه BitBucket حتی از خطوط لوله BitBucket پشتیبانی نمی کند!
شماره 1 ابزار مدیریت داده
برنده: FlywayDB
در توسعه برنامه های کاربردی وب معمولاً به اتوماسیون پایگاه داده اهمیت داده نمی شود. ایده استقرار تغییرات طرح پایگاه داده برای نسخه های جدید برنامه دیر به وجود می آید. تغییرات طرحواره اغلب منجر به اضافه شدن و تغییر نام ستون ها یا جداول می شود. اگر نسخه برنامه با نسخه طرحواره مطابقت نداشته باشد، ممکن است برنامه از کار بیفتد. علاوه بر این، مدیریت تغییرات پایگاه داده هنگام به روز رسانی یک برنامه کاربردی می تواند چالش برانگیز باشد زیرا دو سیستم مختلف وجود دارد. FlyWayDB همه این مشکلات را حل می کند.
مزایای اصلی
- نسخهسازی پایگاه داده - Flyway به شما امکان میدهد نسخههای پایگاه داده ایجاد کنید، مهاجرتهای پایگاه داده را دنبال کنید و به راحتی تغییرات طرحواره را بدون ابزار اضافی برای این کار انتقال یا برگردانید.
- باینری یا جاسازی شده - میتوانیم Flyway را به عنوان بخشی از برنامه یا به عنوان یک فایل اجرایی باینری اجرا کنیم. Flyway سازگاری نسخه را در هنگام راهاندازی بررسی میکند و مهاجرتهای مناسب را شروع میکند و پایگاه داده و نسخههای برنامه را همگام نگه میدارد. با اجرای دستور ad-hoc خط cmd، بدون بازسازی کل برنامه، انعطاف پذیری را برای پایگاه داده های موجود فراهم می کنیم.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
ابزارهای زیادی در این زمینه وجود ندارد. بیایید به برخی از آنها نگاه کنیم:
LiquiBase - Liquibase شبیه FlywayDB است. اگر کسی را در تیمم داشته باشم که تجربه بیشتری با Liquibase داشته باشد، میخواهم آن را در بالای Flyway تنظیم کنم.
گله - فقط می تواند برای برنامه های کاربردی کانتینری کار کند. برای اجرای موفقیت آمیز پایگاه های داده کانتینری، همه چیز باید به خوبی برنامه ریزی شود. توصیه می کنم از RDS (سرویس پایگاه داده رابطه ای) برای پایگاه های داده استفاده کنید و توصیه نمی کنم اطلاعات مهم را در یک ظرف ذخیره کنید.
ابزارهای اتوماسیون تست
بیایید بحث خود را در مورد ابزارهای اتوماسیون تست با طبقه بندی آنها بر اساس هرم تست شروع کنیم.
هرم تست (آزمون) دارای 4 سطح است:
- تست های واحد - این اساس کل فرآیند تست خودکار است. در مقایسه با انواع دیگر آزمون ها باید تعداد بیشتری از آزمون های واحد وجود داشته باشد. توسعه دهندگان تست های واحد را می نویسند و اجرا می کنند تا اطمینان حاصل کنند که بخشی از یک برنامه (معروف به "واحد") با طراحی آن مطابقت دارد و همانطور که انتظار می رود رفتار می کند.
- تست های مؤلفه - هدف اصلی از آزمایش مؤلفه، تأیید رفتار ورودی/خروجی شی آزمایش است. ما باید اطمینان حاصل کنیم که عملکرد شی آزمایشی مطابق با مشخصات به درستی اجرا می شود.
- تست های یکپارچه سازی - نوعی آزمایش که در آن ماژول های نرم افزاری به صورت گروهی ترکیب و آزمایش می شوند.
- تست های پایان به انتها - این مرحله کاملاً توضیحی است. ما بر کل برنامه نظارت می کنیم و مطمئن می شویم که طبق برنامه عمل می کند.
از آنجایی که تست های واحد و تست کامپوننت فقط توسط توسعه دهندگان انجام می شود و اغلب مختص زبان برنامه نویسی است، ما این ابزارها را برای دامنه DevOps ارزیابی نمی کنیم.
شماره 1 ابزار تست یکپارچه سازی
برنده: خیار
Cucumber مشخصات و مستندات آزمایشی را در یک سند زنده ترکیب می کند. مشخصات همیشه به روز هستند زیرا به طور خودکار توسط Cucumber آزمایش می شوند. اگر می خواهید یک چارچوب تست خودکار از ابتدا بسازید و رفتار کاربر را در یک برنامه وب مدل کنید، سپس Selenium WebDriver با جاوا و Cucumber BDD یک راه عالی برای یادگیری و پیاده سازی Cucumber در یک پروژه است.
مزایای اصلی
- رویکرد BDD (توسعه مبتنی بر رفتار - "توسعه از طریق رفتار" در مقابل رویکرد "توسعه مبتنی بر آزمون") - خیار برای آزمایش BDD طراحی شده است، در ابتدا برای همین کار ایجاد شد.
- مستندات زنده - مستندسازی همیشه دردناک است! از آنجایی که تستهای شما به صورت کد نوشته شدهاند، Cucumber مستندات تولید شده بهطور خودکار را آزمایش میکند تا مطمئن شود که آزمایشها و مستندات همگام هستند.
- پشتیبانی - ما میتوانیم از میان ابزارهای زیادی انتخاب کنیم، اما Cucumber منابع مالی لازم و یک سیستم پشتیبانی سازمانیافته برای کمک به کاربران در هر شرایط سختی دارد.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
در میان سایر چارچوب ها و ابزارهای خاص فناوری، فقط Cucumber می تواند یک راه حل جهانی در نظر گرفته شود.
ابزارهای تست سرتاسر
هنگام انجام آزمایش انتها به انتها، باید روی دو نکته کلیدی تمرکز کنید:
- تست عملکردی
- تست استرس.
در تست عملکرد، بررسی می کنیم که آیا هر چیزی که می خواهیم واقعا اتفاق می افتد یا خیر. به عنوان مثال، وقتی روی عناصر خاصی از SPA خود (برنامه تک صفحه ای) کلیک می کنم، فرم ها را پر می کنم و "Submit" را انتخاب می کنم، داده ها در پایگاه داده ظاهر می شوند و پیام "موفقیت!" روی صفحه ظاهر می شود.
همچنین برای ما مهم است که بررسی کنیم که تعداد معینی از کاربرانی که سناریو مشابهی را اجرا میکنند، میتوانند بدون خطا پردازش شوند.
عدم وجود این 2 نوع آزمایش، یک اشکال مهم در خط لوله CI/CD شما خواهد بود.
شماره 1 ابزار تست سرتاسر. تست عملکردی
برنده: SoapUI Pro
از زمانی که خدمات وب مبتنی بر SOAP استاندارد بودند، SoapUI برای مدت طولانی در فضای تست API بوده است. در حالی که ما دیگر خدمات SOAP جدیدی ایجاد نمی کنیم و نام ابزار تغییر نکرده است، این بدان معنا نیست که تکامل نیافته است. SoapUI یک چارچوب عالی برای ایجاد تست های عملکردی باطن خودکار فراهم می کند. تست ها را می توان به راحتی با ابزارهای یکپارچه سازی پیوسته ترکیب کرد و به عنوان بخشی از خط لوله CI/CD استفاده کرد.
مزایای اصلی
- مستندات دقیق - SoapUI برای مدت طولانی در بازار بوده است، بنابراین منابع آنلاین زیادی وجود دارد که می تواند به شما در درک نحوه تنظیم تست ها کمک کند.
- سهولت استفاده - اگرچه این ابزار از چندین پروتکل برای آزمایش API ها پشتیبانی می کند، وجود رابط مشترک SoapUI برای چندین سرویس، نوشتن تست ها را آسان تر می کند.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
سلنیوم یکی دیگر از سازهای عالی این گروه است. اگر در حال ساخت و اجرای یک برنامه مبتنی بر جاوا هستید، توصیه می کنم از آن استفاده کنید. با این حال، اگر در حال ساخت یک برنامه وب کامل با چندین فناوری هستید، میتواند برای اجزای غیر جاوا سخت شود.
شماره 1 ابزار تست سرتاسر. تست استرس
برنده: LoadRunner
توضیح: هنگامی که زمان بارگیری آزمایش هر عنصر برنامه شما فرا می رسد، فقط LoadRunner می تواند کار را کامل کند. بله، در ابتدا گران و دشوار است، اما LoadRunner تنها ابزاری است که به من، به عنوان یک معمار فنی، اطمینان کامل می دهد که کد جدید در شرایط بارگذاری شدید کار خواهد کرد. همچنین، فکر میکنم زمان آن فرا رسیده است که LoadRunner به جای تیمهای آزمایش، توسط تیمهای توسعهدهنده تصاحب شود.
مزایای اصلی
- مستندات گسترده - LoadRunner مدتی است که در بازار وجود داشته است، بنابراین منابع آنلاین زیادی وجود دارد که به شما در درک نحوه تنظیم تست های بار کمک می کند.
- پشتیبانی از پروتکل - Load Runner از ODBC گرفته تا AJAX، HTTPS و هر پروتکل غیر پیش پا افتاده دیگری که ممکن است برنامه شما استفاده کند، پشتیبانی می کند. ما سعی می کنیم از چندین ابزار برای تست بار استفاده نکنیم، زیرا این فقط فرآیند را پیچیده می کند.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
باز هم، ابزارهای جهانی زیادی در این زمینه وجود ندارد، بنابراین بهترین راه حل، راه حلی است که در هر محیطی با هر تکنولوژی کار کند.
ابزارهای استقرار
ابزارهای استقرار احتمالاً کمترین جنبه توسعه هستند. برای یک تیم عملیاتی بدون درک عمیق از کد و عملکرد برنامه، استفاده از چنین ابزارهایی دشوار است. برای توسعه دهندگان، مدیریت استقرار یک مسئولیت جدید است، بنابراین آنها هنوز تجربه کافی در کار با چنین ابزارهایی را ندارند.
اول از همه، بیایید همه ابزارهای استقرار را به سه زیر دسته تقسیم کنیم:
- مدیریت مصنوعات
- مدیریت پیکربندی
- استقرار
شماره 1 ابزار مدیریت مصنوع
برنده: رابطه
مخزن مصنوع Nexus تقریباً از همه فناوریهای اصلی، از جاوا گرفته تا NPM و Docker پشتیبانی میکند. ما می توانیم از این ابزار برای ذخیره تمام مصنوعاتی که استفاده می کنیم استفاده کنیم. پروکسی کردن مدیران بسته از راه دور نیز به طور قابل توجهی روند ساخت CI را سرعت می بخشد و بسته ها را برای ساختن در دسترس تر می کند. مزیت دیگر این است که می توان دید کاملی از تمام بسته های مورد استفاده در چندین پروژه نرم افزاری به دست آورد و بسته های منبع باز ناامن را مسدود کرد (آنها می توانند به عنوان یک بردار حمله عمل کنند).
مزایای اصلی
- پشتیبانی فنی - محصول قابل اعتماد؛ به خوبی پشتیبانی می شود.
- منبع باز - نسخه رایگان عملکرد اصلی مورد نیاز تیم های توسعه را محدود نمی کند.
شماره 1 ابزار مدیریت پیکربندی
برنده: غیر ممکن
Ansible یک رهبر به یک دلیل ساده است: بی تابعیت. پیش از این، چنین ابزارهایی بر مدیریت وضعیت پیکربندی متمرکز بودند. هنگامی که راه اندازی شد، چنین ابزاری با دریافت پیکربندی مورد نظر، سعی می کند پیکربندی برنامه فعلی را اصلاح کند. و با رویکرد جدید، تنها مولفه های بدون تابعیت حضور دارند. نسخههای جدید کد، مصنوعاتی هستند که برای جایگزینی نسخههای موجود استفاده میشوند. این را می توان نوعی محیط زودگذر و کوتاه مدت در نظر گرفت.
مزایای اصلی
- بدون حالت - Playbook از دستگاه استقرار راه اندازی می شود و بر روی سرورهای هدف اجرا می شود. با استفاده از ابزاری مانند Packer برای ایجاد اشیاء قابل استقرار، لازم نیست نگران وضعیت شی از راه دور باشم.
- منبع باز - مانند CentOS، Ansible نیز توسط RedHat پشتیبانی می شود. این به حفظ جامعه کمک می کند و ماژول های با کیفیت بالا و استفاده آسان را ارائه می دهد.
- تست با Molecule (یک چارچوب Ansible) - از آنجایی که مدیریت پیکربندی مانند هر چیز دیگری کد است، آزمایش ضروری است. چارچوب تست نقش Ansible Molecule بینقص کار میکند و تضمین میکند که پیکربندی از کیفیت یکسانی برخوردار است و از خط لوله CI/CD مشابه کد برنامه پیروی میکند.
- YAML - در مقایسه با سایر ابزارها، درک YAML آسانتر است. از آنجایی که مدیریت پیکربندی معمولاً یک چالش جدید برای کسانی است که رویههای DevOps را اجرا میکنند، سادگی برگ برنده آن است.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
سرآشپز OpsCode - من حرفه DevOps خود را به عنوان یک توسعه دهنده کتاب آشپزی شروع کردم. Ruby و Chef البته برای من بسیار عزیز هستند، اما آنها به سادگی مشکلات برنامه های کاربردی مدرن بدون دولت و بومی ابری را حل نمی کنند. OpsCode Chef یک ابزار عالی برای کاربردهای سنتی تر است، اما در این مقاله ما بر روی آینده تمرکز کرده ایم.
عروسک خیمه شب بازی — عروسک هرگز طرفداران زیادی نداشته است، به خصوص در مقایسه با آشپز و آنزیل. برای تهیه و کار با سخت افزار عالی است، اما فاقد پشتیبانی مدیریت پیکربندی مدرن برای یک برنامه وب است.
ابزار استقرار شماره 1
برنده: Terraform
Terraform مشکل توصیف زیرساخت شما به عنوان کد، از اجزای شبکه تا تصاویر سرور کامل را حل می کند. این محصول از زمان انتشار اولیه راه طولانی را پیموده است، با افزونه های زیادی ایجاد شده و جامعه قوی ساخته شده است که مطمئن باشید در هر سناریویی استقرار کمک خواهید گرفت. توانایی پشتیبانی از هر نوع محیطی (در محل، در فضای ابری یا جاهای دیگر) بی نظیر است. در نهایت، آخرین نسخه بسیاری از توابع منطقی و کلاسهای مشابه را در HCL مانند هر زبان برنامهنویسی سنتی دیگر ارائه میکند، و درک سریع و آسان Terraform را برای توسعهدهندگان آسان میکند.
مزایای اصلی
- Environment agnostic - Terraform از توابعی استفاده می کند که به عنوان رابط بین کد Terraform، همه APIها و منطق داخلی برای برقراری ارتباط با ارائه دهنده زیرساخت عمل می کند. این بدان معناست که من فقط بر یک ابزار مسلط خواهم شد و سپس می توانم در هر جایی کار کنم.
- منبع باز - شکست دادن ابزارهای رایگان سخت است! حمایت جامعه در بالاترین سطح.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
AWS CloudFormation - حتی اگر فقط در محیط ابری AWS کار می کنید، شغل بعدی شما ممکن است از ابزار دیگری استفاده کند. اختصاص تمام وقت و انرژی خود به یک پلتفرم یک تصمیم کوته بینانه است. علاوه بر این، بسیاری از سرویس های جدید AWS اغلب به عنوان ماژول های Terraform قبل از اینکه در CloudFormation در دسترس باشند، در دسترس هستند.
ابزارهای زمان اجرا
هدف نهایی هر پروژه توسعه، راه اندازی اپلیکیشن به مرحله تولید است. در دنیای DevOps، ما میخواهیم از تمام مشکلات احتمالی محیط خود کاملاً آگاه باشیم و همچنین میخواهیم مداخله دستی را به حداقل برسانیم. انتخاب مجموعه مناسب از ابزارهای زمان اجرا برای دستیابی به نیروانای توسعه برنامه ضروری است.
زیر مجموعه ابزارهای زمان اجرا:
- X-as-a-service (XaaS)
- تنظیم و ارکستراسیون
- نظارت بر
- چوب بری
X-tool-as-a-service #1
برنده: آمازون خدمات وب
آمازون همیشه در فناوری های ابری پیشرو بوده است، اما به همین جا ختم نمی شود: تنوع خدمات جدید برای توسعه دهندگان چشم باز است. هر فناوری و قالبی را به AWS بیاورید و ساخته و اجرا خواهد شد. هزینه ابزار کاملا معقول است: آن را با مونتاژ، مدیریت و نگهداری تجهیزات در مرکز داده خود مقایسه کنید. نسخه رایگان به شما امکان می دهد قبل از خرج کردن پول آزمایش کنید و تصمیم درستی بگیرید.
مزایای اصلی
- شیوع - اگر تجربه ساخت برنامه های کاربردی در AWS را دارید، می توانید در هر جایی کار کنید. کسبوکارها AWS را دوست دارند و استارتآپها نیز از هزینه کم آن استقبال میکنند.
- نسخه رایگان یک عامل واقعاً مهم است که AWS را از همتایان خود متمایز می کند. اجازه دهید قبل از تصمیم گیری برای خرید، این سرویس را امتحان کنم و ببینم چگونه کار می کند، نمی خواهم هزاران دلار برای چیزی غیر ضروری خرج کنم. نسخه رایگان همیشه برای آزمایش هر مفهومی کافی است.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
لاجوردی «آژور از اولین عرضهاش تا کنون راه طولانی را پیموده است و این ستودنی است. با این حال، میل به متفاوت بودن باعث شده تا نام های عجیب و غریبی برای خدمات ایجاد شود که اغلب کار را پیچیده می کند. "ذخیره حباب" به چه معناست؟ و در حالی که کد دات نت در اکوسیستم مایکروسافت عملکرد بهتری دارد، بعید است که شما فقط از دات نت برای هر جزء برنامه خود استفاده کنید.
هروکو - به دلیل سطح پایین اطمینان و شفافیت، من هرگز چیزی جز یک پروژه شخصی روی Heroku اجرا نمی کنم، بنابراین شرکت ها نباید از آن به عنوان یک پلتفرم استفاده کنند. Heroku برای نشان دادن چیزی در وبلاگ عالی است، اما برای استفاده عملی - "نه، متشکرم!"
شماره 1 ابزار ارکستراسیون
برنده: openshift
احتمالاً از Docker یا سایر کانتینرها در پشته برنامه خود استفاده می کنید. برنامه های بدون سرور عالی هستند، اما ممکن است با هر معماری مناسب نباشند. اجرای کانتینرها بدون پلت فرم ارکستراسیون به سادگی کار نخواهد کرد. Kubernetes Core (K8s) از نظر امنیت و ابزار بی رقیب است. OpenShift تنها پلتفرم مبتنی بر Kubernetes است که میتواند Source2Image را جمعآوری کند، از استقرار خودکار در پادها و همچنین ردیابی و نظارت پشتیبانی میکند. OpenShift را می توان همزمان روی پرم، در فضای ابری، یا روی پرم و در فضای ابری اجرا کرد.
مزایای اصلی
- امنیت داخلی - مدیریت امنیت K8s ممکن است به مدرک پیشرفته نیاز داشته باشد. هر جزئیات باید با دقت فکر شود و در نظر گرفته شود! مکانیسمهای امنیتی که بهطور پیشفرض با OpenShift تعبیه شده است، بار توسعهدهندگان را برمیدارد و بستر امنتری را برای برنامهها فراهم میکند.
- راه حل همه کاره - برخلاف K8 های اصلی که به طور پیش فرض شامل ابزارهای متعادل کننده بار نیستند، OpenShift همه اینها را دارد. من می توانم از آن برای ایجاد و میزبانی کانتینرها، اجرای ابزارهای CI/CD، مدیریت فرآیندهای خارجی، مدیریت کلیدها و موارد دیگر استفاده کنم. اگرچه رابط کاربری گرافیکی هنوز با ایده آل فاصله دارد، رویکرد مبتنی بر API به این معنی است که همه چیز را می توان در یک اسکریپت توصیف کرد. برخلاف سایر رابطهای کاربری گرافیکی برای K8، OpenShift یادگیری اصول اولیه Kubernetes را بسیار آسانتر میکند. حتی نیازی به گرفتن مدرک هم نیست!
رقبا
در جنگ شرکت کرد، اما پیروز نشد
داکر سوارم - Docker Swarm سعی کرد با خلاص شدن از شر بسیاری از چیزها، K8 ها را ساده کند. برای برنامه های کوچک عالی است، اما برای برنامه های سازمانی کار نمی کند. علاوه بر این، راهحلهایی مانند AWS ECS رویکردی مشابه دارند، اما کار با سایر سرویسهایی را که میتوانم با آنها نیز تعامل داشته باشم (Lambda، IAM و غیره) آسانتر میکنند.
ابزار نظارت شماره 1
برنده: یادگار جدید
نسخه های اولیه New Relic یک چیز را به خوبی انجام دادند - نظارت بر عملکرد APM (Application Performance Monitoring). اکنون یک ابزار نظارتی با امکانات کامل است که به شما امکان نظارت بر عملکرد سرور، کانتینر، پایگاه داده، نظارت بر تجربه کاربر نهایی و البته نظارت بر عملکرد برنامه را می دهد.
مزایای اصلی
- سهولت استفاده - زمانی که به عنوان مهندس سیستم کار می کردم، از ابزارهای نظارتی زیادی استفاده می کردم، اما هرگز با ابزاری به سادگی و استفاده آسان مانند New Relic مواجه نشده بودم. این SaaS است، بنابراین نیازی نیست خودتان آن را نصب کنید.
- دید سرتاسر - ابزارهای دیگر سعی میکنند بر یک عنصر خاص از برنامه شما نظارت کنند. به عنوان مثال، معیار استفاده از پردازنده یا ترافیک شبکه، اما همه اینها باید به طور جامع نظارت شود تا برنامه به درستی کار کند. New Relic به شما این توانایی را می دهد که تمام داده های خود را با هم جمع کنید تا دیدی جامع از آنچه در حال رخ دادن است داشته باشید.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
Zabbix — اولین و مورد علاقه سیستم مانیتورینگ من، اما به دلیل عدم توسعه در فناوری های ابری و در زمینه نظارت بر عملکرد برنامه های کاربردی APM در گذشته باقی مانده است. Zabbix هنوز هم نظارت بر زیرساخت های سرور سنتی را به خوبی انجام می دهد، اما این در مورد آن است.
DataDog - تمرکز بیش از حد روی فرآیند مدیریت محیط تولید برنامه، و نه بر روی خود کد. با تیمهای DevOps که شامل توسعهدهندگان میشوند، لازم نیست برای ارائه پشتیبانی درجه یک به ابزارهای دشوار استفاده کنیم.
ابزار ثبت شماره 1
برنده: پاره شدن
رقابت با Splunk سخت است! او برای مدت طولانی در زمینه چوببرداری رهبر باقی میماند و بهتر از هر کس دیگری به انجام آن ادامه میدهد. با ارائههای on-prem و SaaS، میتوانید از Splunk در هر مکانی استفاده کنید. نقطه ضعف بزرگ قیمت آن است: Splunk هنوز لعنتی گران است!
مزایای اصلی
- فراگیر بودن - کسب و کارها Splunk را دوست دارند و شرکت ها پول خرید آن را دارند.
- اگرچه استارتاپ ها در تلاش برای جبران هزینه ها هستند، بسیاری از عملکردها را می توان به لطف آنالوگ های منبع باز حل کرد.
- قابلیت نگهداری - به زبان ساده، Splunk کار می کند و آن را به خوبی انجام می دهد. با بسیاری از تنظیمات و ویژگی های پیش فرض آماده استفاده است. نیازی به اتلاف وقت برای خواندن اسناد و تلاش برای کار Splunk یا رمزگشایی چیزی نیست.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
ELK Stack (ElasticSearch، LogStash و Kibana) "به نظر می رسد این ابزارها مورد علاقه هستند زیرا برای استفاده از آنها حتی مجبور نیستید جگر خود را بفروشید." با این حال، با افزایش مجموعه لاگها و افزایش تعداد برنامههای کاربردی موجود، کار سختتر و دشوارتر میشود. در مقایسه با Splunk، با ELK Stack من زمان بسیار بیشتری را برای تنظیم ابزار قبل از ایجاد هر داشبورد نسبت به قبل صرف کردم.
ابزارهای همکاری
DevOps در درجه اول در مورد تغییر فرهنگ در یک سازمان است. خرید هیچ ابزاری یک شبه رویههای فعلی را تغییر نمیدهد، اما مطمئناً میتواند همکاری و روشهای جدید تعامل را تشویق کند.
زیر مجموعه ابزارهای همکاری:
- ردیابی کار
- ChatOps
- مستندات.
ابزار ردیابی شماره 1
برنده: سرو
جیرا جایگاه رهبری خود را حفظ می کند، اگرچه رقابت در این زمینه در حال افزایش است. انعطافپذیری باورنکردنی Jira به تیمهای توسعه و تعمیر و نگهداری اجازه میدهد تا کار پروژه و وظایف اسپرینت را مدیریت کنند. استانداردهای داخلی با استفاده از اصطلاحات Agile حرکت از روش های سنتی کار به فرآیندهای کارآمدتر را آسان تر می کند.
مزایای اصلی
- محبوبیت - مانند بسیاری از ابزارهای دیگر، Jira تقریباً در همه جا استفاده می شود. تیمهای کوچک از نسخه ارزانتر و در دسترستر استفاده میکنند و همه چیز مورد نیاز خود را دریافت میکنند، در حالی که شرکتهای بزرگتر میتوانند مجوزهای گرانتری را تهیه کنند.
- ادغام - جیرا در زمینه خود پیشگام است. این واقعیت و توسعه سریع محصول منجر به این واقعیت می شود که سایر شرکت ها جیرا را برای ایجاد یکپارچگی های خود انتخاب می کنند و در نتیجه ارزش ابزار را افزایش می دهند. میتوانیم جیرا را با تمام ابزارهای فهرستشده در این مقاله با کمی تنظیمات ادغام کنیم.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
Trello - Trello به لطف ابزار رایگان Kanban خود به سرعت محبوبیت پیدا کرد. با این حال، هنگامی که فرآیندها مقیاس می شوند و از ده ها کار به هزاران کار می رسید، ترلو برای پیمایش، جستجو و گزارش دهی دشوار می شود.
ردیاب محوری — زمانی که برای یک استارت آپ کار می کردم، از طرفداران پر و پا قرص این ابزار بودم. با این حال، Pivotal Tracker بیشتر بر مدیریت محصول متمرکز است تا وظایف فنی. اگرچه مدیریت محصول در Jira کمی پیچیدهتر است، اما همچنان میتوان آن را بدون استفاده از ابزار اضافی در آنجا پیادهسازی کرد.
ابزار ChatOps شماره 1
برنده: مهمترین ماده
توضیح: شاید بزرگترین سورپرایز برای شما در انتخاب من، و این یک خبر خوب است! MatterMost با استفاده از بهترین ابزارهای قبلی اما قرار دادن آنها در حالت اولیه محبوبیت پیدا کرد. این برای شرکتها بسیار مهم است: MatterMost به شما امکان میدهد دادههای خود را کنترل کنید و همچنین به شما کمک میکند آنها را با ابزارهایی که به صورت محلی اجرا میشوند یکپارچه کنید. دیگر لازم نیست برای بررسی چت های کاری به خارج از فایروال برویم.
مزایای اصلی
- منبع باز – نسخه منبع باز MatterMost برای تیم های متوسط و بزرگ عالی کار می کند. بر خلاف طرح رایگان Slack که تاریخچه پیام شما را حذف می کند، اجرای سرور خود به این معنی است که تمام داده های خود را حفظ می کنید.
- ادغام - از آنجایی که API تقریباً 100٪ بر اساس Slack API است، تقریباً همه ادغام های Slack می توانند مستقیماً با MatterMost استفاده شوند.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
شل - Slack جالب است، اما این افراد آنقدر رشد کرده اند که شروع به دنبال سود کرده اند. مرحله بازپرداخت کسب و کار نزدیک می شود، که ارزش اصلی آنها را از بین می برد: Slack خدمات رایگان ارائه می دهد. مهمترین نقطه ضعف نسخه رایگان حذف تاریخچه چت است.
تیم های مایکروسافت — سعی کنید یک محصول مایکروسافت را با چیزی که متعلق به مایکروسافت نیست یکپارچه کنید... موفق باشید! این تمام چیزی است که در مورد این ابزار باید بگویم!
ابزار اسناد شماره 1
برنده: تلاقی
ایجاد و حفظ مستندات فنی با کیفیت یک فرآیند پیچیده است، مهم نیست از چه ابزاری استفاده می کنید. اگرچه بسیاری از ابزارهای مستندسازی SaaS اخیراً وارد بازار شدهاند، برای من سخت است که ذخیرهسازی اسناد فنی در مورد برنامههای کاربردی حیاتی را به شخص ثالث برون سپاری کنم. ترجیح داده میشود که دادهها و اسناد را روی پرم ذخیره کنید، و Confluence اینگونه آن را حل میکند.
مزایای اصلی
- کارکرد آسان - راه اندازی و کارکرد بیشتر ابزارهای مستقل می تواند کمی پیچیده باشد و برای نگهداری نیاز به دانش دارد. Confluence Server برای 10 یا 10,000 کاربر به خوبی کار می کند.
- پلاگین ها - قدردانی از Confluence برای داشتن ناوبری زیبا و آسان برای استفاده، و توانایی افزودن یک افزونه برای تقریباً همه چیز، پتانسیل های ویکی مانند را باز می کند.
رقبا
در جنگ شرکت کرد، اما پیروز نشد
اسناد را بخوانید - برای منبع باز جالب است، اما حتی به ذخیره دانش مهم در اینجا فکر نکنید.
علامت گذاری - برای مستندسازی کد عالی است، اما به دلیل قالب بندی خاص MarkDown، ارسال معماری، فرآیندها یا انواع دیگر اسناد دشوار است.
جکیل — هنگام مستندسازی دانش فنی، نمیخواهم یک سایت ثابت جدید ایجاد کنم که هر بار تغییری ایجاد شود، مستقر شود. سیستم کنترل نسخه ساده Confluence اسناد داخلی را بسیار ساده می کند.
خلاصه کردن
به معنای واقعی کلمه صدها ابزار DevOps در بازار وجود دارد که تشخیص اینکه کدام یک و چه زمانی باید اجرا شوند را دشوار می کند. این راهنمای ساده را برای انتخاب ابزار DevOps برای خط لوله کامل CI/CD دنبال کنید.
مطمئن شوید که ابزارها را از هر پنج دسته انتخاب کنید:
- توسعه و ساخت ابزار
- تست ابزارهای اتوماسیون
- ابزارهای استقرار
- ابزارهای زمان اجرا
- ابزارهای همکاری
توصیه اصلی: همه چیز را خودکار کنید!
متشکرم زاک شاپیرو!
منبع: www.habr.com