تبديل ڪيو Terraform کان CloudFormation ڏانهن - ۽ ان تي افسوس ٿيو

انفراسٽرڪچر کي ڪوڊ جي طور تي ريپٽيبل ٽيڪسٽ فارميٽ ۾ پيش ڪرڻ هڪ سادي بهترين عمل آهي سسٽم لاءِ جنهن کي چوهڙن سان ڀڄڻ جي ضرورت ناهي. هن مشق جو نالو آهي - بنيادي ڍانچي جيئن ڪوڊ، ۽ هينئر تائين ان کي لاڳو ڪرڻ لاءِ ٻه مشهور اوزار آهن، خاص طور تي AWS ۾: ٽرافيف и Cloud Formation.

تبديل ڪيو Terraform کان CloudFormation ڏانهن - ۽ ان تي افسوس ٿيو
Terraform ۽ CloudFormation سان تجربو جو مقابلو ڪرڻ

اچڻ کان اڳ Twitch (هو Amazon Jr.) مون ڪم ڪيو هڪ شروعات ۾ ۽ ٽن سالن تائين Terraform استعمال ڪيو. نئين جاءِ تي، مون پنهنجي پوري طاقت سان Terraform کي پڻ استعمال ڪيو، ۽ پوءِ ڪمپنيءَ هر شيءِ ڏانهن منتقلي کي زور ڏنو هڪ لا Amazon، بشمول CloudFormation. مون محنت سان ٻنهي لاءِ بهترين طريقا تيار ڪيا آهن، ۽ ٻنهي اوزارن کي تمام پيچيده، تنظيم جي وسيع ڪم جي فلوز ۾ استعمال ڪيو آهي. بعد ۾، سوچڻ سان Terraform کان CloudFormation ڏانهن لڏپلاڻ جي اثرن کي وزن کڻڻ کان پوء، مون کي يقين ٿي ويو ته Terraform شايد تنظيم لاء بهترين انتخاب هو.

خوفناڪ Terraform

بيٽا سافٽ ويئر

Terraform اڃا تائين نسخو 1.0 جاري نه ڪيو آهي، جيڪو ان کي استعمال نه ڪرڻ جو سٺو سبب آهي. اهو تمام گهڻو تبديل ٿي چڪو آهي جڏهن کان مون پهريون ڀيرو پاڻ کي ڪوشش ڪئي، پر پوء واپس terraform apply اڪثر ڪيترن ئي تازه ڪارين کان پوءِ يا صرف ڪجهه سالن جي استعمال کان پوءِ ٽوڙيو ويو. مان چوندس ته ”هاڻي سڀ ڪجهه مختلف آهي،“ پر... اهو ئي آهي جيڪو هرڪو چوڻ لڳي، نه؟ اهي تبديليون آهن جيڪي اڳئين نسخن سان مطابقت نه رکن ٿيون، جيتوڻيڪ اهي مناسب آهن، ۽ اهو پڻ محسوس ٿئي ٿو ته نحو ۽ وسيلن جي دڪانن جي تجريد هاڻي اهي آهن جيڪي اسان کي گهربل آهن. اهو لڳي ٿو ته اوزار واقعي بهتر ٿي چڪو آهي، پر ... :-0

ٻئي طرف، AWS پسمانده مطابقت برقرار رکڻ لاء سٺو ڪم ڪيو آهي. اهو شايد ان ڪري آهي ڇاڪاڻ ته انهن جون خدمتون اڪثر ڪري چڱيءَ طرح جاچيا ويندا آهن تنظيم جي اندر ۽ صرف پوءِ، تبديل ٿيل، شايع ٿيل آهن. تنهن ڪري ”انهن سخت ڪوشش ڪئي“ هڪ سمجھاڻي آهي. AWS وانگر مختلف ۽ پيچيده سسٽم لاءِ APIs سان پسمانده مطابقت برقرار رکڻ ناقابل يقين حد تائين مشڪل آهي. ڪو به ماڻهو جنهن کي عوامي APIs کي برقرار رکڻو پوندو جيڪي وڏي پيماني تي استعمال ڪيا ويا آهن انهن کي سمجهڻ گهرجي ته اهو ڪيترو ڏکيو آهي ڪيترن سالن تائين ائين ڪرڻ. پر CloudFormation جو رويو، منهنجي ياداشت ۾، سالن کان ڪڏهن به تبديل نه ٿيو آهي.

ٽنگ سان ملو... اها گولي آهي

جيستائين مون کي خبر آهي، وسيلن کي ختم ڪريو ٻاهران توهان جي CF اسٽيڪ مان CloudFormation اسٽيڪ ممڪن ناهي. ساڳيو ئي Terraform سان سچو آهي. اهو توهان کي توهان جي اسٽيڪ ۾ موجود وسيلن کي درآمد ڪرڻ جي اجازت ڏئي ٿو. فنڪشن کي حيرت انگيز چئي سگهجي ٿو، پر وڏي طاقت سان وڏي ذميواري اچي ٿي. توهان کي صرف اسٽيڪ ۾ هڪ وسيلو شامل ڪرڻ جي ضرورت آهي، ۽ جڏهن توهان پنهنجي اسٽيڪ سان ڪم ڪري رهيا آهيو، توهان هن وسيلن کي حذف يا تبديل نٿا ڪري سگهو. هڪ ڏينهن اهو پٺڀرائي ٿي ويو. هڪ ڏينهن Twitch تي، ڪنهن غلطيءَ سان ڪنهن ٻئي جي AWS سيڪيورٽي گروپ کي درآمد ڪيو انهن جي پنهنجي Terraform اسٽيڪ ۾ جڏهن ته ڪنهن به شرارت کان سواءِ. مون ڪيترن ئي حڪمن ۾ داخل ڪيو ۽ ... سيڪيورٽي گروپ (آڻڻ واري ٽرئفڪ سان گڏ) غائب ٿي ويو.

Terraform عظيم

نامڪمل رياستن مان بحالي

ڪڏهن ڪڏهن CloudFormation مڪمل طور تي هڪ رياست کان ٻئي ڏانهن منتقل ڪرڻ ۾ ناڪام ٿي. ساڳئي وقت، هو پوئين هڪ ڏانهن موٽڻ جي ڪوشش ڪندو. اهو افسوس آهي ته اهو هميشه ممڪن ناهي. اهو ڪافي خوفناڪ ٿي سگهي ٿو ڊيبگ ڪرڻ لاءِ جيڪو بعد ۾ ٿيو - توهان کي ڪڏهن به خبر ناهي ته ڇا CloudFormation خوش ٿيندي ته اهو هيڪ ڪيو پيو وڃي - جيتوڻيڪ صرف ان کي درست ڪرڻ لاءِ. ڇا اهو ممڪن ٿيندو ته پوئين حالت ڏانهن موٽڻ، هو حقيقت ۾ نه ٿو ڄاڻي ته ڪيئن طئي ڪيو وڃي ۽ ڊفالٽ طور، ڪلاڪن تائين انتظار ڪري رهيو آهي معجزات جي انتظار ۾.

Terraform، ٻئي طرف، ناڪامي منتقلي کان بحال ڪرڻ جي ڪوشش ڪري ٿو وڌيڪ شاندار طور تي ۽ پيش ڪري ٿو جديد ڊيبگنگ اوزار.

دستاويز جي حالت ۾ واضح تبديليون

”ٺيڪ آهي، لوڊ بيلنس، تون بدلجي رهيو آهين. پر ڪيئن؟"

- پريشان انجنيئر، "قبول" بٽڻ کي دٻائڻ لاء تيار.

ڪڏهن ڪڏهن مون کي CloudFormation اسٽيڪ ۾ لوڊ بيلنسر سان ڪجهه ٺاهه ڪرڻ جي ضرورت آهي، جهڙوڪ پورٽ نمبر شامل ڪرڻ يا سيڪيورٽي گروپ کي تبديل ڪرڻ. clouFormation ڏيکاري ٿو خراب تبديليون. مان، پنن ۽ سوئي تي، يامل فائل کي ڏهه ڀيرا ٻه ڀيرا چيڪ ڪيو ته پڪ ڪريو ته مون ڪا به ضروري شيءِ ختم نه ڪئي آهي ۽ نه ئي ڪا غير ضروري شامل ڪئي آهي.

