ในการสร้าง 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