ISPsystem، معافي ۽ الوداعي! اسان پنهنجو سرور ڪنٽرول پينل ڇو ۽ ڪيئن لکيو

ISPsystem، معافي ۽ الوداعي! اسان پنهنجو سرور ڪنٽرول پينل ڇو ۽ ڪيئن لکيو

سلام! اسان آهيون "هسٽنگ ٽيڪنالاجيز" ۽ 5 سال اڳ شروع ڪيو وي ڊي سينا - پهرين وي ڊي ايس هوسٽنگ خاص طور تي ڊولپرز لاءِ ٺاهي وئي. اسان ان کي آسان بڻائڻ جي ڪوشش ڪريون ٿا، جهڙوڪ DigitalOcean، پر روسي سپورٽ سان، ادائگي جا طريقا ۽ روس ۾ سرور. پر DigitalOcean نه رڳو قابل اعتماد ۽ قيمت آهي، اهو پڻ هڪ خدمت آهي.

ISPsystem مان سافٽ ويئر هڪ رسي بڻجي ويو جنهن اسان جي هٿن کي هڪ ٿڌي خدمت جي رستي تي بند ڪيو. ٽي سال اڳ، اسان استعمال ڪيو Billmanager بلنگ ۽ VMmanager سرور ڪنٽرول پينل ۽ جلدي محسوس ڪيو ته اسان جي پنهنجي ڪنٽرول پينل کان سواء سٺي خدمت مهيا ڪرڻ تقريبا ناممڪن آهي.

ڪيئن ISPsystem سهولت کي قتل ڪيو

ڪافيون

اسان پاڻ ان بگ کي درست نه ڪري سگهياسين - هر ڀيري اسان کي ڪنهن ٻئي جي مدد لاءِ لکڻو پوندو هو ۽ انتظار ڪرڻو پوندو هو. ڪنهن به مسئلي جو حل هڪ ٽئين پارٽي جي ڪمپني جي جواب جي ضرورت آهي.

ISPsystem سپورٽ عام طور تي جواب ڏنو، پر فيڪس صرف چند رليز کان پوء آيا، ۽ پوء هميشه نه ۽ سڀ نه. ڪڏهن ڪڏهن نازڪ ڪيڙا ڪيترن ئي هفتن تائين درست ڪيا ويا. اسان کي گراهڪن کي يقين ڏيارڻو هو، معافي گهرو ۽ انتظار ڪرڻو پوندو ISPsystem بگ کي درست ڪرڻ لاءِ.

بند ٿيڻ جو خطرو

تازه ڪاريون پيدا ڪري سگھن ٿيون اڻڄاتل ڊائون ٽائمز جيڪي نيون غلطيون پيدا ڪن ٿيون.

هر تازه ڪاري هڪ لاٽري هئي: مون کي بلنگ کي ڍڪڻو پيو ۽ تازه ڪارين جي ديوتائن کي قربان ڪرڻو پيو - ٻه ڀيرا اپڊيٽ 10-15 منٽن لاءِ دير جو سبب بڻي. اسان جا منتظمين هن وقت اکين تي ويٺا هئا - اسان کي ڪڏهن به خبر نه هئي ته اهو وقت ڪيترو ڊگهو ٿيندو ۽ اڳڪٿي نه ڪري سگهيا هئاسين جڏهن ISP سسٽم نئين اپڊيٽ جاري ڪرڻ جو فيصلو ڪندو.

پنجين نسل تي، بل مئنيجر بهتر ٿي ويو، پر ضروري خاصيتن تائين رسائي حاصل ڪرڻ لاء، مون کي بيٽا انسٽال ڪرڻو پيو، جيڪو اڳ ۾ ئي هر هفتي اپڊيٽ ڪيو ويندو هو. جيڪڏهن ڪجهه ڀڄي ويو، مون کي ٻين ڊولپرز تائين رسائي ڏيڻو پوندو ته جيئن اهي ڪجهه درست ڪري سگهن.

اڻ وڻندڙ ​​پينل انٽرفيس

هر شي کي مختلف پينلن ۾ ورهايو ويو ۽ مختلف هنڌن کان ڪنٽرول ڪيو ويو. مثال طور، ڪلائنٽ بل مئنيجر ذريعي ادا ڪيا، ۽ انهن کي VMM Manager ۾ VDS ريبوٽ يا انسٽال ڪرڻو پوندو. اسان جي اسٽاف کي هڪ ڪلائنٽ جي مدد ڪرڻ لاءِ ونڊوز جي وچ ۾ سوئچ ڪرڻو پوندو هو، هن جي سرور تي لوڊ چيڪ ڪريو، يا ڏسو ته هو ڪهڙي OS استعمال ڪري رهيو هو.

اهڙو انٽرفيس وقت وٺندو آهي - اسان جي ۽ اسان جا گراهڪ. اهڙي صورتحال ۾ ڊجيٽل اوشن وانگر ڪنهن به سهولت جو سوال ئي پيدا نٿو ٿئي.

بار بار API اپڊيٽس سان گڏ مختصر زندگيون

اسان پنهنجون پلگ ان لکيا آهن - مثال طور، اضافي ادائيگي جي طريقن سان هڪ پلگ ان جيڪي VMManager ۾ نه آهن.

تازن سالن ۾، VMManager وٽ نسبتا مختصر زندگي جي چڪر هئي، ۽ نون ورزن ۾، API ۾ متغيرن جا نالا يا افعال پاڻمرادو تبديل ٿي سگهن ٿا - اهو اسان جي پلگ ان کي ٽوڙي ڇڏيو. پراڻن ورزن لاءِ سپورٽ کي جلدي ختم ڪيو ويو ۽ اپڊيٽ ڪيو ويو.

تبديل نه ٿو ڪري سگھجي

وڌيڪ واضح طور تي، اهو ممڪن آهي، پر انتهائي غير موثر. لائسنس جون پابنديون توهان کي سورس ڪوڊ ۾ تبديليون ڪرڻ جي اجازت نه ڏيندا آهن، توهان صرف پلگ ان لکي سگهو ٿا. وڌ ۾ وڌ پلگ ان - ڪجهه مينيو شيون، هڪ قدم قدم جادوگر. ISPsystem versatility لاءِ ٺهيل آهن، پر اسان کي خاص حل جي ضرورت آهي.

تنهن ڪري فيصلو پختو هو ته منهنجي پنهنجي پينل کي لکڻ لاء. اسان مقصد مقرر ڪيو آهي:

  • غلطين، ڪيڙن جو تڪڙو جواب ڏيو ۽ ڪلائنٽ کي انتظار ڪرڻ جي بغير پاڻ کي درست ڪرڻ جي قابل ٿي.
  • ڪم فلوز ۽ ڪلائنٽ جي ضرورتن لاءِ آزاديءَ سان انٽرفيس کي تبديل ڪريو.
  • صاف ۽ سمجھڻ واري ڊيزائن سان استعمال جي صلاحيت کي وڌايو.

۽ اسان ترقي شروع ڪيو.

نئون پينل آرڪيٽيڪچر

اسان وٽ هڪ خودمختيار ترقياتي ٽيم آهي، تنهنڪري اسان پاڻ کي پينل لکيو.
مکيه ڪم ٽن انجنيئرن پاران ڪيو ويو - ٽيڪنيڪل ڊائريڪٽر سرجي آرڪيٽيڪچر سان گڏ آيو ۽ سرور ايجنٽ لکيو، Alexey بلنگ ڪيو، ۽ فرنٽ اينڊ اسان جي فرنٽ اينڊ آرٽيش پاران گڏ ڪيو ويو.

قدم 1: سرور ايجنٽ

سرور ايجنٽ ھڪڙو پيٿون ويب سرور آھي جيڪو لائبريري کي منظم ڪري ٿو لبرٽ، جيڪو بدلي ۾ سنڀاليندو آهي Qemu-kvm hypervisor.

ايجنٽ سرور تي سڀني خدمتن کي منظم ڪري ٿو: vds ٺاهڻ، بند ڪرڻ، حذف ڪرڻ، آپريٽنگ سسٽم کي نصب ڪرڻ، پيٽرولر تبديل ڪرڻ، ۽ ائين ئي libvirt لائبريري ذريعي. مضمون جي اشاعت جي وقت، اهي چاليهه کان وڌيڪ مختلف افعال آهن، جن کي اسين ڪم ۽ ڪلائنٽ جي ضرورتن تي منحصر ڪريون ٿا.

نظريي ۾، libvirt سڌو سنئون بلنگ کان ڪنٽرول ٿي سگهي ٿو، پر ان لاءِ تمام گهڻو اضافي ڪوڊ گهربل آهي ۽ اسان انهن ڪمن کي ايجنٽ ۽ بلنگ جي وچ ۾ الڳ ڪرڻ جو فيصلو ڪيو - بلنگ صرف JSON API ذريعي ايجنٽ کي درخواستون ڏئي ٿي.

ايجنٽ پهريون ڪم آهي جيڪو اسان ڪيو، ڇاڪاڻ ته ان کي ڪنهن به انٽرفيس جي ضرورت نه هئي ۽ اهو ممڪن هو ته ان کي سڌو سنئون سرور ڪنسول مان آزمائي.

ڇا سرور ايجنٽ اسان کي ڏنو: هڪ پرت ظاهر ٿي آهي جيڪا هر ڪنهن جي زندگي کي آسان بڻائي ٿي - بلنگ کي حڪمن جو پورو گروپ موڪلڻ جي ضرورت ناهي، پر صرف هڪ درخواست ڏيو. ۽ ايجنٽ سڀ ڪجھ ڪندو جيڪو گھربل آھي: مثال طور، اھو ڊسڪ اسپيس ۽ رام مختص ڪندو.

قدم 2. بلنگ

اسان جي ڊولپر ايلڪس لاءِ، هي پهريون ڪنٽرول پينل نه هو - ايڪس هڪ ڊگهي وقت تائين ميزباني ۾ آهي، تنهنڪري هو عام طور تي سمجهي ٿو ته ڪلائنٽ کي ڪهڙي ضرورت آهي ۽ ميزبان کي ڪهڙي ضرورت آهي.

اسان پاڻ ۾ بلنگ کي "ڪنٽرول پينل" سڏين ٿا: ان ۾ نه رڳو پئسا ۽ خدمتون شامل آهن، پر انهن جو انتظام، ڪسٽمر سپورٽ ۽ گهڻو ڪجهه.

ISPSystem سافٽ ويئر کان سوئچ ڪرڻ لاء، اهو ضروري هو ته گراهڪن لاء اڳوڻي ڪارڪردگي کي مڪمل طور تي محفوظ ڪرڻ، صارفين جي سڀني مالي عملن کي پراڻي بلنگ کان نئين بلنگ ڏانهن منتقل ڪرڻ، گڏوگڏ سڀني خدمتن ۽ انهن جي وچ ۾ ڪنيڪشن. اسان اڀياس ڪيو ته موجوده پيداوار ۾ ڇا آهي، پوء مقابلن جا حل، خاص طور تي DO ۽ Vultr. اسان نقصانن ۽ فائدن کي ڏٺو، ماڻهن کان موٽ گڏ ڪيو جيڪي ISPsystem کان پراڻي پروڊڪٽس سان ڪم ڪن ٿا.

نئين بلنگ ۾ ٻه اسٽيڪ استعمال ڪيا ويا: کلاسک PHP، MySQL (۽ مستقبل ۾ ان کي تبديل ڪرڻ جي رٿابندي ڪئي وئي آهي PostgreSQL)، Yii2 فريم ورڪ جي طور تي پس منظر تي ۽ VueJS اڳيان. اسٽيڪ هڪ ٻئي کان آزاديءَ سان ڪم ڪن ٿا، مختلف ماڻهن پاران ٺاهيا ويا آهن، ۽ JSON API استعمال ڪندي گفتگو ڪن ٿا. ترقي لاءِ پوءِ ۽ هاڻي اسان استعمال ڪندا آهيون PHPS طوفان и ويب طوفان JetBrains کان ۽ انهن سان پيار ڪريو (اي دوستو!)

