GitLab سازمانی
نصب GitLab CE روی سرور داخلی با بکاپ خودکار، اتصال به LDAP یا Active Directory و راه اندازی GitLab Runner.
شروع و ارزیابی
ارزیابی رایگان 5مشکل فوری
خدمات فوری 4پشتیبانی مستمر
قرارداد پشتیبانی 5پروژه ها
سرور و هاستینگ 6 شبکه و مجازی سازی 9 دواپس و اتوماسیون 5 امنیت و بازیابی 5 تجهیزات و لایسنس 2بدون هزینه بفهمید وضعیت سرور، امنیت، بکاپ و سرعت سیستم هایتان چطور است.
سرور یا شبکه قطع است، سایت هک شده یا اطلاعات از دست رفته؟ همین حالا تماس بگیرید.
پشتیبانی و نگهداری ماهانه شبکه و سرور با زمان پاسخ مشخص در قرارداد.
نصب، کانفیگ، مدیریت و انتقال سرورهای لینوکس، ویندوز، کنترل پنل ها و ایمیل سرور.
طراحی و اجرای شبکه، میکروتیک، ویپ، اتصال شعب، مجازی سازی و ابر خصوصی.
شبکه و ارتباطات
مجازی سازی و ابر
کانتینر، کوبرنتیز، استقرار خودکار، زیرساخت به عنوان کد و مانیتورینگ پیشرفته.
امن سازی سرور، فایروال، بکاپ و DR، بازیابی از باج افزار و بررسی حملات.
مشاوره، تأمین و نصب سرور و تجهیزات شبکه، و لایسنس اورجینال نرم افزارهای سازمانی.
شروع و ارزیابی
مشکل فوری
پشتیبانی مستمر
پروژه ها
وقتی پایپ لاین CI/CD ندارید و انتشار هر نسخه یعنی SSH به سرور و اجرای چند دستور از حافظه، دیر یا زود یک نسخه خراب به دست کاربران می رسد. ما مسیر کد تا سرور را خودکار می کنیم. هر push تست و build می شود و با یک تأیید روی محیط اصلی می رود.
پایپ لاین CI/CD یعنی مسیری خودکار که بعد از هر push کد را تست و build می کند و نسخه جدید را با امکان rollback روی سرور منتشر می کند. این خدمت برای تیم نرم افزاری است که انتشار هر نسخه را یک نفر با SSH و چند دستور از حافظه انجام می دهد، یا به خاطر تحریم نمی تواند به GitHub Actions و GitLab.com تکیه کند. پیکوسیستم GitLab CE را روی سرور داخلی با بکاپ خودکار نصب می کند، مراحل lint، تست، build ایمیج، اسکن و استقرار را در .gitlab-ci.yml یا Jenkinsfile می نویسد، استقرار خودکار روی staging و انتشار production با تأیید دستی را تنظیم می کند، برای کوبرنتیز ArgoCD راه می اندازد و رمزها را از داخل کد به متغیرهای محافظت شده یا HashiCorp Vault منتقل می کند. در پایان پایپ لاین های فعال، راهنمای افزودن پروژه جدید و دستورالعمل rollback را تحویل می گیرید.
نصب GitLab CE روی سرور داخلی با بکاپ خودکار، اتصال به LDAP یا Active Directory و راه اندازی GitLab Runner.
مراحل lint، تست، build ایمیج، اسکن و استقرار در .gitlab-ci.yml یا Jenkinsfile، با cache وابستگی ها برای کوتاه شدن زمان اجرا.
استقرار خودکار روی staging، انتشار روی production با تأیید دستی، تگ نسخه و rollback با یک کلیک.
برای کلاسترهای کوبرنتیز، وضعیت مطلوب در مخزن گیت نگهداری می شود و ArgoCD کلاستر را با آن هم سان می کند.
انتقال رمزها و کلیدها از داخل کد به متغیرهای محافظت شده CI یا HashiCorp Vault.
executor تعیین می کند jobهای پایپ لاین کجا و چطور اجرا شوند. shell executor دستورها را مستقیم روی سرور Runner اجرا می کند. ساده است، ولی jobها روی فایل های یکدیگر اثر می گذارند و نسخه ابزارها بین پروژه ها تداخل پیدا می کند.
docker executor هر job را در کانتینری تازه اجرا می کند و برای بیشتر تیم ها مناسب است. اگر job باید ایمیج Docker بسازد، به جای Docker-in-Docker در حالت privileged که عملاً دسترسی root به سرور Runner می دهد، Buildah یا BuildKit بدون root را پیشنهاد می کنیم. اگر کلاستر کوبرنتیز دارید، kubernetes executor هر job را به شکل pod اجرا می کند و ظرفیت Runner همراه کلاستر کم و زیاد می شود.
متغیری که در تنظیمات پروژه تعریف شده، خودبه خود امن نیست. اگر گزینه Masked فعال نباشد، مقدار آن با یک echo یا اجرای اسکریپت با set -x در لاگ job چاپ می شود و هر کسی که به لاگ دسترسی دارد آن را می بیند. اگر Protected نباشد، هر برنامه نویسی می تواند در یک branch تازه jobی بنویسد که کلید SSH سرور production را بخواند.
اشتباه رایج دیگر یک Runner مشترک برای همه پروژه هاست که کلید دسترسی به سرورهای اصلی رویش مانده. Runner پروژه های حساس را جدا کنید و استقرار production را به Runner اختصاصی با tag مشخص بسپارید. نبودن expire_in برای artifactها هم باعث می شود دیسک سرور GitLab چند ماه بعد پر شود.
پایپ لاین روند فعلی انتشار را خودکار می کند، پس آن روند باید روشن باشد. مدل branch را مشخص کنید: همه روی main کار می کنند یا branchهای develop و release دارید. فهرست محیط ها و نوع دسترسی به هر کدام را هم آماده کنید.
دستورهایی که امروز برای build و اجرای تست ها به کار می روند، حتی اگر فقط در ذهن یک نفر باشند، باید نوشته شوند. تصمیم بگیرید migration دیتابیس خودکار اجرا شود یا با تأیید، و چه کسی اجازه تأیید انتشار روی production را دارد.
در مدل رایج، GitLab CI ایمیج را build و تست می کند، آن را به رجیستری می فرستد و فقط تگ نسخه جدید را در مخزن تنظیمات استقرار به روز می کند. ArgoCD این مخزن را دنبال می کند و کلاستر را با آن هم سان می کند. به این ترتیب پایپ لاین به kubeconfig مدیر کلاستر نیاز ندارد.
برای هر محیط یک فایل values جداگانه در Helm chart نگه می داریم، مثل values-staging.yaml و values-production.yaml، و ArgoCD هر Application را از فایل خودش می سازد. اگر کسی با kubectl تغییری دستی روی کلاستر بدهد، ArgoCD آن را OutOfSync نشان می دهد و با selfHeal آن را برمی گرداند.
روش فعلی build و استقرار، ساختار مخزن ها و محیط ها را بررسی می کنیم و نقاط پرخطر را مشخص می کنیم.
پایپ لاین را روی یک پروژه راه می اندازیم تا ایرادها پیش از گسترش پیدا شوند.
قالب پایپ لاین را مشترک می کنیم و بقیه پروژه ها را به همان الگو منتقل می کنیم.
مستندات را تحویل می دهیم و با تیم شما یک انتشار و یک rollback را کامل انجام می دهیم.
اگر مخزن کد هم لازم دارید، GitLab هر دو را در یک سرویس می دهد و برای بیشتر تیم ها ساده تر است. Jenkins برای سازمان هایی مناسب است که پایپ لاین های قدیمی یا پلاگین های خاص دارند. اگر Jenkins فعلی شما کار می کند، لازم نیست کنارش بگذارید.
بله. GitLab CE را روی سرور یا ماشین مجازی شما نصب می کنیم، رجیستری کانتینر داخلی آن را فعال می کنیم و بکاپ روزانه تنظیم می کنیم. به این ترتیب کد و پایپ لاین به سرویس خارجی وابسته نیست.
پایپ لاین CI/CD مراحل build، تست و استقرار را بعد از هر push به ترتیب و خودکار اجرا می کند. حتی بدون تست، build یکسان و استقرار خودکار با امکان rollback خطای انسانی را کم می کند. بعد از آن، اضافه کردن تست به پایپ لاین برای تیم ساده تر می شود.
جست وجوهای مرتبط
دواپس
دواپس استعلام
چند خط درباره وضعیت فعلی و چیزی که می خواهید بنویسید. یک مهندس خودش تماس می گیرد، نه واحد فروش.