Terraform ان سلسلي ۾ تمام گهڻو شفاف آهي. ڪڏهن ڪڏهن هو تمام گهڻو شفاف آهي (پڙهو: بورنگ). خوشقسمتيءَ سان، جديد ورزن ۾ تبديلين جي بهتر ڊسپلي شامل آهي ته جيئن توهان هاڻي ڏسي سگهو ٿا ته ڇا بدلجي رهيو آهي.

سکيائي

پوئتي سافٽ ويئر لکو.

ان کي واضح طور تي رکڻ لاء، ڊگهي-رهندڙ سافٽ ويئر جي سڀ کان اهم خصوصيت تبديلي کي ترتيب ڏيڻ جي صلاحيت آهي. ڪنهن به سافٽ ويئر کي پوئتي لکو. گهڻو ڪري مون غلطيون ڪيون آهن هڪ ”سادو“ سروس وٺڻ سان، ۽ پوءِ هر شيءِ کي هڪ واحد CloudFormation يا Terraform اسٽيڪ ۾ گڏ ڪرڻ شروع ڪيو. ۽ يقينا، مهينن بعد اهو ظاهر ٿيو ته مون سڀ ڪجهه غلط سمجهي ورتو هو، ۽ خدمت اصل ۾ سادي نه هئي! ۽ ھاڻي مون کي ھڪڙي وڏي اسٽيڪ کي ننڍن حصن ۾ ٽوڙڻ جي ضرورت آھي. جڏهن توهان CloudFormation سان ڪم ڪريو ٿا، اهو صرف پهريون ڀيرو موجوده اسٽيڪ کي ٻيهر ٺاهڻ سان ڪري سگهجي ٿو، ۽ مان اهو نه ٿو ڪريان پنهنجي ڊيٽابيس سان. ٻئي طرف، Terraform، ان کي اسٽيڪ کي ڌار ڪرڻ ۽ ان کي وڌيڪ سمجھڻ وارن ننڍن حصن ۾ ٽوڙڻ ممڪن بڻايو.

گٽ ۾ ماڊلز

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

تنظيم وڌي وئي ۽ عام اسٽيڪ کي حصيداري ڪرڻ جي صلاحيت نازڪ سطح تي پهچي. Terraform اهو سڀ ڪجهه آسان ۽ قدرتي بڻائي ٿو، جڏهن ته CloudFormation توهان کي ڇڪڻ ذريعي ٽپو ڏيندو ان کان اڳ ته توهان هن ڪم وانگر ڪجهه حاصل ڪري سگهو ٿا.

ڪوڊ جي طور تي آپريشن

”اچو ته ان کي لکون ۽ ٺيڪ آهي.

- هڪ انجنيئر ٽيرافارم سائيڪل جي ايجاد کان 3 سال اڳ.

جڏهن اهو اچي ٿو سافٽ ويئر ڊولپمينٽ، وڃو يا جاوا پروگرام صرف ڪوڊ ناهي.

تبديل ڪيو Terraform کان CloudFormation ڏانهن - ۽ ان تي افسوس ٿيو
ڪوڊ جي طور تي ڪوڊ

اتي پڻ انفراسٽرڪچر آھي جنھن تي اھو ڪم ڪري ٿو.

تبديل ڪيو Terraform کان CloudFormation ڏانهن - ۽ ان تي افسوس ٿيو
بنيادي ڍانچي جيئن ڪوڊ

پر هوءَ ڪٿي آهي؟ ان جي نگراني ڪيئن ڪجي؟ توهان جو ڪوڊ ڪٿي رهي ٿو؟ ڇا ڊولپرز کي رسائي جي اجازت جي ضرورت آهي؟

تبديل ڪيو Terraform کان CloudFormation ڏانهن - ۽ ان تي افسوس ٿيو
ڪوڊ جي طور تي آپريشن

سافٽ ويئر ڊولپر هجڻ جو مطلب صرف ڪوڊ لکڻ نه آهي.

