اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
مایکروسافت اخیرا برنامههایی در زمینهی بهبود Git Virtual File System یا با اختصار GVFS متعلق به خود داشته است که شامل مرتبط ساختن Visual Studio IDE با Git و پشتیبانی آن از سوی Clientهای Third-Party میباشد.
https://github.com/Microsoft/GVFS
ایجاد GVFS را باید تلاش برای توسعهی نسخهی نرمافزاری سیستم کنترل Git برای پروژهها و تیمهای بسیار بزرگ، مجازیسازی فولدر git. و دایرکتوری کاری به شمار آورد. در Git Virtual File System تنها قسمتهایی از یک Repo و فایلها دانلود میشوند که مورد نیاز توسعهدهندگان برنامهها میباشد. لازم به ذکر است که این نرمافزار با مجازیسازی فایل سیستم، به ایجاد یک Back End مبتنی بر سرور و یک لایهی مجازیسازی برای Client میپردازد.
در نتیجهی تلاشهای اخیر مایکروسافت، GVFS به زودی از نسخهی بتای Visual Studio 2017.3 پشتیبانی خواهد نمود. درحال حاضر این نوع فایل سیستم، با توسعه به سایر Clientهای Git توانسته به فعالیت با SourceTree Client بپردازد. به گفتهی Brian Harry، معاون سرویسهای توسعهدهندهی Cloud، پشتیبانی از Tower Client و احتمالا Gitkraken نیز در دستور کار مایکروسافت برای GVFS قرار دارد.
وی در ادامهی صحبتهای خود بیان نمود: مایکروسافت به منظور حل مسائل مربوط به مقیاسپذیری GVFS و اصلاح نسخهی نرمافزاری سیستم کنترل Git، با گروه وسیعی از فعالان حوزهی Git همکاری داشته است و حتی با سایر شرکتهای فعال در این حوزه از جمله گوگل و فیسبوک که از چالشهای مشابهی در زمینهی توسعهپذیری برخوردارند، مذاکرات مهمی داشتهاست.
مایکروسافت پشتیبانی از GVFS را به سطح Git for Windows نیز توسعه داده است. بر اساس اظهارات Harry، این شرکت همچنان یک کپی اختصاصی از Git for Windows را در اختیار دارد اما در تلاش است تا به مرور بتواند تحولات را تنها بر روی سیستم اصلی پیاده نماید.
مایکروسافت علاوه بر موارد فوق، Proxyهایی را نیز معرفی نموده است تا هنگام مواجهه با مشکلات مربوط به پهنای باند، امکان به جریان انداختن حجم بالایی از دادهها را در طول مسیرهای طولانی فراهم نماید. پروکسی Git برای GVFS میتواند عملیات مربوط به Offload نمودن دادهها در Edge را امکانپذیر سازد. طبق اظهارات Harry، مایکروسافت از Proxyها برای Offload حجم بالایی از ترافیک (مانند Build Serverها) که از سرویس اصلی Visual Studio Team Services در جریان میباشد نیز استفاده میکند تا به اینترتیب مانع از کاهش کیفیت تجربهی کاربر در زمان اوج بار گردد. وی تعداد پروکسیهای Git مایکروسافت در سطح جهان را ۲۰ عدد اعلام نمود.
نکتهی قابل توجه وجود یک Server Component در GVFS میباشد که برای فعالیت به سرویس Team Cloud Service نیاز دارد؛ به همین دلیل برای استفادهی توسعهدهندگان از GVFS متنباز، ایجاد یک حسابکاربری Visual Studio Team Services دارای Git Repo ضرورت مییابد.
#git #windows #gvfs @unixmens
https://github.com/Microsoft/GVFS
ایجاد GVFS را باید تلاش برای توسعهی نسخهی نرمافزاری سیستم کنترل Git برای پروژهها و تیمهای بسیار بزرگ، مجازیسازی فولدر git. و دایرکتوری کاری به شمار آورد. در Git Virtual File System تنها قسمتهایی از یک Repo و فایلها دانلود میشوند که مورد نیاز توسعهدهندگان برنامهها میباشد. لازم به ذکر است که این نرمافزار با مجازیسازی فایل سیستم، به ایجاد یک Back End مبتنی بر سرور و یک لایهی مجازیسازی برای Client میپردازد.
در نتیجهی تلاشهای اخیر مایکروسافت، GVFS به زودی از نسخهی بتای Visual Studio 2017.3 پشتیبانی خواهد نمود. درحال حاضر این نوع فایل سیستم، با توسعه به سایر Clientهای Git توانسته به فعالیت با SourceTree Client بپردازد. به گفتهی Brian Harry، معاون سرویسهای توسعهدهندهی Cloud، پشتیبانی از Tower Client و احتمالا Gitkraken نیز در دستور کار مایکروسافت برای GVFS قرار دارد.
وی در ادامهی صحبتهای خود بیان نمود: مایکروسافت به منظور حل مسائل مربوط به مقیاسپذیری GVFS و اصلاح نسخهی نرمافزاری سیستم کنترل Git، با گروه وسیعی از فعالان حوزهی Git همکاری داشته است و حتی با سایر شرکتهای فعال در این حوزه از جمله گوگل و فیسبوک که از چالشهای مشابهی در زمینهی توسعهپذیری برخوردارند، مذاکرات مهمی داشتهاست.
مایکروسافت پشتیبانی از GVFS را به سطح Git for Windows نیز توسعه داده است. بر اساس اظهارات Harry، این شرکت همچنان یک کپی اختصاصی از Git for Windows را در اختیار دارد اما در تلاش است تا به مرور بتواند تحولات را تنها بر روی سیستم اصلی پیاده نماید.
مایکروسافت علاوه بر موارد فوق، Proxyهایی را نیز معرفی نموده است تا هنگام مواجهه با مشکلات مربوط به پهنای باند، امکان به جریان انداختن حجم بالایی از دادهها را در طول مسیرهای طولانی فراهم نماید. پروکسی Git برای GVFS میتواند عملیات مربوط به Offload نمودن دادهها در Edge را امکانپذیر سازد. طبق اظهارات Harry، مایکروسافت از Proxyها برای Offload حجم بالایی از ترافیک (مانند Build Serverها) که از سرویس اصلی Visual Studio Team Services در جریان میباشد نیز استفاده میکند تا به اینترتیب مانع از کاهش کیفیت تجربهی کاربر در زمان اوج بار گردد. وی تعداد پروکسیهای Git مایکروسافت در سطح جهان را ۲۰ عدد اعلام نمود.
نکتهی قابل توجه وجود یک Server Component در GVFS میباشد که برای فعالیت به سرویس Team Cloud Service نیاز دارد؛ به همین دلیل برای استفادهی توسعهدهندگان از GVFS متنباز، ایجاد یک حسابکاربری Visual Studio Team Services دارای Git Repo ضرورت مییابد.
#git #windows #gvfs @unixmens
GitHub
GitHub - microsoft/VFSForGit: Virtual File System for Git: Enable Git at Enterprise Scale
Virtual File System for Git: Enable Git at Enterprise Scale - microsoft/VFSForGit
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
گیت (به انگلیسی: Git) یک نرمافزار کنترل نسخه و از مدل نرمافزارهای آزاد و متنباز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کردن کارهای انجام شده روی آنها توسط افراد مختلف است. هدف اولیه این نرمافزار برای استفاده در پروژههای نرمافزاری بودهاست ولی میتوان از آن تنها برای دنبال کردن تغییر فایلها هم استفاده کرد.
گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژههای فراوانی از آن الهام گرفتهاند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آنها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد.
گیت یک نرمافزار آزاد است که تحت عنوان جیپیال نسخه ۲ توزیع شدهاست.
🔅دسته بندی:#Tool
🔅دستور نصب:
sudo apt install git-all
از ابزار های گرافیکی تحت ور میتوان به gitlab اشاره کرد
#git @unixmens
گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژههای فراوانی از آن الهام گرفتهاند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آنها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد.
گیت یک نرمافزار آزاد است که تحت عنوان جیپیال نسخه ۲ توزیع شدهاست.
🔅دسته بندی:#Tool
🔅دستور نصب:
sudo apt install git-all
از ابزار های گرافیکی تحت ور میتوان به gitlab اشاره کرد
#git @unixmens
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
با دستور git-cherry-pick آشنا شویم :
در واقع
چرا از
1. انتقال تغییرات خاص بدون ادغام کامل: گاهی اوقات لازم است فقط یک یا چند تغییر مشخص را از یک شاخه به شاخه دیگری منتقل کنید، بدون اینکه همه تغییرات شاخه مبدا را ادغام کنید.
2. رفع باگها در چند شاخه: اگر یک باگ در یک شاخه برطرف شده و نیاز است همان رفع باگ در شاخههای دیگر هم اعمال شود، میتوانید از
3. کنترل دقیق بر تغییرات : برخلاف دستور
ویژگیهای
- انتخاب دقیق: به شما این امکان را میدهد که فقط تغییرات مشخصی را از یک یا چند کامیت اعمال کنید.
- تاریخچه شفاف: برخلاف
- پشتیبانی از چندین کامیت: میتوانید چندین کامیت را بهصورت همزمان انتخاب و اعمال کنید.
مثالهای `git cherry-pick`
1. انتخاب یک کامیت خاص:
فرض کنید میخواهید یک کامیت خاص با شناسه
این دستور تغییرات کامیت
2. انتخاب چندین کامیت پشت سر هم:
اگر میخواهید چندین کامیت پشت سر هم (برای مثال از
3. انتخاب چندین کامیت غیرپشت سر هم:
میتوانید کامیتهای غیرپشت سر هم را نیز انتخاب کنید:
4. بررسی تعارضها (Conflicts):
گاهی اوقات ممکن است هنگام اجرای
به طور کلی با استفاده از
#git #branch #tip #tips #linux #devops #scv
#source #control #version #sourcecontrol
https://t.iss.one/unixmens
در واقع
git cherry-pick یک دستور در Git است که برای انتخاب یک یا چند کامیت (commit) خاص از یک شاخه (branch) و اعمال آنها در شاخه فعلی استفاده میشود. به بیان ساده، این دستور به شما اجازه میدهد تا تغییرات مشخصی را از تاریخچه گیت انتخاب کرده و در شاخهای دیگر اعمال کنید.چرا از
git cherry-pick استفاده کنیم؟1. انتقال تغییرات خاص بدون ادغام کامل: گاهی اوقات لازم است فقط یک یا چند تغییر مشخص را از یک شاخه به شاخه دیگری منتقل کنید، بدون اینکه همه تغییرات شاخه مبدا را ادغام کنید.
git cherry-pick این امکان را فراهم میکند.2. رفع باگها در چند شاخه: اگر یک باگ در یک شاخه برطرف شده و نیاز است همان رفع باگ در شاخههای دیگر هم اعمال شود، میتوانید از
git cherry-pick استفاده کنید.3. کنترل دقیق بر تغییرات : برخلاف دستور
git merge که همه تغییرات یک شاخه را ادغام میکند، با استفاده از git cherry-pick میتوانید بهطور دقیق تغییرات مورد نظر خود را انتخاب و اعمال کنید.ویژگیهای
git cherry-pick- انتخاب دقیق: به شما این امکان را میدهد که فقط تغییرات مشخصی را از یک یا چند کامیت اعمال کنید.
- تاریخچه شفاف: برخلاف
git merge`، که تغییرات را بهصورت یکجا در تاریخچه گیت ثبت میکند، `git cherry-pick تغییرات را بهطور جداگانه و شفاف ثبت میکند.- پشتیبانی از چندین کامیت: میتوانید چندین کامیت را بهصورت همزمان انتخاب و اعمال کنید.
مثالهای `git cherry-pick`
1. انتخاب یک کامیت خاص:
فرض کنید میخواهید یک کامیت خاص با شناسه
abc123 را از شاخه feature-branch به شاخه فعلی اعمال کنید:git checkout main
git cherry-pick abc123
این دستور تغییرات کامیت
abc123 را در شاخه main اعمال میکند.2. انتخاب چندین کامیت پشت سر هم:
اگر میخواهید چندین کامیت پشت سر هم (برای مثال از
abc123 تا def456) را انتخاب کنید:git cherry-pick abc123..def456
3. انتخاب چندین کامیت غیرپشت سر هم:
میتوانید کامیتهای غیرپشت سر هم را نیز انتخاب کنید:
git cherry-pick abc123 def456 ghi789
4. بررسی تعارضها (Conflicts):
گاهی اوقات ممکن است هنگام اجرای
git cherry-pick با تعارض مواجه شوید. در این صورت، Git به شما اطلاع میدهد که کدام فایلها تعارض دارند و شما باید آنها را بهصورت دستی حل کنید. پس از حل تعارضها، دستورهای زیر را اجرا کنید:git add <resolved-files>
git cherry-pick --continue
به طور کلی با استفاده از
git cherry-pick میتوانید کنترل دقیقی بر تاریخچه پروژه خود داشته باشید و تغییرات دلخواه را به راحتی بین شاخههای مختلف انتقال دهید.#git #branch #tip #tips #linux #devops #scv
#source #control #version #sourcecontrol
https://t.iss.one/unixmens
Telegram
Academy and Foundation unixmens | Your skills, Your future
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
👍1
چگونه gitlab ominibus را نصب کنیم :
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh
https://packages.gitlab.com/gitlab/gitlab-ee
در حقیقت GitLab یکی از محبوبترین پلتفرمهای DevOps Lifecycle Management است که تمام مراحل توسعه نرمافزار شامل مدیریت سورسکد، CI/CD، امنیت، مانیتورینگ و دپلویمنت را در یک بستر یکپارچه ارائه میدهد.
برای سادهسازی نصب و مدیریت این ابزار بزرگ، شرکت GitLab بستهای به نام Omnibus GitLab عرضه کرده است. این بسته شامل تمام اجزای موردنیاز GitLab (مانند دیتابیس، وبسرور، Redis، Nginx و غیره) در یک پکیج واحد است و امکان راهاندازی سریع و مدیریت آسان را فراهم میسازد
ابزار GitLab Omnibus چیست؟
این ساختار Omnibus GitLab یک بستهی all-in-one است که به جای نصب تکتک سرویسهای موردنیاز، همهی اجزا را در یک بستهی مجتمع قرار داده است.
مزایای آن:
نصب سریع تنها با یک دستور (apt-get install gitlab-ee یا yum install gitlab-ee)
مدیریت ساده توسط ابزار gitlab-ctl
کاهش پیچیدگی در پیکربندی
قابلیت بهروزرسانی یکپارچه
اجزای اصلی GitLab Omnibus
در واقع Omnibus GitLab شامل چندین سرویس حیاتی است که با هم برای اجرای کامل GitLab همکاری میکنند:
1. GitLab Rails (Core Application)
بخش اصلی اپلیکیشن که شامل GitLab Web، API و Backend است.
2. Nginx
به عنوان reverse proxy برای مدیریت درخواستهای HTTP/HTTPS.
3. PostgreSQL
پایگاهداده اصلی برای ذخیرهسازی کاربران، پروژهها، issueها، pipelineها و دادههای متنی.
4. Redis
برای cache و queue (Background Jobs و Sidekiq).
5. Sidekiq
برای اجرای پردازشهای غیرهمزمان مانند pipeline jobs و ایمیلها.
6. Gitaly
سرویس مدیریت repositoryها (جایگزین direct Git access).
7. Praefect (در معماری توزیعشده)
برای مدیریت replication در محیطهای با چندین Gitaly.
8. GitLab Shell
مدیریت کلیدهای SSH و دسترسی Git.
9. Prometheus + Grafana
برای مانیتورینگ و مشاهدهی متریک
ویژگیهای کلیدی معماری Omnibus
1. یکپارچگی → همه اجزا در یک پکیج و با حداقل وابستگی خارجی.
2. ماژولار → هر سرویس (Redis، PostgreSQL، Nginx و غیره) به صورت جداگانه قابل مدیریت است.
3. مقیاسپذیری → در نسخههای Advanced (مانند GitLab EE + Omnibus Cluster) میتوان اجزا را جدا و روی سرورهای مختلف توزیع کرد.
4. امنیت → به صورت پیشفرض HTTPS، پیکربندی firewall و hardeningهای امنیتی فراهم است.
5. مانیتورینگ داخلی → با Prometheus و Grafana، متریکها بهصورت داخلی جمعآوری میشوند
گیتلب Omnibus ابزاری استراتژیک برای تیمهای DevOps است که میخواهند بدون دغدغه نصب و پیکربندی اجزای مختلف، به سرعت یک محیط کامل GitLab را راهاندازی کنند.
معماری سطح بالای آن نشان میدهد که چگونه اجزای مختلف (وبسرور، دیتابیس، کش، مدیریت ریپازیتوری و مانیتورینگ) به صورت یکپارچه عمل میکنند تا چرخهی توسعه نرمافزار را بهینه سازند
وقتی سازمان رشد میکند، معماری Omnibus تکسرور دیگر پاسخگو نیست. در این حالت اجزای GitLab باید روی چندین سرور توزیع شوند تا:
ا. High Availability (HA) → جلوگیری از Single Point of Failure
ا. Horizontal Scaling → توانایی مدیریت حجم بالای کاربران و pipelineها
ا. Performance Optimization → پردازش همزمان حجم زیاد jobها و commitها
اجزای کلیدی در معماری Enterprise
1. Load Balancer
ورودی کلاینتها (Web/SSH/API)
توزیع درخواستها بین نودهای مختلف GitLab Web و GitLab Shell
2. Application Servers (GitLab Rails)
اجرای وب و API
میتواند در چندین نود با load balancing اجرا شود
3. Gitaly Cluster (Repository Storage)
هر repository در Gitaly نگهداری میشود
برای HA از Praefect استفاده میشود (مدیریت replication و failover)
4. Redis Cluster
برای session storage و job queue
پیکربندی Master/Replica یا Sentinel
5. PostgreSQL Cluster
پایگاهداده اصلی (HA با Patroni, repmgr یا Cloud Managed DB)
پشتیبانی از replication
6. Sidekiq Cluster
اجرای jobهای pipeline و background taskها
میتواند به صورت توزیعشده روی چند نود اجرا شود
7. Monitoring & Logging (Prometheus, Grafana, ELK)
جمعآوری متریکها، alertها و لاگها
کارگشا هست .
#gitlab #git #devops
https://t.iss.one/unixmens
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh
https://packages.gitlab.com/gitlab/gitlab-ee
در حقیقت GitLab یکی از محبوبترین پلتفرمهای DevOps Lifecycle Management است که تمام مراحل توسعه نرمافزار شامل مدیریت سورسکد، CI/CD، امنیت، مانیتورینگ و دپلویمنت را در یک بستر یکپارچه ارائه میدهد.
برای سادهسازی نصب و مدیریت این ابزار بزرگ، شرکت GitLab بستهای به نام Omnibus GitLab عرضه کرده است. این بسته شامل تمام اجزای موردنیاز GitLab (مانند دیتابیس، وبسرور، Redis، Nginx و غیره) در یک پکیج واحد است و امکان راهاندازی سریع و مدیریت آسان را فراهم میسازد
ابزار GitLab Omnibus چیست؟
این ساختار Omnibus GitLab یک بستهی all-in-one است که به جای نصب تکتک سرویسهای موردنیاز، همهی اجزا را در یک بستهی مجتمع قرار داده است.
مزایای آن:
نصب سریع تنها با یک دستور (apt-get install gitlab-ee یا yum install gitlab-ee)
مدیریت ساده توسط ابزار gitlab-ctl
کاهش پیچیدگی در پیکربندی
قابلیت بهروزرسانی یکپارچه
اجزای اصلی GitLab Omnibus
در واقع Omnibus GitLab شامل چندین سرویس حیاتی است که با هم برای اجرای کامل GitLab همکاری میکنند:
1. GitLab Rails (Core Application)
بخش اصلی اپلیکیشن که شامل GitLab Web، API و Backend است.
2. Nginx
به عنوان reverse proxy برای مدیریت درخواستهای HTTP/HTTPS.
3. PostgreSQL
پایگاهداده اصلی برای ذخیرهسازی کاربران، پروژهها، issueها، pipelineها و دادههای متنی.
4. Redis
برای cache و queue (Background Jobs و Sidekiq).
5. Sidekiq
برای اجرای پردازشهای غیرهمزمان مانند pipeline jobs و ایمیلها.
6. Gitaly
سرویس مدیریت repositoryها (جایگزین direct Git access).
7. Praefect (در معماری توزیعشده)
برای مدیریت replication در محیطهای با چندین Gitaly.
8. GitLab Shell
مدیریت کلیدهای SSH و دسترسی Git.
9. Prometheus + Grafana
برای مانیتورینگ و مشاهدهی متریک
ویژگیهای کلیدی معماری Omnibus
1. یکپارچگی → همه اجزا در یک پکیج و با حداقل وابستگی خارجی.
2. ماژولار → هر سرویس (Redis، PostgreSQL، Nginx و غیره) به صورت جداگانه قابل مدیریت است.
3. مقیاسپذیری → در نسخههای Advanced (مانند GitLab EE + Omnibus Cluster) میتوان اجزا را جدا و روی سرورهای مختلف توزیع کرد.
4. امنیت → به صورت پیشفرض HTTPS، پیکربندی firewall و hardeningهای امنیتی فراهم است.
5. مانیتورینگ داخلی → با Prometheus و Grafana، متریکها بهصورت داخلی جمعآوری میشوند
گیتلب Omnibus ابزاری استراتژیک برای تیمهای DevOps است که میخواهند بدون دغدغه نصب و پیکربندی اجزای مختلف، به سرعت یک محیط کامل GitLab را راهاندازی کنند.
معماری سطح بالای آن نشان میدهد که چگونه اجزای مختلف (وبسرور، دیتابیس، کش، مدیریت ریپازیتوری و مانیتورینگ) به صورت یکپارچه عمل میکنند تا چرخهی توسعه نرمافزار را بهینه سازند
وقتی سازمان رشد میکند، معماری Omnibus تکسرور دیگر پاسخگو نیست. در این حالت اجزای GitLab باید روی چندین سرور توزیع شوند تا:
ا. High Availability (HA) → جلوگیری از Single Point of Failure
ا. Horizontal Scaling → توانایی مدیریت حجم بالای کاربران و pipelineها
ا. Performance Optimization → پردازش همزمان حجم زیاد jobها و commitها
اجزای کلیدی در معماری Enterprise
1. Load Balancer
ورودی کلاینتها (Web/SSH/API)
توزیع درخواستها بین نودهای مختلف GitLab Web و GitLab Shell
2. Application Servers (GitLab Rails)
اجرای وب و API
میتواند در چندین نود با load balancing اجرا شود
3. Gitaly Cluster (Repository Storage)
هر repository در Gitaly نگهداری میشود
برای HA از Praefect استفاده میشود (مدیریت replication و failover)
4. Redis Cluster
برای session storage و job queue
پیکربندی Master/Replica یا Sentinel
5. PostgreSQL Cluster
پایگاهداده اصلی (HA با Patroni, repmgr یا Cloud Managed DB)
پشتیبانی از replication
6. Sidekiq Cluster
اجرای jobهای pipeline و background taskها
میتواند به صورت توزیعشده روی چند نود اجرا شود
7. Monitoring & Logging (Prometheus, Grafana, ELK)
جمعآوری متریکها، alertها و لاگها
کارگشا هست .
#gitlab #git #devops
https://t.iss.one/unixmens
نقد و بررسی مدیریت تست در Azure DevOps و مقایسه با GitLab
#azure #devops #git #gitlab #test #QA
https://t.iss.one/unixmens
#azure #devops #git #gitlab #test #QA
https://t.iss.one/unixmens
Linkedin
نقد و بررسی مدیریت تست در Azure DevOps و مقایسه با GitLab
مدیریت چرخه حیات نرمافزار (ALM) و بهویژه مدیریت فرآیند تست، بخش حیاتی موفقیت پروژههای نرمافزاری است. Azure DevOps یکی از ابزارهای محبوب در این حوزه است و امکانات متعددی برای برنامهریزی، مدیریت کد، تست و انتشار ارائه میدهد.
👍1