Devops سخت است، اما انتخاب بین توسعه سریعتر و بهبود قابلیت اطمینان نباید باشد. امنیت تغییر سمت چپ، قابلیت مشاهده بهتر، پلتفرم های AIops و موارد دیگر را در نظر بگیرید.
Devops در درجه اول با همکاری بین توسعه دهندگان و عملیات برای بهبود تحویل و قابلیت اطمینان برنامه های کاربردی در تولید مرتبط است. متداول ترین بهترین شیوه ها با هدف جایگزینی رویه های دستی و مستعد خطا که در مرزهای بین تیم های توسعه دهنده و عملیاتی مدیریت می شوند با اتوماسیون های قوی تر است. اینها عبارتند از خودکار خط لوله تحویل با CI/CD (ادغام پیوسته و تحویل مداوم)، استانداردسازی پیکربندی ها با کانتینرها، و پیکربندی زیرساخت به عنوان کد. در سمت عملیات، بهترین شیوه ها را برای بهبود قابلیت اطمینان برنامه ارائه می کند شامل بهبود قابلیت مشاهده برنامه ها، افزایش نظارت و خودکارسازی عملیات ابر و زیرساخت است.
اما در مورد بهبود عملکرد برنامهها، پایگاههای داده، خطوط لوله داده و زیرساختهای ابری چطور؟ در این پست، من با کارشناسان مشورت کردم و هفت فرصت را شناسایی کردم که در آن روشها و روشها میتوانند بر عملکرد و تجربه کاربر تأثیر بگذارند.
۱. روشهای امنیتی را از روز اول در برنامهها بسازید
آخرین چیزی که تیمهای توسعه دهنده به آن نیاز دارند، استقرار قابلیتهای جدید با آسیبپذیریهای امنیتی است. قطع یا تخریب امنیت بر تجربیات کاربر تأثیر می گذارد و مشکلات تجاری مهمی ایجاد می کند. بهترین روش ایجاد امنیت به چپ با همکاری با infosec در مورد الزامات، آزمایش آسیبپذیریهای کد در خطوط لوله CI/CD، و اجرای سایر روشهای امنیتی در توسعه نرمافزار است.
Mike Elissen، مدافع ارشد توسعهدهنده در Akamai، میگوید: «یکی از مؤلفههای مهم قابلیت اطمینان برنامه در دسترس بودن است، و انجام اقدامات مناسب برای ایمن کردن مناسب برنامه در برابر حملات برنامههای وب، حملات DDoS و موارد دیگر میتواند به معنای تفاوت بین ماندن باشد. آنلاین و آفلاین.”
Elissen میگوید که جابجایی به چپ بخشی از تبدیل از devops به devsecops است. او ادامه میدهد: «ما شاهد هستیم که «تغییر سمت چپ» در افزودن امنیت به برنامهها بیشتر و بیشتر آشکار میشود، که در نهایت فرهنگ توسعهدهنده قویتری ایجاد میکند و توسعهدهندگان بیشتری را نسبت به امنیت برنامههایشان آگاه و مسئول میکند.
۲. استاندارد کردن نقشه های معماری و زیرساخت
امیر روزنبرگ، معاون مدیریت محصول در Quali، مشکلی را بیان می کند که بر عملکرد تیم تأثیر می گذارد. او میگوید، «بسیاری از تیمهای توسعهدهنده خود را در حال سازماندهی هرج و مرج تعاریف زیرساخت برنامهای که بهطور ارگانیک رشد کردهاند، سازماندهی میکنند، که در اوایل با حسن نیت توسعه داده شدند تا کارایی تیم را در چرخه عمر توسعه نرمافزار فعال کنند.
روزنبرگ میپرسد که آیا تیمهای توسعهدهنده باید رویکردی را که خودتان انجام دهید برای ایجاد محیطها اعمال کنید یا اینکه سازمان باید استانداردهایی ایجاد کند. او میگوید: «رویکرد توصیهشده ایجاد یک تیم مرکزی برای مدلسازی محیطها در قالب طرحهای اولیه است تا قابل اعتماد، قابل استفاده مجدد و سازگار باشند. سپس آنها به توانایی توزیع آن تعاریف زیرساخت نیاز دارند تا از طریق سلف سرویس سریع در اختیار مؤسسات تجاری قرار گیرند، چه در خط لوله خودکار یا به صورت دستی ادغام شده باشند.»
۳. قابلیت مشاهده و آزمایش مداوم در خط لوله CI/CD
مت سولی، مدیر devops در ۶۶ درجه، بر این باور است که CI/CD می تواند بیشتر از بسته بندی و فشار دادن کد انجام دهد. او میگوید: «همه اصول توسعهدهنده به اندازه تحویل مداوم یا ساختن همه چیز مانند کد جذاب یا قابل مشاهده نیستند، اما به همان اندازه مهم هستند. ادغام پیوسته یکی از اجزای یک پوسچر توسعه یافته بالغ است که می تواند تا حد زیادی به قابلیت اطمینان یک برنامه بیافزاید، اما ساختن به روشی معنادار به هدف، چشم انداز و زمان نیاز دارد.”
سالی اذعان میکند که بیش از داشتن چشمانداز، دستیابی به اهداف قابلیت اطمینان و عملکرد مستلزم سرمایهگذاری در شیوهها و معماریهای بهینه است. مشاهده پذیری یک اصل مهم و پرهزینه است زیرا قابلیت اطمینان یک حالت روشن یا خاموش نیست و نیاز به جمع آوری داده های ظریف دارد. با همه خدمات رایانش ابری، انتخاب ابزار یا سرویس مناسب برای این کار میتواند قابلیت اطمینان و مزایای عملکرد ذاتی را به همراه داشته باشد.”
تیمهای توسعهدهنده چابک برای بهبود عملکرد چه چیزی را باید در خطوط لوله خود پیادهسازی کنند؟ در اینجا چند توصیه وجود دارد:
-
قبل از افزایش فرکانس استقرار،
- آزمایش مداوم را اجرا کنید
- مجازی سازی سرویس را در نظر بگیرید برای آزمایش میکروسرویس ها و API های شخص ثالث
- اطمینان از خطوط لوله قابل مشاهده CI/CD برای بهبود خطا شناسایی و جداسازی مشکلات خط لوله
۴. استقرارها را با پرچم های ویژگی و انتشارات قناری
کنترل کنید
استقرارها نیازی به قطع مطلق ندارند که در آن همه کاربران همه تغییرات را در یک عکس دریافت می کنند. پرچمهای ویژگی در کد به پیکربندی و کنترل در دسترس بودن یک ویژگی کمک میکند، در حالی که استراتژیهای انتشار قناری به تیمهای توسعهدهنده امکان میدهد قابلیتهای جدید را به آرامی و روشمند ارائه کنند.
جان کودومال، مدیر ارشد فناوری و یکی از بنیانگذاران LaunchDarkly، میافزاید: «مدیریت ویژگیها، بهویژه پرچمهای ویژگیها، به سرعت در حال تبدیل شدن به روشهای توسعهدهنده هستند که قابلیت اطمینان و عملکرد کلی برنامهها را بهبود میبخشد و در عین حال به توسعهدهندگان اجازه میدهد به طور مداوم نوآوری کنند. با استفاده از پرچمهای ویژگی، توسعهدهندگان میتوانند بهروزرسانیهای ویژگی را قبل از تولید آزمایش کنند تا مشکلات را قبل از انتشار عیبیابی کنند.”
کنترلها قابلیت اطمینان و عملکرد را بهبود میبخشند، اما به تیمهای توسعهدهنده کمک میکنند تا اختلالات را به حداقل برسانند. Kodumal میگوید: «پرچمهای ویژگی عملکرد را بهبود میبخشند در حالی که به تیمهای توسعه کنترلهای لازم را میدهند تا برنامهها را بدون اختلال یا خرابی بهروزرسانی کنند».
۵. استانداردهای قابل مشاهده و نظارت دقیق
را ایجاد کنید
با تمرکز بر روی جنبه عملیاتی مسئولیتهای توسعه، تیمها باید چندین روش برتر را برای بهبود عملکرد برنامه، از جمله توسعه استانداردهای مشاهدهپذیری و بهبود نظارت در نظر بگیرند.
فردریک هارپر، مدیر روابط توسعهدهنده در Mindee، میگوید: «Devops باید نظارت دقیق و فرآیندهای مشاهدهپذیری را اجرا کند تا اطمینان حاصل شود که هر بخش از برنامه به درستی کار میکند و فرآیندهای سرور به خوبی اجرا میشوند. با ایمن کردن این عنصر، تیمهای توسعهدهنده میتوانند اطلاعات ارزشمندی را جمعآوری کنند تا بفهمند کاربران چگونه از برنامهها استفاده میکنند، احتمالاً از مشکلات آینده جلوگیری میکنند، پشتیبانی از مشتریان را آسانتر میکنند، و تصمیمات تجاری یا معماری را بر اساس دادههای واقعی بهبود میبخشند.”
۶. نظارت را با AIops و اتوماسیون
گسترش دهید
در روزهای وب ۲.۰، ops فقط تعداد انگشت شماری فایل گزارش و ابزارهای نظارتی برای بررسی در صورت قطع یا مشکل عملکرد داشت. امروزه، اجرای میکروسرویسها، برنامههای کاربردی بدون سرور و پایگاههای داده چند ابری مستلزم استفاده از دادهها و ابزارهای بسیار بیشتری برای حل و فصل حوادث و شناسایی علل ریشهای مشکل است. پلتفرمهای AIops که دادههای نظارت را متمرکز میکنند، از یادگیری ماشین برای مرتبط کردن هشدارها استفاده میکنند و کمک به عملیات خودکار پاسخگویی و بازیابی در چندین پلتفرم میتواند به به حداقل رساندن تأثیرات عملکرد کمک کند.
Mohan Kompella، معاون بازاریابی محصول در BigPanda، موافق است، “پلتفرمهای AIops میتوانند به تیمهای توسعهدهنده کمک کنند تا استقلال و انعطافپذیری ابزار را حفظ کنند و در عین حال به پاسخدهندگان حادثه متمرکز، دید لازم را بدهند تا اولین خط دفاعی برای قطع برق باشند. /p>
۷. SLO ها و بودجه های خطا را تعریف کنید
تیمهای Devops باید تمرینهایی را که بیشترین سود را دارند و خطرات را برطرف میکنند، متعادل کنند. این امر مستلزم اندازهگیری، یادگیری و همکاری تیمها در اولویتهای توسعه است، که وقتی مزایای آن ممکن است ماهها یا سالها پس از اجرای شیوهها و ابزارها قابل درک نباشد، آسان نیست.
یکی از روشهای اولویتبندی، اتخاذ شیوههای مهندسی قابلیت اطمینان سایت است، تعریف اهداف سطح سرویس (SLO) و استفاده از بودجه خطا. هنگامی که یک برنامه یا میکروسرویس از بودجه خطای خود فراتر می رود، به تیم توسعه دهنده سیگنال می دهد تا علل را شناسایی کرده و روی راه حل ها تمرکز کند.
کیت مرکر، مدیر ارشد اجرایی در Nobl9، میگوید: «اهداف در سطح خدمات، اهداف روشنی را برای تیمهای مهندسی تعیین میکنند تا تصمیمات بهتری در مورد نحوه اولویتبندی کار خود بگیرند. توسعه دهندگان و آی تاپ ها نه تنها می توانند فناوری محور باشند، بلکه می توانند به سمت سرویس محوری حرکت کنند.”
تیمهای توسعهدهنده چیزهای زیادی در دستور کار خود دارند، و بهترین شیوههای توسعه به تیمها کمک میکند تمرکز خود را بین تسریع برنامهنویس و بهبود قابلیت اطمینان و عملکرد متعادل کنند. کلید موفقیت ممکن است در تعریف بیانیههای مشکل، بحث در مورد رویکردها، تکرار راهحلها و اندازهگیری تأثیر باشد.
پست های مرتبط
۷ روش هایی را برای بهبود عملکرد برنامه توسعه می دهد
۷ روش هایی را برای بهبود عملکرد برنامه توسعه می دهد
۷ روش هایی را برای بهبود عملکرد برنامه توسعه می دهد