AWS صرف هڪ ئي ناهي: توهان شايد ٻين فراهم ڪندڙ استعمال ڪندا آهيو. SignalFx، PagerDuty يا Github. ٿي سگهي ٿو توهان وٽ CI/CD لاءِ اندروني جينڪنز سرور هجي يا نگراني لاءِ اندروني گرافانا ڊيش بورڊ. Infra as Code مختلف سببن لاءِ چونڊيو ويو آهي، ۽ هر هڪ سافٽ ويئر سان لاڳاپيل هر شيءِ لاءِ برابر اهم آهي.

جڏهن مون Twitch تي ڪم ڪيو، اسان Amazon جي مخلوط ايمبيڊڊ ۽ AWS سسٽم اندر خدمتن کي تيز ڪيو. اسان ڪيترن ئي مائڪرو سروسز کي وڌايو ۽ سپورٽ ڪيو، آپريشنل خرچن کي وڌايو. بحث ڪجهه هن طرح ٿيو:

  • Я: لات، اهو هڪ مائڪرو سروس کي اوور ڪلڪ ڪرڻ لاءِ تمام گهڻو اشارو آهي. مون کي AWS اڪائونٽ ٺاهڻ لاءِ هي گندگي استعمال ڪرڻي پوندي (اسان 2 اڪائونٽس تي وياسون microservice)، پوءِ هي هڪ الرٽ ترتيب ڏيڻ لاءِ، هي هڪ ڪوڊ مخزن لاءِ، ۽ هي هڪ اي ميل لسٽ لاءِ، ۽ پوءِ هي هڪ...
  • ليڊ: اچو ته لکون ۽ ٺيڪ.
  • Я: ٺيڪ آهي، پر رسم الخط پاڻ ئي بدلجي ويندو. اسان کي جانچڻ لاءِ هڪ طريقي جي ضرورت پوندي ته اهي سڀئي ٺاهيل Amazon Gizmos تازه ترين آهن.
  • ليڊ: سٺو ٿو لڳي. ۽ اسان ان لاءِ اسڪرپٽ لکنداسين.
  • Я: زبردست! ۽ اسڪرپٽ شايد اڃا تائين پيٽرول سيٽ ڪرڻ جي ضرورت پوندي. ڇا هو انهن کي قبول ڪندو؟
  • ليڊ: هن کي وٺي وڃڻ ڏيو جتي هو وڃي ٿو!
  • Я: عمل تبديل ٿي سگھي ٿو ۽ پسمانده مطابقت گم ٿي ويندي. ڪجھ قسم جي سيمينٽڪ ورزن ڪنٽرول جي ضرورت پوندي.
  • ليڊ: عظيم خيال!
  • Я: اوزار دستي طور تبديل ڪري سگھجن ٿا، يوزر انٽرفيس اندر. اسان کي ان کي چيڪ ڪرڻ ۽ درست ڪرڻ لاء هڪ طريقو جي ضرورت پوندي.

…3 سال بعد:

  • ليڊ: ۽ اسان وٽ ٽيرافارم آهي.

ڪهاڻي جو اخلاقي آهي: جيتوڻيڪ توهان Amazon ۾ هر شي ۾ هيلس مٿان مٿي، توھان اڃا تائين ڪجھ استعمال ڪري رھيا آھيو جيڪو AWS کان نه آھي، ۽ انھن خدمتن کي ھڪڙي رياست آھي جيڪا ھڪڙي ترتيب واري ٻولي استعمال ڪري ٿي ان حالت کي مطابقت ۾ رکڻ لاءِ.

CloudFormation lambda بمقابله گٽ ماڊلز ٽيرافارم

lambda CloudFormation جو حل آھي ڪسٽم منطق جي مسئلي جو. لامبا سان توهان ڪري سگهو ٿا ميڪرو ٺاهيو يا استعمال ڪندڙ وسيلن. اهو طريقو اضافي پيچيدگين کي متعارف ڪرايو آهي جيڪي موجود نه آهن Terraform جي گٽ ماڊلز جي سيمينٽڪ ورزن ۾. مون لاءِ، سڀ کان وڌيڪ دٻاءُ وارو مسئلو انهن سڀني استعمال ڪندڙ ليمبڊاس لاءِ اجازتن جو انتظام ڪري رهيو هو (۽ اهي درجن وارا AWS اڪائونٽ آهن). ٻيو اهم مسئلو اهو هو ته ”پهرين ڇا آيو، ڪڪڙ يا انڊا؟“ مسئلو: اهو لامبڊا ڪوڊ سان لاڳاپيل هو. هي فنڪشن خود انفراسٹرڪچر ۽ ڪوڊ آهي، ۽ اهو پاڻ کي نگراني ۽ تازه ڪاري جي ضرورت آهي. تابوت ۾ آخري نيل لامبڊا ڪوڊ جي تبديلين کي لفظي طور تي اپڊيٽ ڪرڻ ۾ مشڪل هئي. اسان کي پڻ پڪ ڪرڻ گهرجي ته اسٽيڪ ڪارناما بغير سڌي حڪم جي رن جي وچ ۾ تبديل نه ٿيا.

