Visual Studio Team Services یا Team Foundation Server مساله این است

خب امروز می خوام درباره یکی از گزینه های پیش روی همکاران عزیز در داخل از کشور صحبت کنم و اون هم انتخاب بین VSTS و TFS هست، اینکه تفاوت های این دو ابزار با هم چیه و در چه شرایطی باید از کدوم استفاده کنیم.

خب باید این موضوع رو  بگم که شرایط کشور ما روی  نظری که من میدم تاثیر مستقیم داره و عمده مساله ایی که باید در نظر بگیرید روابط خاص بین شرکت مایکروسافت و مشتریانی هست که مبدا اونها ایرانه. خب بذارید برگردیم به صحبت اصلی خودمون  من در دو بخش این مقایسه رو انجام میدم یکی از نظر فنی و دوم از نظر  مسائل غیر فنی.

مقایسه TFS و VSTS

 

مسائل فنی:

هر دو در زمان راه اندازی پیچیدگی های خودشون رو دارن روی Azure هم شما اول باید اکتیو دایرکتوریتون رو ست کنید و گروه های کاریتون رو باید مشخص کنید تا مدیریت امنیت براتون دغدغه نشه!( چون اگر دقت نکنید مدیریت امنیت و دسترسی به پروژه ها بین تیم ها خیلی زود براتون تبدیل به یک کلاف سردرگم میشه )

در VSTSنیازی به تنظیم سرور نداریم چون به شکل Software as a service ارائه میشه، در این زمینه VSTS به علت اینکه به شکل خودکار به روز رسانی ها رو دریافت می کنه ( سرویس VSTS از نظر امکانات سه ماه از TFS جلوتره و معمولا بعد از این مدت هست که امکانات جدید رو در TFS هم  خواهیم داشت ) و نیازی به سروری در سازمان شما وجود نداره بخشی از سربار کار شما رو کم می کنه ولی برای زمان Test ها و یا Build ها از شما هزینه می گیره، آخرین باری که چک کردم بر اساس زمان استفاده محاسباتش رو انجام میده، در واقع شاید در ابتدا دردسرش کمتر باشه ولی خب باید مراقب مبلغ شارژش باشید البته من اینجا به بحث های دیگه ایی مثل مدیریت Artifact ها ورود نمی کنم ولی بدونید خروجی Build هاتون هم مهمه و میتونه فضای زیادی رو روی Azure به خودش اختصاص بده که اون هم جز هزینه هاتون خواهد بود.

در عوض سمت TFS تنظیم سرو اصلی ، تنظیم سرورهای Build و هر گونه سرور دیگه ایی مثل Test سرورها و یا Stage های پابلیش نرم افزارتون با خود شماست و ساده بگم باید مراقب این سرورها باشید و BackUp Plan برای دیتاهاتون داشته باشید، Backup از سرورها لازم نیست ولی حتما باید  BackUp از اطلاعاتتون در TFS بگیرید و بدونید که ایجاد سیستم BackUp گیری اتوماتیک کمکی بهتون نمی کنه و روی برگردوندنش ممکنه به مشکل بخورید و راه حل ۱۰۰% تظمین شده ایی نیست. در مورد به روز رسانی هم زحمتش با خودتونه بسته به اینکه چه نسخه رو میخواید به چه نسخه ایی Upgrade کنید مسائل متغیره، ممکنه مجبور شید تو دو مرحله به روز رسانی رو انجام بدید و ممکنه تو یک مرحله هم بتونید ولی تمام اینها در زمانیه که Domain شما ثابته ولی اگر کاربرهاتون رو بخواید بین دو Domain جابجا کنید و در عین حال نخواید تغییرات کاربرها مثل تاریخچه ها، Shelveset ها ،Annotation ها بهم بخوره باید یک فرآیند تبدیل کاربر رو هم سپری کنید که ممکنه مجبور شید دیتابیس TFS رو دستی تغییر بدید ( اینکار هیچ جایی توضیه نشده ولی من مجبور شدم، انجام دادم و نتیجه ایی رو که میخواستم گرفتم ). در این روش طبیعتا ما شارژ ماهیانه ایی نداریم.

در هر دو روش اگر تیمتون بزرگ تر از ۴۰ توسعه دهنده است یک نفر رو باید برای کارهای مرتبط با VSTS/TFS در نظر بگیرید.

 

مسائل غیر فنی:

خب این بخش شاید کم اهمیت تر از بخش اول نباشه، ببینید مساله ایی که هست اینه که اگر شما از VSTS استفاده کنید شرکت مایکروسافت گزینه Export در اختیار شما قرار نمیده! این یعنی اینکه بعد از دو ماه استفاده از این سرویس شما به قدری ارزش افزوده در این سرویس دارید که برای شما هزینه بر خواهد بود که اون رو کنار بذارید و برید سراغ TFS، به عنوان مثال شما بعد ۳ ماه تصمیم به تغییر  می گیرید ولی با اینکار تمام تاریخچه کارهاتون رو از دست خواهید داد و انگار از صفر شروع کردید، مثلا نمیدونید که تغییرات روی جدول Person توسط چه افرادی بوده و چرا و در چه تاریخی و در چه برنچی! می بینید؟ حجم دیتایی که ازدست می دید باعث میشه کارهای روزانتون تاثیر بپذیرن، مایکروسافت زمانی که اعلام کرد گزینه Export حذف خواهد شد اجازه Export گرفتن به نسخه خاصی از TFS رو برای مدت محدودی فعال کرد و بعد برای همیشه این گزینه غیر فعال شد.

خب چیزی که درباره Export گفتم یک جنبه مهم دیگه هم داره، فرض کنید من یک پروژه رو به شرکت شما Outsource می کنم ( همون برون سپاری خودمون) و از شما می خوام که در انتهای پروژه و یا در فواصل معین تمام اطلاعات ایجاد شده رو در اختیار من بذارید، خب اینجا دیگه اصلا نمیشه از VSTS استفاده کنید اگر هم تا حالا استفاده کرده باشید که بسته به نظر کارفرما شرایط متفاوت خواهد کرد.

فرض کنید شما کارفرما هستید و بعد از مدت ها انتظار و صرف هزینه نتیجه پروژه رو به شکل یک فایل Zip شده در اختیارتون بذارن! نه روند مدیریت پروژه مشخصه ( اینکه چه Feature هایی تعیین شده و برای اونها چه افرادی چه Task هایی رو انجام دادن و خیلی مسائل دیگه در زمینه Agile و Scrum )، تاریخچه کدها و دیتابیس شما و ارتباط اونها با Work Item ها هم مشخص نیست و تستی هم اگر وجود داشته باشه به شما تحویل نمیشه و خیلی ارژش افزوده های دیگه ایی که ALM و DevOps ایجاد می کنه، حداقلش اینه که در روشی که مجری از VSTS استفاده کرده باشه اصلا گزینه دیگه ایی رو نمیشه متصور شد.

 

خلاصه اینکه اگر از VSTS استفاده می کنید براتون شارژ ماهانه داره و برای همیشه بهش وابسته می شید و نیاز پیدا می کنید چرایی فایل Zip شده رو به کارفرما توضیح بدید. ( من وارد موارد پیچیده تر نشدم مثل مواردی که یک شرکت به دو شرکت تقسیم میشه و کدهاشون باید از هم جدا شه )، و TFS هم سربار هزینه سرورها رو در گام اول داره.

 

با آرزوی موفقیت همه شما همکاران عزیز

One thought on “Visual Studio Team Services یا Team Foundation Server مساله این است

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *