کیا Kubernetes نیا لینکس ہے؟ Pavel Selivanov کے ساتھ انٹرویو


ضابطہ کشائی:
عزت خدیف: ہیلو۔ میرا نام عزت خدیف ہے۔ میں Mail.ru Cloud Solutions کے لیے PaaS ڈویلپر ہوں۔ میرے ساتھ یہاں ساؤتھ برج سے پاول سیلیوانوف ہیں۔ ہم DevOpsDays کانفرنس میں ہیں۔ وہ یہاں اس بارے میں ایک بات کرے گا کہ آپ Kubernetes کے ساتھ DevOps کیسے بنا سکتے ہیں، لیکن غالب امکان ہے کہ آپ کامیاب نہیں ہوں گے۔ اتنا تاریک موضوع کیوں؟

Pavel Selivanov: یہ حقیقت میں اداس نہیں ہے۔ یہ اس حقیقت کے بارے میں ہے کہ ہم اپنی کمیونٹی کے بہت سے مسائل کو ٹیکنالوجی کی مدد سے حل کرنے کی کوشش کر رہے ہیں۔ اور ہم ٹیکنالوجی کی مدد سے چیزوں کو یک طرفہ طریقے سے حل کرنے کی کوشش کر رہے ہیں۔ Kubenetes ایک ہی ہے - یہ وہ چیز ہے جس کے لیے وہ ذمہ دار ہیں، کوئی کہہ سکتا ہے کہ Ops۔ لیکن ہمارے پاس DevOps انجینئر کا بہت اچھا تصور ہے۔ ایک DevOps انجینئر Kubernetes کے لیے ذمہ دار ہے۔ ایک ہی وقت میں... جیسا کہ آپ Kubernetes بناتے ہیں، لیکن دیو لوگ ان تمام Kubernetes سے بالکل بھی واقف نہیں ہیں، وہ اس بات سے واقف نہیں ہیں کہ یہ آپ کو کیا کرنے دیتا ہے - اور سب کچھ ان کے لیے بالکل ویسا ہی رہتا ہے۔ اور یہ اس حقیقت کے باوجود ہے کہ Kubernetes میں ڈیو اوپس کے اس نقطہ نظر کو پھیلانے کے لیے اس ٹیکنالوجی کو استعمال کرنے کے لیے ریڈی میڈ حل، ڈیو اور اوپس کے درمیان مواصلت شامل ہے۔ ہم اس موقع کو بہت کم استعمال کرتے ہیں۔ اس حقیقت کی وجہ سے کہ ہم موجودہ ڈھانچے کو ان تمام DevOps ٹولز میں منتقل کر رہے ہیں - Docker، Kubernetes، clouds اور اسی طرح - ہم اس صورتحال کو اور بھی بڑھا رہے ہیں۔ اور ہم ٹولز کو اس سے مختلف طریقے سے استعمال کرنا شروع کر دیتے ہیں جس کا مقصد تھا۔ اور ان تمام ٹیکنالوجیز کے ارد گرد صرف خوفناک بیساکھییں بنائی جا رہی ہیں۔

عزت خدیف: میں دیکھ رہا ہوں۔ یہ ایک وسیع موضوع کی طرح محسوس ہوتا ہے۔ آپ کے خیال میں کمپنیوں کو اس وقت سب سے عام مسئلہ کیا ہے؟ Kubernetes کے ساتھ۔

Pavel Selivanov: Kubernetes کے ساتھ سب سے عام مسئلہ قابلیت کی کمی ہے۔ یہ آئی ٹی میں ایک عام مسئلہ ہے۔ ماہرین کی ہمیشہ کمی رہتی ہے۔ اہلیت کی کمی ہمیشہ رہتی ہے۔ اور اب Kubernetes کے ساتھ کافی قابلیت نہیں ہے۔ اور ایک ہی وقت میں، مارکیٹ میں اب بھی XNUMX% ریڈی میڈ حل موجود ہیں جو آپ کو Kubernetes حاصل کرنے کی اجازت دیتے ہیں، لیکن ساتھ ہی ساتھ ضروری قابلیت بھی نہیں رکھتے؛ مارکیٹ میں ان میں سے بہت کم ہیں۔ اور جو موجود ہیں، وہ سب کچھ سوالات اٹھاتے ہیں۔ Kubernetes کے ساتھ، ہم مسلسل ان لوگوں کی تلاش میں رہتے ہیں جو اسے سمجھتے ہیں۔ ہم ترقی کو اس کے مطابق ڈھالنے کی کوشش کر رہے ہیں۔

عزت خدیف: اور آئی ٹی میں اہلکاروں کی موجودہ کمی کو دیکھتے ہوئے؟ جو ہمیشہ سے موجود ہے۔ اور اب ہے. آپ کے خیال میں ان حالات میں کیسے جینا ہے؟ وہاں کیا لائف ہیکس ہیں؟

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

عزت خدیف: کیا آفاقی حل خراب ہیں یا ان کی بنیاد پر مزید تعمیر کیے جا سکتے ہیں؟

Pavel Selivanov: نہیں، عالمی حل یقینی طور پر برے نہیں ہیں۔ یونیورسل حل اچھے ہیں۔ صرف یونیورسل حل... آفاقی۔ یہاں یہ سمجھنا ضروری ہے۔ یہ ایک عام اسکرپٹ لینے کے مترادف ہے... اگر آپ کمپنی کے کام کی پوری منطق اس عام اسکرپٹ، عام ایپلی کیشن کے ارد گرد بنا سکتے ہیں، تو یہ بہت اچھا ہے۔ اور اگر کام کی منطق مختلف ہے، لیکن آپ یہ عالمگیر حل، ایک عالمگیر اسکرپٹ لیں - اور شروع کریں، اللو کی طرح، ایک گلوب پر کھینچنا، یہ برا ہے۔ اور خود عالمگیریت میں کوئی حرج نہیں ہے۔

عزت خدیوف: اگر یہ ایڈمن پہلے سے ہی آپ کے لیے کام کر رہا ہے تو اس کی برطرفی کی بات نہیں ہے۔ وہ صرف مزید کام کر سکے گا۔

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

عزت خدیف: صرف اپنے تجربے کی بنیاد پر، میں دیکھ رہا ہوں کہ بہت سی کمپنیاں ایک ہی کام کر رہی ہیں۔ وہ Kubernetes کلسٹر قائم کر رہے ہیں اور اس کی پیمائش کرنے کے بارے میں سوچ رہے ہیں۔ اور یہ تمام آپریشنز انتہائی قابل تکرار ہیں۔

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

عزت خدیف: کوبرنیٹس کی موجودہ حالت کے بارے میں آپ کا کیا خیال ہے؟ پانچ دس سالوں میں اس کا کیا بنے گا؟

پاول سیلیوانوف: اچھا سوال۔ میں صرف اتنا جانتا ہوں کہ اس بارے میں ہماری کمیونٹی میں کیا ہو رہا ہے۔ کچھ لوگوں کا خیال ہے کہ سوائے Kubernetes کے کچھ باقی نہیں رہے گا۔ وہ صورتحال جو لینکس کے ساتھ کافی عرصہ پہلے ہوئی تھی۔ یعنی لینکس کے باہر ایسے لوگ ہیں جو BSD پر رہتے ہیں، غالباً ان کے پاس بہت مخصوص کام ہوتے ہیں۔ ایسے لوگ ہیں جو ونڈوز کے تحت کام کرتے ہیں - ونڈوز سرورز - غالباً، ان کے پاس بھی مخصوص کام ہوتے ہیں، یا وہ اس معاملے میں محض اہلیت رکھتے ہیں اور وہ وہاں سے جانے کو تیار نہیں ہوتے۔ کسی بھی صورت میں، ہمارے فیلڈ کا معیار لینکس ہے۔ ایک رائے ہے کہ Kubernetes وہی ڈی فیکٹو معیار بن جائے گا، اور Kubernetes کے علاوہ کچھ نہیں ہوگا۔ Kubernetes نہ صرف ایپلی کیشنز، ان کی تعیناتی، تعیناتی، اور اسکیلنگ کا انتظام کرے گا۔ عام طور پر، ہر چیز کا انتظام کریں. اب وہ پہلے ہی پوچھ رہے ہیں: "کیا کبرنیٹس میں ڈیٹا بیس کو آگے بڑھانا ممکن ہے؟" میں عام طور پر کہتا ہوں کہ یہاں مسئلہ کوبرنیٹس میں نہیں ہے، بلکہ ڈوکر میں ہے۔ اگر آپ اپنے ڈیٹا بیس کو کنٹینرز میں چلانے کے لیے تیار ہیں، تو یہ اس طرح کام کرے گا۔ وہ مجھے جواب دیتے ہیں: "نہیں، نہیں، نہیں، انتظار کرو۔ کنٹینرز کی ضرورت نہیں ہے۔ کوبرنیٹس کی ضرورت ہے۔ ہم اسے نوڈ پر پیوند کریں گے۔ یعنی، سب کچھ ویسا ہی ہوگا جیسا کہ ہمارے پاس ہے، صرف کبرنیٹس ہی اس سب کا انتظام کریں گے۔ اور یہ دراصل ایک اچھا خیال ہے۔ یعنی، Kubernetes ایک ایسی چیز ہے جب آپ کسی کمپنی میں آسکتے ہیں، اگر کمپنی کے پاس Kubernetes اور اس پر بنائے گئے عمل ہیں، تو ایک شخص جو اسے سمجھتا ہے - اسے صرف چند دنوں کے لیے اسے دیکھنے کی ضرورت ہے کہ: " میں آپ کا ساتھ دینے کے لیے تیار ہوں۔ مکمل طور پر۔ مکمل. میں سمجھتا ہوں کہ چیزیں آپ کے لیے کیسے کام کرتی ہیں۔ Kubernetes کے بغیر نقطہ نظر کے برعکس - یہاں کچھ بیساکھیوں کو پھینک دیا گیا تھا، یہاں دیگر بیساکھیوں کو. یہاں جوابدہ، ٹیرافارم یہاں۔ کسی نے یہ سب لکھا ہے، اور اس کا پتہ لگانے میں چھ مہینے لگتے ہیں۔ یہاں. تو کیا Kubernetes ایک حقیقی معیار بن جائے گا، مجھے نہیں معلوم۔ آج، وہ اپنے اردگرد موجود حلوں سے کہیں زیادہ مہتواکانکشی اور پراعتماد نظر آتا ہے۔