مون کي ياد آهي هڪ دفعو مون چاهيو ٿي ته هڪ ڪينري ڊيپلائيمينٽ ٺاهڻ لاءِ لچڪدار بين اسٽالڪ ماحول لاءِ هڪ کلاسک لوڊ بيلنسر سان. ڪرڻ لاءِ سڀ کان آسان ڪم اهو هوندو ته پيداواري ماحول جي اڳيان EB لاءِ ٻي ڊيپلائيمينٽ ڪرڻ، ان کي هڪ قدم اڳتي وڌايو: آٽو اسڪيلنگ ڪينري ڊيپلائيمينٽ گروپ کي ملائي پيداواري ماحول ۾ ڊيپلائيمينٽ LB سان. ۽ جيئن ته Terraform استعمال ڪري ٿو ASG beantalk نتيجي طور, هن Terraform ۾ ڪوڊ جي 4 اضافي لائنون جي ضرورت پوندي. جڏهن مون پڇيو ته ڇا CloudFormation ۾ هڪ تقابلي حل آهي، انهن مون کي اشارو ڪيو هڪ مڪمل گٽ مخزن سان گڏ هڪ لڳائڻ واري پائپ لائن ۽ هر شي سان، سڀ ڪجهه انهي جي لاءِ جيڪي ٽيرافارم ڪوڊ جون غريب 4 لائينون ڪري سگهن ٿيون.

اھو بھتر بھتر سڃاڻي ٿو

پڪ ڪريو ته حقيقتون اميدن سان ملن ٿيون.

وهڪري جي چڪاس ڪوڊ جي خصوصيت جي طور تي هڪ تمام طاقتور آپريشن آهي ڇو ته اها يقيني بڻائڻ ۾ مدد ڪري ٿي ته حقيقت اميدن سان ملي ٿي. اهو موجود آهي ٻنهي CloudFormation ۽ Terraform سان. پر جيئن پيداوار جي اسٽيڪ وڌي وئي، CloudFormation ۾ drift جي ڳولا وڌيڪ ۽ وڌيڪ غلط دريافتون پيدا ڪيون.

Terraform سان گڏ توهان وٽ وڌيڪ ترقي يافته لائف سائيڪل ٿلها آهن drift جي ڳولا لاءِ. مثال طور، توھان داخل ڪريو حڪم تبديلين کي نظرانداز ڪريو سڌي طرح ECS ٽاسڪ جي تعريف ۾ جيڪڏهن توهان ڪنهن مخصوص ٽاسڪ جي تعريف ۾ تبديلين کي نظر انداز ڪرڻ چاهيو ٿا بغير توهان جي پوري ECS ڊيپلائيمينٽ ۾ تبديلين کي نظرانداز ڪرڻ.

CDK ۽ CloudFormation جو مستقبل

CloudFormation وڏي، ڪراس-انفراسٽرڪچر اسڪيل تي منظم ڪرڻ ڏکيو آهي. انهن مان ڪيتريون ئي مشڪلاتون سڃاتل آهن ۽ اوزار جي ضرورت آهي شين وانگر aws-cdk، ڪوڊ ۾ ڪلائوڊ انفراسٽرڪچر جي وضاحت ڪرڻ ۽ ان کي AWS CloudFormation ذريعي هلائڻ لاءِ هڪ فريم ورڪ. اهو ڏسڻ لاءِ دلچسپ هوندو ته مستقبل aws-cdk لاءِ ڇا رکي ٿو، پر اهو ڏکيو وقت هوندو Terraform جي ٻين طاقتن سان مقابلو ڪرڻ؛ CloudFormation کي اپڊيٽ ڪرڻ لاءِ، عالمي تبديلين جي ضرورت پوندي.

