اسنپ شاپ
ورود سریع به بازار یکی از مزایای راهکارهای ابری است. مخصوصا زمانی که رقابت در بازار شدید باشد و یک روز تاخیر هم بازی را عوض کند. یا زمانی که هدایت اصلی محصول در دستان بیزینس است و نیاز است که پرسرعت و کم هزینه وارد بازار شود. اسنپ شاپ در سال ۱۴۰۱ چنین شرایطی داشت. آنها زیر بار عملیات بودند و نیاز داشتند خیلی سریع از پلتفرم اسنپفود جدا شوند و بخش مستقل خودشان را داشته باشند اما فرصت کافی برای پیادهسازی زیرساختهای پیچیده را نداشتند و در چنین شرایطی زیرساخت آماده و مدیریت شده ستون به کمک آنها آمد. ابتدا قرار بود پیاده سازی این پروژه را به چند شرکت خارجی بدهد که به خاطر کیفیت پایین کار ریجکت شدند. همین طور با مشاورانی هم مشورت کردند. میگویند: «یه دوآپسی اومد مشاوره داد که خودمون راه میاندازیم که برآورد این بود که ۵ تا نیرو همون لحظه باید اضافه میکردیم. اما با ستون کل کار با یک نفر پاره وقت انجام شد و ۱/۵ ماه بعد از لانچ تازه نفر دوم رو استخدام کردیم»
اردیبهشت ۱۴۰۱ اسنپ تصمیم گرفت پس از تجربه موفق اضافه کردن فروشگاهها کنار رستورانها، روی این بخش به صورت یک محصول مستقل کار کند. تلاش اول آنها برای انتقال پروژه روی کوبر ستون در خرداد ماه ناموفق بود. میلاد کیانمهر CTO اسنپشاپ میگوید: «اردیبهشت میخواستن یه کپی از کد بگیرن و بیارن رو ستون که فیلد شد چون فهمیدن کدها کار نمیکنه و پلتفرم برای یه استفاده دیگه طراحی شده بود» چون پلتفرم اسنپ فود مناسب این جداسازی نبود تصمیم بر این شد از نظر فنی نیز این بخش مستقل شود تا شهریور همان سال R&D این تحولات زمان برد و پروپوزالها آماده شد. از شهریور پروژه بازنویسی شروع شد. این بازنویسی تا تیر ۱۴۰۲ طول کشید و یک شبه اسنپشاپ قبلی را خاموش کردند و پروژه جدید را بالا آورند.
اسنپ شاپ ۳ گزینه برای انتخاب زیرساخت کلودی خود داشت. ستون، زیرساخت ابری خود اسنپ و دو مورد دیگر از فعالان این حوزه هم گزینههای آنها بودند که یکی از آنها به خاطر ضعف در پیاده سازی در کوبرنیتیز همان ابتدا حذف شد. همین طور خودشان هم میتوانستند متناسب با نیازهای خودشان زیرساختی را ترتیب ببینند اما چون پیش از این ستون را آزموده بودند و تنوع و اینتگریشن بین سرویسها برایشان مهم بود ستون را انتخاب کردند. میگوید: «مثلا یکی کوبر نداشت و اوپن استک بود. یکی کوبر نصب میکرد و میرفت. اما ستون چون به دیوار و بازار سرویس میداد قابل اعتماد بود همین طور دیتاسنتر ندا خیلی در تصمیم گیری تاثیر داشت نسبت به اونی که میگفت بعد قرارداد میره یه دیتاسنتر پیدا میکنه» آنها ظرف ۴۰ روز استیج را به پروداکشن منتقل کردند و لانچ نسخه اول اسنپ شاپ را انجام دادند. به گفته میلاد کیانمهر زیرساخت ستون اسنپ شاپ را ۶ ماه در پروژه جلو انداخت و دغدغهها را رفع کرد. ابزارها، اعتماد و اینتگریتی و تجربه قبلی و رزومه از جمله عواملی بود که باعث این انتخاب شد. از طرفی گزینههای خارج از ایران به خاطر قطعی اینترنت و همین طور Data Governance از لیست گزینهها خط خورد؛ که اگر این طور نبود آمازون یا سرویسهایی که به ازای ریکوئست پول میگیرند به خاطر Cost management و امکان حذف ورکرها گزینه جذابی برایشان بود. او در پاسخ به این سوال که «اگه سرویسهای خارجی باز بود آیا جا به جا میشدند؟» میگوید: «معیار کیفیت سرویس هست و حتی اگه بخشی رو اون سمت داشته باشیم باز هم بخشی رو داخل نگه میداریم.»
سوال کردیم چرا از زیرساخت اسنپ برای رفع نیازتان استفاده نکردید که گفت: «اسنپ کلاد از نظر پلتفرمی خیلی شبیه به ستون هستن ولی از نظر اینکه ستون به تعداد بیشتری مشتری سرویس میده تجربه انباشته بیشتری داره.. وقتی پروایدر به چند تا کلاینت بخواد سرویس بده خیلی متفاوت هست نسبت به حالتی که فقط به تیم و سرویسهای داخلی زیرساخت بده»
به گفته مهدی رشکی سرپرست زیرساخت اسنپ شاپ نیز تجربه موفق تیم اسنپ اکسپرس از کار با ستون و استاندارد بودن محصولات ستون باعث شد تا در تیم جدید اسنپ شاپ هم اولویت خودشان را روی استفاده از ستون بگذارند. بودن از ابتدا روی ستون به اسنپ شاپ برای فراهم کردن Scalability و پاسخگویی به کاربران بیشتر و همچنین تامین امنیت کمک کرد. مهدی رشکی شهریور ۱۴۰۲ به اسنپ شاپ اضافه شد و پیش از این در شرکت قبلی که در حوزه بانکی بود سه سال تلاش کرده بود تا آنها را به کلود مهاجرت دهد اما مشکل فرهنگی مانع این اتفاق شد. میگوید: «برایشان توجیه اقتصادی نداشت و اهل ریسک پذیری نبودند برای همین سرویسی مثل بلوبانک رشد کرد چون از ابتدا روی زیرساخت قابل اسکیل کوبر پیش رفت»
مهدی رشکی یکی از نقاط قوت ستون را Cloud native بودن و پیاده سازی خوب Cluster as service و Cluster API میداند و معتقد است سایر سرویسدهندگان ابری سراغ نرمافزارهای کمتر شناخته و غیر مقبول میروند و استفاده از آنها را سمت مشتری فورس میکنند. مهدی رشکی میگوید: «مثل ساختمان سازی میماند. در ستون از مصالح استاندارد استفاده میکنید نه اینکه به مصالح عجیب و غریب که در دنیا رایج نیست مثل Open EBS رو بیاورید و برای امنیت هم به تئوری اکتفا کنید. مدل شبکه و ذخیرهسازی شما معقول است و بیشتر شبیه کلودهایی مثل AWS است. مثلا بعضی سرویسدهندههای ابری ایرانی سراغ Namespace as a service رفتند که اشتباه بود و بعدا شرکتها کاستی این حالت را میفهمند».
میلاد کیانمهر در پاسخ به اینکه چرا برای رفع نیازهایشان از ماشین مجازی استفاده نکردند میگوید: «به خاطر اسکیل کار! ۵۵۰ تا پاد رانینگ داشتیم. در بلک فرایدی قبلی ۱/۵ میلیون یوزر رو هندل کردیم که با داکر و اینا نمیشد. مثلا در شرکت قبلی ihome حدود ۵-۶ تا ماشین مجازی داشتیم. البته استفاده از کوبر وقتی زیر ۵۰ تا ۶۰ تا کانتیر دارید دردسر رو بیشتر میکنه اما اینجا فقط ۵۰ تا استیت لس داریم که فقط APIها رو هندل میکنه. من به هرکس که کوبر نداره میگم حداقل فرانت رو بیار ولی بعضیها کدهای لگسی دارن و این مهاجرت براشون راحت نیست» او در ادامه اضافه کرد: «جزو معدود کلاد پروایدرهایی هستید که برای کسانی که واقعا کلاد نیتیو نیاز دارن ستون انتخاب درستیه.»
بنابراین اسنپ شاپ از ابتدا زیرساخت خود را روی ستون بالا آورد و فرآیندی برای مهاجرت طی نکردند. میلاد کیانمهر اما پیش از این تجربه مهاجرت داشته و میگوید: «در تئوری ساده بود اما در عمل سخت شد. اول داکرایز کردیم و بعد نیم اسپیس ها رو جدا کردیم. ۵۰ تا پروژه بود که دونه دونه جدا کردیم. قسمت سخت استیت فولها بود. در یک شب دیتا رو کپی کردیم و دیتابیس ها رو پر کردیم و لانچ اونجا هم بیگ بنگ بود.»
مهدی رشکی درباره تاثیر و اهمیت استفاده استارتاپها از خدمات ابری میگوید: «یک استارتاپ چه انتظاری از یک شرکت کلودی داره؟ اینکه خودش رو از زیرساخت رها کنه و تمرکزش رو بگذاره روی توسعه. منعطف و مطابق با نیازش باشه و به راحتی بشه شخصی سازی کرد و بحث امنیت و Availability بر اساس بهترین مدلها پیاده شده باشه. اما در بیشتر کلودها به این موضوعات توجه نمیکنند بیشتر یک سرویسی میدهند و حالا تصمیم میگیرند همان را گسترش دهند اما مزیت مهم ستون رو در یکپارچگی سرویسها با همدیگه است.»
آنها به کمک قابلیت Scalable کوبر نیازهای ناگهانی بیزینسشان را پاسخ دادهاند و توانستند به خوبی با اضافه کردن کور از پس کمپین بلک فرایدی بر بیایند؛ با وجود اینکه مشتریان بسیار بیشتری نسبت به تخمینها جذب کرده بودند. به گفته مهدی رشکی دسترسی خوبی که روی کوبر دارند، نیازهای یک devops engineer برای customize کردن را پاسخ میدهد. قابلیتهایی که به قول خودشان «همین شرایط را استارتاپها به راحتی نمیتونن بالا بیارن و باید ۱۵-۲۰ نفر جمع کنند و کلی هزینه کنند و ۲-۳ سال تجربه کنند اما استارتاپها میخوان از این دغدغهها رها بشوند ما تجربه خیلی خوبی روی استیت فول بودن ورکلود داشتیم و تا الان جای دیگهای تجربه نکرده بودیم. مثلا اگر ستون نبود ما باید کل ریسورسها رو میخریدیم و کولوکیت میکردیم که خودش کلی نیروی خوب نیاز دارد و همه اینها باید پلن و دیزاین شود که یک استارتاپ نمیتونه انجام بده»
مهدی رشکی درباره اهمیت کلودهای محلی میگوید: «همه جای دنیا کلودهای محلی هم هستند که خودشان را با استاندارد جهانی هماهنگ میکنند. یکسری مسائل امنیتی هم هست مثل دیتا لیکیج که در سطح جهانی خیلی اهمیت داره و ستون هم میتونه با ارائه سرویس امنیتی خودش رو به عنوان کلاد پروایدر خوب مطرح کنه.»
مهدی رشکی درباره پشتیبانی ستون میگوید: «تیم ناک خوبی دارید موضوعات مهندسی شده و به موقع بررسی میشود و اسکلیت میشود و بدون بروکراسی و طولانی شدن، خیلی زود به نتیجه میرسد اگه ۲۰ نگیرین حداقل ۱۹.۵ میگیرین» به گفته میلاد کیانمهر پشتیبانی ۲۴ ساعته و اختصاصی ستون در هر ساعت از شبانه روز پاسخگو است و تجربههای بد قبلی با دیگر کلود پروایدرها را نداشتند و حتی ستون مشکل DNS که روی سایر کلود پروایدرها بوده را هم حل کرده.
در حال حاضر اسنپ شاپ با یک تیم ۳ نفره (یک سرپرست، یک جونیور و یک سینیور) کل زیرساخت را مدیریت میکند و به خاطر مسائل پیچیدهتر تیم را بزرگتر کردند مثلا تیم دیتا اضافه شده که دوآپس در حقیقت Data-Ops است. اسنپ شاپ در حال حاضر از آبجکت استوریج، کوبرنیتیز، CDN، برمتال و ماشین مجازی ستون استفاده میکند. و به خاطر عدم استفاده از postgresql هنوز نتوانستند از دیتابیس مدیریت شده ستون استفاده کنند. آنها قصد دارند استفادهشان را از اپراتورهای کوبر را بیشتر کنند. همین طور اخیرا اسنپ شاپ توانست به کمک محصول CDN و بهبودهایی که روی Latency و ارتباط با باتهای گوگل انجام شد عملکرد خودشان را روی سئو و رتبه گوگل بهبودهای چشمگیری بدهند. محصول CDN علاوه بر این با قابلیت اسمارت روتینگ Response time خارج از کشور را به نصف اعداد قبلی کاهش داد.