Skip to content

Latest commit

 

History

History
66 lines (52 loc) · 7.94 KB

caas-steps.md

File metadata and controls

66 lines (52 loc) · 7.94 KB

اینم یه تجربه پراکنده دیگه!

خب اگه تاحالا خواننده وبلاگ من بوده باشید میدونید که من به خیلی چیزهای متفاوتی علاقه مندم و همیشه بین موارد مرتبط به عملیات(کارهای مرتبط با شبکه و زیرساخت و سرور و نگهداری و ...) و توسعه چرخ میزنم. یکی دیگه از چیزهایی بهش واقعا علاقه‌مندم و حداقل در موردش میخونم و سعی میکنم بنویسم کارایی و افزایش اون برای استفاده بهینه از منابع و این چیزاست. از تلاقی این سه تا ایده و خب طبق معمول رونویسی از محصولات خارجی به این نتیجه رسیدم که یه سیستم cms-as-a-service درست کنم.

امروز میخوام اولا سورس اون کاری رو که انجام دادم به اشتراک با بقیه بگذارم تا دیگران هم شاید ازش چیزهایی یاد بگیرند. دوما اینکه میخوام شکست این پروژه رو اعلام کنم چون به زبان پیش‌نمونه‌سازی من شواهدی ندارم که بگه این ایده‌ی من یک چیز درست هست. پس با تمامی سختی کار برم سراغ روش انجام و مستندات اون:

  • خب من کلا از یک سیستم مجازی سازی سبک برای اینکار در محیط لینوکس استفاده کرده بودم. خب پیاده‌سازی‌های مختلفی برای اینکار در لینوکس وجود داره که انتخاب من docker بود چون خیلی ترکونده بود!
  • به عنوان loadbalancer/router من از یه nginx استفاده کردم. خب چون دیدم اولا سریع و کم مصرفه. دوما اینکه میشه با استفاده از زبان lua کلی توسعه روش داد در این حد که بشه waf (مثلا)
  • یه image برای کارهای متفاوتی که میخواستم ساختم
    • با استفاده از nginx، php-fpm و تنظیمات دروپال تونستم یه image برای دروپال بسازم
    • با استفاده از apache و mod-php دوتا image مجزا برای piwik و wordpress ساختم
    • با استفاده از nginx هم سایتهای ایستا رو سرویس میدادم
    • یه image هم ساختم که فقط توش ابزارهای مثل drush و این چیزا بود که بروزرسانی و backup رو سریع‌تر کنه.
  • از fig که اخیرا شده docker composer هم برای یه شبه orchestrator استفاده میکردم.
  • دوست داشتم از redis به عنوان cache توی loadbalancer/router و همچنین app container استفاده کنم که عمر سیستم کفاف نداد
  • میخواستم با استفاده از service recovery بصورت اتوماتیک loadbalancer/router رو کانفیگ کنم
  • دلم میخواست که بتونم این سیستم رو تبدیل به یه سیستم multi-host کنم.
  • خیلی چیزهای دیگه هم دلم میخواست که در صورت درست بودن ایده قطعا انجام میشد.

این سیستم رو من حدودا یک سال هست که بصورت عملیاتی اجرا میکنم(همین الان هم ۴ یا ۶ تا سایت روشه) اما تصمیم گرفتم به دلایل زیر دیگه توسعه ندم و سایتها رو هم از روش بردارم:

  • خب اولین و مهمترین دلیل خاموش شدنش اینه که من فکر میکردم میتونم از طریق سینه به سینه و دوستانه این سیستم رو معرفی کنم و حداقل ۲۰ تا ۳۰ سایت روش داشته باشم اما نشد! یعنی عدم وجود مشتری کافی یا عدم توانایی من در بازاریابی که نتیجه نهاییش یکیه.
  • دومین دلیلش اینه که نگهداری این سیستم کلی زمان و انرژی میخواست و میخواد که من داشتم ولی دیگه ندارم. حتی با توجه به جستجوهایی هم که انجام دادم نتونستم کسی رو پیدا کنم که حاضر باشه سیستم رو نگهداری کنه و پول براش بگیره.
  • دلیل بعدی اینه که یه ویژگی خیلی خفنی که توی این سیستم وجود نداشت email بود که با توجه به سطح دانش من از کارهای مدیریت سیستم راه‌اندازی برام توی این مدت غیر ممکن بود.
  • کسی به پست‌های مرتبط با این زمینه علاقه مندی خاصی(کامنت یا اشتراک گذاری یا سوال پرسیدن بصورت خصوصی) نشون نداد.
  • توی شرکت قبلی که کار میکردم تمام سایت‌های مبتنی بر دروپالشون به دلیل عدم تواناییشون برای بروزرسانی و نگهداری دروپال(کمبود نیروی انسانی نه توان فنی) دچار مشکل میشد. حتی اونها هم علاقه مندی به استفاده از این سیستم نشون ندادن.
  • با چندتا از شرکت‌هایی که قاعدتا میشناختمشون که توی حوزه وب فعالیت میکردن از دروپال یا وردپرس استفاده میکردن و چندتا از مدیران سیستمی که میشناختم پیشنهاد دادم که از این سیستم استفاده کنند اما اونها ترجیح میدادند از سیستم سنی «هاست» استفاده کنند یا خودشون سرورشون رو نگهداری کنند.

جمع بندی اینکه :

تمام شواهد بر علیه موفقیت سیستمی هست که من طراحی کردم و فقط چندتا ویژگی اصلیش رو ساختم. پس این پیش‌نمونه‌سازی که از روش کمینه محصول پذیرفتنی ایجاد شده بود نتونست حتی سطح علاقه اولیه مشتریان بالقوه رو بخودش جلب کنه. پس من میپذیرم که یه شکست کوچک رو تجربه کردم و میرم سراغ کارهای بعدی!

پ.ن. میتونید سورس کاری که من انجام دادم رو اینجا پیدا کنید اما یادتون باشه این سورس اونقدرها که باید مرتب و کامل نیست چون فقط یک پیش‌نمونه است.