ڪبرنيٽس استعمال ڪندي هڪ هائبرڊ بادل ڪيئن ٺاهيو جيڪو DBaaS کي تبديل ڪري سگهي ٿو
منهنجو نالو پيٽر زيتسوف آهي، مان سي اي او آهيان، باني پيروڪا ۽ مان توهان کي ٻڌائڻ چاهيان ٿو:
اسان ڪيئن آيا آهيون اوپن سورس حلن مان ڊيٽابيس تائين خدمت جي طور تي؛
بادل ۾ ڊيٽابيس کي ترتيب ڏيڻ لاء ڪهڙا طريقا موجود آهن؛
ڪبرنيٽس ڪيئن DBaaS کي تبديل ڪري سگھن ٿا، وينڊرز جي انحصار کي ختم ڪرڻ ۽ خدمت جي طور تي DBMS جي سادگي کي برقرار رکڻ.
مضمون تيار ڪيو ويو هڪ رپورٽ جي بنياد تي @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. جيڪڏهن توهان پڙهڻ نٿا چاهيو، توهان ڏسي سگهو ٿا:
اسان ڪئين ڪلائوڊ ۾ هڪ خدمت جي طور تي ڊيٽابيس کان اوپن سورس کان آياسين
مان 90 جي ڏهاڪي کان اوپن سورس ۾ ڪم ڪري رهيو آهيان. ويهه سال اڳ، اوپن سورس استعمال ڪرڻ، جهڙوڪ ڊيٽابيس، ايترو آسان نه هو. اهو ضروري هو ته سورس ڪوڊ ڊائون لوڊ ڪريو، ان کي پيچ ڪريو، ان کي گڏ ڪريو ۽ صرف ان کي استعمال ڪريو.
اوپن سورس پوءِ آسانيءَ جي هڪ سيريز مان گذريو:
Tar.gz ۽ انسٽال ڪريو ذريعن کي گڏ ڪرڻ جي ضرورت آهي؛
انحصار سان پيڪيجز جهڙوڪ .deb ۽ .rpm، جتي توهان کي صرف پيڪيجز جو هڪ سيٽ انسٽال ڪرڻ جي ضرورت آهي؛
پيڪيجز جا ذخيرا جهڙوڪ APT ۽ YUM، جن سان انسٽاليشن خودڪار آهي؛
حل جهڙوڪ ڊڪر ۽ سنيپ، جيڪي توهان کي انسٽاليشن ذريعي پيڪيجز وصول ڪرڻ جي اجازت ڏين ٿا بغير ڪنهن خارجي انحصار جي.
نتيجي طور، اوپن سورس سافٽ ويئر استعمال ڪرڻ آسان ٿي وڃي ٿو ۽ اهڙين ايپليڪيشنن کي ترقي ڪرڻ ۾ داخلا جي رڪاوٽ کي پڻ گھٽائي ٿو.
ساڳئي وقت، 20 سال اڳ جي صورتحال جي برعڪس، جڏهن هرڪو اسيمبليء جو ماهر هو، هاڻي اڪثر ڊولپرز اوزار ٺاهي نٿا سگهن جيڪي اهي ذريعن کان استعمال ڪندا آهن.
حقيقت ۾، اهو خراب ناهي، ڇاڪاڻ ته:
اسان وڌيڪ پيچيده پر وڌيڪ صارف دوست سافٽ ويئر استعمال ڪري سگهون ٿا. مثال طور، هڪ برائوزر استعمال ڪرڻ آسان آهي، پر ان ۾ ڪيترائي اوپن سورس حصا شامل آهن ۽ شروع کان تعمير ڪرڻ ۾ تڪليف آهي.
وڌيڪ ماڻهو اوپن سورس ۽ ٻين سافٽ ويئر جا ڊولپر بڻجي سگهن ٿا، وڌيڪ سافٽ ويئر ڪاروبار طرفان استعمال ڪيو ويندو آهي، ۽ ان جي ضرورت وڌيڪ آهي.
نقصان اهو آهي ته سادگي ۾ ايندڙ قدم ڪلائوڊ حلن جي استعمال سان لاڳاپيل آهي، ۽ اهو هڪ خاص وينڊر لاڪ ان ڏانهن وٺي ٿو، اهو آهي، هڪ سپلائر سان پابند. اسان سادو حل استعمال ڪندا آهيون ۽ مهيا ڪندڙ کليل ذريعو اجزاء استعمال ڪندا آهن، پر حقيقت ۾ اهي هڪ وڏي ڪڪر ڏانهن نيل آهن. اهو آهي، اوپن سورس کي ترتيب ڏيڻ جو آسان ۽ تيز ترين طريقو (۽ انهي سان مطابقت رکندڙ سافٽ ويئر) بادل ۾ آهي، هڪ ملڪيت واري API استعمال ڪندي.
ڊيٽابيس جي بنيادي ڍانچي کي گڏ ڪريو، جيئن باقاعده ڊيٽا سينٽر ۾. اھو آھي، معياري بلڊنگ بلاڪ وٺو: ڪمپيوٽ، اسٽوريج، وغيره، انھن تي لينڪس ۽ ھڪڙو ڊيٽابيس انسٽال ڪريو، ۽ انھن کي ترتيب ڏيو.
ڊيٽابيس کي خدمت طور استعمال ڪريو، جتي مهيا ڪندڙ بادل جي اندر تيار ڪيل ڊيٽابيس پيش ڪري ٿو.
DBaaS هن وقت تيزي سان وڌندڙ مارڪيٽ آهي ڇاڪاڻ ته اها ڊولپرز کي سڌو سنئون ڊيٽابيس سان ڪم ڪرڻ جي اجازت ڏئي ٿي ۽ معمولي ڪم کي گهٽائي ٿي. مهيا ڪندڙ اعلي دستيابي ۽ آسان اسڪيلنگ، ڊيٽابيس پيچنگ، بيڪ اپ، ۽ ڪارڪردگي ٽيوننگ کي يقيني بڻائڻ جي ذميواري ڪري ٿو.
ڊيٽابيس جا ٻه قسم هڪ خدمت جي طور تي اوپن سورس جي بنياد تي ۽ هڪ متبادل Kubernetes جي صورت ۾
کليل ڊيٽابيس لاءِ خدمت جي طور تي ڊيٽابيس جا ٻه قسم آهن:
هڪ معياري اوپن سورس پراڊڪٽ جيڪا انتظامي پس منظر ۾ پيڪيج ڪئي وئي آهي آسان ترتيب ۽ انتظام لاءِ.
مختلف اضافو سان گڏ هڪ ترقي يافته تجارتي حل، اوپن سورس سان هم آهنگ.
ٻئي آپشن بادلن جي وچ ۾ لڏپلاڻ جو امڪان گھٽائي ٿو ۽ ڊيٽا ۽ ايپليڪيشنن جي پورائيزيشن کي گھٽائي ٿو. مثال طور، ان حقيقت جي باوجود ته بادل جا مختلف قسم بنيادي طور تي ساڳئي معياري MySQL جي حمايت ڪن ٿا، انهن جي وچ ۾ اهم فرق آهن: آپريشن، ڪارڪردگي، بيڪ اپ وغيره. هڪ بادل کان ٻئي ڏانهن لڏڻ مشڪل ٿي سگهي ٿو، خاص طور تي پيچيده ايپليڪيشنن لاءِ.
۽ هتي سوال پيدا ٿئي ٿو - ڇا اهو ممڪن آهي ته ڊيٽابيس جي سهولت هڪ خدمت جي طور تي، پر هڪ سادي اوپن سورس حل جي طور تي؟
خراب خبر اها آهي ته، بدقسمتي سان، مارڪيٽ تي اڃا تائين ڪو به حل ناهي. سٺي خبر اها آهي ته ڪوبرنيٽس آهي، جيڪو توهان کي اهڙي حل کي لاڳو ڪرڻ جي اجازت ڏئي ٿو.
Kubernetes ڪلائوڊ يا ڊيٽا سينٽر لاءِ هڪ آپريٽنگ سسٽم آهي جيڪو توهان کي هڪ ئي ميزبان جي بجاءِ هڪ ڪلستر ۾ ڪيترن ئي سرورن تي ايپليڪيشن کي ترتيب ڏيڻ ۽ منظم ڪرڻ جي اجازت ڏئي ٿو.
هاڻي Kubernetes اهڙي سافٽ ويئر جي درجي ۾ اڳواڻ آهي. اهڙين مسئلن لاء ڪيترائي مختلف حل هئا، پر اهو معيار بڻجي ويو. ڪيتريون ئي ڪمپنيون جيڪي متبادل حل تي ڌيان ڏيڻ لاء استعمال ڪيون ويون آهن هاڻي انهن جي شين کي ترتيب ڏيڻ تي ڌيان ڏئي رهيا آهن ڪبرنيٽس کي سپورٽ ڪرڻ لاء.
ان کان علاوه، Kubernetes هڪ آفاقي حل آهي جيڪو ڪيترن ئي وينڊرز جي نجي، عوامي ۽ هائبرڊ بادل ۾ سپورٽ آهي، مثال طور: AWS، Google Cloud، Microsoft Azure، Mail.ru ڪلائوڊ حل.
ڪبرنيٽس ڊيٽابيس سان ڪيئن ڪم ڪندو آهي
Kubernetes اصل ۾ بي رياست ايپليڪيشنن لاءِ ٺاهيو ويو هو جيڪي ڊيٽا کي پروسيس ڪن ٿيون پر ڪجھ به ذخيرو نه ڪن، جهڙوڪ مائڪرو سروسز يا ويب ايپليڪيشنون. ڊيٽابيس اسپيڪٽرم جي ٻئي آخر ۾ آهن، اهو آهي، اهي رياستي ايپليڪيشنون آهن. ۽ ڪبرنيٽس اصل ۾ اهڙين ايپليڪيشنن جو مقصد نه هو.
بهرحال، اهڙا خاصيتون آهن جيڪي تازو ڪبرنيٽس ۾ ظاهر ٿيا آهن جيڪي ڊيٽابيس ۽ ٻين رياستي ايپليڪيشنن جي استعمال جي اجازت ڏين ٿيون:
StatefulSet تصور پوڊ جي ڪم کي روڪڻ ۽ گريسفول شٽ ڊائون (ايپليڪيشن جي پيش گوئي شٽ ڊائون) کي لاڳو ڪرڻ بابت واقعن جي پروسيسنگ لاءِ ابتدائي سيريز جو هڪ مڪمل سلسلو آهي.
مسلسل حجم ڊيٽا اسٽوريج آهن جيڪي پوڊ، ڪبرنيٽس مينيجمينٽ آبجڪس سان لاڳاپيل آهن.
اڳ ۾ ئي هاڻي عوامي بادلن ۾ هڪ خدمت جي طور تي وڏا ڊيٽابيس آهن، جن جو پس منظر آهي ڪبرنيٽس، مثال طور: CockroachCloud، InfluxDB، PlanetScale. اهو آهي، ڪبرنيٽس تي هڪ ڊيٽابيس نه رڳو اهو آهي جيڪو نظرياتي طور تي ممڪن آهي، پر اهو پڻ آهي جيڪو عملي طور تي ڪم ڪري ٿو.
Percona وٽ ٻه اوپن سورس حل آهن ڪبرنيٽس لاءِ:
MongoDB لاءِ Percona سرور لاءِ Kubernetes آپريٽر.
ڪبرنيٽس آپريٽر XtraDB CLUSTER لاءِ هڪ خدمت آهي جيڪا MySQL سان مطابقت رکي ٿي ۽ اعليٰ دستيابي ۽ استحڪام فراهم ڪري ٿي. توهان هڪ واحد نوڊ پڻ استعمال ڪري سگهو ٿا جيڪڏهن اعلي دستيابي جي ضرورت ناهي، مثال طور هڪ ديو ڊيٽابيس لاء.
Kubernetes استعمال ڪندڙن کي ٻن گروپن ۾ ورهائي سگھجي ٿو. ڪجهه ماڻهو ڪبرنيٽس آپريٽرز سڌو سنئون استعمال ڪندا آهن - اهي بنيادي طور تي ترقي يافته استعمال ڪندڙ آهن جن کي سٺي ڄاڻ آهي ته ٽيڪنالاجي ڪيئن ڪم ڪري ٿي. ٻيا ان کي پس منظر تي هلائيندا آهن - اهڙا استعمال ڪندڙ ڪنهن شيءَ ۾ دلچسپي رکن ٿا جهڙوڪ ڊيٽابيس هڪ خدمت جي طور تي، اهي نه ٿا چاهين ته ڪبرنيٽس جي nuances ۾ delve ڪرڻ چاهيو ٿا. صارفين جي ٻئي گروپ لاء، اسان وٽ هڪ ٻيو اوپن سورس حل آهي - Percona DBaaS CLI اوزار. اھو ھڪڙو تجرباتي حل آھي انھن لاءِ جيڪي حاصل ڪرڻ چاھين ٿا اوپن سورس DBaaS حاصل ڪرڻ لاءِ Kubernetes جي بنياد تي ٽيڪنالاجي جي گھڻي سمجھ کان سواءِ.
گوگل ڪبرنيٽس انجڻ تي Percona جي DBaaS کي ڪيئن هلائڻ
Google Kubernetes Engine، منهنجي خيال ۾، Kubernetes ٽيڪنالاجي جي سڀ کان وڌيڪ فعال عملن مان هڪ آهي. اهو دنيا جي ڪيترن ئي علائقن ۾ موجود آهي ۽ هڪ سادو ۽ آسان ڪمانڊ لائين ٽول (SDK) آهي، جيڪو توهان کي پليٽ فارم کي دستي طور تي منظم ڪرڻ بجاءِ اسڪرپٽ ٺاهڻ جي اجازت ڏئي ٿو.
اسان جي DBaaS کي ڪم ڪرڻ لاء، اسان کي هيٺين حصن جي ضرورت آهي:
ڪبيڪٽل.
Google Cloud SDK.
Percona DBaaS CLI.
انسٽال ڪريو kubectl
اسان توهان جي آپريٽنگ سسٽم لاءِ پيڪيج انسٽال ڪريون ٿا، اسان ڏسنداسين Ubuntu جو مثال. وڌيڪ تفصيل هتي.
اسان سافٽ ويئر پيڪيج کي ساڳئي طريقي سان انسٽال ڪريون ٿا. وڌيڪ تفصيل هتي.
# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg]
http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk
پهرين توهان کي پنهنجي گوگل اڪائونٽ ۾ لاگ ان ڪرڻ جي ضرورت آهي. وڌيڪ، گوگل ڪلائوڊ هڪ صارف کي ڪيترن ئي آزاد منصوبن جي اجازت ڏئي ٿو، تنهنڪري توهان کي هن منصوبي لاء ڪوڊ استعمال ڪندي ڪم ڪندڙ منصوبي جي وضاحت ڪرڻ جي ضرورت آهي:
gcloud auth login
gcloud config set project hidden-brace-236921
ان کان پوء اسان هڪ نالي جي جاء ٺاهي ۽ ان کي فعال ڪيو. Namespace آهي، تقريبن ڳالهائڻ، پڻ هڪ پروجيڪٽ يا ماحول وانگر، پر اڳ ۾ ئي ڪبرنيٽس ڪلستر جي اندر. اهو Google Cloud منصوبن کان آزاد آهي:
هڪ دفعو اسان انهن چند مرحلن مان گذري چڪا آهيون، اسان هن سادي حڪم سان ٽي نوڊ ڪلستر شروع ڪري سگهون ٿا:
# percona-dbaas mysql create-db example
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: example
Resource Endpoint: example-proxysql.my-namespace.pxc.svc.local
Port: 3306
User: root
Pass: Nt9YZquajW7nfVXTTrP
Status: ready
ڪلستر سان ڪيئن ڳنڍجي
ڊفالٽ طور، اهو صرف اندر موجود آهي Kubernetes. اهو آهي، اهو هن سرور کان دستياب ناهي جنهن مان توهان "ٺاهيو" حڪم هلائي. ان کي دستياب ڪرڻ لاءِ، مثال طور، ڪلائنٽ سان ٽيسٽن لاءِ، توهان کي پورٽ ميپنگ ذريعي پورٽ کي اڳتي وڌائڻ جي ضرورت آهي: