ڈوکر کمپوز بمقابلہ ڈوکر سوارم۔

Docker Compose Vs Docker Swarm



کنٹینر کے ساتھ 'انقلاب' ایپس صرف ایک ڈیٹا بیس اور فرنٹ اینڈ ہونے سے کہیں زیادہ بڑھ گئی ہیں۔ ایپلی کیشنز کو مختلف مائیکرو سروسز میں تقسیم کیا جاتا ہے اور وہ عام طور پر REST API (عام طور پر HTTP پر JSON فارمیٹڈ پے لوڈ) کے ذریعے ایک دوسرے کے ساتھ بات چیت کرتے ہیں۔ ڈوکر کنٹینرز اس قسم کے فن تعمیر کے لیے مثالی ہیں۔ آپ اپنے فرنٹ اینڈ 'مائیکرو سروس' کو ڈوکر کنٹینر میں پیک کرسکتے ہیں ، ڈیٹا بیس دوسرے میں جاتا ہے ، اور اسی طرح آگے۔ ہر سروس ایک دوسرے سے پہلے سے طے شدہ REST API پر بات کرتی ہے بجائے اس کے کہ سافٹ وئیر کے ایک ٹکڑے کے طور پر لکھے گئے سنگل بن جائیں۔

اگر آپ کو کوئی نئی فعالیت یا فیچر نافذ کرنے کی ضرورت ہے ، مثال کے طور پر ، ایک تجزیاتی انجن ، آپ اس کے لیے محض ایک نئی مائیکرو سروس لکھ سکتے ہیں اور یہ آپ کی ویب ایپ کے مختلف مائیکرو سروسز کے ذریعہ بے نقاب REST API کے ذریعے ڈیٹا استعمال کرے گا۔ اور جیسے جیسے آپ کی فعالیت وقت کے ساتھ بڑھتی جاتی ہے ، مائیکرو سروسز کی یہ فہرست اس کے ساتھ ساتھ بڑھتی جائے گی۔







آپ ہر انفرادی کنٹینر کو تعینات نہیں کرنا چاہتے ، اسے ترتیب دیں اور پھر اس کے ساتھ بات کرنے کے لیے باقی سب کچھ ترتیب دیں۔ یہاں تک کہ تین کنٹینرز سے بھی تکلیف ہوگی۔ ڈوکر کمپوز آپ کو متعدد کنٹینرز کی تعیناتی کو خودکار کرنے دیتا ہے۔



ڈوکر کمپوز ایک آسان ترین ٹول ہے جو آپ کو مائیکرو سروسز کے تجریدی خیال کو ڈوکر کنٹینر کے ایک فعال سیٹ میں تبدیل کرنے میں مدد کرتا ہے۔



تقسیم شدہ نظام

اب جب کہ ہم نے ویب ایپ کو ایک سے زیادہ کنٹینروں میں تقسیم کر دیا ہے ، ان سب کو ایک ہی سرور پر رکھنا کوئی معقول بات نہیں ہے (اب بھی ایک ورچوئل مشین پر بدتر!) اسی جگہ پر ڈوکر سوارم اور کبرنیٹس جیسی خدمات چلتی ہیں۔





ڈوکر سوارم آپ کو ایک سے زیادہ سرورز پر اپنی درخواست کی ایک سے زیادہ نقلیں چلانے کی اجازت دیتا ہے۔ اگر آپ کی مائیکرو سروس اس طرح لکھی گئی ہے کہ یہ 'افقی طور پر' پیمانہ کر سکتی ہے تو آپ ڈوکر سوارم کو استعمال کر کے اپنی ویب ایپ کو متعدد ڈیٹا سینٹرز اور متعدد علاقوں میں تعینات کر سکتے ہیں۔ یہ ایک یا زیادہ ڈیٹا سینٹرز یا نیٹ ورک لنکس کی ناکامی کے خلاف لچک فراہم کرتا ہے۔ یہ عام طور پر ڈوکر میں ایک ذیلی کمانڈ کا استعمال کرتے ہوئے کیا جاتا ہے ، یعنی ڈوکر اسٹیک۔

کی ڈوکر اسٹیک۔ ذیلی کمانڈ ڈوکر کمپوز کمانڈ کی طرح بہت زیادہ برتاؤ کرتی ہے اور اس سے کسی بھی ٹیکنالوجی کو استعمال کرنے والے کو غلط فہمیاں پیدا ہوسکتی ہیں۔



الجھن کا ذریعہ۔

