مایکروسافت صاحب گیتهاب میشود، اما گیتلب بیش از پیش از مایکروسافت فاصله خواهد گرفت.
تصاحب گیتهاب توسط مایکروسافت، باعث ناخشنودی بسیاری از کاربران متن باز گیتهاب شد؛ بهطوری که حدود ۱۰۰ هزار نفر از کاربران آن بهدلیل همین نارضایتی به گیتلب، سرویس رقیب گیتهاب مهاجرت کردند. اکنون گیتلب در حال جابجایی مخازن کُد خود از سرویس رایانش ابری مایکروسافت آژور به پلتفرم ابری گوگل (GCP) است.
اندرو نیودیگیت، مدیر پروژهی مهاجرت گیتلب به گوگل، توضیح میدهد که هدف شرکت متبوع از این برنامه، بهمنظور بهبود عملکرد و اتکاپذیری آن است. مهاجرت گیتلب به پلتفرم ابری گوگل، بهطور مشخص بهدلیل اعتقاد آن به ابزار متن باز Kubernetes گوگل است. گیتلب باور دارد که «Kubernetes قابلیت اطمینان بیشتری در پروژههای وسیع» ایجاد میکند. اشتیاق گیتلب به Kubernetes بهدلیل متن باز بودن، مسلما GCP را به انتخاب طبیعی این شرکت تبدیل کرده است. گذشته از این، Kubernetes اختراع گوگل است و GKE (Google Kubernetes Engine) قویترین و کاملترین پشتیبانی را دارد.
بعد از اینکه مهاجرت از آژور به سرویس ابری گوگل انجام شد، گیتلب با انتقال ناوگان کاری خود به سیستم Kubernetes با استفاده از سیستم مدیریت و ارکستراسیون GKE، پایداری و مقیاسپذیری وبسایت GitLab.com را بهبود خواهد داد، این فرآیند از چارتهای Cloud Native گیتلب نیز سود خواهد برد که هماکنون با GitLab 11.0 در وضعیت بتا بهسر میبرند.
برای تحقق این هدف، گیتلب از محصول خود تحت عنوان Geo استفاده میکند. Geo به کاربران اجازهی ساخت نمونهی آینهای کامل و Read-Only را از منابع خودشان میدهد. این نمونهها میتوانند برای شبیهسازی و آزمایش پروژهها و همینطور مهاجرت پروژههای گیتلب بهکار روند. گیتلب تصمیم به مهاجرت را بهخاطر فاصلهگرفتن از مایکروسافت اتخاذ نکرده است؛ بلکه پیش از تصاحب گیتهاب توسط مایکروسافت روی این پروژه کار میکرد.
نیودیگیت بسیار پیش از نهاییسازی قرارداد مایکروسافت و گیتهاب چنین نوشت:
ما سایت Geo دومی تحت عنوان gprd.gitlab.com برای گیتلب روی پلتفرم ابری گوگل راهاندازی کردهایم که از یک کپی پشتیبان بهروز از ۲۰۰ ترابایت اطلاعات گیتلب و ۲ ترابایت اطلاعات وابسته در PostgreSQL نگهداری میکند. در ابتدا بهطور موازی پروژهی دیگری را نیز با نام Git LFS برای بارگذاری فایلها به راه انداختیم که البته این پروژه به مخازن ذخیرهی ابری گوگل انتقال یافته است.
بهدلایل منطقی، گیتلب ایستگاه مخزن ابری us-East1 پلتفرم ابری گوگل را در کارولینای جنوبی استفاده میکند. در حالی که مرکز دادهی آژور US East 2 در ویرجینیا قرار دارد. یک فاصلهی ۸۰۰ کیلومتری یا به تعبیر سرعت نوری، ۳ میلیثانیهای میان این دو مرکز وجود دارد که باعث ایجاد ۳۰ میلی ثانیه زمان پینگ بین دو ایستگاه میشود. نیودیگیت ادامه میدهد:
بهخاطر حجم بسیار بالای دادهای که باید بین آژور و GCP همگام شود، ابتدا نگران تاخیر و ریسکی بودیم که در این فاصلهی زیاد برای انتقال Geo پیش میآمد. پس از آزمایش اولیه، پی بردیم که تاخیر شبکه و پهنای باند تنگنایی برای انتقال داده محسوب نمیشود.
همزمان با مهاجرت گیتلب به پایگاه ذخیره ابری گوگل CGS، گوگل نیز اجرای ذخیرهسازی فایلها و اطلاعات را مدیریت کرده، این میزان برابر با ۲۰۰ ترابایت داده است. گیتلب تاکنون این فایلها را روی سرورهای NFS خود با سیستم Network File System ذخیره میکرد. NFS از تکنولوژی (SPOF (Single Point of Failure بهره میبرد که در مقیاسهای بزرگ کار را سخت میکند. با مهاجرت به CGS، گیتلب از قابلیتهای چند ناحیهای بودن و افزونگی ایجاد شده میان آنها بهره خواهد برد که به نوبهی خود دسترسی به گیت لب را بهبود میبخشد و SPOF را از بین میبرد.
پروژهی Gitaly، سرویس Git RPC گیتلب، بخشی از همین خلاقیت است. تلاش این پروژه برای حذف SPOF پیشنیاز مهاجرت به Kubernetes گوگل است. طبق گفتهی نیودیگیت اولویت اساسی گیتلب اطمینان از محافظت تمامی دادههای کاربران این شرکت است. او میگوید:
ما زمانی از خودمان رضایت کامل داریم و مطمئنیم که تمام وظایف اصلی و مهم خود را انجام دادهایم که هیچ ریسکی بابت از دست رفتن دادههای کاربران وجود نداشته باشد و محیط جدید ما روی پلتفرم ابری گوگل برای حجم زیاد کار آماده باشد.
تصاحب گیتهاب توسط مایکروسافت، باعث ناخشنودی بسیاری از کاربران متن باز گیتهاب شد؛ بهطوری که حدود ۱۰۰ هزار نفر از کاربران آن بهدلیل همین نارضایتی به گیتلب، سرویس رقیب گیتهاب مهاجرت کردند. اکنون گیتلب در حال جابجایی مخازن کُد خود از سرویس رایانش ابری مایکروسافت آژور به پلتفرم ابری گوگل (GCP) است.
اندرو نیودیگیت، مدیر پروژهی مهاجرت گیتلب به گوگل، توضیح میدهد که هدف شرکت متبوع از این برنامه، بهمنظور بهبود عملکرد و اتکاپذیری آن است. مهاجرت گیتلب به پلتفرم ابری گوگل، بهطور مشخص بهدلیل اعتقاد آن به ابزار متن باز Kubernetes گوگل است. گیتلب باور دارد که «Kubernetes قابلیت اطمینان بیشتری در پروژههای وسیع» ایجاد میکند. اشتیاق گیتلب به Kubernetes بهدلیل متن باز بودن، مسلما GCP را به انتخاب طبیعی این شرکت تبدیل کرده است. گذشته از این، Kubernetes اختراع گوگل است و GKE (Google Kubernetes Engine) قویترین و کاملترین پشتیبانی را دارد.
بعد از اینکه مهاجرت از آژور به سرویس ابری گوگل انجام شد، گیتلب با انتقال ناوگان کاری خود به سیستم Kubernetes با استفاده از سیستم مدیریت و ارکستراسیون GKE، پایداری و مقیاسپذیری وبسایت GitLab.com را بهبود خواهد داد، این فرآیند از چارتهای Cloud Native گیتلب نیز سود خواهد برد که هماکنون با GitLab 11.0 در وضعیت بتا بهسر میبرند.
برای تحقق این هدف، گیتلب از محصول خود تحت عنوان Geo استفاده میکند. Geo به کاربران اجازهی ساخت نمونهی آینهای کامل و Read-Only را از منابع خودشان میدهد. این نمونهها میتوانند برای شبیهسازی و آزمایش پروژهها و همینطور مهاجرت پروژههای گیتلب بهکار روند. گیتلب تصمیم به مهاجرت را بهخاطر فاصلهگرفتن از مایکروسافت اتخاذ نکرده است؛ بلکه پیش از تصاحب گیتهاب توسط مایکروسافت روی این پروژه کار میکرد.
نیودیگیت بسیار پیش از نهاییسازی قرارداد مایکروسافت و گیتهاب چنین نوشت:
ما سایت Geo دومی تحت عنوان gprd.gitlab.com برای گیتلب روی پلتفرم ابری گوگل راهاندازی کردهایم که از یک کپی پشتیبان بهروز از ۲۰۰ ترابایت اطلاعات گیتلب و ۲ ترابایت اطلاعات وابسته در PostgreSQL نگهداری میکند. در ابتدا بهطور موازی پروژهی دیگری را نیز با نام Git LFS برای بارگذاری فایلها به راه انداختیم که البته این پروژه به مخازن ذخیرهی ابری گوگل انتقال یافته است.
بهدلایل منطقی، گیتلب ایستگاه مخزن ابری us-East1 پلتفرم ابری گوگل را در کارولینای جنوبی استفاده میکند. در حالی که مرکز دادهی آژور US East 2 در ویرجینیا قرار دارد. یک فاصلهی ۸۰۰ کیلومتری یا به تعبیر سرعت نوری، ۳ میلیثانیهای میان این دو مرکز وجود دارد که باعث ایجاد ۳۰ میلی ثانیه زمان پینگ بین دو ایستگاه میشود. نیودیگیت ادامه میدهد:
بهخاطر حجم بسیار بالای دادهای که باید بین آژور و GCP همگام شود، ابتدا نگران تاخیر و ریسکی بودیم که در این فاصلهی زیاد برای انتقال Geo پیش میآمد. پس از آزمایش اولیه، پی بردیم که تاخیر شبکه و پهنای باند تنگنایی برای انتقال داده محسوب نمیشود.
همزمان با مهاجرت گیتلب به پایگاه ذخیره ابری گوگل CGS، گوگل نیز اجرای ذخیرهسازی فایلها و اطلاعات را مدیریت کرده، این میزان برابر با ۲۰۰ ترابایت داده است. گیتلب تاکنون این فایلها را روی سرورهای NFS خود با سیستم Network File System ذخیره میکرد. NFS از تکنولوژی (SPOF (Single Point of Failure بهره میبرد که در مقیاسهای بزرگ کار را سخت میکند. با مهاجرت به CGS، گیتلب از قابلیتهای چند ناحیهای بودن و افزونگی ایجاد شده میان آنها بهره خواهد برد که به نوبهی خود دسترسی به گیت لب را بهبود میبخشد و SPOF را از بین میبرد.
پروژهی Gitaly، سرویس Git RPC گیتلب، بخشی از همین خلاقیت است. تلاش این پروژه برای حذف SPOF پیشنیاز مهاجرت به Kubernetes گوگل است. طبق گفتهی نیودیگیت اولویت اساسی گیتلب اطمینان از محافظت تمامی دادههای کاربران این شرکت است. او میگوید:
ما زمانی از خودمان رضایت کامل داریم و مطمئنیم که تمام وظایف اصلی و مهم خود را انجام دادهایم که هیچ ریسکی بابت از دست رفتن دادههای کاربران وجود نداشته باشد و محیط جدید ما روی پلتفرم ابری گوگل برای حجم زیاد کار آماده باشد.