GitHub ประกาศนำกระบวนการพัฒนาตัวเว็บ GitHub.com (github/github) มาอยู่บนผลิตภัณฑ์ใหม่ของตัวเองคือ GitHub Codespaces ทั้งหมดแล้ว
Codespaces คือบริการ IDE ครบวงจร ตั้งแต่ตัว code editor บนเว็บ (เป็น VS Code) และประมวลผลบน VM สมรรถนะสูงบนคลาวด์ (GitHub ใช้คำว่า "faster than your laptop") ทำงานได้จากทุกที่ขอแค่มีเพียงเว็บเบราว์เซอร์
GitHub เขียนเล่าเบื้องหลังการย้ายระบบตัวเองมาสู่ Codespaces ว่าในยุคแรกๆ ของบริษัท กำหนดสภาพแวดล้อมเป็น macOS แล้วให้พนักงานโคลน github/github มาลงเครื่อง รันสคริปต์ครั้งแรกเพื่อ bootstrap เซ็ตอัพระบบก่อนเริ่มลงมือทำงาน แต่เมื่อระบบซับซ้อนขึ้นเรื่อยๆ วิธีการนี้ก็เริ่มไม่เวิร์คอีกต่อไป การเซ็ตอัพอาจใช้เวลานานถึง 45 นาที
วิธีการแบบเดิมยังชี้ให้เห็นจุดอ่อนของการใช้ local environment ที่คอมพิวเตอร์ทุกเครื่องแตกต่างกัน ซึ่งเป็นวิธีคิดที่กลับทิศกับโลก infrastructure ที่มองว่าเซิร์ฟเวอร์แต่ละตัวสามารถใช้แทนกันได้เสมอ ถ้าเครื่องพังก็แค่เปลี่ยนเครื่องใหม่ใส่เข้าไป เมื่อมีโอกาสมาสร้าง Codespaces ทำให้ GitHub นำแนวคิดของฝั่งเซิร์ฟเวอร์มาใช้งาน ถ้าสภาพแวดล้อม dev environment พังก็แค่เปลี่ยน VM ตัวใหม่ แล้วทำงานต่อได้ทันที
การย้ายสภาพแวดล้อมพัฒนามาอยู่บน VM ยังช่วยแก้ปัญหาเรื่องระยะเวลาเซ็ตระบบ GitHub ระบุว่า repository ของ GitHub.com มีขนาดทั้งหมด 13GB แค่การโคลนก็ใช้เวลา 20 นาทีแล้ว การเซ็ตอัพระบบอย่างเดียวใช้เวลาถึง 45 นาที
พอมาทำ Codespaces ทีมงานก็เปลี่ยนวิธีคิดใหม่คือ โคลน repository ทั้งหมดไว้ล่วงหน้า และดึงข้อมูลจาก dependency ต่างๆ มาสร้างเป็น Docker image ที่อัพเดตใหม่ทุกคืน ถ้านักพัฒนาต้องการเรียกใช้งานพร้อมใช้ทันที ลดระยะเวลาเซ็ตอัพจาก 45 นาทีได้เหลือ 10 วินาทีเท่านั้น (GitHub โม้ว่าพนักงานใหม่ได้ dev environment ก่อนลง Slack เสร็จ) ถ้า dev environment พังก็แค่สลับ VM ใหม่ วันนั้นไม่เสียเวลาเปล่า ทำงานต่อได้เลย
GitHub ยังบอกว่าโมเดล VM ของ Codespaces ยังช่วยเรื่องประสิทธิภาพด้วย เพราะทำ optimization รอไว้ล่วงหน้าได้เลย ซึ่งเรามักไม่ค่อยได้ทำบน local environment เพราะมีต้นทุนเรื่องระยะเวลามากเกินไป แถมถ้าอยากปรับสเปกเครื่อง เพิ่มคอร์ซีพียู เพิ่มแรม ก็เปลี่ยนค่าบรรทัดเดียว อัพเกรดเครื่องให้วิศวกรทุกคนได้ทันที ไม่ต้องเสียเวลาซื้อเครื่องใหม่แล้วส่งไปให้ที่บ้าน
Codespaces ใช้ VS Code เป็นเครื่องมือหลัก แต่ก็ไม่อยากทิ้งนักพัฒนาสายอื่นๆ จึงเพิ่มทางเลือกคือเปิด SSH ไว้ให้ ใครที่อยากใช้ Vim หรือ Emacs ก็ล็อกอินเข้ามาใช้กันเองได้
ที่มา - GitHub
Comments
แวะมาบอกว่า ชอบอ่านเรื่องราวที่น่าสนใจและได้ความรู้แบบนี้ครับ ขอบคุณที่นำมาเล่าให้ฟัง
..: เรื่อยไป
ดีนะ คอนเซปดีมาก แต่ใช้กับบอใหญ่ๆ ดีสุดเพราะค่า vm แพง=..=
ยังไงถ้าใช้เวลา setup 45 นาที ถ้ารอได้กับบอเล็กๆ มันก็ยังดีกว่าเสียค่าคราวด์และนะ
มือใหม่!! ใหม่จริงๆนะ
ย้ายไปพัฒนาใน vm/container ได้ก็ดีครับ แต่ต้องไม่มี tool อะไรที่มันหน่วง vm/container ครับ ถ้าลง Security tool จัดเต็มเหมือนใน Notebook/Macbook ก็อย่าทำเลยครับ (สำหรับบริษัทใหญ่ๆ)
Ooh