در زمانی نهچندان دور، بسیاری از بخشهای فرایند عرضه اپلیکیشنها بهشکل دستی انجام میشد. چرخه کار شامل کامپایل کردن کد، تحویل آن به سرور و پیکربندی تمام اجزا و فناوریهای مربوط به آن روی سرور (از جمله تنظیمات سختافزاری مانند پردازنده اصلی، حافظه رم، فضای ذخیرهسازی، تنظیمات شبکه و غیره) فرایندی پیچیده و خطاپذیر بود. در کنار پیکربندی زیرساخت، تغییر مقیاس نیز بهشکل دستی صورت میگرفت و تکرار این فرایند روی چند سرور نیز زمان زیادی را از تیم زیرساخت هدر میداد.
ابزارهای خودکارسازی (Automation) و پلتفرمهای مدیریت پیکربندی توانستند بخشی از این وظایف را سادهتر کنند اما هنوز با مشکل تکرار پیکربندی زیرساخت روی سرورهای مختلف روبرو بودیم. با بلوغ فناوریهای این حوزه، راهکارهای کانتینرسازی مانند داکر پدید آمدند تا بهسرعت بتوان اپلیکیشن را اجرا کرده و مدیریت بسیاری از اجزای زیرساختی را بهشکل سادهتری انجام داد. سازمانها با استفاده از راهکارهای کانتینرسازی توانستند تحویل اپلیکیشنها را سرعت ببخشند اما باز هم برای خودکارسازی سرویس کانتینر با چالش مواجه بودند. برای پاسخ به این چالش، پلتفرمهای ارکستریشن کانتینر عرضه شدند تا نهتنها اجرای کانتینرها، بلکه مدیریت آنها در زمان اجرا و مسائل مربوط به خودکارسازی و تغییر مقیاس را به شیوهای مدرن حل کنند.
ارکستریشن (Orchestration) کانتینر بهمعنای خودکارسازی انواع فرایندها برای اجرای کانتینرهاست. پرکاربردترین پلتفرم ارکستریشن کانتینر در دنیای کلاد، کوبرنتیز (Kubernetes) است اما پلتفرمهایی مانند آپاچی مزوس (Apache Mesos) و داکر سوارم (Docker Swarm) نیز راهکارهای خود را برای ارکستریشن ارائه کردهاند. سرویسهای پلتفرم کلاد عمومی مانند مایکروسافت اژور کانتینر سرویس (Microsoft Azure Container Service) و آمازون الاستیک کانتینر سرویس (Amazon Elastic Container Service) نیز راهکارهای متفاوتی برای پیادهسازی ارکستریسشن هستند.
مزایای ارکستریشن به این شرح است:
- سادهترین مزیت Orchestration، مدیریت کانتینرهای نیمه خراب یا خراب است. ابزار ارکستریشن وضعیت سلامت کانتینرها را بهشکل دورهای ارزیابی میکند و در صورت مواجهه با وضعیت غیرعادی معمولا کانتینر خراب را حذف کرده و نمونه جدیدی از آن را به اجرا درمیآورد.
- دیگر مزیت Orchestration، پشتیبانی از اجرای نمونههای متعدد از یک اپلیکیشن است. این کار با هدف لود بالانسینگ (تقسیم بار) یا ایجاد افزونگی (redundancy) انجام میگیرد. ابزار Orchestration تعداد کانتینرهای در حال اجرا را چک کرده و در صورتی که از تعداد مشخص شده کمتر باشند، نمونههای جدیدی از کانتینرها را اجرا میکند.
- حتی در شرایطی که همهچیز به درستی کار میکند، Orchestration باز هم مفید است. این ابزار میتواند چند کانتینر را بهشکل پشتیبان اجرا کند تا در صورت خرابی هرکدام از کانتینرها، درخواست کاربران به سمت کانتینرهای پشتیبان هدایت شود. مدیریت ساده شبکه نیز یکی دیگر از مزایای ارکستریشن محسوب میشود، چون بهسادگی میتوانید شبکههای سفارشی را داخل ابزار ارکستریشن تعریف کنید. هرکدام از سرویسها با یک نام هاست (hostname) تعریف میشوند و نیازی به استفاده از آدرس IP ندارید.
برخی از مشهورترین ابزارهای کانتینر ارکستریشن به این شرح هستند:
- Kubernetes
- Docker Swarm
- Apache Mesos
- Red Hat OpenShift
- Nomad