هفتهای که گذشت هفته پر ماجرایی بود. از ابتدای هفته به پروژه جدیدی Assign شده بودم که اولش حتی نمیدانستم Back-end آن چیست. بعد از توضیحات اولیه متوجه شدم که این پروژه روی دات نت نیست بلکه روی Node.js است. از کار مجدد روی Node.js خیلی خوشحال شدم. خصوصا اینکه میتوانستم و البته مجبور شدم که روی لینوکس برگردم اما کمی هم ترسیدم که نکند استاندارهای آنها در این پروژه خیلی خاص باشد و مهارت Node.js من کافی نباشد.
انگلیسی حرف زدن PM خیلی بد بود. کیفیت میکروفون و تصویرش هم همین طور. خیلی لهجه داشت و خیلی از کلماتش را به سختی متوجه می شدم. کلی راجع به Amazon و AWS و داکر حرف زد، راجع به EC2 و دیتابیس cloud و اینطور چیزها. حتی گفت که خودش چون لینوکس دارد از Azure برای کار با یک دیتابیس MSSQL استفاده می کند. اینقدر راجع به این چیزها حرف زد که فکر کردم بیچاره شدم. چون دسترسی قبلی به AWS نداشتم و هیچ وقت با دیتابیس اون کار نکرده و برایم ملموس نبود. از همان شب شروع کردم به جستجو راجع به AWS. یک اکانت ساختم. مشکل SMS و شماره موبایل غیر ایرانی را برطرف کردم. حتی یک شماره credit card غیر واقعی هم وارد کردم. اما توی مرحله credit card گیر کرد و اکانتم فعال نشد.
اولین تسکی که به من سپرده شد مربوط به کد و API نبود بلکه راجع به restore یک دیتابیس MSSQL در یک سرویس EC2 بود. با کلی ترس و دردسر cert ها را آماده کردم و به سرور SSH زدم. همینجا بود که فهمیدم داستان AWS و EC2 و غیر خیلی اهمیت نداشته اند. چون تمام آن چیزی که من لازم داشتم این بود که از طریق SSH به یک سرور Ubuntu وصل بشوم. فقط به جای داشتن user/pass از یک cert استفاده می شد. از SSH به بعد داستان خیلی ساده بود. فقط کافی بود که با SQLCMD کارهایم را انجام بدهم. که برای من کار سختی نبود. چون سالها با MS SQL سر و کله زده بودم و میدانستم دردسرهای backup/restore چیست. در ادامه کار به مشکل نبود فضای آزاد کافی برخورد کردم. DevOps مشکل را برطرف کرد و بالاخره دیتابیس Restore شده. حجم دیتابیس حدود صد گیگا بایت شده بود. به جای ابزارهایی مثل Windows Azure از dbeaver لوکال استفاده کردم و صحت دیتابیس برایم احراز شد.
سمت gitlab را شروع کردم. چون معماری طبق معمول میکروسرویس بود، هر کدام از میکروسرویس یک repo جداگانه داشتند. در Node.js بر خلاف .Net امکان استفاده از DLL و share کد از این طریق را ندارد. پس اجبار هست که کدها به شکل پکیج منتشر بشوند. اما پکیج ها که عمومی نیستند که بتوان در npmjs قرار بدهیم. چاره کار؟ علی الظاهر gitlab امکانی برای انتشار package البته به صورت خصوصی دارد که اینجا از این امکان استفاده شده. در دات نت هم از یک nuget package خصوصی مشابه استفاده می شود. به هر صورت فرصت نشد که روی کد node.js بیش از این مانور بدهم چون تغییراتی در اولویت ها به وجود آمده بود و من مجبور شدم که به پروژه دات نتم برگردم.
بماند که چقدر بابت setup کردن vpn در اوبونتو و update کردن پکیج ها و نرمافزارها وقتم تلف شد. اما به هر حال خوب شد که دوباره به لینوکس برگشتم. چون سورس کد پروژه مدتی هست که به دات نت ۵ آپگرید شده، من هم دات نت ۵ را نصب کردم و دیدم که پروژه دات نت در اوبونتو اجرا می شود.
تا بعد…