ته جيئن Terraform مايوس نه ٿئي

هي آهي "انفراسٽرڪچر هڪ ڪوڊ جي طور تي"، ۽ نه "ٽيڪسٽ جي طور تي".

Terraform بابت منهنجو پهريون تاثر تمام خراب هو. مان سمجهان ٿو ته مان صرف طريقي سان سمجهي نه سگهيو آهيان. تقريبن سڀئي انجنيئر غير ارادي طور تي ان کي هڪ ٽيڪسٽ فارميٽ طور سمجهندا آهن جنهن کي گهربل انفراسٽرڪچر ۾ تبديل ڪرڻ جي ضرورت آهي. هن طريقي سان نه ڪريو.

سٺي سافٽ ويئر ڊولپمينٽ جا اصول به Terraform تي لاڳو ٿين ٿا.

مون ڏٺو آهي ته ڪيترائي طريقا اختيار ڪيا ويا آهن سٺو ڪوڊ ٺاهڻ لاءِ جن کي Terraform ۾ نظرانداز ڪيو پيو وڃي. توهان هڪ سٺو پروگرامر ٿيڻ لاء سالن تائين اڀياس ڪيو آهي. هن تجربي کي ڇڏي نه ڏيو ڇو ته توهان Terraform سان ڪم ڪري رهيا آهيو. سٺي سافٽ ويئر ڊولپمينٽ جا اصول Terraform تي لاڳو ٿين ٿا.

ڪوڊ ڪيئن دستاويز نه ٿو ڪري سگهجي؟

مون ڏٺو آهي وڏو Terraform اسٽيڪ بلڪل بغير ڪنهن دستاويز سان. توهان صفحن ۾ ڪوڊ ڪيئن لکي سگهو ٿا - بلڪل بغير دستاويزن سان؟ دستاويز شامل ڪريو جيڪو وضاحت ڪري ٿو توهان جي ڪوڊ Terraform (لفظ "ڪوڊ" تي زور)، ڇو هي حصو ايترو اهم آهي، ۽ توهان ڇا ڪندا آهيو.

اسان ڪئين خدمتون ترتيب ڏئي سگهون ٿا جيڪي هڪ ڀيرو هڪ وڏي مکيه () فنڪشن هئي؟

مون ڏٺو آهي تمام پيچيده Terraform اسٽيڪ هڪ واحد ماڊل طور پيش ڪيل. اسان سافٽ ويئر کي هن طريقي سان ڇو نٿا ترتيب ڏيو؟ اسان وڏن ڪمن کي ننڍن ۾ ڇو ورهايون ٿا؟ ساڳيا جواب Terraform تي لاڳو ٿين ٿا. جيڪڏهن توهان جو ماڊل تمام وڏو آهي، توهان کي ان کي ٽوڙڻ جي ضرورت آهي ننڍن ماڊلز ۾.

ڇا توهان جي ڪمپني لائبريريون استعمال نه ڪندي آهي؟

مون ڏٺو آهي ته ڪيئن انجنيئر، Terraform استعمال ڪندي هڪ نئين پروجيڪٽ ٺاهي، بيوقوفيءَ سان ٻين پروجيڪٽن مان وڏي پئماني تي ڪاپي پيسٽ ڪيو، ۽ پوءِ انهن سان ٽينڪر ڪيو جيستائين اهو ڪم شروع نه ٿيو. ڇا توھان پنھنجي ڪمپني ۾ "جنگي" ڪوڊ سان ھن طرح ڪم ڪندا؟ اسان صرف لائبريريون استعمال نٿا ڪريون. ها، ضروري ناهي ته هر شيءِ لائبريري هجي، پر اصولي طور تي مشترڪه لائبريرين کان سواءِ اسان ڪٿي آهيون؟!

ڇا توهان PEP8 يا gofmt استعمال نٿا ڪري رهيا آهيو؟

