ماهیت توسعه اپلیکیشن همیشه در حال تکامل است. استقرار یک تغییر جدید در نرمافزار همیشه خطرناک است. اینکه در طول مسیر به طور تصادفی به مشکلاتی برخورد کنیم بسیار محتمل است، و اگر مراقب نباشید چنین چیزی میتواند به خرابی و از کار افتادن سیستم منجر شود. ترفندی که میتوان در این رابطه داشت این است که برای جلوگیری از انجام کارهای اشتباه، یک استراتژی قوی برای Production ایجاد کنیم.
Deploymentها نباید پیچیده باشند. از آنجا که آنها در مرتبه پس از Launch قرار میگیرند، باید سادهترین بخش از کل فرآیند باشند. چطور میتوان یک Wrkflow ایجاد کرد که به اشتباهات کمتری منتهی شود؟ بیایید در مورد برخی نکات کلیدی در رابطه با استقرار بدونِ ریسکِ کیفی برای اپلیکیشن بحث کنیم.
۱- اتوماسیون
اگر شما میتوانید به کامپیوترها اجازه دهید که کارهای سخت را برای شما انجام دهند، باید حتما از این مزیت استفاده کنید. میخواهیم با یک حقیقت روبرو شویم: کامپیترها دقیقتر از ما هستند. آنها خطاهای کمتری ایجاد میکنند و این بدان معنیست که با استقرار جدید، ریسکی کمتری ایجاد خواهد شد. شما میتوانید یک اسکریپت برای استقرار به صورت خودکار ایجاد نمایید، بنابراین لازم نیست نگران فراموش کردن برخی مراحل بر حسب تصادف، حادثه یا مشکلات فایلی باشید.
شما میتوانید اسکریپت خود را به صورت Local در محیط توسعه تست کنید. پس از این امر خواهید فهمید که آیا آماده اجرا بدون نیاز به طی کردن مراحل مختلف در زمان راهاندازی هستید یا خیر. بدین منظور یک اسکریپت روشن و مشخص از تمام مراحل اتوماسیون برای Deployment در بخش زیرساخت ایجاد کنید، آنچنانکه هر شخص با داشتن دسترسی بتواند به صورت شفاف ببیند که چه چیزی در چه زمانی و به چه دلیل تغییر کرده است. باور کنید یا نکنید، استقرار میتواند به آسانیِ یک کلیک روی یک دکمه باشد. حالا از خود بپرسید چه کسی خواهان درگیری کمتر برای توسعهدهندگان نیست؟
۲- Log کردن
ما در دوران Big Data زندگی میکنیم. اگر شما سیستمی برای Log کردن هر یک از مراحل موجود در مسیر استقرار اپلیکیشن نداشته باشید، در معرض ریسک اجرا و حتی مشکلات بزرگتری قرار خواهید گرفت. Log کردن به معنی در اختیار گرفتن مشکلات بالقوه قبل از وقوع آنهاست. علاوه بر این یک Road-map برای حل مشکلات و بازگرداندن نسخههای قدیمی ایجاد خواهد کرد.
با اینکه که شما نمیتوانید خطا را به صورت %۱۰۰ از بین ببرید، اما میتوانید به درصد مذبور خیلی نزدیک شوید. دانستن آنچه اشتباه است، اولین گام برای ایجاد یک برنامه قویست. برای کسب اطلاعات بیشتر در مورد اصول اولیه Log کردن در Python اینجا را کلیک کنید. پس از اینکه اولین گام را برای Log کردن برداشتید، باید شروع به پیدا کردن الگویی برای هشدار به تیم توسعه جهت مشکلات بالقوه آنها بکنید.
۳- Batchهای کوچک
بهتر است Deploy را در دستههای کوچکتر و با کنترل بیشتر انجام دهید تا در قسمتهای بزرگ. هنگامی که شما به ایجاد Updateهای کوچکتر عادت کنید، این موضوع بخشی طبیعی از فرآیند توسعه میشود. با این اوصاف در پایان روز، نیاز ندارید تمام وقت خود را برای تست دستی تمام کار(از ابتدا تا انتها) صرف کنید.
استقرار(Deployment) شما باید مکرر باشد. اجازه ندهید که خطاها به تنهایی اتفاق بیافتند و فعالانه عمل نمایند. مصرفکنندگان امروزی انتظارات زیادی از برنامههای خود دارند. آنها انتظار دارند که همه چیز به صورت ۱۰۰% کار کند و حتی مشکلات کوچک نیز میتوانند باعث انصراف آنها در استفاده مجدد از برنامه گردند. به محض اینکه چیز جدیدی آماده شد، آن را Deploy کنید. البته در این حالت انتخاب لحظه درست اهمیت زیادی دارد. در نهایت، تغییرات کمتری که شما ایجاد میکنید، درک این موضوع را که دقیقا متوجه شوید چه چیزی اشتباه است را برای شما سادهتر خواهد کرد.
لازم نیست استقرار برنامه پیچیده شود. استقرار باید یک فرایند ساده و معمول باشد که با دیگر فعالیتهای توسعه نیز تناسب داشته باشد. تا زمانیکه فعالانه Performance را Log میکنید، بر Updateها نظارت میکنید، و به بازخوردها گوش فرا میدهید، مجبور نیستید با خطاهای ترسناک یا به روز رسانیها در آخرین لحظات مواجه شوید. در آخر شما باید با استفاده از نکات مذبور در بالا فشار به روزرسانیها را دفع نمایید.