กลับไปหน้าบทความ

อ่าน 4 นาที

โครงสร้างพื้นฐานในรูปแบบโค้ด

โครงสร้างพื้นฐานในรูปแบบโค้ด ( IaC ) คือกระบวนการจัดการและจัดสรร ทรัพยากร ศูนย์ข้อมูล คอมพิวเตอร์ ผ่านไฟล์คำจำกัดความที่เครื่องอ่านได้ แทนที่จะใช้ การกำหนด ค่าฮาร์ดแวร์ ทางกายภาพ...

โครงสร้างพื้นฐานในรูปแบบโค้ด

โครงสร้างพื้นฐานในรูปแบบโค้ด ( IaC ) คือกระบวนการจัดการและจัดสรรทรัพยากรศูนย์ข้อมูล คอมพิวเตอร์ ผ่านไฟล์คำจำกัดความที่เครื่องอ่านได้ แทนที่จะใช้ การกำหนด ค่าฮาร์ดแวร์ ทางกายภาพ หรือเครื่องมือการกำหนดค่าแบบโต้ตอบ[ 1 ]กล่าวคือ แทนที่จะต้องสร้างการกำหนดค่าด้วยตนเอง จะมีการกำหนดค่าที่ตั้งไว้ล่วงหน้าซึ่งสามารถนำไปใช้กับเครื่องได้[ 2 ]โครงสร้างพื้นฐานด้านไอทีที่จัดการโดยกระบวนการนี้รวมถึงอุปกรณ์ทางกายภาพ เช่นเซิร์ฟเวอร์แบบ bare-metalและเครื่องเสมือนและทรัพยากรการกำหนดค่าที่เกี่ยวข้อง คำจำกัดความอาจมีอยู่ใน ระบบ ควบคุมเวอร์ชันแทนที่จะเป็นกระบวนการด้วยตนเอง ไฟล์คำจำกัดความอาจใช้สคริปต์หรือคำจำกัดความแบบประกาศ แต่ IaC มักใช้แนวทางแบบประกาศ มากกว่า

ประวัติศาสตร์

แนวคิดการจัดการโครงสร้างพื้นฐานผ่านโค้ดเกิดขึ้นจากแนวทางการจัดการการกำหนดค่าในยุคแรก ในช่วงทศวรรษ 1990 เครื่องมือต่างๆ เช่นCFEngineซึ่งสร้างโดย Mark Burgess ในปี 1993 ได้นำเสนอแนวคิดในการอธิบายการกำหนดค่าระบบในภาษาเชิงประกาศแทนที่จะดำเนินการคำสั่งด้วยตนเอง ซึ่งเป็นการวางรากฐานทางปัญญาสำหรับ IaC [ 3 ]

ภาพรวม

IaC เกิดขึ้นเมื่อองค์กรต่างๆ เริ่มจัดการโครงสร้างพื้นฐานที่ใหญ่ขึ้นและซับซ้อนมากขึ้น โดยเฉพาะอย่างยิ่งกับการเติบโตของการประมวลผลแบบคลาวด์และความจำเป็นในการจัดสรรทรัพยากรอย่างสม่ำเสมอและในระดับที่ใหญ่ การจัดการการกำหนดค่าโครงสร้างพื้นฐานเหมือนกับซอฟต์แวร์ - การจัดเก็บไว้ในระบบควบคุมเวอร์ชัน การตรวจสอบ และการปรับใช้โดยอัตโนมัติ ช่วยให้ทีมลดข้อผิดพลาดด้วยตนเองและสร้างสภาพแวดล้อมซ้ำได้อย่างน่าเชื่อถือ ความสามารถในการจัดการโครงสร้างพื้นฐานเป็นโค้ดและใช้เครื่องมือเดียวกันกับโครงการซอฟต์แวร์อื่นๆ จะช่วยให้นักพัฒนาสามารถปรับใช้แอปพลิเคชันได้อย่างรวดเร็ว[ 4 ]

ข้อดี

คุณค่าของ IaC สามารถแบ่งออกเป็นสามประเภทที่วัดได้ ได้แก่ ต้นทุน ความเร็ว และความเสี่ยงการลดต้นทุนมีเป้าหมายเพื่อช่วยองค์กรไม่เพียงแต่ในด้านการเงินเท่านั้น แต่ยังรวมถึงด้านบุคลากรและความพยายามด้วย ซึ่งหมายความว่าการกำจัดส่วนประกอบด้วยตนเองจะช่วยให้องค์กรสามารถมุ่งเน้นความพยายามไปที่งานอื่นๆ ขององค์กรได้การทำงานอัตโนมัติของโครงสร้างพื้นฐานช่วยเพิ่มความเร็วผ่านการดำเนินการที่รวดเร็วขึ้นเมื่อกำหนดค่าโครงสร้างพื้นฐานของคุณ และให้การมองเห็นเพื่อช่วยให้ทีมอื่นๆ ทั่วทั้งองค์กรทำงานได้อย่างรวดเร็วและมีประสิทธิภาพมากขึ้น การทำงานอัตโนมัติช่วยลดความเสี่ยงที่เกี่ยวข้องกับข้อผิดพลาดของมนุษย์ เช่น การกำหนดค่าด้วยตนเองที่ไม่ถูกต้อง การกำจัดสิ่งนี้สามารถลดเวลาหยุดทำงานและเพิ่มความน่าเชื่อถือ ผลลัพธ์และคุณลักษณะเหล่านี้ช่วยให้องค์กรก้าวไปสู่การนำวัฒนธรรมDevOps มาใช้ ซึ่งเป็นการทำงานร่วมกันของการพัฒนาและการดำเนินงาน[ 5 ]

ประเภทของแนวทาง

โดยทั่วไปแล้ว การออกแบบโครงสร้างข้อมูลแบบอินเทอร์เฟส (IaC) มีสองแนวทางหลัก ได้แก่แนวทางเชิงประกาศ ( เชิงฟังก์ชัน ) และแนวทางเชิงคำสั่ง ( เชิงกระบวนการ ) ความแตกต่างระหว่างแนวทางเชิงประกาศและเชิงคำสั่งนั้นอยู่ที่ว่า“อะไร”กับ “ อย่างไร”เป็น หลักแนวทางการประกาศจะเน้นไปที่การกำหนดค่าเป้าหมายสุดท้ายที่ควรจะเป็นแนวทาง เชิงบังคับมุ่งเน้นไปที่วิธีการเปลี่ยนแปลงโครงสร้างพื้นฐาน เพื่อให้ตรงตามข้อกำหนดนี้ [ 6 ]แนวทางเชิงประกาศจะกำหนดสถานะที่ต้องการ และระบบจะดำเนินการตามสิ่งที่จำเป็นต้องเกิดขึ้นเพื่อให้บรรลุสถานะที่ต้องการนั้น แนวทางเชิงบังคับจะกำหนดคำสั่งเฉพาะที่ต้องดำเนินการตามลำดับที่เหมาะสมเพื่อให้ได้ผลลัพธ์ที่ต้องการ[ 7 ]

วิธีการ

IaC ช่วยให้องค์กรสามารถจัดการเซิร์ฟเวอร์และการกำหนดค่าต่างๆ โดยใช้โค้ดได้ มีสองวิธีในการใช้การกำหนดค่าเหล่านี้กับเซิร์ฟเวอร์ ได้แก่ วิธี ' push ' และ ' pull ' ในวิธี 'push' ระบบที่ควบคุมการกำหนดค่าจะส่งคำสั่งไปยังเซิร์ฟเวอร์โดยตรง ในวิธี 'pull' เซิร์ฟเวอร์จะดึงคำสั่งของตนเองจากระบบควบคุม[ 8 ]

เครื่องมือ

มีเครื่องมือมากมายที่ตอบสนองความสามารถในการทำงานอัตโนมัติของโครงสร้างพื้นฐานและใช้ IaC โดยทั่วไปแล้ว เฟรมเวิร์กหรือเครื่องมือใดๆ ที่ทำการเปลี่ยนแปลงหรือกำหนดค่าโครงสร้างพื้นฐานแบบประกาศหรือแบบบังคับตามแนวทางการเขียนโปรแกรมสามารถถือได้ว่าเป็น IaC [ 9 ]ตามธรรมเนียมแล้ว เครื่องมือการทำงานอัตโนมัติของเซิร์ฟเวอร์ (วงจรชีวิต) และ เครื่องมือ การจัดการการกำหนดค่าถูกใช้เพื่อให้บรรลุ IaC ปัจจุบันองค์กรต่างๆ ยังใช้เครื่องมือการทำงานอัตโนมัติของการกำหนดค่าอย่างต่อเนื่องหรือเฟรมเวิร์ก IaC แบบสแตนด์อโลน เช่น PowerShell DSC ของ Microsoft [ 10 ]หรือAWS CloudFormation [ 11 ]

การกำหนดค่าอัตโนมัติอย่างต่อเนื่อง

เครื่องมือ การกำหนดค่าอัตโนมัติอย่างต่อเนื่อง (CCA) ทั้งหมดสามารถคิดได้ว่าเป็นส่วนขยายของเฟรมเวิร์ก IaC แบบดั้งเดิม โดยใช้ประโยชน์จาก IaC ในการเปลี่ยนแปลง กำหนดค่า และทำให้โครงสร้างพื้นฐานเป็นไปโดยอัตโนมัติ และยังให้การมองเห็น ประสิทธิภาพ และความยืดหยุ่นในการจัดการโครงสร้างพื้นฐานอีกด้วย[ 12 ]คุณลักษณะเพิ่มเติมเหล่านี้ให้ความปลอดภัยและการปฏิบัติตามข้อกำหนดในระดับองค์กร

เนื้อหาชุมชน

เนื้อหาจากชุมชนเป็นปัจจัยสำคัญในการกำหนดคุณภาพของเครื่องมือ CCA แบบโอเพนซอร์ส ตามที่Gartner กล่าวไว้ คุณค่าของเครื่องมือ CCA นั้น "ขึ้นอยู่กับเนื้อหาและการสนับสนุนจากชุมชนผู้ใช้มากพอๆ กับความพร้อมเชิงพาณิชย์และประสิทธิภาพของเครื่องมืออัตโนมัติ" [ 12 ]ผู้จำหน่ายที่มีชื่อเสียง เช่นPuppetและChefได้สร้างชุมชนของตนเอง Chef มีChef Community Repositoryและ Puppet มีPuppetForge [ 13 ] ผู้จำหน่ายรายอื่นๆ อาศัยชุมชนที่อยู่ใกล้เคียงและใช้ประโยชน์จากเฟรมเวิร์ก IaC อื่นๆ เช่นPowerShell DSC [ 10 ]ผู้จำหน่ายรายใหม่กำลังเกิดขึ้นซึ่งไม่ได้ขับเคลื่อนด้วยเนื้อหา แต่ขับเคลื่อนด้วยโมเดล โดยมีระบบอัจฉริยะในผลิตภัณฑ์เพื่อส่งมอบเนื้อหา ระบบเชิงวัตถุแบบภาพเหล่านี้ทำงานได้ดีสำหรับนักพัฒนา แต่มีประโยชน์อย่างยิ่งสำหรับ DevOps และฝ่ายปฏิบัติการที่มุ่งเน้นการผลิต ซึ่งให้คุณค่ากับโมเดลมากกว่าการเขียนสคริปต์สำหรับเนื้อหา เนื่องจากสาขานี้ยังคงพัฒนาและเปลี่ยนแปลงอย่างต่อเนื่อง เนื้อหาที่สร้างขึ้นโดยชุมชนจะมีความสำคัญมากขึ้นเรื่อยๆ ต่อวิธีการใช้งานเครื่องมือ IaC เว้นแต่ว่าเครื่องมือเหล่านั้นจะเป็นแบบที่ขับเคลื่อนด้วยโมเดลและเชิงวัตถุ

เครื่องมือ CCA ที่โดดเด่น
เครื่องมือเผยแพร่โดยวิธีเข้าใกล้เขียนเป็นความคิดเห็น
CFEngineนอร์เทิร์นเทค(1993)ดึงการประกาศซี
หุ่นกระบอกหุ่นเชิด(2005)ผลัก ดึงประโยคบอกเล่าประโยคคำสั่งC++ , Clojureตั้งแต่เวอร์ชัน 4.0 เป็นต้นไป, Ruby
เชฟเชฟ(2009)ดึงประโยคบอกเล่า ประโยคคำสั่งทับทิม
กองเกลือซอลท์สแต็ค(2011)ผลัก ดึงประโยคบอกเล่า ประโยคคำสั่งไพธอน
Ansible , Ansible Towerหมวกแดง (2012)ผลัก ดึงประโยคบอกเล่า ประโยคคำสั่งไพธอน
เทอร์ราฟอร์มฮาชิคอร์ป (2014)ดันประโยคบอกเล่า ประโยคคำสั่งไป
นากอิเนโดะ(2015)ดันประโยคบอกเล่า ประโยคคำสั่งมุ่งเน้นที่ระบบ Windows
ปูลูมิปูลูมิ(2018)ดันประโยคบอกเล่า ประโยคคำสั่งไป
เปิดเต้าหู้มูลนิธิลินุกซ์และผู้มีส่วนร่วม(2023)ดันประโยคบอกเล่า ประโยคคำสั่งไปTerraform เวอร์ชันแยก

เครื่องมืออื่นๆ ได้แก่AWS CloudFormation , cdist , StackStorm , Jujuและ Step CI

ความสัมพันธ์

ความสัมพันธ์กับ DevOps

IaC อาจเป็นคุณลักษณะสำคัญที่ช่วยให้เกิดแนวปฏิบัติที่ดีที่สุดในDevOpsนักพัฒนาจะเข้ามามีส่วนร่วมมากขึ้นในการกำหนดค่า และทีมปฏิบัติการจะเข้ามามีส่วนร่วมในกระบวนการพัฒนาตั้งแต่เนิ่นๆ[ 14 ]เครื่องมือที่ใช้ IaC จะทำให้มองเห็นสถานะและการกำหนดค่าของเซิร์ฟเวอร์ และในที่สุดก็จะทำให้ผู้ใช้ภายในองค์กรมองเห็นได้ ซึ่งจะนำทีมต่างๆ มารวมกันเพื่อเพิ่มประสิทธิภาพสูงสุด[ 15 ]โดยทั่วไปแล้ว การทำงานอัตโนมัติมีเป้าหมายเพื่อลดความสับสนและข้อผิดพลาดที่เกิดขึ้นจากกระบวนการด้วยตนเอง และทำให้มีประสิทธิภาพและประสิทธิผลมากขึ้น ช่วยให้สามารถสร้างซอฟต์แวร์และแอปพลิเคชันที่ดีขึ้นด้วยความยืดหยุ่น ลดเวลาหยุดทำงาน และเป็นวิธีที่คุ้มค่าโดยรวมสำหรับบริษัท IaC มีจุดประสงค์เพื่อลดความซับซ้อนที่ทำลายประสิทธิภาพของการกำหนดค่าด้วยตนเอง การทำงานอัตโนมัติและการทำงานร่วมกันถือเป็นจุดสำคัญใน DevOps เครื่องมือการทำงานอัตโนมัติของโครงสร้างพื้นฐานมักถูกรวมไว้เป็นส่วนประกอบของชุดเครื่องมือ DevOps [ 16 ]

ความสัมพันธ์กับความปลอดภัย

รายงานภัยคุกคามบนคลาวด์ประจำปี 2020 ที่เผยแพร่โดย Unit 42 (หน่วยข่าวกรองภัยคุกคามของPalo Alto Networks ผู้ให้บริการด้านความปลอดภัยทางไซเบอร์ ) ระบุช่องโหว่ที่อาจเกิดขึ้นได้ประมาณ 200,000 รายการในเทมเพลตโครงสร้างพื้นฐานในรูปแบบโค้ด[ 17 ]

ดูเพิ่มเติม

  1. Wittig, Andreas; Wittig, Michael (2016). Amazon Web Services in Action . Manning Press. หน้า 93. ISBN 978-1-61729-288-0.
  2. "Infrastructure as Code (IaC) คืออะไร?" . www.redhat.com . สืบค้นเมื่อ15 กรกฎาคม 2026 .
  3. เบอร์เจส, มาร์ค (2004). การบริหารเครือข่ายและระบบเชิงวิเคราะห์ . ไวลีย์. ISBN 0-470-86100-2.
  4. Riley, Chris (12 พฤศจิกายน 2015). "กำหนดเวอร์ชันโครงสร้างพื้นฐานของคุณ" . DevOps.com . สืบค้นเมื่อ29 มิถุนายน 2026 .
  5. ฟิลลิปส์, แอนดรูว์ (14 พฤษภาคม 2015). "การเปลี่ยนจากการทำงานอัตโนมัติของโครงสร้างพื้นฐานไปสู่ ​​DevOps ที่แท้จริง" . DevOps.com .
  6. "โมเดลแบบประกาศเทียบกับแบบคำสั่งสำหรับการจัดการการกำหนดค่า: แบบไหนดีกว่ากัน?" Scriptrock.comเก็บถาวรจากต้นฉบับเมื่อวันที่ 31 มีนาคม 2015 เรียกดูเมื่อวันที่ 14 ธันวาคม 2015
  7. Loschwitz, Martin (14 พฤศจิกายน 2014). "การเลือกใช้ตัวจัดการการกำหนดค่าโอเพนซอร์สชั้นนำ" . Admin Network & Security . Lawrence, KS สหรัฐอเมริกา: Linux New Media USA LLC.
  8. Venezia, Paul (21 พฤศจิกายน 2013). "Puppet vs. Chef vs. Ansible vs. Salt" . Network World . Network World. เก็บถาวรจากต้นฉบับเมื่อ 18 กรกฎาคม 2018 . สืบค้นเมื่อ14 ธันวาคม 2015 .
  9. แนวโน้มตลาดของ Gartner: DevOps – ไม่ใช่ตลาด แต่เป็นปรัชญาที่เน้นเครื่องมือ ซึ่งสนับสนุนห่วงโซ่คุณค่าของการส่งมอบอย่างต่อเนื่อง (รายงาน) Gartner 18 กุมภาพันธ์ 2015
  10. 1 2 Chaganti, Ravikanth (5 มกราคม 2016). "DevOps, Infrastructure as Code และ PowerShell DSC: บทนำ" . PowerShell Magazine . PowerShell Magazine . สืบค้นเมื่อ11 มกราคม 2016 .
  11. "ขอแนะนำ AWS CloudFormation "
  12. 1 2เฟลตเชอร์, โคลิน; คอสโกรฟ, เทอร์เรนซ์ (26 สิงหาคม 2558). ข้อมูลเชิงลึกด้านนวัตกรรมสำหรับเครื่องมืออัตโนมัติการกำหนดค่าอย่างต่อเนื่อง . การ์ทเนอร์ (รายงาน).
  13. สเตอร์เจียน, ฟิล (28 ตุลาคม 2012). "หุ่นเชิดหรือเชฟ?" . เก็บถาวรจากต้นฉบับเมื่อ 1 กุมภาพันธ์ 2016 . สืบค้นเมื่อ29 มกราคม 2016 .
  14. Ramos, Martin (4 พฤศจิกายน 2015). "การบูรณาการอย่างต่อเนื่อง: โครงสร้างพื้นฐานในรูปแบบโค้ดใน DevOps" easydynamics.com . เก็บถาวรจากต้นฉบับเมื่อ 6 กุมภาพันธ์ 2016 . สืบค้นเมื่อ29 มกราคม 2016 .
  15. โครงสร้างพื้นฐานในรูปแบบโค้ด: เร่งกระบวนการส่งมอบแอปพลิเคชันให้เร็วขึ้น (รายงาน) ฟอร์เรสเตอร์ มีนาคม 2015
  16. Wurster, Laurie F.; Colville, Ronni J.; Height, Cameron; Tripathi, Somendra; Rastogi, Aditi. การวิเคราะห์เทคโนโลยีเกิดใหม่: DevOps คือการเปลี่ยนแปลงทางวัฒนธรรม ไม่ใช่เทคโนโลยี (รายงาน). Gartner.
  17. "รายงานภัยคุกคามบนคลาวด์แสดงให้เห็นถึงความจำเป็นในการใช้ DevSecOps อย่างสม่ำเสมอ" . InformationWeek . 13 กุมภาพันธ์ 2020 . สืบค้นเมื่อ24 กุมภาพันธ์ 2020 .

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โครงสร้างพื้นฐานในรูปแบบโค้ด

โครงสร้างพื้นฐานในรูปแบบโค้ด ( IaC ) คือกระบวนการจัดการและจัดสรร ทรัพยากร ศูนย์ข้อมูล คอมพิวเตอร์ ผ่านไฟล์คำจำกัดความที่เครื่องอ่านได้ แทนที่จะใช้ การกำหนด ค่าฮาร์ดแวร์ ทางกายภาพ...

ประวัติศาสตร์

แนวคิดการจัดการโครงสร้างพื้นฐานผ่านโค้ดเกิดขึ้นจากแนวทางการจัดการการกำหนดค่าในยุคแรก ในช่วงทศวรรษ 1990 เครื่องมือต่างๆ เช่น CFEngine ซึ่งสร้างโดย Mark Burgess ในปี 1993 ได้นำเสนอแนวคิดในการอธิบายการกำหนดค่าระบบในภาษาเชิงประกาศแทนที่จะดำเนินการคำสั่งด้วยตนเอง...

ภาพรวม

IaC เกิดขึ้นเมื่อองค์กรต่างๆ เริ่มจัดการโครงสร้างพื้นฐานที่ใหญ่ขึ้นและซับซ้อนมากขึ้น โดยเฉพาะอย่างยิ่งกับการเติบโตของการประมวลผลแบบคลาวด์และความจำเป็นในการจัดสรรทรัพยากรอย่างสม่ำเสมอและในระดับที่ใหญ่ การจัดการการกำหนดค่าโครงสร้างพื้นฐานเหมือนกับซอฟต์แวร์ -...

ข้อดี

คุณค่าของ IaC สามารถแบ่งออกเป็นสามประเภทที่วัดได้ ได้แก่ ต้นทุน ความเร็ว และความเสี่ยงการลดต้นทุนมีเป้าหมายเพื่อช่วยองค์กรไม่เพียงแต่ในด้านการเงินเท่านั้น แต่ยังรวมถึงด้านบุคลากรและความพยายามด้วย...