एकाइहरू
1. DevOps र Cloud AI को परिचय: भूमिका, सीमा, प्रमाणीकरण, सुरक्षा र रहस्यहरू 2. कृत्रिम बुद्धिमत्ताको साथ CI/CD पाइपलाइनहरू डिजाइन गर्दै: GitHub कार्यहरू र GitLab CI 3. कोडको रूपमा पूर्वाधार प्रबन्ध गर्नुहोस्: टेराफार्म र आईएसीसँग कृत्रिम बुद्धिमत्ता 4. कन्टेनराइजेशन: कृत्रिम बुद्धिमत्ताको साथ डकरफाइल र छवि अनुकूलन 5. Kubernetes: Manifest, Helm र AI-संचालित अर्केस्ट्रेशन 6. अनुगमन र अवलोकन योग्यता: मेट्रिक, लग, ट्रेस र अलार्म नियम 7. घटना व्यवस्थापन र पोस्टमार्टम: कृत्रिम बुद्धिमत्ताको साथ मूल कारण विश्लेषण 8. क्लाउड लागत अनुकूलन (FinOps): कृत्रिम बुद्धिमत्ताको साथ फोहोरको लागि शिकार 9. स्क्रिप्ट र स्वचालन जेनेरेसन: Bash, Python र PowerShell 10. सुरक्षा र गोप्य व्यवस्थापन: DevSecOps र कृत्रिम बुद्धिमत्ता 11. उत्पादन प्रमाणीकरण, रिलीज रणनीतिहरू र अन्त-देखि-अन्त एआई कार्यप्रवाह
एकाइ 3 / 11

कोडको रूपमा पूर्वाधार प्रबन्ध गर्नुहोस्: टेराफार्म र आईएसीसँग कृत्रिम बुद्धिमत्ता

लाभ:

  • IaC अवधारणा र Terraform को कार्य चक्र (इनिट, योजना, लागू, राज्य, मोड्युल) बुझ्ने क्षमता र कृत्रिम बुद्धिमत्ता सुरक्षित HCL ड्राफ्टहरू उत्पादन गर्दछ।
  • लागू गर्नु अघि योजनाको साथ प्रत्येक परिवर्तन जाँच गर्न र अप्रत्याशित नष्ट / प्रतिस्थापन लाइनहरू समात्ने क्षमता
  • कोड बाहिर गोप्य राख्ने सिद्धान्तहरू लागू गर्ने क्षमता, राज्य सुरक्षित राख्न, र IAM अनुमतिहरू न्यूनतम

विगतमा, सर्भर सेटअप क्लाउड प्यानल मार्फत क्लिक गर्ने कुरा थियो: भर्चुअल मेसिन सिर्जना गर्नुहोस्, नेटवर्क सेटअप गर्नुहोस्, सुरक्षा नियम थप्नुहोस्। यो विधि ढिलो, त्रुटि-प्रवण, र दोहोर्याउन नसकिने थियो - यो दोस्रो पटक समान वातावरण सेट अप गर्न लगभग असम्भव थियो। आज, पूर्वाधार कोडको रूपमा व्यवस्थित गरिएको छ। IaC (कोडको रूपमा पूर्वाधार) क्लाउड स्रोतहरू जस्तै सर्भरहरू, नेटवर्कहरू, र डाटाबेसहरू पाठ फाइलहरूमा म्यानुअल रूपमा वर्णन गर्ने दृष्टिकोण हो। यी फाइलहरू संस्करण नियन्त्रण (Git) मा बस्छन्; कसले के, कहिले, र के परिवर्तन गरेको देख्न सक्नुहुन्छ; तपाईं एउटै पूर्वाधार धेरै पटक सेट अप गर्न सक्नुहुन्छ, ठीक उस्तै तरिकामा, एक आदेशको साथ।

सबैभन्दा सामान्य IaC उपकरण Terraform हो। Terraform ले तपाईंले HCL (HashiCorp कन्फिगरेसन भाषा — Terraform कन्फिगरेसन भाषा) नामक पढ्न योग्य भाषामा लेख्नुभएको परिभाषाहरू लिन्छ, तिनीहरूलाई क्लाउड प्रदायकको (AWS, Azure, GCP) API मा अनुवाद गर्छ र स्रोतहरू सिर्जना गर्दछ। AI ले HCL लाई राम्ररी चिन्छ र छिट्टै जटिल ब्लकहरू उत्पादन गर्छ। तर IaC मा, गल्तीको लागत उच्च छ: एउटा गलत परिभाषाले सम्पूर्ण उत्पादन डाटाबेसलाई मेटाउन सक्छ। त्यसैले टेराफर्मको सुनौलो नियम भनेको हरेक परिवर्तनलाई कार्यान्वयन गर्नुअघि ‘योजना’सहित हेर्नु हो।

Terraform को रनटाइम

टेराफर्मले तीनवटा आधारभूत आदेशहरूसँग काम गर्दछ - एआई आउटपुट नियन्त्रण गर्नको लागि यी एक पूर्व शर्त हो भनेर जान्नु:

  • `terraform init`: परियोजना सुरु गर्छ, आवश्यक प्रदायक प्लगइनहरू डाउनलोड गर्छ।
  • `टेराफर्म प्लान`: हालको अवस्थालाई वांछित अवस्थासँग तुलना गर्छ र के थप्ने, के परिवर्तन गर्ने, के मेटाउने भनेर देखाउँछ। केही कार्यान्वयन गर्दैन । यो सबैभन्दा महत्वपूर्ण सुरक्षा कदम हो।
  • `terraform लागू`: वास्तवमा योजना लागू हुन्छ, स्रोतहरू सिर्जना/परिमार्जन गर्दै।

थप रूपमा, दुई अवधारणाहरू महत्त्वपूर्ण छन्। राज्य (स्टेट फाइल): यो फाइल हो जहाँ टेराफर्मले यसको व्यवस्थापन गर्ने स्रोतहरूको हालको अवस्था राख्छ; यो सामान्यतया टाढाको र बन्द गोदाममा भण्डारण गरिन्छ ताकि दुई व्यक्तिले एकै समयमा यसलाई परिवर्तन गर्न वा नष्ट गर्न सक्दैनन्। मोड्युल: पुन: प्रयोज्य कन्फिगरेसन प्याकेज; उदाहरणका लागि, तपाईंले धेरै परियोजनाहरूमा "नेटवर्क सेटअप गर्नुहोस्" मोड्युल प्रयोग गर्न सक्नुहुन्छ।

सुझाव: टेराफर्म आउटपुटमा सबैभन्दा खतरनाक चिन्ह प्लान आउटपुटमा लाइनहरू नष्ट वा -/+ (बदल्ने) हो। यसको मतलब स्रोत मेटिनेछ। यदि तपाईंले योजनामा ​​अप्रत्याशित विनाश देख्नुभयो भने, लागू नगर्नुहोस्, पहिले यो किन देखा पर्‍यो बुझ्नुहोस्।

चरणबद्ध रूपमा: AI सँग IaC लेख्दै

  1. वांछित पूर्वाधार स्पष्ट गर्नुहोस्। "एक VPC, दुई सबनेट, एक सुरक्षा समूह र eu-central-1 मा एक t3.micro EC2" जस्तै ठोस हुनुहोस्।
  2. प्रदायक र संस्करण निर्दिष्ट गर्नुहोस्। कुन क्लाउड, कुन Terraform र प्रदायक संस्करण? यदि तपाईंले संस्करण निर्दिष्ट गर्नुभएन भने, AI ले पुरानो/असंगत सिन्ट्याक्स फर्काउन सक्छ।
  3. HCL ड्राफ्ट उत्पादन गर्नुहोस्। चर र आउटपुटहरू पनि अनुरोध गर्नुहोस्।
  4. गोप्य बाहिर निकाल्नुहोस्। मानहरू जस्तै पासवर्ड र कुञ्जीहरू चर र गोप्य भल्टमा जानुपर्छ, कोडमा होइन।
  5. `init` + `योजना` चलाउनुहोस्। लाइन द्वारा योजना आउटपुट लाइन पढ्नुहोस्; अप्रत्याशित मेटाइहरूको लागि जाँच गर्नुहोस्।
  6. सानो सुरु गर्नुहोस्, बिस्तारै लागू गर्नुहोस्। यसलाई पहिले पृथक परीक्षण खाता/वातावरणमा लागू गर्नुहोस्।

सुरक्षा: IaC-विशिष्ट जोखिमहरू

IaC जति शक्तिशाली छ त्यति नै जोखिमपूर्ण पनि छ। तीन महत्वपूर्ण बुँदाहरू:

  1. राज्यको फाइलमा रहस्य छ। टेराफर्म स्टेटले कहिलेकाहीं सादा पाठमा डाटाबेस पासवर्डहरू जस्ता संवेदनशील मानहरू राख्छ। राज्यलाई सार्वजनिक भण्डारमा कहिल्यै नराख्नुहोस्; एन्क्रिप्टेड, प्रतिबन्धित-पहुँच रिमोट ब्याकइन्ड प्रयोग गर्नुहोस्।
  2. HCL मा गोप्य इम्बेड नगर्नुहोस्। पासवर्ड="prod123" जस्ता रेखाहरू स्थायी रूपमा Git इतिहासमा लेखिएका छन्। यसको सट्टा, चल प्रयोग गर्नुहोस् र वातावरण चर (TF_VAR_...) वा गोप्य भल्टबाट रनटाइममा मान दिनुहोस्।
  3. धेरै व्यापक IAM अनुमति। एआईले कहिलेकाहीं कार्य जस्तै ब्लकहरू उत्पादन गर्दछ: "*" (सबै कुरालाई अनुमति दिनुहोस्) "यसलाई काम गर्न"। यो एक जोखिम छ; अनुमतिलाई आवश्यक न्यूनतममा सीमित गर्नुहोस्।
ध्यान दिनुहोस्: एक पटक गोप्य Git इतिहासमा प्रवेश गरेपछि, यो विगतमा रहन्छ र तपाईंले फाइल मेटाए पनि सम्झौता गर्न सकिन्छ। यदि तपाइँ गल्तीले प्रतिबद्ध हुनुहुन्छ भने, तुरुन्तै रद्द गर्नुहोस् र गोप्य घुमाउनुहोस्; मेटाएर मात्र पुग्दैन।

जोखिमपूर्ण योजना संकेत तालिका

योजना प्रिन्टआउट

अर्थ

के गर्ने

+ सिर्जना गर्नुहोस्

नयाँ स्रोत थपिनेछ

सामान्यतया सुरक्षित, यद्यपि समीक्षा गर्नुहोस्

~ स्थानमा अद्यावधिक गर्नुहोस्

स्रोत साइट मा परिवर्तन हुनेछ

प्रभाव प्रमाणित गर्नुहोस् (के त्यहाँ आउटेज हुनेछ?)

-/+ प्रतिस्थापन

मेटिने र पुन: सिर्जना गरिनेछ

सावधानी: डाटा हानि हुन सक्छ

- नष्ट

श्रोत साधन नष्ट हुनेछ

रोक्नुहोस्: यदि तपाइँ यो आशा गर्नुहुन्न भने कहिल्यै आवेदन नगर्नुहोस्

तीन मिनी केसहरू

केस १ - ३ घण्टामा २ दिनको काम। एउटा टोलीले नयाँ परीक्षण वातावरण (VPC, सबनेट, RDS डाटाबेस, ECS क्लस्टर) सेटअप गर्न Terraform लेख्न गइरहेको थियो तर तिनीहरू भर्खरै HCL मा सरेका थिए। तिनीहरूले एआईमा वास्तुकला र संस्करणहरू वर्णन गरे र एक मोड्युलर खाका उत्पादन गरे। तिनीहरूले योजनाको साथ प्रत्येक मोड्युल प्रमाणित गरे र यसलाई 3 घण्टामा सञ्चालन गरे; यसले तिनीहरूलाई दुई दिन म्यानुअल परीक्षण र त्रुटि लिनेछ।

केस २ - योजनाले मेटाइयो। एक इन्जिनियरले एआई-उत्पन्न अपडेट कोड लागू नगरी योजना चलाए। आउटपुटमा उत्पादन डाटाबेसको लागि -/+ प्रतिस्थापन समावेश छ — एआईले प्रतिस्थापन गर्न नसकिने क्षेत्रलाई प्रतिस्थापन गर्ने प्रयास गर्‍यो, जसको मतलब डाटाबेस मेटाउने र पुन: सिर्जना गर्ने हो। इन्जिनियरले लागू गर्न रोक्यो र परिवर्तनलाई सुरक्षित विधिमा परिवर्तन गर्यो। योजना बनाउने बानीले विपत्तिबाट जोगाएको छ।

