در شرکت WP Engine، سازمان محصول و مهندسی ما از فرایند بهبود مستمر برای حفظ سطح عالی عملکرد توسعه و تحویل نرمافزار
این شامل تمرکز دقیق بر چابکی است که نشان داده میشود با پژوهش و ارزیابی دواپس معیارهای دورا برای سرعت، پایداری و کیفیت
همکاران مهندسی ما برای رسیدن به اهداف خود، به پلتفرم تحویل نرمافزار کاتالیست (SDP) داخلی WP Engine و به ما، تیم اختصاصی کاتالیست که این پلتفرم را توسعه و نگهداری میکند، تکیه دارند تا بستری یکپارچه برای توسعه، انتشار و مدیریت محصول فراهم شود.
هدف برنامه کاتالیست SDP کاهش بار عملیاتی و شناختی بر دوش تیمهای داخلی و در عین حال بهبود قابل توجه مشاهدهپذیری سرویسها، امنیت و سرعت ارائه خدمات است. با افزایش ارزش این پلتفرم برای کاربران در دو سال گذشته، تنوع حجم کاریها نیز گسترش یافته و شامل بیش از ۳۰ برنامه و سرویس شده است. هر چند هفته تیمها و محصولات جدیدی به آن اضافه میشوند.
اما در اوایل پیدایش SDP، مهندسانی که موفق به راهاندازی سرویسهای تولیدی روی این پلتفرم شدند، با مدیریت پیکربندی برنامهها نیز دست و پنجه نرم میکردند. در حالی که تیم کاتالیست روشی را با استفاده از ابزارهای پیکربندی توصیفی انتخاب کرده بود، هنوز به تعادل مناسبی بین انعطافپذیری و سهولت استفاده دست نیافته بودیم.
باید چالشهای کاربران SDP را دقیقتر بررسی و اقدام میکردیم. با صحبت با مهندسان متوجه شدیم که پیچیدگی ابزارهای پیکربندی، توسعهی اپلیکیشن را کند کرده است؛ به طور خاص، کاربران تنظیمات Kubernetes را که مطابق با الزامات امنیتی WP Engine باشد، با دشواری ایجاد میکردند.
ما متوجه شدیم که آنها برای شخصیسازی منابع، مجبور به استفاده از ابزارهای متعدد، اسکریپتهای سفارشی و وصلههای پیکربندی پیچیده (مطابق با راهحل مدیریت پیکربندی ما) هستند. همچنین، تکرار کارها در تیمهای مختلف برای حل مشکلات رایج را مشاهده کردیم.
برای بازگرداندن تمرکز تیمهای محصول روی توسعه و ارائه نرمافزار برتر، وظیفهای بر عهده داشتیم. همچنین، بهعنوان برندگان، آبرویی برای حفظ داشتیم. جایزه دواپس گوگل در سال ۲۰۲۱ برای رهاسازی تمام قدرت ابر چیزی نیست.
بیایید تغییرات اعمالشده در گردش کار مدیریت پیکربندی روی SDP، رویکرد راهاندازی و تأثیر این تغییرات بر تجربه مهندسی را بررسی کنیم.
طراحی سایت وردپرس برای مهندسان میتواند به عنوان یک بستر محصول محور به آنها کمک کند تا به راحتی اطلاعات و خدمات خود را ارائه دهند. استفاده از این پلتفرم به مهندسان این امکان را میدهد تا وبسایتهای خود را با ویژگیهای متنوعی چون فرمهای تماس، گالریهای پروژه، بلاگهای فنی و مقالات تخصصی راهاندازی کنند. این نوع طراحی نه تنها به افزایش دسترسی و تعامل کمک میکند بلکه باعث افزایش دید آنلاین و دسترسی به بازارهای جدید میشود. ایجاد یک سایت با طراحی وردپرسی انعطافپذیر و کاربرپسند، میتواند توانمندیهای مهندسان را به نمایش بگذارد و فرصتهای شغلی بیشتری را برای آنها ایجاد کند.
سادگی بیشتر
برای حذف نیاز به الگوهای پوششی، وصلههای پیچیده یا اسکریپتنویسی سفارشی، ابزارهای مورد نیاز برای کار روی پیکربندیها را ادغام کردیم. مهندسان اکنون میتوانند با یک ابزار واحد، موارد استفادهی اولیه را برطرف کنند. کلید واژه که از طریق الگوی پیکربندی به عنوان داده، تغییر پیکربندیهای عملیاتی را ساده میکند.
با بهرهگیری از خدمات سئو وردپرس، مهندسان میتوانند سایتهای خود را برای موتورهای جستجو بهینه کرده و بازدیدکنندگان بیشتری را جذب کنند. این خدمات به آنها کمک میکند تا با بهینهسازی محتوای سایت، سرعت بارگذاری سریعتر، و بهبود ساختار URL، سایت خود را در نتایج جستجو در رتبههای بالاتری قرار دهند. علاوه بر این، با استفاده از سئو محلی، مهندسان میتوانند خود را به مشتریان در منطقههای جغرافیایی خاص معرفی کرده و به راحتی ارتباطات جدید و پروژههای بیشتری جذب کنند. سئو وردپرس به عنوان یک ابزار قدرتمند، در توانمندسازی مهندسان برای گسترش دامنه فعالیتهای آنلاینشان نقش کلیدی دارد.
توابع مشترک
مهمترین دستاورد ما، مجموعهای از تعاریف قابل استفاده مجدد منابع Kubernetes بود توابع کلیدی مهندسان اکنون میتوانند با استفاده از واحدهای پیکربندی قابل همکاری، برنامههایی بسازند و از پیکربندیهای از پیش آزمایششده و آمادهی k8s بهره ببرند؛ این کار از تکرار کد میکاهد و قابلیت نگهداری را افزایش میدهد.
نمونههای مستند
برای سادهتر کردن پیادهسازی موارد کاربردی رایج، مانند پیکربندی و احراز هویت در پایگاه داده، مثالهای مستندی برای فراخوانی توابع kpt خود ارائه کردیم. با وجود نقطه شروعی ثابت و قابل اعتماد، مهندسان میتوانند با اطمینان و سرعت به کار ارزشمند خود بپردازند.
امنیت پیشفرض
برای موارد استفادهی استاندارد مانند در معرض اینترنت قرار دادن یک برنامه یا مسیریابی ترافیک بین سرویسها در شبکهی داخلی، ما الزامات امنیتی پایه سازمانی را در خود توابع kpt قرار دادیم. تیمهای محصول با بهکارگیری توابع ما در موارد استفادهی خودشان، از وضعیت امنیتی «پیشفرض بسته» و «کمترین امتیاز» که ما اعمال میکنیم، بهرهمند میشوند و بدون صرف هزینههای مهندسی، امنیت برنامه را بهبود میبخشند.
نسخه بندی و تثبیت
ما از نسخه بندی معنایی برای سازندگان ابری و توابع kpt کاتالیست خود استفاده کردیم. اکنون مهندسان میتوانند نسخههای تصویر خود را ثابت نگه دارند و بهطور خودکار جدیدترین تغییرات غیر مخرب ما را بدون نیاز به درک جزئیات هر اصلاح دریافت کنند.
آگاهی بخشی
در راستای راهاندازی راهحل جدید مدیریت پیکربندی، ابزاری برای توصیف تفاوتهای منطقی بین پیکربندی قبلی کاربر و پیکربندی جدید ارائه شده توسط توابع kpt ارائه کردیم. مهندسان با استفاده از این ابزار میتوانند بهراحتی تغییرات عملکردی در برنامههای خود را درک کنند.
درگیری کاربر و نتایج
برای اعمال این تغییرات در سی workload روی SDP، با تیمهای توسعهی نرمافزار همکاری کردیم. پس از اعمال بهروزرسانیهای اولیه بهطور مستقیم در خطوط تولید کاربران در محیط توسعه، از مالکان نرمافزارها دعوت کردیم تا درخواستهای ادغام ما را تأیید و سپس برنامههای خود را با بهروزرسانیها آزمایش کنند.
بازخورد مستقیم در مورد این تغییرات نشان میدهد که موفق به رفع مشکلات مهم در مدیریت پیکربندی شدهایم و انتقال به امنیت و قابلیت اطمینان بهتر، تلاش اندکی از مهندسان طلبیده است. در عوض، همکاران مهندسی ما از تلاشهای ما برای سادهسازی کارهای بنیادی آنها و بازگرداندن تمرکزشان بر خلق محصولات ارزشمند قدردانی کردهاند.
آدام لاسک، مهندس ارشد نرمافزار WP Engine گفت: «استفاده از ابزار جدید مدیریت پیکربندی با kpt پیشرفت چشمگیری بوده است، بسیار سادهتر شده است.»
در عرض یک اسپرینت، کل محیط را راهاندازی کردیم؛ چیزی که قبلاً هرگز فکر نمیکردم ممکن باشد.
مهندس نرمافزار، پیوتر پوروین، نیز از این تغییرات تمجید کرد و اشاره نمود که این پلتفرم به تیم او امکان پیادهسازی بهترین شیوههای کوبِرنِتیز را با خطوط کد کمتری داده است.
گاهی اوقات هوس پختن غذای پیچیده به سرمان میزند؛ این کار البته به وسایل آشپزی معمولی نیاز دارد، اما ابزارهای پیچیده و پیشرفتهای هم لازم است که شاید همه در خانه نداشته باشند.
کار کردن در SDP مثل وارد شدن به آشپزخانهای بزرگ و مجهز و لذت بردن از مراحل تهیه غذاست.
چه خبر است؟
برای بهینهسازی مدیریت پیکربندی برنامه برای کاربرانمان، کارهای بیشتری میتوان انجام داد. ما به توسعه توابع kpt برای موارد استفاده رایج از پیکربندی، مانند افزودن یک لایه کش به برنامه، ادامه خواهیم داد. همچنین میخواهیم تجربه کاربری را در زمینههای دیگر، از جمله قابلیت مشاهده، بهبود بخشیم.
همزمان با ارائه نوآوریهای تحویل نرمافزار به تیمهای داخلی از طریق SDP، مزایای آن با سرعت بخشیدن به ارائه محصولات جدید به مشتریان WP Engine منتقل میشود.
چشمانداز ما برای SDP وسیع و عمیق است و رهبران سازمان مهندسی ما انتظار زیادی برای استفادهی آیندهی آن دارند. با نرمافزارهای قابل استفادهی مجدد بیشتر، قابلیتهای آمادهی بهکارگیری برای برنامهها و ارتقاءهای پلتفرم، SDP کاتالیست به افزایش سرعت تیم مهندسی و کمک به مشتریان WP Engine برای موفقیت روزانه در فضای آنلاین ادامه خواهد داد.
مقدار عنصر با شناسه «ak_js_1» را به زمان فعلی بر حسب میلیثانیه تغییر میدهد.