عزت خدیف: ٹھیک ہے، لینکس کے ساتھ موازنہ کافی بولڈ ہے۔ یہ ایک مشین پر کام کرتا ہے - بس۔ اور Kubernetes بہت سی مشینوں پر کام کرتا ہے۔ ایک ملین تغیرات اور وجوہات فوری طور پر پیدا ہوتی ہیں۔ جی ہاں، یہ جرات مندانہ ہے. بس اگر آپ اس بات کو مدنظر رکھیں کہ اس تمثیل کے حریف ہیں۔ مثال کے طور پر، سرور لیس۔ کیا Kubernetes کو ایسے حریفوں سے خطرہ ہے؟

پاول سیلیوانوف: سرور لیس سے... (ہنسی) سرور لیس - ہم اب بھی سمجھتے ہیں کہ سرور موجود ہیں۔ میں نے حال ہی میں اس معاملے پر ایک رپورٹ سنی۔ وہاں اس شخص نے کہا کہ اب بھی سرور موجود ہیں - اور یہ ایک بادل ہے۔ لیکن ہمیں ہمیشہ یہ سمجھنا چاہیے کہ بادل کے بھی سرور ہوتے ہیں۔ اصلی ہارڈ ویئر سرورز ہیں، ایک ریک، اور وہ کہیں نصب ہیں۔ یہ بادل ہے۔ اس کے اوپر سرور لیس ہے، جہاں "نہیں" سرور ہیں۔ تو سوال یہ ہے: کیا سرور لیس کبرنیٹس پر جیت جائے گا؟ مجھے ایسا لگتا ہے کہ Serverless Kubernetes میں چلا جائے گا۔ فراہم کنندگان کے لیے جو سرور لیس فراہم کرتے ہیں، یہ فراہم کرنے کے لیے Kubernetes ایک بہت ہی آسان پلیٹ فارم ہے۔ ہاں، شاید کسی وقت ہم Kubernetes کے بارے میں اصولی طور پر بات کرنا چھوڑ دیں گے، جیسا کہ کاروباری ایپلی کیشنز کی عام ترقی کے بارے میں۔ لیکن کہیں گہرائیوں میں، فراہم کنندگان اور انجینئرز کے پاس Kubernetes ہوں گے، جہاں یہ سب لاگو کیا جائے گا۔

عزت خدیف: تھوڑا مختلف موضوع۔ ایک مکمل اسٹیک انجینئر جیسی چیز ہے۔ آپ ان کے بارے میں کیا سوچتے ہیں؟ کیا وہ بھی موجود ہیں؟

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

عزت خدیف: کیا آپ ظاہر کر سکتے ہیں؟