پينل ماڊلر جي بنياد تي ٺهيل آهي: ادائگي سسٽم ماڊلز، ڊومين رجسٽرار ماڊل يا، مثال طور، هڪ SSL سرٽيفڪيٽ ماڊل. توهان آساني سان هڪ نئين خصوصيت شامل ڪري سگهو ٿا يا هڪ پراڻي هڪ هٽائي. توسيع لاءِ بنياد تعميراتي طور تي رکيل آهي، بشمول مخالف سمت ۾، "هارڊويئر ڏانهن".
ISPsystem، معافي ۽ الوداعي! اسان پنهنجو سرور ڪنٽرول پينل ڇو ۽ ڪيئن لکيو
اسان کي ڇا مليو: ڪنٽرول پينل جنهن تي اسان کي مڪمل ڪنٽرول آهي. ھاڻي ڪيڏا ھفتن ۾ نه، ڪلاڪن ۾ طئي ڪيا ويا آھن، ۽ نيون خاصيتون لاڳو ڪيون ويون آھن گراهڪن جي درخواست تي، ۽ نه ISPSystem جي درخواست تي.

قدم 3 انٽرفيس

ISPsystem، معافي ۽ الوداعي! اسان پنهنجو سرور ڪنٽرول پينل ڇو ۽ ڪيئن لکيو
انٽرفيس اسان جي ٽيم جو دماغ آهي.

پهرين، اسان ڏٺو ته ڇا ٿيندو جيڪڏهن اسان ISPsystem API مٿان هڪ اضافو ڪيو بغير بنيادي طور تي انٽرفيس ۾ ڪا به تبديلي. اهو ائين ئي نڪتو ۽ اسان شروع کان سڀ ڪجهه ڪرڻ جو فيصلو ڪيو.

اسان يقين ڪيو ته بنيادي شيء انٽرفيس کي منطقي بڻائڻ آهي، صاف ۽ گهٽ ۾ گهٽ ڊيزائن سان، ۽ پوء اسان هڪ خوبصورت پينل حاصل ڪنداسين. عناصر جي جڳھ تي بحث ڪيو ويو ميگاپلان ۽ انٽرفيس جيڪو صارف ڪنٽرول پينل ۾ ڏسندا آھن ھاڻي ھاڻي آهستي آهستي پيدا ٿيندو.

بلنگ پيج جو ڊزائين پهريون ڀيرو ظاهر ٿيو، ڇاڪاڻ ته اسان اڳ ۾ ئي ادائگي پلگ ان ISPsystem لاءِ ٺاهيا آهن.

سامهون وارو

انهن پينل کي هڪ SPA ايپليڪيشن ٺاهڻ جو فيصلو ڪيو - وسيلن کي اڻ گهربل ۽ تيز ڊيٽا لوڊ ڪرڻ سان. اسان جي فرنٽ اينڊ آرٽيش ان کي Vue تي لکڻ جو فيصلو ڪيو - ان وقت Vue ظاهر ٿيو هو. اسان فرض ڪيو ته فريم ورڪ متحرڪ طور تي ترقي ڪندو، جهڙوڪ رد عمل، ڪجهه وقت کان پوء Vue ڪميونٽي وڌندي ۽ لائبريرين جو سمنڊ ظاهر ٿيندو. اسان Vue تي شرط لڳايو ۽ ان تي افسوس نه ڪيو - هاڻي اهو ٿورو وقت وٺندو آهي نئين فنڪشن کي شامل ڪرڻ لاءِ اڳ ۾ جيڪي اڳ ۾ ئي پوئين آخر تي پروگرام ڪيا ويا آهن. اسان توهان کي هڪ الڳ مضمون ۾ فرنٽ-آخر پينل بابت وڌيڪ ٻڌائينداسين.

فرنٽ اينڊ کي پس منظر سان ڳنڍڻ

فرنٽ اينڊ پش نوٽيفڪيشن ذريعي پس منظر سان ڳنڍيل هو. مون کي ڏاڍي محنت ڪرڻي هئي ۽ پنهنجي هٿ سان لکڻو پيو، پر هاڻي صفحي تي معلومات تقريباً فوري طور تي اپڊيٽ ٿي ويندي آهي.

ڇا ٿيو: پينل انٽرفيس آسان ٿي چڪو آهي. اسان ان کي سازگار بڻايو آهي، ۽ تيز لوڊشيڊنگ توهان کي اجازت ڏئي ٿي ته اها موبائل فون تان به استعمال ڪرڻ جي آخري منٽن ۾، بغير پينل سان ڪم ڪرڻ لاءِ الڳ ايپليڪيشن انسٽال ڪرڻ جي.

قدم 4. جانچ ۽ لڏپلاڻ وارو منصوبو

جڏهن سڀ ڪجهه شروع ٿيو ۽ پهريون امتحان پاس ٿيو، لڏپلاڻ جو سوال پيدا ٿيو. سڀ کان پهريان، اسان بلنگ نصب ڪيو ۽ سرور ايجنٽ سان ان جي آپريشن کي جانچڻ شروع ڪيو.

ان کان پوء اسان هڪ سادي اسڪرپٽ لکيو جيڪو ڊيٽابيس کي پراڻي بلنگ کان نئين بلنگ ڏانهن منتقل ڪري ٿو.

مون کي لفظي طور تي هر شي کي جانچڻ ۽ ٻيهر چيڪ ڪرڻو هو، ڇاڪاڻ ته ڊيٽا کي ٽن پراڻين مان هڪ نئين ڊيٽابيس ۾ ضم ڪيو ويو آهي: بل مئنيجر، وي ايم مئنيجر ۽ مينيجر جو IPmanager. شايد امتحان لڏپلاڻ سڀ کان وڌيڪ ڏکيو شيء آهي جيڪو اسان هڪ نئين پينل کي ترقي ڪرڻ جي عمل ۾ محسوس ڪيو.

ٻيهر چيڪ ڪرڻ کان پوء، اسان پراڻي بلنگ کي بند ڪيو. آخري ڊيٽا لڏپلاڻ هڪ تمام مشڪل لمحو هو، پر، خدا جو شڪر آهي، اهو چند منٽن ۾ مڪمل ڪيو ويو ۽ بغير ڪنهن مسئلن جي. اتي ننڍا ڪيڙا هئا جن کي اسان هفتي دوران طئي ڪيو. گهڻو وقت جاچڻ ۾ گذري ويو ته ڇا ٿيو.

ان کان پوء اسان نئين پينل جي ايڊريس ۽ بلنگ سان گراهڪن کي خط موڪليو ۽ هڪ ريڊائريڪٽ ڪيو.

آخرڪار: اهو زنده آهي!

سٺي پڄاڻي

اسان جي سافٽ ويئر جي ڪم جي پهرين ڪلاڪن کان، اسان منتقلي جي سڀني نعمتن کي محسوس ڪيو. ڪوڊ مڪمل طور تي اسان جو هو ۽ هڪ آسان فن تعمير سان، ۽ انٽرفيس صاف ۽ منطقي هو.
ISPsystem، معافي ۽ الوداعي! اسان پنهنجو سرور ڪنٽرول پينل ڇو ۽ ڪيئن لکيو
نئين پينل جي لانچ کان پوء پهريون جائزو

اسان منتقلي جي عمل کي ڊسمبر ۾ شروع ڪيو، نئين سال 2017 جي موقعي تي، جڏهن لوڊ گهٽ ۾ گهٽ هو، گراهڪن لاءِ منتقلي کي آسان بڻائڻ لاءِ - تقريبن ڪو به موڪلن جي موقعي تي ڪم نٿو ڪري.

بنيادي شيء جيڪا اسان حاصل ڪئي جڏهن اسان جي سسٽم کي تبديل ڪيو (عام اعتبار ۽ سهولت کان سواء) اهم گراهڪن لاء جلدي ڪارڪردگي شامل ڪرڻ جي صلاحيت آهي - انهن جو منهن هجڻ، انهن جي گدا نه.

ايندڙ ڇا آهي؟

اسان وڌي رهيا آهيون، ڊيٽا جو مقدار، گراهڪ، ڪسٽمر ڊيٽا وڌي رهيو آهي. مون کي پس منظر ۾ مختلف ڪمن سان گڏ هڪ Memcached سرور ۽ ٻه قطار مينيجر شامل ڪرڻو پيو. فرنٽ اينڊ ڪيشنگ ۽ ان جون پنهنجون قطارون آهن.

يقينن، اسان وٽ اڃا به ايڊونچر هئا جيئن پراڊڪٽ ترقي ڪئي ۽ وڌيڪ پيچيده ٿي وئي، مثال طور جڏهن اسان شامل ڪيو HighLoad.

ايندڙ آرٽيڪل ۾، اسان توهان کي ٻڌائينداسين ته هاء-سي پي يو ٽريف ڪيئن شروع ڪيو ويو: هارڊويئر، سافٽ ويئر بابت، اسان ڪهڙي ڪم کي حل ڪيو ۽ اسان ڇا ڪيو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو