กำไร:
- ความสามารถในการแยกแยะว่าปัญญาประดิษฐ์ของห่วงโซ่ DevOps (ไปป์ไลน์ การกำหนดค่า สคริปต์ บันทึก) ตรงไหนช่วยประหยัดเวลาแบบเรียลไทม์ และการตัดสินใจที่ส่งผลกระทบต่อการผลิตจะเป็นหน้าที่ของมนุษย์ ขึ้นอยู่กับระดับความเสี่ยงของงาน
- ความสามารถในการใช้ระเบียบวินัยที่ตรวจสอบเอาต์พุต AI แต่ละรายการผ่านขั้นตอนการเชื่อมต่อเอาต์พุตกับต้นทาง รันเอาต์พุตให้แห้ง และส่งผ่านตัวกรองระบบ
- ความสามารถในการมีนิสัยไม่วางความลับลงในคำขอ ปิดบัง และทำงานเพื่อวัตถุประสงค์ในการป้องกันเฉพาะในระบบที่ได้รับอนุญาตเท่านั้น
คืนหนึ่งเวลา 03:14 น. โทรศัพท์ของคุณดังขึ้น บริการชำระเงินหยุดทำงาน เงินและชื่อเสียงสูญเสียไปทุกนาที วันหนึ่ง คำสั่งที่ไม่ถูกต้องเพียงคำสั่งเดียวจะรีบูตเซิร์ฟเวอร์นับพันเครื่อง นี่คือโลกของมืออาชีพ DevOps — ความรับผิดชอบต่อไปป์ไลน์ ระบบอัตโนมัติ และการโทรที่ซอฟต์แวร์ส่งผ่านจากที่เก็บโค้ด (ซึ่งเป็นที่จัดเก็บแหล่งที่มาของซอฟต์แวร์) จนกระทั่งถึงมือลูกค้า DevOps คือการผสมผสานระหว่างคำว่า "การพัฒนา" และ "การดำเนินงาน" ซึ่งเป็นวัฒนธรรมและชุดแนวทางปฏิบัติที่นำการพัฒนาซอฟต์แวร์มารวมกันเป็นขั้นตอนเดียวที่รวดเร็วและเชื่อถือได้ แต่ละขั้นตอนของโฟลว์นี้จะสร้างคำสั่ง ไฟล์การกำหนดค่า และสคริปต์ ปัญญาประดิษฐ์ (AI - ซอฟต์แวร์ที่แยกรูปแบบจากข้อมูลในอดีตและสร้างข้อความ โค้ด และการคาดคะเน) ช่วยให้คุณประหยัดเวลาได้มากกับข้อความที่มีมากมายขนาดนี้
แต่จุดเริ่มต้นของโมดูลนี้ชัดเจน: AI เป็นตัวช่วย ตัวสร้างแบบร่าง และเครื่องมือสนับสนุนการตัดสินใจ คุณเป็นผู้รับผิดชอบในการตัดสินใจเลือกสิ่งที่จะเข้าสู่สภาพแวดล้อมสด (การผลิต ระบบที่ลูกค้าจริงใช้) เวลาและปุ่มใดที่จะกดปุ่มกลางดึก ใน DevOps ค่าใช้จ่ายของจุดบกพร่องไม่ใช่นาที แต่หมายถึงเวลาหยุดทำงาน ข้อมูลสูญหาย และการละเมิดความปลอดภัย นั่นเป็นเหตุผลว่าทำไมในหน่วยแรกนี้ เราจะมุ่งเน้นไปที่วินัย ไม่ใช่เครื่องมือ
AI มีประโยชน์ตรงไหนใน DevOps chain?
มาแบ่งงาน DevOps ออกเป็นสองกลุ่มใหญ่กัน คลัสเตอร์แรก: งานซ้ำ ข้อความ และโครงสร้าง การเขียนคำอธิบาย CI/CD (การผสานรวมอย่างต่อเนื่อง / การจัดส่งแบบต่อเนื่อง - ไปป์ไลน์ที่ทดสอบและเผยแพร่โค้ดโดยอัตโนมัติ) การร่าง Dockerfile (ไฟล์สูตรที่รวมแอปพลิเคชันลงในคอนเทนเนอร์) อธิบายบล็อก Terraform ที่ซับซ้อน (เครื่องมือที่กำหนดโครงสร้างพื้นฐานเป็นโค้ด) การสรุปล็อกสแต็ก (บันทึกเหตุการณ์ที่สร้างโดยระบบ) และการตั้งค่าสถานะความผิดปกติ การร่างสคริปต์ทุบตี ในงานเหล่านี้ AI จะลดนาทีเหลือวินาทีและไม่เหนื่อย
กลุ่มที่สอง: การตัดสินใจที่ส่งผลให้เกิดการหยุดชะงัก เงิน หรือความปลอดภัย ไม่ว่าการเผยแพร่จะไปสู่ผลิตภัณฑ์หรือไม่ บริการใดที่จะเริ่มใหม่ตอนกลางดึก วิธีจัดเก็บความลับ ทรัพยากรใดจะถูกปิดโดยการลดต้นทุน การตัดสินใจเหล่านี้จำเป็นต้องมีบริบท ความรู้ของระบบ และความรับผิดชอบ ที่นี่ AI ทำให้มองเห็นตัวเลือกและความเสี่ยง แต่คุณกดปุ่ม “นำไปใช้”
มาอธิบายความแตกต่างกันในประโยคเดียว: AI มีความเชี่ยวชาญในคำถาม "การกำหนดค่านี้ทำอะไรและจะเขียนอย่างไร"; การตัดสินใจเป็นของคุณเมื่อมีคำถาม เช่น "ฉันควรใช้สิ่งนี้กับผลิตภัณฑ์หรือไม่ และใครจะเป็นผู้รับรองผลิตภัณฑ์"
เคล็ดลับ: ก่อนที่จะจ้างงานให้กับ AI ให้ถาม: “ฉันจะสูญเสียอะไรหากผลลัพธ์นี้ผิดพลาด” หากคำตอบคือ "ไม่กี่นาที" อย่าลังเลที่จะมอบหมาย หากคำตอบคือ "การหยุดทำงานของการผลิต ข้อมูลสูญหาย หรือรั่วไหล" ให้ AI จัดทำร่าง และคุณตรวจสอบการตัดสินใจและการดำเนินการ
ทีละขั้นตอน: ธุรกิจ DevOps ที่ขับเคลื่อนด้วย AI ทำงานอย่างไร
- รวบรวมบริบท คลาวด์ใด (AWS, Azure, GCP) เวอร์ชันเครื่องมือใด มีข้อจำกัดอะไรบ้าง หากคุณให้บริบทที่ AI ไม่สมบูรณ์ คุณจะได้รับผลลัพธ์ที่ไม่สมบูรณ์และเป็นอันตราย
- กำหนดงานที่ชัดเจน ไม่ใช่ "เขียนไปป์ไลน์"; พูดว่า "ด้วย GitHub Actions ให้เขียนเวิร์กโฟลว์ในสาขาหลักที่ทำงานแบบพุช รันการทดสอบ สร้างอิมเมจ Docker แต่ไม่ได้ปรับใช้"
- ผลิตร่าง ให้ AI เขียนเวอร์ชั่นแรก
- ตรวจสอบ. ตรวจสอบไวยากรณ์ ดูว่าข้อมูลที่เป็นความลับรั่วไหลหรือไม่ ทดสอบด้วยการทดลองเรียกใช้ (โหมดที่แสดงให้แอปพลิเคชันเห็นว่าต้องทำอย่างไร)
- ลองในแซนด์บ็อกซ์ อย่าลองครั้งแรกในผลิตภัณฑ์ ทำงานในสภาพแวดล้อมการทดสอบ/การแสดงละคร
- ค่อยๆทาและติดตาม ทำให้ใช้งานได้จริงโดยการตรวจสอบตัวชี้วัดและบันทึก
วินัยในการตรวจสอบ: สามขั้นตอน
AI พูดได้อย่างคล่องแคล่วและมั่นใจ นั่นไม่ได้หมายความว่ามันเป็นเรื่องจริง AI ทำให้เกิดภาพหลอนเป็นครั้งคราว โดยสร้างธงคำสั่งที่ไม่มีอยู่จริง ชื่อบริการคลาวด์ หรือคีย์การกำหนดค่าตามความเป็นจริง ใน DevOps ธงปลอม --force สามารถลบข้อมูลได้ ในขณะที่สิทธิ์ IAM (การจัดการข้อมูลประจำตัวและการเข้าถึง) ปลอมจะสร้างช่องโหว่ด้านความปลอดภัย การสะท้อนกลับ:
- เชื่อมต่อกับแหล่งที่มา ทุกคำสั่งและแฟล็กที่ AI มอบให้มีอยู่ในเอกสารทางการจริงหรือ? ถาม "บอกฉันว่าธงนี้มีเวอร์ชันใดและชื่อในเอกสารอย่างเป็นทางการ"; ถ้าไม่มั่นใจก็อย่าไปเชื่อครับ
- วิ่งให้แห้ง ดูว่าเกิดอะไรขึ้นโดยไม่ต้องนำไปใช้กับม็อดจริงๆ เช่น terraform plan, kubectl --dry-run, --check
- ผ่านตัวกรองของระบบ ผลลัพธ์ตรงกับสถาปัตยกรรม นโยบายความปลอดภัย และชื่อทรัพยากรที่มีอยู่หรือไม่ ความรู้โดเมนของคุณคือตัวกรองขั้นสุดท้าย
ข้อควรสนใจ: "AI เขียนอย่างนั้น" ไม่ใช่เหตุผล ในกรณีที่ผลิตภัณฑ์หยุดชะงัก ความรับผิดชอบไม่ใช่ของ AI แต่เป็นของบุคคลที่รันคำสั่งนั้นโดยไม่ได้ตรวจสอบ คำสั่ง AI ที่ไม่ได้รับการยืนยันนั้นมีความเสี่ยงพอๆ กับคำสั่ง rm -rf ที่ไม่ได้ถูกอ่าน
ความปลอดภัยและความลับ: ไม่เคยรั่วไหล
กฎความเป็นส่วนตัวที่สำคัญที่สุดใน DevOps นั้นเกี่ยวกับความลับ ความลับ; เป็นข้อมูลที่เป็นความลับ เช่น รหัสผ่าน, คีย์ API, สตริงการเชื่อมต่อฐานข้อมูล, ใบรับรองส่วนตัว ซึ่งสามารถเปิดทั้งระบบของคุณได้หากถูกบุกรุก อย่าวางความลับที่แท้จริงใดๆ ลงในพรอมต์ AI หากบล็อกของโค้ดมีคีย์การเข้าถึง AWS จริง เนื้อหาของไฟล์ .env หรือรหัสผ่านฐานข้อมูลที่ใช้งานจริง ให้มาสก์สิ่งเหล่านี้ด้วยตัวยึดตำแหน่ง เช่น <AWS_ACCESS_KEY> แทน AKIA... ก่อนที่จะมอบให้กับ AI
ตรวจสอบโค้ดที่ AI สร้างขึ้นด้วย: บางครั้ง AI จะสร้างตัวอย่างที่ฮาร์ดโค้ดความลับลงในโค้ดโดยตรงเพื่อความสะดวก นี่เป็นช่องโหว่ด้านความปลอดภัย ในความเป็นจริง ความลับจะถูกเก็บไว้ใน Secret Vault (Vault, AWS Secrets Manager, Azure Key Vault) และแทรกเป็นตัวแปรสภาพแวดล้อม ณ รันไทม์
ข้อจำกัดทางจริยธรรมและกฎหมายอีกประการหนึ่งในเรื่องนี้: การใช้เพื่อการป้องกัน ใช้ AI เพื่อทำให้ระบบของคุณแข็งแกร่งขึ้น สแกนหาช่องโหว่ และแยกร่องรอยการโจมตีออกจากบันทึก การเข้าถึงระบบของผู้อื่นโดยไม่ได้รับอนุญาต การสแกนโดยไม่ได้รับอนุญาต หรือการสร้างเครื่องมือโจมตีนั้นผิดกฎหมายและอยู่นอกขอบเขตของแพลตฟอร์มนี้ ทำงานในระบบที่คุณมีอำนาจและได้รับอนุญาตเป็นลายลักษณ์อักษรผ่านสัญญาเสมอ
ข้อมูลใดจะเข้าสู่ยานพาหนะคันใด
ชนิดข้อมูล
ตัวอย่าง
ยานพาหนะที่เหมาะสม
เปิดข้อมูล
เอกสารอย่างเป็นทางการ โค้ดโอเพ่นซอร์ส
รถทุกคัน
ข้อมูลภายใน (ไม่เป็นความลับ)
แผนภาพสถาปัตยกรรมทั่วไป ไปป์ไลน์ทั่วไป
รถที่ได้รับการรับรองจากสถาบัน
เป็นความลับ/ละเอียดอ่อน
ความลับ, IP ผลิตภัณฑ์/โทโพโลยี, ข้อมูลลูกค้า
เฉพาะยานพาหนะที่ทำสัญญาโดยสถาบันซึ่งข้อมูลไม่ได้ไปฝึกอบรม โดยการกำบัง
มินิเคสสามอัน
กรณีที่ 1 — เวลาได้มาถูกที่แล้ว วิศวกร DevOps ใช้เวลา 6 ชั่วโมงในการย้ายไปป์ไลน์ Jenkins 300 บรรทัดเก่าไปยัง GitHub Actions เขาลดเวลางานลงเหลือ 90 นาที โดยให้ AI อธิบายทีละขั้นตอนและสร้างร่างขึ้นมา เขาใช้เวลาที่บันทึกไว้ในการตรวจสอบแต่ละขั้นตอนที่ AI สร้างขึ้นในการแสดงละครทีละขั้นตอน AI รับการแปลเชิงกลไก การตรวจสอบยังคงอยู่กับมนุษย์
กรณีที่ 2 — การยืนยันช่วยป้องกันภัยพิบัติ ทีมงานขอให้ AI จัดทำสคริปต์ล้างข้อมูล Terraform AI ให้รหัสได้คล่อง แต่เมื่อวิศวกรรันแผน Terraform เขาค้นพบว่าสคริปต์วางแผนที่จะลบฐานข้อมูลที่ใช้งานจริงที่ใช้งานอยู่ด้วย - AI พิมพ์ตัวกรองทรัพยากรผิด การทำงานแบบแห้งช่วยป้องกันข้อมูลสูญหายได้หลายชั่วโมง
กรณีที่ 3 — กลับมาจากการรั่วไหลของความลับ ในขณะที่ถามว่า "เหตุใดจึงเกิดข้อผิดพลาดในการปรับใช้" เด็กฝึกงานได้วางไฟล์ .env ทั้งหมดลงในเครื่องมือสาธารณะโดยมีรหัสผ่านฐานข้อมูลจริงอยู่ข้างใน วิศวกรอาวุโสได้หมุนเวียนและสร้างกุญแจขึ้นมาใหม่ทันที วิธีที่ถูกต้องคือการปกปิดรหัสผ่านด้วย <DB_PASSWORD> และแชร์เฉพาะข้อความแสดงข้อผิดพลาด
เทมเพลตที่สามารถคัดลอกได้สี่แบบ
1) การประเมินความเหมาะสมในการทำงาน:
บทบาทของคุณ: ที่ปรึกษาอาวุโส DevOps/SRE ฉันจะอธิบายบทบาทให้คุณ บอกฉัน (1) ว่านี่เป็นงานร่าง/วิเคราะห์ที่สามารถมอบหมายให้กับ AI ได้อย่างปลอดภัย หรือเป็นการตัดสินใจที่สำคัญซึ่งส่งผลกระทบต่อผลิตภัณฑ์ (2) บอกผลลัพธ์ที่เลวร้ายที่สุดหากเกิดข้อผิดพลาด (3) บอกขั้นตอนการตรวจสอบที่ต้องทำก่อนนำไปใช้ งาน: [ที่นี่]
2) การให้บริบทที่ปลอดภัย (การปิดบังความลับ):
วิเคราะห์ข้อผิดพลาดด้านล่าง ฉันปกปิดความลับทั้งหมดด้วย <PLACEHOLDER>; คุณยังแนะนำว่าอย่าสร้างความลับที่แท้จริงในโซลูชัน ใช้ตัวยึดตำแหน่งและฝังความลับในโค้ด อ่านจากห้องนิรภัย ข้อผิดพลาด/บันทึก: [เนื้อหาที่ถูกปกปิด]
3) การตรวจสอบคำสั่ง:
อธิบายคำสั่งนี้ให้ฉันฟัง: จดสิ่งที่แต่ละแฟล็กทำ เวอร์ชันของเครื่องมือที่ใช้ และผลข้างเคียงที่อันตรายที่สุด สุดท้ายนี้ให้ทำรายการตรวจสอบ 3 รายการก่อนที่จะรันสิ่งนี้ในผลิตภัณฑ์ คำสั่ง: [ที่นี่]
4) แบบสอบถามการเรียนรู้/แนวคิด:
ฉัน [แนวคิด: เช่น อธิบายแนวคิดของ [การปรับใช้สีน้ำเงิน-เขียว] ราวกับว่าคุณกำลังอธิบายให้วิศวกร DevOps ฟัง: มันทำอะไร เมื่อใดควรใช้ เมื่อใดที่จะไม่ใช้งาน มีข้อผิดพลาดทั่วไป 2 ข้อ กระชับและเป็นรูปธรรม
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
จุดอ่อน: "เขียนสคริปต์ปรับใช้ให้ฉัน"
สรุป: ยังไม่ชัดเจนว่าคลาวด์ใด เครื่องมือใด สภาพแวดล้อมใด AI สร้างสคริปต์ทั่วไปที่อาจไม่ใช่ผลิตภัณฑ์ซึ่งฝังความลับไว้ในโค้ด
แข็งแกร่ง: "เขียนร่างของสคริปต์ทุบตีที่ใช้กับ AWS ECS (Elastic Container Service) ภูมิภาคคือ eu-central-1 อิมเมจมาจาก ECR ไม่เคยฝังความลับในโค้ด โปรดอ่านจาก AWS Secrets Manager หากมีข้อผิดพลาดในแต่ละขั้นตอน ให้หยุด (ตั้งค่า -euo pipefail) เขียนขั้นตอนการตรวจสอบทั้ง 3 ขั้นตอนก่อนที่จะรันสคริปต์ใน prod"
ความแตกต่าง: ข้อความแจ้งที่สองจะให้คลาวด์ เครื่องมือ สภาพแวดล้อม กฎความปลอดภัย และความคาดหวังในการตรวจสอบ — ผลลัพธ์มีประโยชน์โดยตรงและปลอดภัย
ข้อผิดพลาดทั่วไป
- วางความลับที่แท้จริงลงในพรอมต์ ข้อผิดพลาดที่พบบ่อยและอันตรายที่สุด สวมหน้ากากเสมอ
- พรอมต์แบบไม่มีบริบท หากไม่มีการระบุคลาวด์ เวอร์ชัน สภาพแวดล้อม เอาต์พุตที่ต้องการมักจะเป็นเวอร์ชันที่ไม่ถูกต้องหรือสถาปัตยกรรมที่ไม่ถูกต้อง
- ข้ามการวิ่งแบบแห้ง การนำไปใช้โดยไม่ต้องวางแผน/--dry-run เป็นทางลัดที่แพงที่สุดใน DevOps
- ทดลองครั้งแรกในผลิตภัณฑ์ ควรเรียกใช้เอาต์พุต AI ใหม่ทุกรายการในการทดสอบ/การแสดงละครก่อน
- การมอบหมายความรับผิดชอบด้วย “AI กล่าว” ความรับผิดชอบยังคงอยู่กับวิศวกรผู้ดำเนินการเสมอ
- เชื่อถือธงประสาทหลอน การดำเนินการแฟล็กคำสั่งที่ไม่มีอยู่โดยไม่มีแบบสอบถาม
โดยสรุป
DevOps และคลาวด์ AI; เป็นผู้ช่วยที่มอบความเร็วที่ยอดเยี่ยมในงานที่ใช้ข้อความจำนวนมาก เช่น ไปป์ไลน์ การกำหนดค่า สคริปต์ และบันทึก แต่ความรับผิดชอบในการตัดสินใจที่ส่งผลต่อผลิตภัณฑ์ การจัดการความลับ และการดำเนินการขั้นสุดท้ายยังคงเป็นหน้าที่ของวิศวกรที่มีความสามารถ การตรวจสอบความถูกต้องสามขั้นตอน (เชื่อมต่อกับแหล่งที่มา เรียกใช้งาน ผ่านตัวกรองระบบ) ไม่เปิดเผยความลับ และการทำงานเพื่อวัตถุประสงค์ในการป้องกันเฉพาะบนระบบที่ได้รับอนุญาตเท่านั้นเป็นหลักการชี้นำของโมดูลนี้
งานสมัคร
เลือกงาน DevOps ล่าสุดจากงานของคุณเอง (หรือโครงการตัวอย่าง) (1) อธิบายงานนี้ให้ AI ทราบโดยใช้เทมเพลต “การประเมินความเหมาะสมของงาน” ด้านบน และอ่านการจัดหมวดหมู่ (2) หากมีความลับ ให้เตรียมข้อความบริบทโดยปิดบังไว้ (3) ตรวจสอบผลลัพธ์ของ AI ด้วยการตรวจสอบสามขั้นตอน และจดบันทึกสิ่งที่คุณแก้ไขในแต่ละขั้นตอนในหนึ่งประโยค
รายการตรวจสอบ
- [ ] ฉันจัดประเภทงานของฉันเป็น "งานที่มอบหมายได้" หรือ "การตัดสินใจที่สำคัญ"
- [ ] ฉันไม่ได้วางความลับที่แท้จริงใดๆ ลงในพรอมต์ ฉันปกปิดพวกเขาทั้งหมดด้วยตัวยึดตำแหน่ง
- [ ] ฉันเพิ่มบริบทในข้อความแจ้งเกี่ยวกับระบบคลาวด์ เวอร์ชันเครื่องมือ และสภาพแวดล้อม
- [ ] ฉันตรวจสอบเอาท์พุต AI ด้วยการทดลอง/วางแผนก่อนนำไปใช้
- [ ] ฉันพยายามครั้งแรกในสภาพแวดล้อมการทดสอบ/การแสดงละคร ไม่ใช่ในผลิตภัณฑ์
- [ ] ฉันทำงานเฉพาะกับระบบที่ฉันมีอำนาจเพื่อวัตถุประสงค์ในการป้องกันเท่านั้น