• ตอนนี้เป็นยุคที่สามารถคลิกไม่กี่ครั้งบนคอนโซล AWS เพื่อดีพลอยเซิร์ฟเวอร์ และใช้คำสั่งเพียงบรรทัดเดียวเพื่อสร้างโครงสร้างพื้นฐานได้หลากหลาย
  • IaC
    • คือการจัดการและทำ provisioning โครงสร้างพื้นฐานด้วยโค้ด
    • ทุกอย่างที่เราต้องการ ไม่ว่าจะเป็นเครือข่าย เซิร์ฟเวอร์ สตอเรจ ฯลฯ สามารถเก็บและจัดการด้วยโค้ดทั้งหมด
    • ทำให้สามารถแชร์ ทดสอบ และนำโค้ดกลับมาใช้ซ้ำ เพื่อจัดการโครงสร้างพื้นฐานได้อย่างมีประสิทธิภาพมากขึ้น
  • Terraform
    • Terraform เป็นเครื่องมือที่มีชื่อเสียงที่สุดตัวหนึ่งในกลุ่ม IaC
    • จัดการได้ทั้งคลาวด์อย่าง AWS, GCP, Azure รวมถึงโซลูชันภายในองค์กร
    • ใช้วิธีแบบ declarative ที่กำหนดผลลัพธ์ปลายทางที่ต้องการ จึงคาดการณ์ผลลัพธ์ได้ง่าย
    • แม้นำโค้ดกลับมาใช้ซ้ำ ก็ยังรับประกันผลลัพธ์เดิมได้
    • เมื่อใช้ terraform plan จะสร้างแผนอย่างละเอียดว่าจะถูกสร้างบน AWS อย่างไร
    • ใช้ terraform apply เพื่อปรับใช้จริง
    • ข้อมูลรีซอร์สที่สร้างด้วย Terraform จะถูกจัดการในไฟล์ JSON ชื่อ tfstate
  • วิธีการใช้งาน Terraform
    • รองรับการรับอินพุตจากผู้ใช้ผ่านคีย์เวิร์ดต่าง ๆ เพื่อสร้างรีซอร์ส และแสดงผลการทำงานบน CLI
      • Provider
        • ปลั๊กอินที่ใช้ติดตั้งใช้งานประเภทของรีซอร์ส
        • ค้นหา provider ของแพลตฟอร์มคลาวด์และบริการที่ใช้งาน เช่น AWS, GCP แล้วเพิ่มเข้าไปในการตั้งค่า จากนั้นใช้รีซอร์สนั้นเพื่อทำ provisioning โครงสร้างพื้นฐาน
      • Module
        • ชุดคอนฟิก Terraform ขนาดเล็กที่นำกลับมาใช้ซ้ำได้ สำหรับจัดการกลุ่มรีซอร์สที่เกี่ยวข้องเสมือนเป็นรีซอร์สเดียว
        • สามารถนำโมดูลที่ผู้อื่นสร้างไว้มาใช้ได้อย่างอิสระ เพื่อจัดการรีซอร์สจำนวนมากอย่างมีประสิทธิภาพด้วยโค้ดที่น้อยลง
        • สามารถเรียกใช้โมดูลเดียวกันหลายครั้งโดยตั้งค่าคอนฟิกต่างกัน
      • Resource
        • คีย์เวิร์ดที่ใช้อธิบายอ็อบเจ็กต์โครงสร้างพื้นฐานอย่างน้อยหนึ่งรายการ เช่น องค์ประกอบระดับสูงอย่างเครือข่ายเสมือน คอมพิวต์อินสแตนซ์ หรือ DNS record
      • Variable
        • ตัวแปรอินพุตใช้กำหนดคุณสมบัติของรีซอร์สได้โดยไม่ต้องแก้ไขซอร์สโค้ดของโมดูล
        • คล้ายกับพารามิเตอร์ของฟังก์ชันในภาษาโปรแกรม
        • ช่วยให้แชร์และนำโมดูลกลับมาใช้ซ้ำได้ยืดหยุ่นมากขึ้น
      • Output
        • ค่าผลลัพธ์สามารถใช้สร้างข้อมูลโครงสร้างพื้นฐานที่ใช้บนบรรทัดคำสั่ง และเปิดเผยข้อมูลให้ Terraform configuration อื่นนำไปใช้ได้
        • คล้ายกับค่าที่ฟังก์ชันส่งคืนในภาษาโปรแกรม

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น