केस 3 - दफन गोप्य चुहावट। एक कनिष्ठ, YZ जारी db_password = "S3cret!" उसले लाईन जस्तो छ त्यस्तै प्रतिबद्ध र धक्का दियो। कोड समीक्षामा समातियो; पासवर्ड तुरुन्तै रद्द गरियो र परिवर्तन गरियो, मान एक चरमा सारियो र गोप्य भल्टबाट फिड गरियो। पाठ: HCL मा सादा पाठ गोप्य छैन।

चार प्रतिलिपि गर्न मिल्ने टेम्प्लेटहरू

1) पूर्वाधार मस्यौदा उत्पन्न गर्दै:

Terraform (संस्करण ~> 1.7) को साथ [क्लाउड: AWS] मा निम्न पूर्वाधारहरू लेख्नुहोस्: [स्रोत सूची]। क्षेत्र [X]। नियमहरू:- सबै संवेदनशील मानहरू चर बनाउनुहोस्, तिनीहरूलाई HCL मा इम्बेड नगर्नुहोस्।- फिक्स प्रदायक संस्करण (आवश्यक_प्रदायकहरू)।- IAM अनुमतिहरू न्यूनतम गर्नुहोस्, "*" प्रयोग नगर्नुहोस्।- आउटपुटको रूपमा [X, Y] फर्काउनुहोस्। मोड्युलर र स्पष्टीकरण सहित कोड दिनुहोस्।

2) योजना आउटपुट व्याख्या:

तलको 'टेराफर्म प्लान' आउटपुटको विश्लेषण गर्नुहोस्। मलाई सूचीबद्ध गर्नुहोस्: (1) कुन स्रोतहरू थपिएका/परिवर्तन गरिएका/मेटाइएका छन्, (2) डेटा हराउने वा अवरोधको जोखिममा पङ्क्तिहरू, (3) 3 प्रश्नहरू मैले आवेदन गर्नु अघि सोध्नु पर्छ। योजना: [आउटपुट]

3) सुरक्षाको लागि अवस्थित HCL जाँच गर्नुहोस्:

सुरक्षाको लागि निम्न टेराफर्म कोड जाँच गर्नुहोस्: एम्बेडेड गोप्य, अत्यधिक फराकिलो IAM अनुमति, खुला नेटवर्क नियम (०.०.०.०/०), एन्क्रिप्ट नगरिएको भण्डारण? प्रत्येक खोजलाई महत्व र सुधारको क्रममा लेख्नुहोस्। कोड: [HCL]

४) दोहोरिने कोडलाई मोड्युलमा रूपान्तरण गर्नुहोस्:

निम्न दोहोरिने टेराफर्म कोडलाई पुन: प्रयोज्य मोड्युलमा रूपान्तरण गर्नुहोस्: कुन मानहरू चर हुनुपर्छ, मोड्युल इन्टरफेस के हुनुपर्छ? उदाहरण प्रयोग पनि देखाउनुहोस्। कोड: [HCL]

कमजोर प्रम्प्ट / बलियो प्रम्प्ट

कमजोर: "टेराफार्मको साथ डाटाबेस सिर्जना गर्नुहोस्।"

नतिजा: स्पष्ट छैन कुन क्लाउड, कुन इन्जिन, कुन संस्करण, एन्क्रिप्टेड वा होइन; लिगेसी सिन्ट्याक्सको साथ, AI ले कोडमा पासवर्ड इम्बेड गर्ने सार्वजनिक रूपमा उपलब्ध उदाहरण प्रदान गर्न सक्छ।

बलियो: "Terraform ~> 1.7 सँग AWS मा RDS PostgreSQL 15 उदाहरण सिर्जना गर्नुहोस्। पासवर्ड चर बनाउनुहोस्, कोडमा इम्बेड नगर्नुहोस्। भण्डारण इन्क्रिप्ट गरिएको छ, निजी सबनेटबाट मात्र पहुँचयोग्य छ, सार्वजनिक होइन। प्रदायक संस्करण फिक्स गर्नुहोस्। आउटपुटको रूपमा अन्त्य बिन्दु फर्काउनुहोस्।"

भिन्नता: दोस्रो प्रम्प्टले इन्जिन, संस्करण, इन्क्रिप्सन, नेटवर्क अवरोध र गोप्य नियम दिन्छ — आउटपुट सुरक्षित छ र उत्पादनको नजिक छ।

सामान्य गल्तीहरू

  • 'योजना' नबनाई `लागू गर्न'। IaC मा सबैभन्दा महँगो गल्ती; सधैं पहिलो योजना।
  • एचसीएलमा एम्बेडिङ सीक्रेट। Git इतिहासमा स्थायी चुहावट सिर्जना गर्दछ।
  • राज्य असुरक्षित भण्डारण। एक एन्क्रिप्टेड, अनलक, सार्वजनिक राज्य एक आपदा हो।
  • संस्करण ठीक गर्दैन। संस्करण निर्दिष्ट नगरी प्रदायक प्रयोग गर्दा भविष्यमा अचानक विफलताहरू निम्त्याउनेछ।
  • *`कार्य: व्यापक अनुमति जस्तै ""`।** न्यूनतम विशेषाधिकारको सिद्धान्त उल्लङ्घन गर्दछ।
  • अप्रत्याशित 'नष्ट' लाई बेवास्ता गर्दै। प्रश्न नगरी योजनामा ​​​​मेटाउने लाइनहरू लागू गर्दै।

संक्षेपमा

IaC ले पूर्वाधारलाई दोहोर्याउन मिल्ने, संस्करण गर्न मिल्ने र अडिटेबल कोडमा परिणत गर्छ; सबै भन्दा साधारण उपकरण Terraform छ। AI ले द्रुत रूपमा HCL स्टबहरू उत्पादन गर्छ, तर तपाईंले संस्करण, क्लाउड-विशिष्ट विवरणहरू, र सुरक्षा नियमहरू प्रदान गर्नुपर्छ। Terraform मा अचम्मको नियम: एक योजना संग हरेक परिवर्तन हेर्न को लागी, अप्रत्याशित मेटाई को लागी क्वेरी गर्न को लागी, कोड देखि गोप्य राख्न को लागी र राज्य को सुरक्षित राख्न को लागी। योजना आउटपुटमा लाइनहरू नष्ट र प्रतिस्थापन गर्ने ठाउँहरू हुन् जुन धेरै ध्यानपूर्वक पढ्नुपर्छ।

आवेदन कार्य

माथिको "पूर्वाधार स्केच उत्पन्न गर्नुहोस्" टेम्प्लेट प्रयोग गरेर AI लाई सानो पूर्वाधार (जस्तै भण्डारण बाकेट र पहुँच नीति) उत्पन्न गराउनुहोस्। त्यसपछि: (१) कोडमा इम्बेड गरिएको गोप्य वा * अनुमतिहरूको लागि "भेटिting" टेम्प्लेट जाँच गर्नुहोस्; (२) यदि सम्भव छ भने, परीक्षण खातामा init + plan चलाउनुहोस् र "योजना व्याख्या" टेम्प्लेटको साथ योजना आउटपुट पढ्नुहोस्; (३) कुनै पनि अप्रत्याशित मेटाउने/परिवर्तनहरू नोट गर्नुहोस्।

चेकलिस्ट

  • [ ] मैले मेरो प्रम्प्टमा क्लाउड, टेराफर्म/प्रदायक संस्करण, र एन्क्रिप्शन/नेटवर्क अवरोधहरू थपेको छु।
  • [] कोडमा कुनै सादा पाठ गोप्य छैन; परिशुद्धता मान चर।
  • [ ] मैले IAM/अनुमतिहरूलाई न्यूनतम अनुमतिहरूमा संकुचित गरें, * मैले यसलाई प्रयोग गरिन।
  • [] मैले लागू गर्नु अघि योजना दौडें र लाइन द्वारा आउटपुट लाइन पढें।
  • योजनामा ​​कुनै अप्रत्याशित विनाश/प्रतिस्थापन भएको छैन भनी मैले प्रमाणित गरें।
  • [ ] म पक्का छु कि राज्य एक गुप्तिकरण, लक र प्रतिबन्धित ब्याकइन्डमा राखिएको छ।