من چند تا میکروسرویس واسه پروژه ام دارم که باید واسه همشون کانفیگ های تکراری بنویسم.
بعضیاشون باید به ی پوشه خاصی دسترسی داشته باشن و بعضیاشون رو باید توی nginx تعریف کنم.
فایل های کانفیگم خیلی کثیف شده + بازم باید ی سری کار هارو دستی انجام بدم.
به نظرتون داکر مشکلم رو حل میکنه؟ آخه فکر کنم باید واسه مدیریت docker image ها باز باید ی چیز دیگه مثل kubernetes یاد بگیرم.
والا مشکلاتشون که خیلی زیاد هست مخصوصا با بیشتر شدن تعدادشون. توی شرکت قبلی ما حدود ۲۰۰ تا میکروسرویس داشتیم با یه تیم ۱۲ نفره ایده ای نداشتیم بیشتر از نصفشون چه کار می کنن. ولی به طور خلاصه این مقاله رو نگاه بندازین بهتره:
این رو هم بگم که سرویس و میکرو سرویس خیلی فرق دارن
کلا بزرگترین مشکلی که توی دنیای نرم افزار هست به نظر من دام ترند هست. خیلی از چیزایی که ترند می شن گذرا هستند و مشکلاتشون رو می شه ولی خوب عموم ازشون چیزی نمی دونه.
چند وقتی هست دارم سعی می کنم یه essay در این مورد بنویسم ولی تنبلی نمی ذاره
مشکلات زیادی دارن. یکیشون رو شما اشاره کردی. همین که یه کاری باید بیشتر از یکبار انجام بشه و یه کدی (یا کانفیگی) باید بیشتر از یک جا قرار بگیره.
اولش اوکیه. ولی بعدا برای کوچکترین ویرایش، باید چندتا چیز رو ویرایش کرد. کلا دنیای نرمافزار زیباتر میشه اگه duplication نداشته باشیم.
یه مشکل خیلی بزرگ دیگه زمانیه که داریم یه ریکوئست (یه هرچیز مشابهی) رو داخل این میکروسرویسها به همدیگه پاسکاری میکنیم.
هرکدوم از این میکروسرویسها یه delay دارن. مثلا ۱۰میلیثانیه. حالا اگه ۱۰تا از اینا پشت هم باشن، میشه ۱۰۰میلیثانیه! افتضاحه!
هرکدوم از این میکروسرویسها یه downtime دارن. به هرحال هیچ چیزی 100% uptime نداره دیگه! وقتی ۱۰تا از اینا کنار هم باشن، downtimeشون به اضافهی هم میشه! اینم افتضاحه!
یه نگاهی به این مطلب و ویدیویی که @shahryarjb معرفی کرده بندازید: