Designing Sidecars fo Modularity and Reusability
مبحث آخری که در مورد الگوی sidecar در کتاب مطرح میشه بحث طراحی sidecar container هست که باید بگونه ای باشه که قابلیت modularity و reusability داشته باشه
برای طراحی چنین container ی باید موارد زیر رو رعایت کنیم:
- Parameterizing your containers
این موضوع خیلی مهمه، چون اگه نشه کانتینر جانبی رو کانفیگ کرد نمیشه اونو در کنار سرویس های مختلف استفاده کرد، تصور کنید یه nginx رو که فقط به یه دامنه خاص گوش میده.. و آدرس این دامنه hardcode شده باشه داخل sidecar container...، خب طبیعیه که نمیشه این کانتینر رو در کنار سرویس های مختلف استفاده کرد
برای این قضیه هم میشه از command line arguments ها کمک گرفت هم از environment variable ها که استفاده از متغیرهای محیطی راه حل بهتریه عموما
- Creating the API surface of your container
برای کانتیتر جانبی باید یک API ثابت و پایدار تعریف کرد که در طول زمان دچار تغییرات ناسازگار نشه، زیرا وقتی یه کانتینر جانبی در کنار سرویس های مختلف استفاده میشه، ایجاد broken change در کانتینر جانبی عملکرد همه اون سرویس هارو تحت تاثیر قرار میده
به عنوان مثال برای همان nginx container تصور کنید اسم پارامتری که دامنه رو از env میخونه از ADDRESS به DOMAIN تغییر کنه، با همین تغییر کوچیک، در صورت بروزرسانی sidecar خیلی از سرویس ها دیگه مختل میشه کارشون
- Documenting the operation of your container
نکته آخر هم بحث مستندات هست که اگه قرار یه کانتینر جانبی بصورت گسترده استفاده بشه باید حتما مستندات خوبی داشته باشه که برای همه قابل فهم و استفاده باشه، مثلا یکی از راه های مستند کردن نوشتن کامنت های توضیحی در فایل Dockerfile مربوط به کانتینر هست
@gocasts
#designing_distributed_systems_brendan_burns
Post #23
737
Go Casts | Systems & Agents 🚀 Modular Applicatoin Containers الگوی sidecar به ما این اجازه رو میده که بتونیم یک سری modular container داشته باشیم که در سرویس های مختلف ازشون استفاده کنیم. مثلا تصور کنید که شما میخواید برای همه سرویس های زیرساخت تون عملکرد پروسه هارو مانیتور کنید و مصرف…