Pavel Selivanov: مجھے لگتا ہے کہ ہم انڈسٹری میں اس نتیجے پر پہنچیں گے کہ یہ Dev and Ops کردار جلد ہی ختم ہو جائیں گے۔ اگر ہمیں ماہرین کی ضرورت ہے اور ہم شکار کر رہے ہیں... ہمیں فلاں فلاں ڈویلپر کی ضرورت ہے، ہمیں فلاں فلاں ایڈمنسٹریٹرز کی ضرورت ہے، ہمیں ڈی او اوپس انجینئرز کی ضرورت ہے - اب ہمارے پاس وہ ہیں، اب ہمارے پاس پروڈکشن انجینئرز، ایس آر ای انجینئرز بھی ہوں گے۔ حالانکہ درحقیقت، ہمیں انجینئرز کی ضرورت ہے جن کی ہم خدمات حاصل کرنا چاہتے ہیں۔ پس منظر بڑا ہے اور اہم نہیں ہے۔ کیونکہ... مثال کے طور پر، SRE کہتا ہے کہ بنیادی ڈھانچے کے مسائل ہمیشہ سافٹ ویئر کے مسائل ہوتے ہیں۔ تو... آئیے ڈویلپرز کو لیتے ہیں - اس نقطہ نظر سے کہ ایک ڈویلپر ایک انجینئر ہے - انہیں مینٹیننس ڈیپارٹمنٹ میں ڈالیں اور وہ ان مسائل کو اسی طرح حل کریں گے جس طرح وہ کوڈ کی مدد سے کاروباری مسائل کو حل کرتے ہیں۔ اس طرح انجینئرنگ کی.

عزت خدیف: اور اس نقطہ نظر سے... ایسے انجینئرز کا انٹرویو کیسے کیا جائے؟

پاول سیلیوانوف: اوہ، اچھا سوال ہے۔ وہ شاید اس زندگی میں میری سمجھ سے باہر ہے۔ لیکن میں صرف ایک مثال دوں گا۔ اس کا انٹرویو سے کوئی تعلق نہیں۔ یہ روس میں ہمارے تعلیمی نظام کے بارے میں ہے۔ آئی ٹی میں، ہم جانتے ہیں کہ روس میں ہمارا تعلیمی نظام آئی ٹی کی دنیا کے لیے بہت پرانا ہے، ایسا نہیں ہے جو ہونا چاہیے۔ میں اوسطاً وسیع روس کے بارے میں بات کر رہا ہوں - اور وہاں کیا ہو رہا ہے۔ ایسے لوگ گریجویشن کر رہے ہیں جو گریجویشن کے اگلے ہی دن ویب ڈویلپمنٹ یا ٹیکنالوجی کمپنی میں جانے کے لیے بالکل تیار نہیں ہیں۔ اور یہ ایک قسم کا برا ہے۔ ہم انہیں کچھ عجیب و غریب چیزیں سکھاتے ہیں، حالانکہ ہمیں انہیں سکھانا چاہیے کہ اینڈرائیڈ، آئی او ایس کے لیے کیسے تیار کیا جائے، گِٹ کو کیسے استعمال کیا جائے اور یہ سب چیزیں۔ حقیقت میں، ایسا لگتا ہے کہ نہیں. کالج وہ وقت ہوتا ہے جب آپ کے والدین زیادہ تر آپ کے لیے ادائیگی کرتے ہیں۔ اپنی پوری زندگی کے لیے۔ اور آپ اپنی زندگی کے پانچ سال گہرائی سے مطالعہ کرنے کے لیے وقف کر سکتے ہیں۔ اور یہ سب ٹی سائز کا مطالعہ کریں۔ جب آپ انسٹی ٹیوٹ میں پڑھ سکتے ہیں کہ ورژن کنٹرول سسٹم کیا ہے، وہاں کیا ترقیاتی نمونے ہیں، پوری چیز کی جانچ کیسے کی جائے، کس قسم کے ڈیٹا بیس اور بیلنسرز موجود ہیں۔ اور جب آپ کام پر جاتے ہیں، تو آپ ایک مخصوص علاقے میں گہرائی میں جانے لگتے ہیں۔ اور اس طرح ہم انجینئرز حاصل کرتے ہیں۔ اور روس میں ہمارا تعلیمی نظام ہماری سوچ سے کہیں زیادہ اس سچائی کے قریب ہے۔ ہمیں ریاضی کی اچھی تربیت دی جاتی ہے، ہمیں الگورتھم کی اچھی تربیت دی جاتی ہے، ہمیں پروگرامنگ زبانوں کی کچھ سمجھ دی جاتی ہے۔ اور انٹرویو کے بارے میں، یہ مجھے اس کے قریب کچھ لگتا ہے. ہمیں انجینئرز کا انٹرویو کرنے کی ضرورت ہے۔ ہمیں ٹی کے سائز کے لیے ٹی کے اوپر کی ضرورت ہے۔ کیونکہ یہ حرف T کی عمودی لائن حاصل کرے گا۔

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

Pavel Selivanov: شکریہ۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں