ในการสร้าง environment ของระบบงาน
ไม่ว่าจะเป็น dev, test, QA, SIT, UAT ใด ๆ ก็ตาม
ส่วนใหญ่มักจะถูกสร้างและใช้งานยาว ๆ กันไป
ดังนั้นการจะสร้างแต่ละครั้ง ต้องมี process ที่เยอะ
จะดีกว่าไหมถ้าเรามี environment แบบที่เรียกว่า Ephemeral Environment

มาทำความรู้จักว่า Ephemeral Environment คืออะไร

มันคือ environment ที่ถูกสร้างขึ้นมาชั่วคราว
เพื่อทำงานเฉพาะอย่าง
เมื่อถูกใช้งานเสร็จสิ้นแล้ว ก็จะถูกลบทิ้งไป
ที่สำคัญต้องสร้างได้ง่ายและรวดเร็วด้วย
ยกตัวอย่างเช่น

  • สร้างมาเพื่อพัฒนา และ ทดสอบระบบงาน
  • สร้างมาทดลองอะไรบ้างอย่าง
  • สร้างมาเพื่อรองรับการใช้งานแบบสูง ๆ หรือที่เรียกว่า spike

โดยในการสร้างและลบ environment ต่าง ๆ เหล่านี้
จะไม่มีผลกระทบต่อภาพรวมของระบบใด ๆ

ชื่ออื่น ๆ ของ Ephemeral Environment ก็เช่น

  • Dynamic
  • Preview
  • On-demand

คุณสมบัติคร่าว ๆ ของ Ephemeral Environment ประกอบไปด้วย

  • สร้างได้แบบอัตโนมัติตามความต้องการ หรือ event ต่าง ๆ เช่น สร้าง test environment ขึ้นมาเพื่อทดสอบในทุก ๆ PR ที่ส่งเข้ามา เพื่อทำการ pre-approve ในเบื้องต้น
  • แยกออกมาจาก development และ production นั่นหมายความว่าการสร้าง ลบ และ load ต่าง ๆ จะไม่ส่งผลกระทบต่อ environment อื่น ๆ
  • มีรูปแบบคล้ายกับ production เพื่อทำให้มั่นใจมากขึ้น ทั้ง data, config, library และ ระบบต่าง ๆ ที่ต้องทำงานด้วย
  • มีความปลอดภัยในการใช้งาน

เป้าหมายหลัก ๆ ของ Ephemeral Environment

  • ประหยัด resource และช่วยลดเวลา นั่นคือ ค่าใช้จ่าย หรือไม่
  • ช่วยให้ทีมพัฒนาส่งมอบระบบงานได้รวดเร็ว และ มีคุณภาพมากขึ้น
  • เกิดการทำงานร่วมกันของแต่ละส่วนเป็นอย่างดี ตั้งแต่คนคิดยันการ deploy ไปเลย
  • ทดสอบได้ตลอดเวลา หรือ ทุก ๆ เหตุการณ์ที่เกิดขึ้นและสนใจ (Continuos Testing)

ยิ่งถ้าเป็นในโลกของ container ด้วยแล้ว
แนวคิดคิดนี้ยิ่งถูกทำให้ง่ายขึ้นเข้าไปอีก
ดังนั้นจึงเป็นอีกแนวคิด แนวทางที่น่าสนใจมาก ๆ
ในการปรับปรุงกระบวนการส่งมอบระบบงาน

ว่าแต่ปัจจุบันเราทำแบบนี้กันไหม ?

Reference Websites