در WP Engine، محصول و سازمان مهندسی ما یک فرآیند بهبود مستمر را برای حفظ سطح نخبگان توسعه نرمافزار و عملکرد ارائه اعمال میکند.
این شامل تمرکز لیزری بر چابکی است که با معیارهای تحقیق و ارزیابی DevOps (DORA) برای سرعت، ثبات و کیفیت نمونهای است.
برای دستیابی به اهداف خود، همکاران مهندسی ما به پلتفرم تحویل نرمافزار کاتالیست داخلی WP Engine (SDP) و ما، تیم اختصاصی Catalyst که آن پلتفرم را توسعه و نگهداری میکنیم، تکیه میکنند تا پایهای یکپارچه برای توسعه، انتشار و مدیریت محصول ارائه دهیم.
هدف Catalyst SDP کاهش بار عملیاتی و بار شناختی تیمهای داخلی ما است و در عین حال به طور قابل توجهی قابلیت مشاهده، امنیت و سرعت تحویل خدمات را بهبود میبخشد. از آنجایی که ارزش پلتفرم برای کاربران در دو سال گذشته عمیقتر شده است، مجموعه بارهای کاری گسترش یافته و شامل بیش از 30 برنامه و سرویس میشود. تیم ها و محصولات جدید هر چند هفته یکبار به بازار می آیند.
با این حال، در روزهای اولیه SDP، مهندسانی که در پشتیبانی از خدمات تولید بر روی پلتفرم موفق بودند، با مدیریت پیکربندی اپلیکیشن نیز دست و پنجه نرم کردند. در حالی که تیم Catalyst بر روی یک گردش کاری که از ابزارهای پیکربندی اعلامی استفاده می کرد، تصمیم گرفت، ما تعادل مناسبی بین انعطاف پذیری و سهولت استفاده ایجاد نکردیم.
ما نیاز داشتیم که چالش های کاربران SDP را از نزدیک ارزیابی کنیم و اقدام کنیم. هنگامی که با مهندسان تعامل داشتیم، می دانستیم که توسعه برنامه در واقع به دلیل پیچیدگی ابزارهای پیکربندی کند شده است. به طور خاص، کاربران برای ایجاد پیکربندیهای Kubernetes که الزامات امنیتی WP Engine را برآورده میکنند، مشکل پیدا کردهاند.
ما بار استفاده از ابزارهای متعدد، اسکریپتهای سفارشی و وصلههای پیکربندی پیچیده را برای تخصیص منابع، همانطور که توسط راهحل مدیریت پیکربندی ما لازم است، درک کردیم. ما همچنین تلاش های چند برابری را در تیم ها برای حل مستقل نقاط درد مشترک تشخیص دادیم.
برای بازگرداندن تمرکز تیم های محصول بر روی توسعه و تحویل نرم افزار بهترین در کلاس، ما باید کار می کردیم. ما همچنین بهعنوان برندگان جایزه Google DevOps 2021 به خاطر «آزادسازی تمام قدرت ابر» شناخته میشویم!
بیایید تغییراتی را که در گردش کار مدیریت پیکربندی خود در SDP ایجاد کردهایم، رویکرد استقرار ما، و تأثیر این تغییرات بر تجربه مهندسی را بررسی کنیم.
پیچیدگی کمتر
برای رفع نیاز به الگوهای همپوشانی، اشکال زدایی پیچیده یا اسکریپت های سفارشی، ابزارهای مورد نیاز برای کار بر روی پیکربندی ها را ادغام کرده ایم. مهندسان اکنون می توانند موارد استفاده اولیه را با یک ابزار واحد به نام kpt که با پیکربندی آن به عنوان یک مدل داده، تغییرات پیکربندی عملکردی را ساده می کند، رسیدگی کنند.
توابع مشترک
تأثیرگذارترین خروجی، کتابخانه ای از تعاریف منابع Kubernetes قابل استفاده مجدد به عنوان توابع kpt بود. مهندسان اکنون میتوانند برنامههایی را با ماژولهای پیکربندی عملکردی و قابل همکاری بسازند و میتوانند از تنظیمات بستهبندیشده k8s و تنظیمات زمانآزمایش شده استفاده کنند، که افزونگی کد را کاهش میدهد و قابلیت نگهداری را افزایش میدهد.
نمونه های مستند
برای سادهتر کردن اجرای موارد استفاده کاربردی رایج، مانند پیکربندی و تأیید اعتبار یک پایگاه داده، نمونههای مستندی از فراخوانی توابع kpt خود ارائه کردهایم. با کمک یک نقطه شروع ثابت و قابل اعتماد، مهندسان می توانند با اطمینان و سرعت در کار ارزش افزوده خود به جلو حرکت کنند.
امنیت به صورت پیش فرض
برای موارد استفاده استاندارد مانند قرار دادن یک برنامه در معرض اینترنت یا مسیریابی ترافیک بین سرویسها در یک شبکه، ما انطباق امنیت شرکتی اصلی را در خود عملکرد kpt قرار دادهایم. هنگام اعمال عملکرد ما در موارد استفاده خود، تیمهای محصول از حالت امنیتی اجباری “بستن پیشفرض” و “حداقل امتیاز” ما بهره میبرند و به امنیت برنامه کاربردی بدون هزینههای مهندسی دست مییابند.
نسخه و نصب
ما نسخهسازی معنایی را برای سازندگان ابر و توابع kpt در Catalyst اعمال کردیم. اکنون مهندسان میتوانند نسخههای تصویری خود را نصب کنند و بهطور خودکار آخرین تغییرات غیرقابل شکست را بدون نیاز به درک جزئیات هر تغییر ثبت کنند.
تغییر هوشیاری
به عنوان بخشی از راه حل جدید مدیریت پیکربندی، ما ابزاری را برای توصیف تفاوت های منطقی بین پیکربندی قبلی کاربر و پیکربندی جدید ارائه شده توسط توابع kpt معرفی کرده ایم. با این ابزار، مهندسان به راحتی می توانند تغییرات عملکردی برنامه های خود را درک کنند.
تعامل کاربر و نتایج
ما با تیم های برنامه همکاری کردیم تا این تغییرات را در 30 بار کاری SDP اجرا کنیم. پس از انجام بهروزرسانیهای اولیه مستقیماً برای خطوط لوله کاربر در محیط توسعه، از صاحبان برنامهها دعوت کردیم تا درخواستهای کششی ما را تأیید کنند و سپس برنامههای خود را با بهروزرسانیها آزمایش کنند.
بازخورد مستقیم در مورد این تغییرات نشان میدهد که ما با موفقیت به مسائل مهمی در مدیریت پیکربندی پرداختهایم و انتقال به بهبود امنیت و قابلیت اطمینان نیازمند حداقل تلاش مهندسان است. در مقابل، همکاران مهندسی ما از تلاشهای ما برای سادهسازی کار اساسی خود و بازگرداندن تمرکز آنها بر ایجاد محصولات ارزشمند قدردانی کردند.
مهندس نرم افزار کارکنان WP Engine Sr گفت.
ما یک محیط کامل را راهاندازی کردیم و آن را در یک اسپرینت اجرا کردیم، که قبلاً هرگز فکر نمیکردم امکانپذیر باشد.»
مهندس نرمافزار Piotr Purwin نیز تغییرات را ستود و خاطرنشان کرد که این پلتفرم به تیم او امکان میدهد بهترین شیوههای kubernetes را با خطوط کد کمتری پیادهسازی کند.
بوروین میگوید: «بعضی وقتها احساس میکنیم که میخواهیم چیزی فانتزی بپزیم، که البته به ظروف اولیه آشپزخانه نیاز دارد، اما به ابزارهای پیچیدهتر و پیچیدهتری نیز نیاز دارد که ممکن است برای همه افراد خانه در دسترس نباشد.
کار در SDP مانند این است که وارد یک آشپزخانه بزرگ و کاملاً مجهز شوید و فقط از فرآیند تهیه یک ظرف لذت ببرید.
چه چیزی در انتظار ماست؟
کارهای بیشتری برای مدیریت بهتر پیکربندی برنامه برای کاربرانمان می توانیم انجام دهیم. ما به ساخت عملکرد kpt برای موارد استفاده از پیکربندی رایج، مانند افزودن یک لایه کش به یک برنامه، ادامه خواهیم داد. ما همچنین می خواهیم تجربه کاربر را در زمینه های دیگر، از جمله قابلیت مشاهده، بهبود دهیم.
در حالی که نوآوریهای تحویل نرمافزار از طریق SDP به تیمهای داخلی ما میرسند، مزایای آن برای مشتریان WP Engine از طریق تحویل سریعتر محصولات جدید افزایش مییابد.
چشم انداز ما برای SDP گسترده و عمیق است و رهبران سازمان مهندسی ما انتظارات زیادی برای استفاده آینده از آن دارند. Catalyst SDP با نرمافزارهای قابل استفاده مجدد، قابلیتهای آماده برای برنامهها و بهبود پلتفرم، به تسریع تیم مهندسی ادامه میدهد و به مشتریان WP Engine کمک میکند تا هر روز به صورت آنلاین برنده شوند.
مهندس نرم افزار تیم WP Engine Sr. در این مقاله مشارکت داشته است. راهول دیر.
– ارائه و ترجمه توسط تیم wordpress-templates.ir