Clone Environment

cloning environment logo

เมื่อผู้พัฒนามีความจำเป็นที่จะต้องแยกแอปพลิเคชั่นที่กำลังทำงานอยู่ออก ยกตัวอย่างเช่น ต้องการเพิ่มระบบงานใหม่ก่อนที่จะนำไปใช้งานจริงบน Production ซึ่งทาง Ruk-Com Cloud ได้มีการจัดเตรียมวิธีการดำเนินการนี้ไว้ให้เรียบร้อยแล้ว การโคลน Env คือการสร้าง Env ที่เหมือนกันกับ Env ที่ได้โคลนมาเพียงการกดสั่งงานเพียงไม่กี่ครั้ง

นอกจากนั้นถ้าหากพูดถึงระบบที่มีการทำงานจากทีมพัฒนาหลายฝ่ายแล้วระบบงานมีความซับซ้อน แนะนำให้ทำการโคลน Application ออกเป็นหลายๆชุด คือการดำเนินการทำ Application lifecycle โดยมีขั้นตอนการแยก Application ออกเป็น 3 ส่วนดังต่อไปนี้

  • development – สำหรับนักพัฒนาในการสร้างแล้วปรับปรุงโปรแกรม
  • testing – สำหรับนักตรวจสอบคุณภาพในการตรวจสอบและวิเคราะห์ปัญหาต่างๆของโปรแกรม
  • production – สำหรับผู้ใช้งานทั่วไปโดยจะเป็นโปรแกรมเวอร์ชั่นที่สมบูรณ์ที่สุด

ด้านล่างนี้ เราได้จัดเตรียมคู่มือสำหรับ วิธีการโคลน Environment และ ตัวอย่างการใช้งานทั่วไป

หมายเหตุ: ให้พิจารณาและตรวจสอบตามขั้นตอนด้านล่างนี้ในการโคลน env ที่ Ruk-Com Cloud:

– containers ที่โคลนจะขึ้นอยู่กับ scaling mode, container ที่มาจากการโคลนนั้นจะถูกสร้างจาก base image (ตัวโปรแกรมต้นฉบับที่ยังไม่ได้ปรับแต่งการตั้งค่าของ Env ที่ทำการโคลน) เรียกรูปแบบนี้ว่า “stateless” หรือ เป็นการคัดลอกการตั้งค่าต่างๆมาจาก container หลักของการโคลนครั้งนั้นมาเลย เรียกรูปแบบนี้ว่า “stateful”

– คุณอาจจะพบการค้างของ continer ในระยะสั้น ระหว่างที่มีการโคลน nodes (สามารถดูรายละเอียดการทำงานได้ที่คู่มือ live migration)

– ในขณะที่มีการโคลน env ที่เกี่ยวกับ Windows-base Container จะหยุดทำงาน ดังนั้นเตรียมตัวให้พร้อมสำหรับการหยุดทำงานสั้น ๆ


วิธีการโคลน Environment

ขั้นตอนการโคลน Env สามารถทำตามขั้นตอนดังต่อไปนี้

1. เลือกที่ปุ่ม Clone Environment ของ Env ที่ต้องการโคลนที่แสดงอยู่ในภาพประกอบด้านล่างนี้:

clone environment button


2. หลังจากกดปุ่มจะมีป๊อปอัพแสดงขึ้นมา ให้กรอกชื่อของ Env หรือ ใช้ชื่อพื้นฐานที่มีอยู่แล้ว เมื่อตั้งชื่อเรียบร้อยแล้วกดที่ปุ่ม Clone.

clone environment dialog


3. ภายในไม่กี่นาที Environment ที่โคลนจะพร้อมใช้งาน

เคล็ดลับ: ในบางกรณีจำเป็นต้องมีการปรับเปลี่ยนเพิ่มเติมเพื่อให้สามารถโคลน Env ของคุณได้:

– IP addresses และ hostnames ของ nodes ที่โคลนจะมีการเปลี่ยนแปลงต่างจากของเดิมดังนั้นกรณีถ้ามีการกำหนดค่าไว้จะต้องแก้ไขค่าใหม่หลังจากการโคลนเสร็จสิ้น

– หากคุณประสบปัญหาในการโคลนสภาพแวดล้อมขนาดใหญ่ (เช่นมีข้อมูลมากกว่า 1TB ถูกเก็บไว้ในคอนเทนเนอร์) โปรดติดต่อผู้ให้บริการโฮสติ้งของคุณเพื่อขอความช่วยเหลือ

– Env ที่อยู่ในรูปแบบ collaboration (Env ที่มีผู้ใช้งานร่วมกัน) จะสามารถโคลนได้จากเจ้าของ Env เท่านั้น ผู้ที่มีสิทธิ์เป็นผู้ใช้งานร่วมจะไม่สามารถทำการโคลนได้


production and development clones


หลังจากดำเนินการโคลนเรียบร้อยแล้วคุณสามารถเข้าปรับแต่งในส่วนของโปรแกรม เวอร์ชั่น ปรับแต่งโครงสร้างต่างๆของระบบโดยที่ไม่มีผลกระทบกับ Env ที่โคลนมา

ตัวอย่างการใช้งานทั่วไป

เมื่อคุณสามารถทำการโคลนได้แล้ว เราได้ยกตัวอย่างการใช้งานหลังจากการโคลน Enviroment ตามตัวอย่างด้านล่างนี้

  • เปลี่ยนแปลงชื่อโดเมน ของ Env ของคุณ
  • การทำการ swap domains เพื่อเปลี่ยนเส้นทางการเข้าเว็บไซต์ให้ผู้ใช้งานของคุณเข้าใช้งานใน Env ใหม่ที่ได้โคลน
  • การดำเนินการจัดทำ blue-green deployment เพื่อลดระยะเวลาในการ downtime หรือ ข้อผิดพลาดในขั้นตอนการ deploy
blue-green deploy scheme
  • ดำเนินการทดสอบ A / B (A/B testing) ของแอปพลิเคชัน (เช่นเปรียบเทียบเวอร์ชันต่างๆ) เพื่อกำหนดว่าอันไหนให้การดึงดูดผู้ใช้ที่ดีกว่า
a-b testing scheme
  • ดำเนินการทำ load balance เพื่อลดข้อผิดพลาด (failover protection ) ที่จะเกิดขึ้นกับระบบของคุณ
failover protection scheme
  • ทำให้การเก็บข้อมูลจากหลายๆ env ไว้ใน Dedicated Storage Container เดียวกันในการจัดการพื้นที่จัดเก็บได้มีประสิทธิภาพมากขึ้น
  • ใช้ Env ที่โคลนมา สำหรับจัดทำเป็น “snapshot” ที่ได้ตั้งค่าต่างๆไว้เรียบร้อยแล้ว
  • คุณสามารถกำหนดค่าของข้อมูลจาก production ที่คุณได้โคลนมาโดยมั่นใจได้ว่าข้อมูลนั้นจะเป็นข้อมูลที่อยู่ใน testing/staging env จริงโดยไม่มีผลกระทบกับ production

กรณีการใช้งานเหล่านี้สามารถช่วยให้คุณได้รับประโยชน์สูงสุดจากการโคลน env