مهدی زارعی
مهدی زارعی
خواندن ۶ دقیقه·۵ سال پیش

ترک فندق به مقصد سرور‌های آروان‌

پروژه‌ای که ناچار شدم منتقل کنم خیلی پروژه بزرگی محسوب نمیشه، حدودا ۶۰۰ گیگ فایل‌های تصویری و ویدئویی به علاوه ۱۰۰ گیگ دیتابیس، اما به نظرم حین این انتقال تجربیات خوبی در مورد آروان بدست آوردم که می‌تونم باهاتون به اشتراک بگذارم.

چرا فندق رو ترک کردیم؟

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

چرا انتقال به مقصد آروان کلاد؟

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

چند نکته در مورد فرایند انتقال

در مجموع از نظر فنی به عنوان کسی که درگیر فعالیت انتقال بود این تجربه رو «یک تجربه رضایت‌بخش» قلمداد می‌کنم اما اگر دوست دارید یه سری جزئیات و نکات بیشتر بدونید چند مورد رو مطرح می‌کنیم:

  • مهمترین جنبه‌ای که آزاردهنده بود، بحث سرویس‌هایی بود که فندق به عنوان یک PaaS برای ما بدون هیچ زحمتی فراهم کرده بود ولی روی آروان به عنوان یک IaaS باید تمامشون رو خودمون کانفیگ می‌کردیم.
    البته این نقطه ضعف آروان محسوب نمی‌شه، چالش منتقل شدن از هر PaaSای به هر IaaSای لزوما این چنین مشکلاتی رو ایجاد می‌کنه، که توی همین بلاگ‌پست کمی پایین‌تر جزئیات فنیش رو توضیح می‌دهم.
  • پهنای باندی که آروان برای انتقال در دسترسمون قرار داده بود نسبت به انتظاری که از زیرساخت شبکه ایران داشتیم خوب بود، حدود 15MBps (یا 120mbps) سرعت انتقال دیتامون بود.
  • در مورد هزینه‌ زیرساخت قبل و بعد از انتقال، ما حدود ۸۰٪ افزایش هزینه داشتیم، (البته ۸۰٪ اگر نیاز پیدا نکنیم یک سیس‌ادمین هم تمام وقت همکاری کنه)، که با توجه به اینکه به جای PaaS داریم از IaaS استفاده می‌کنیم و کلی زحمت روی دوشمون افتاد این افزایش هزینه شاید عجیب هم باشه.
  • توی این انتقال از پنل جدید آروان استفاده می‌کردم، هنوز یه جاهاییش باگ‌هایی داره اما چیزی نیست که خیلی آزاردهنده باشه یا روال کار رو متوقف کنه، پشتیبانی آروان حین مایگریشن خوب همکاری کرد و اگر هم مشکلی بود به سرعت حل شد.
    البته یک چیزی در مورد پنل که خیلی واقعا اذیت کرد بحث VPN بود، اگر VPN باز باشه یه قسمت‌هایی از پنل آروان(مثلا بخشی که VPS رو انتخاب می‌کنی برای خرید یا مدیریت) یا خیلی کند می‌شه یا اصلا کار نمی‌کنه.
    به همین دلیل مدام حین کار باید VPN رو خاموش و روشن می‌کردم که موجب میشد session های SSHام هم اکثرا بسته بشند و این خیلی دردناک بود.
  • یه نکته دیگه که من باهاش مشکل داشتم، لزوما شاید نظر بقیه این نباشه، بحث تغییراتی بود که آروان مطابق نظر خودش داده بود(نسبت به تجربیات قبلی من)، مثلا بحث SSH-Key، موقعی که از توی پنل آروان ssh key رو اضافه بکنید به سرور، وقتی سرور ساخته می‌شه اجازه نمیده با root لاگین کنید، و پیغام میده با اکانت debian یا ubuntu باید حتما لاگین کنید.
    خب این چه کاری عزیز من؟من خودم به فکر امنیتم هستم بهتر نیست شما توی این امر وارد نشی اجازه بدی من خودم مدیریت بکنم سرورم رو؟یا مثلا اون بنر آروان‌کلاد که بعد از ssh نمایش داده میشه خیلی حس خوبی به من نمی‌ده، به نظرم این تغییرات خوب نیستند.
    البته من که همون اول یه image جدید ساختم یک سری تغییرات دادم و با همون کار کردم تا آخر و کلا هم از فیچر SSH-Key پنل استفاده نکردم.

کمی جزئیات فنی

اجازه بدید کمی در مورد جزئیات فنی مربوط به مشکلاتی که مهاجرت از PaaS فندق به IaaS آروان برامون ایجاد کرد توضیح بدم.

موضوع service replication

روی فندق ما سرویس‌هامون رو با عوض کردن یک فیلد ساده replicas توی مانیفست سرویسمون به سادگی replicate می‌کردیم اما اینجا یک سرور جدید باید از نو میاوردم بالا و پیکربندی می‌کردم.
البته می‌دونم که احتمالا همه ansible دارید و روی سرور جدید فقط ansible رو اجرا می‌کنید ولی خب چون ما قبلا سرویس رو داکرایز کرده بودیم و فندق برای ما سرویس‌هامون رو نگهداری می‌کرد نیازی به ansible نداشتیم و نوشتن ansible توی مدت کم مایگریشن برام خیلی منطقی نبود.

موضوع Load Balancing

زمان فندق ما فقط سرویس بالا می‌آوردیم و اصلا کاری به روتینگ و بالانس کردن لود نداشتیم، اما اینجا مجبور بودم تایم قابل توجهی رو بذارم و routing و لود بالانسر رو خودم کانفیگ کنم.
گذشته از این موضوع بحث گواهینامه‌های TLS هم بود، زمان فندق، ما هیچ نگرانیی از بابت گواهینامه‌ها نداشتیم فندق همه گواهینامه‌ها رو مدیریت می‌کرد، حالا روی کلی دامنه مختلف باید انواع و اقسام گواهینامه‌های معمولی و wildcard رو می‌گرفتم، به اسکریپت‌های renew کردنشون فکر می‌کردم و اینکه روی کدوم سرور نگهشون دارم که خدا رو خوش بیاد، همه این تصمیم‌گیری ها به عهده خودمون افتاد که انرژی و وقت بیشتری ازم گرفت.

موضوع چرخه CI/CD و Jenkins

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

مستندات زیرساخت

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

نتیجه‌گیری

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


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