استعمال اور کام کے بہاؤ کے لحاظ سے ، دونوں ٹیکنالوجیز ایک دوسرے سے بہت ملتی جلتی کام کرتی ہیں ، اور اس سے الجھن پیدا ہوتی ہے۔ جس طرح آپ اپنی ایپ کو ڈوکر سوارم یا ڈوکر کمپوز کا استعمال کرتے ہوئے استعمال کرتے ہیں وہ بہت ملتا جلتا ہے۔ آپ YAML فائل میں اپنی درخواست کی وضاحت کرتے ہیں ، اس فائل میں امیج کا نام ، ہر تصویر کے لیے کنفیگریشن اور اس پیمانے (نقلوں کی تعداد) پر مشتمل ہوگا جو ہر مائیکرو سروس کو تعیناتی کے لیے درکار ہوگی۔

فرق زیادہ تر پسدید میں ہے ، جہاں ڈوکر کمپوز ایک ہی ڈاکر میزبان پر کنٹینر تعینات کرتا ہے ، ڈوکر سوارم اسے متعدد نوڈس میں تعینات کرتا ہے۔ نرمی سے بات کرتے ہوئے ، یہ اب بھی زیادہ تر کام کرسکتا ہے جو ڈوکر کمپوز کرسکتا ہے لیکن یہ اسے متعدد ڈوکر میزبانوں میں ترازو دیتا ہے۔

مماثلتیں۔

ڈوکر سوارم اور ڈاکر کمپوز دونوں میں مندرجہ ذیل مماثلتیں ہیں:

  1. وہ دونوں آپ کے ایپلیکیشن اسٹیک کی YAML فارمیٹڈ تعریفیں لیتے ہیں۔
  2. وہ دونوں ملٹی کنٹینر ایپلی کیشنز (مائیکرو سروسز) سے نمٹنے کے لیے ہیں۔
  3. ان دونوں کے پاس ایک پیمانہ پیرامیٹر ہے جو آپ کو ایک ہی تصویر کے ایک سے زیادہ کنٹینرز چلانے کی اجازت دیتا ہے جس سے آپ کی مائیکرو سروس افقی طور پر سکیل ہو سکتی ہے۔
  4. وہ دونوں ایک ہی کمپنی ، یعنی ڈوکر ، انکارپوریٹڈ کے زیر انتظام ہیں۔

اختلافات

ڈوکر سوارم اور ڈوکر کمپوز کے درمیان کچھ فرق:

  1. ڈوکر سوارم آپ کی ویب ایپ کو ایک یا ایک سے زیادہ سرورز میں اسکیل کرنے کے لیے استعمال ہوتا ہے۔ جہاں بطور ڈاکر کمپوز آپ کی ویب ایپ کو صرف ایک ڈوکر میزبان پر چلائے گا۔
  2. اپنی ویب ایپ ڈوکر سوارم کو اسکیل کرنا سنجیدہ اعلی دستیابی اور غلطی رواداری پیش کرتا ہے۔ ایک ہی میزبان پر ڈوکر کمپوز کا استعمال کرتے ہوئے اپنی ویب ایپ کو اسکیل کرنا صرف جانچ اور ترقی کے لیے مفید ہے۔
  3. ڈوکر سوارم اور متعلقہ ذیلی کمانڈ جیسے ڈوکر سوارم اور ڈوکر اسٹیک خود ڈوکر سی ایل آئی میں بنائے گئے ہیں۔ وہ سب ڈوکر بائنری کا حصہ ہیں جسے آپ اپنے ٹرمینل کے ذریعے کال کرتے ہیں۔ ڈوکر کمپوز اسٹینڈ اسٹون بائنری ہے اور خود بھی۔

ڈوکر کمپوز کے لیے استعمال کیس۔

جیسا کہ اوپر بیان کیا گیا ہے ، وہ دونوں بالکل مختلف ٹولز ہیں اور ہر ایک بالکل مختلف مسئلہ حل کرتا ہے لہذا ایسا نہیں ہے کہ ایک دوسرے کے لیے متبادل ہے۔ تاہم ، نئے آنے والوں کو اس بات کا احساس دلانے کے لیے کہ میں جس کے بارے میں بات کر رہا ہوں ، یہاں ڈوکر کمپوز کے لیے استعمال کا معاملہ ہے۔

فرض کریں کہ آپ کسی ایک سرور پر ورڈپریس بلاگ کی خود میزبانی کرنا چاہتے ہیں۔ اسے ترتیب دینا یا اسے برقرار رکھنا کوئی ایسی چیز نہیں جو آپ دستی طور پر کرنا چاہتے ہیں ، لہذا آپ اس کے بجائے اپنے VPS پر ڈوکر اور ڈوکر کمپوز انسٹال کریں ، ایک سادہ YAML فائل بنائیں جو آپ کے ورڈپریس اسٹیک کے تمام مختلف پہلوؤں کی وضاحت کرتی ہے ، جیسے نیچے ، :

