نمای کلی محیط ها

برای برنامه‌های کاربردی، به خصوص اگر بیش از یک نفر روی برنامه شما کار می‌کنند، باید یک گردش کار توسعه واضح تنظیم کنید. یک گردش کار توسعه معمولاً شامل تنظیم و مدیریت چندین محیط است.

فایربیس سطوح مختلفی از پشتیبانی برای گردش‌های کاری توسعه‌دهندگان و محیط‌های تشکیل‌دهنده دارد. پس از آشنایی با شرایط و فرضیات گردش کاری توسعه‌دهندگان در این صفحه، بهترین شیوه‌های کلی و دستورالعمل‌های امنیتی عمومی ما را برای راه‌اندازی یک پروژه فایربیس و برنامه‌های خود بررسی کنید.

درباره محیط‌ها

در توسعه نرم‌افزار، یک محیط به تمام سخت‌افزارها و نرم‌افزارهایی گفته می‌شود که برای اجرای یک نمونه از یک برنامه یا سیستمی از برنامه‌ها مورد نیاز هستند.

مجموعه‌ای از محیط‌ها، امکان ایزوله‌سازی برای توسعه و آزمایش نرم‌افزار را بدون تأثیر بر کاربران فراهم می‌کنند. همانطور که در نمودار زیر نشان داده شده است، محیط‌های سطح بالا یا پیش‌تولید یا تولید در نظر گرفته می‌شوند و شما می‌توانید به تعداد مورد نیاز، محیط پیش‌تولید داشته باشید. این نمودار همچنین شیوه‌ها و ویژگی‌های رایج مرتبط با هر نوع محیط را شرح می‌دهد.

فرآیند پیشرفت یک ویژگی یا انتشار از طریق این محیط‌ها تا رسیدن به مرحله تولید، خط لوله استقرار (deployment pipeline) نامیده می‌شود.

نموداری که محیط‌هایی را نشان می‌دهد که معمولاً خط تولید استقرار را تشکیل می‌دهند، از جمله توسعه، آزمایش و تضمین کیفیت، مرحله‌بندی و در نهایت تولید

انواع محیط‌ها

یک محیط از زیرساخت‌های اساسی تشکیل شده است که برای اجرا و پشتیبانی از برنامه، کد و داده‌های آن به آن نیاز دارید. هر یک از اصطلاحات زیر را برای بررسی توضیحات برخی از محیط‌های رایج، از جمله نکاتی در مورد انواع داده‌های مورد استفاده در هر نوع محیط، بسط دهید.

محیط‌های توسعه (dev)

هر توسعه‌دهنده‌ای به یک محیط توسعه نیاز دارد - مکانی امن و ایزوله برای آزمایش تغییرات در حین ساخت. در حالت ایده‌آل، هر توسعه‌دهنده در تیم شما به محیط توسعه خود دسترسی دارد. همچنین، اگر محیط توسعه یک نمونه محلی باشد، یک توسعه‌دهنده می‌تواند خیلی سریع‌تر آن را تکرار کند.

داده‌ها در یک محیط توسعه با داده‌هایی که عموماً شبیه داده‌های عملیاتی هستند، بارگذاری می‌شوند، اما هرگز نباید حاوی داده‌های کاربران واقعی باشند. همچنین ممکن است حاوی داده‌هایی باشند که در گذشته باعث ایجاد اشکالات شده‌اند، مانند رشته‌های بسیار طولانی.

محیط‌های تست و تضمین کیفیت

اگر تست‌های خودکار دارید، به محیطی نیاز دارید که بتوانید آن تست‌ها را در آن اجرا کنید و هر بار که محیط تست را ایجاد می‌کنید، باید داده‌ها را مجدداً تنظیم کنید.

اگر مهندسان تضمین کیفیت دارید، ممکن است به یک محیط واحد نیاز داشته باشند که همه از آن استفاده کنند، یا ممکن است برای آزمایش یک نسخه جدید به محیط‌های جداگانه نیاز داشته باشند.

داده‌ها در محیط‌های تست و تضمین کیفیت با داده‌های باکیفیتی که عموماً نماینده داده‌های عملیاتی هستند، همراه با داده‌هایی که نشان‌دهنده موارد گوشه‌ای و نمونه‌هایی از داده‌هایی هستند که در گذشته باعث ایجاد اشکالات شده‌اند، بارگذاری می‌شوند.

محیط‌های صحنه‌سازی

برای آزمایش‌های واقع‌بینانه از نحوه عملکرد یک نسخه در محیط عملیاتی، به یک محیط آماده‌سازی نیاز دارید که تا حد امکان زیرساخت‌های عملیاتی را تقلید کند. اگر نیاز به آزمایش یکپارچه‌سازی‌های خاص به صورت جداگانه دارید، داشتن چندین نمونه آماده‌سازی رایج است.

در اینجا تفاوت‌های رایج بین مرحله‌بندی و تولید وجود دارد:

  • ممکن است مرحله‌بندی فاقد برخی ویژگی‌ها یا یکپارچه‌سازی‌هایی باشد که می‌توانند عوارض جانبی ایجاد کنند. برای مثال، ممکن است مرحله‌بندی طوری تنظیم شده باشد که ایمیل ارسال نکند.

  • ممکن است داده‌های مرحله‌بندی ناشناس باشند؛ داده‌ها می‌توانند جعلی باشند، اما باید واقع‌بینانه باشند. از آنجا که مرحله‌بندی مکانی برای اشکال‌زدایی ایمن مشکلات است، ممکن است به تیم گسترده‌تری از کاربران دسترسی به داده‌های مرحله‌بندی نسبت به داده‌های تولید بدهید. بنابراین، برای محافظت از حریم خصوصی کاربر، نباید از داده‌های واقعی کاربر در مرحله‌بندی استفاده کنید.

محیط‌های تولید (prod)

برای هر برنامه‌ای که نگهداری می‌کنید، به یک محیط عملیاتی واحد نیاز دارید. این همان نمونه‌ای است که کاربران شما با آن تعامل دارند.

برخلاف سایر محیط‌هایی که می‌توانید داده‌ها را تغییر دهید، حذف کنید و/یا از نو ایجاد کنید، داده‌های موجود در محیط تولید شما بسیار مهم هستند؛ از دست دادن یا تغییر داده‌های تولید شما مستقیماً بر کاربران شما تأثیر خواهد گذاشت.

در کنسول Firebase ، توصیه می‌کنیم پروژه Firebase مرتبط با محیط تولید خود را به عنوان نوع محیط "production" برچسب‌گذاری کنید. این برچسب می‌تواند به شما و هم‌تیمی‌هایتان یادآوری کند که هرگونه تغییری می‌تواند بر برنامه‌های تولید مرتبط شما و داده‌های آنها تأثیر بگذارد.

مراحل بعدی