اڪثر ٻولين ۾ معياري، قبول ٿيل فارميٽنگ اسڪيم آهي. پٿون ۾ هي آهي PEP8. Go - gofmt ۾. Terraform جي پنهنجي آهي: terraform fmt. توهان جي صحت لاء ان جو مزو وٺو!

ڇا توھان جاوا اسڪرپٽ کي ڄاڻڻ کان سواءِ React استعمال ڪندا؟

Terraform ماڊلز توهان جي ٺاهيل پيچيده انفراسٽرڪچر جو ڪجهه حصو آسان ڪري سگهن ٿا، پر هن جو مطلب اهو ناهي ته توهان ان سان هرگز ٽِڪر نٿا ڪري سگهو. وسيلن کي سمجھڻ کان سواءِ Terraform صحيح طريقي سان استعمال ڪرڻ چاھيو ٿا؟ توهان برباد ٿي ويا آهيو: وقت گذري ويندو، ۽ توهان ڪڏهن به ٽرافارم کي ماسٽر نه ڪندا.

ڇا توهان سنگلٽن يا انحصار انجيڪشن سان ڪوڊنگ ڪري رهيا آهيو؟

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

ڇا توهان جون لائبريريون ڏهه شيون سٺيون آهن يا هڪ شيء عظيم؟

لائبريريون جيڪي بهترين ڪم ڪن ٿيون اهي آهن جيڪي هڪ ڪم تي ڌيان ڏين ٿيون جيڪي اهي تمام سٺو ڪن ٿيون. وڏن Terraform ماڊل لکڻ جي بدران جيڪي هڪ ئي وقت ۾ سڀ ڪجهه ڪرڻ جي ڪوشش ڪندا آهن، انهن جا حصا ٺاهيو جيڪي هڪ ڪم سٺو ڪن. ۽ پوء انهن کي گڏ ڪريو جيئن ضرورت هجي.

پسمانده مطابقت کان سواءِ لائبريرين ۾ تبديليون ڪيئن ڪيون؟

هڪ عام Terraform ماڊل، هڪ باقاعده لائبريري وانگر، ڪنهن به طريقي سان استعمال ڪندڙن کي تبديلين جي ڳالهه ٻولهه ڪرڻ جي ضرورت آهي بغير پوئتي مطابقت جي. اهو پريشان ڪندڙ آهي جڏهن اهي تبديليون لائبريرين ۾ ٿينديون آهن، ۽ اهو صرف ايترو ئي پريشان ڪندڙ آهي جڏهن غير پسمانده-مطابقت رکندڙ تبديليون Terraform ماڊلز ۾ ڪيون وينديون آهن. اهو استعمال ڪرڻ جي سفارش ڪئي وئي آهي git tags ۽ semver جڏهن Terraform ماڊل استعمال ڪندي.

ڇا توھان جي پيداوار جي خدمت توھان جي ليپ ٽاپ تي ھلندي آھي يا ڊيٽا سينٽر ۾؟

Hashicorp جهڙوڪ اوزار آهن terraform بادل توهان جي terraform کي هلائڻ لاء. اهي مرڪزي خدمتون انهن کي منظم ڪرڻ، آڊٽ ڪرڻ، ۽ ٽيرافارم تبديلين کي منظور ڪرڻ آسان بڻائي ٿي.

ڇا توهان ٽيسٽ نٿا لکو؟

انجنيئر تسليم ڪن ٿا ته ڪوڊ کي جانچڻ جي ضرورت آهي، پر اهي پاڻ اڪثر ڪري ٽيسٽ جي باري ۾ وساريندا آهن جڏهن Terraform سان ڪم ڪري رهيا آهن. انفراسٹرڪچر لاء، هي غدار لمحن سان ڀريل آهي. منهنجو مشورو آهي ”ٽيسٽ“ يا ”مثال ٺاهيو“ اسٽيڪ کي استعمال ڪندي ماڊلز جيڪي CI/CD دوران جاچ لاءِ صحيح طور تي ترتيب ڏئي سگهجن ٿيون.

Terraform ۽ microservices

microservices ڪمپنين جي زندگي ۽ موت جو دارومدار رفتار، جدت، ۽ نئين microservice workstacks جي خلل تي آهي.

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

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

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