نوٹ: اگر آپ ورڈپریس سائٹ تعینات کرنے کے لیے نیچے استعمال کر رہے ہیں تو براہ کرم تمام پاس ورڈز کو کسی محفوظ چیز میں تبدیل کریں۔ اس سے بھی بہتر ، پاس ورڈ جیسے حساس ڈیٹا کو سادہ ٹیکسٹ فائل میں رکھنے کے بجائے ڈوکر سیکریٹس استعمال کریں۔

ورژن:'3'

خدمات:
ڈی بی:
تصویر: mysql:5.7۔
جلدیں:
- db_data:/کہاں/lib/mysql
دوبارہ شروع کریں: ہمیشہ۔
ماحول:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: ورڈپریس۔
MYSQL_USER: ورڈپریس۔
MYSQL_PASSWORD: ورڈپریس۔

ورڈپریس:
منحصرکرتاہے:
- ڈی بی
تصویر: ورڈپریس: تازہ ترین۔
بندرگاہیں:
-'8000: 80'
دوبارہ شروع کریں: ہمیشہ۔
ماحول:
WORDPRESS_DB_HOST: db:3306۔
WORDPRESS_DB_USER: ورڈپریس۔
WORDPRESS_DB_PASSWORD: wordpressPassword۔
WORDPRESS_DB_NAME: ورڈپریس۔
جلدیں:
db_data:{}

ایک بار جب فائل بن جاتی ہے اور ڈوکر اور ڈوکر کمپوز دونوں انسٹال ہوجاتے ہیں تو ، آپ کو صرف یہ کرنا ہے:

$ڈاکر کمپوز اپ-ڈی

اور آپ کی سائٹ چلتی رہے گی۔ اگر کوئی اپ ڈیٹ ہے تو چلائیں:

$docker-compose down

پھر پرانی ڈوکر تصاویر پھینک دیں اور ڈوکر کمپوز اپ ڈی کمانڈ چلائیں اور نئی تصاویر خود بخود کھینچ لی جائیں گی۔ چونکہ آپ کے پاس ڈوکر والیوم میں مستقل ڈیٹا محفوظ ہے ، اس لیے آپ کی ویب سائٹ کا مواد ضائع نہیں ہوگا۔

ڈوکر غول کب استعمال کریں۔

اگرچہ ڈوکر کمپوز ایک آٹومیشن ٹول ہے ، ڈوکر سوارم زیادہ ڈیمانڈ ایپلی کیشنز کے لیے ہے۔ سیکڑوں یا ہزاروں صارفین یا کام کا بوجھ رکھنے والی ویب ایپس جنہیں متوازی طور پر سکیل کرنے کی ضرورت ہے۔ بڑی یوزر بیس اور ایس ایل اے کی سخت ضرورتوں والی کمپنیاں ڈوکر سوارم جیسا تقسیم شدہ نظام استعمال کرنا چاہیں گی۔ اگر آپ کی ایپ متعدد سرورز اور متعدد ڈیٹا سینٹرز پر چل رہی ہے تو متاثرہ ڈی سی یا نیٹ ورک لنک کی وجہ سے ڈاؤن ٹائم کے امکانات نمایاں طور پر کم ہو جاتے ہیں۔

اس نے کہا ، میں پیداواری استعمال کے معاملات کے لیے ڈوکر سوارم کی سفارش کرنے میں ہچکچاہٹ محسوس کرتا ہوں کیونکہ کوبرنیٹس جیسی مسابقتی ٹیکنالوجیز اس کام کے لیے زیادہ مناسب ہیں۔ کبرنیٹس کو بہت سے کلاؤڈ فراہم کرنے والوں میں مقامی طور پر سپورٹ کیا جاتا ہے اور یہ ڈوکر کنٹینرز کے ساتھ بہت اچھی طرح کام کرتا ہے لہذا آپ کو کوبرنیٹس سے فائدہ اٹھانے کے لیے اپنی ایپ کو دوبارہ بنانے کی بھی ضرورت نہیں ہے۔

نتیجہ

مجھے امید ہے کہ ڈوکر اور اس کے سیٹلائٹ پروجیکٹس پر یہ چہل پہل معلوماتی تھی اور آپ ڈوکر ایکو سسٹم کے لیے زیادہ تیار ہیں۔