หลายคนที่วันนี้กำลังพบเจอปัญหาการใช้งานอย่างเช่นการเขียนโค้ดข้าม Environment, การทำงานร่วมกับผู้อื่น และปัญหาที่คอมพิวเตอร์ของเรานั้นทำงานเร็วไม่ถึงใจ วันนี้เราเลยจะมาแนะนำโซลูชันการเขียนโค้ดสำหรับนักพัฒนา (Dev) ทุกคนกับบริการ GitHub Codespaces

ทำความรู้จักกับ GitHub Codespaces

บริการ GitHub Codespace คือบริการ Virtual Machine (VM) ประเภทหนึ่งที่จะสร้าง Environment การเขียนโค้ดให้กับโปรเจ็กต์ของเราโดยอัตโนมัติ เพื่อให้ผู้ใช้งานได้รับประโยชน์จากการใช้งานเครื่องพัฒนาที่รวดเร็วและแรงกว่า แถมยังสามารถใช้คู่กับ Visual Studio / Visual Studio Code ได้เลย

แม้ว่าไอเดียของการทำเครื่องพัฒนาฯ ประเภทนี้จะมีมาตั้งนานแล้ว แต่นี่คือบริการที่จะเพิ่มความสะดวกให้กับผู้ใช้งาน GitHub มากขึ้นด้วยการผนึกบริการของ GitHub ทั้งหมดเข้ามาร่วมกันกับบริการ Codespaces ที่เพิ่งเปิดใหม่อันนี้ ขนาดที่ว่าทาง JetBrains ก็ได้ทำการเปิดตัวบริการ JetBrains Fleet มาแข่งกับ Codespaces เลย เพราะอาจจะเห็นเทรนด์การใช้เครื่องพัฒนาที่ไม่ได้แรงมาก แต่ปรับเซิฟเวอร์ให้ทำงานเร็วแทนเพื่อลดค่าใช้จ่ายของทางนักพัฒนาทั่วโลก

ฟีเจอร์เด่นของ GitHub Codespaces

ลืมเครื่องคอมฯ ของคุณไปได้เลย

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

GitHub Codespace นั้นมีตัวเลือกเซิฟเวอร์ให้เราเลือกใช้สูงสุดถึง 32-core และเปิดเครื่องพร้อมใช้งานทันทีภายใน 10 วินาทีเท่านั้น และด้วยว่ามันเป็นเครื่องที่อยู่ในคลาวด์จึงพร้อมใช้งานได้อย่างรวดเร็วไม่มีการกระตุก

Github Codespaces = Visual Studio Code และพลังการคำนวณ

โดยเราสามารถใช้งาน GitHub Codespaces ได้เลยภายใน Visual Studio Code ทั้งจากบนเครื่องของเรา หรือใช้งานผ่านเว็บไซต์ ซึ่ง Extension และ Theme ที่เราตั้งใน VSC นั้นสามารถโอนย้ายเอาไปใช้ใน Codespace ได้ด้วยการใช้ฟีเจอร์ Settings Sync ผ่านการล็อคอินบัญชีผู้ใช้งาน GitHub หรือ Microsoft ของคุณ

ซึ่งผมก็เชื่อว่าแต่ละ Extension และ Theme ที่คุณกำลังใช้อยู่ก็คงเป็นส่วนหนึ่งของขั้นตอนการทำงานของคุณไปแล้ว ดังนั้นคุณก็จะไม่พลาดการใช้งานสิ่งเหล่านั้นใน GitHub Codespaces อย่างแน่นอนครับ

ราคาค่าบริการ GitHub Codespaces

โดยบริการ GitHub Codespace นั้นจะมีการคิดค่าบริการเป็นรายชั่วโมงที่เครื่อง (Instance) เปิดใช้งานอยู่ (Active) และพื้นที่จัดเก็บที่ใช้ (ทั้ง Codespace ที่ใช้อยู่และไม่ได้ใช้) ซึ่งทั้งหมดนี้จะเป็นการคิดตามจำนวนที่คุณใช้งานจริง และจำเป็นต้องสมัครเพิ่มเติมและคิดค่าบริการแยกจากการสมัครอื่น

สำหรับผู้ที่ต้องการใช้งานบริการ GitHub Codespace ก็สามารถเลือกระดับ Instance ที่ต้องการใช้ได้เลย ซึ่งจะมีการระบุตามตารางด้านล่างนี้ โดยมีราคาเริ่มต้นอยู่ที่ 0.18 ดอลลาร์สหรัฐฯ ต่อชั่วโมงสำหรับเครื่อง 2 core vCPU และ 4GB RAM

และคิดค่าบริการการจัดเก็บไฟล์บน Instance แยก ที่กิกไบต์ (GB) ละ 0.07 ดอลลาร์สหรัฐฯ ต่อเดือน

CoresRAMราคา/ชั่วโมง
2 core4GB RAM$0.18
4 core8GB RAM$0.36
8 core16GB $0.72
16 core32GB$1.44
32 core64GB$2.88
(หน่วย : ดอลล่าร์สหรัฐ) ราคาล่าสุด : 18 มิถุนายน 2021

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

วิธีการคิดค่าบริการ Codespace

หากว่าคุณได้ทำการใช้บริการ Codespace ในแผน 2-core เป็นจำนวน 30 นาทีและใช้พื้นที่จัดเก็บ 120.4 MB ก็จะมีการคิดค่าบริการดังต่อไปนี้

  • ค่าเวลาการคำนวณ (Instance) $0.18 x (30/60 นาที) = $0.09
  • ค่าจัดเก็บพื้นที่จัดเก็บ 0.07 x (120 / 1000) x (30/43200 นาที) = $0.00000583
สำหรับการคิดค่าบริการ
สำหรับรายละเอียดเกี่ยวกับการคิดค่าบริการ และเครื่องคิดเลข สามารถเข้าไปตรวจสอบได้ที่เว็บไซต์ GitHub: https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces

สมัครใช้งาน GitHub Codespaces

โดยในวันนี้เพื่อน ๆ จะสามารถใช้งานบริการ GitHub Codespaces ได้แล้วตั้งแต่วันนี้เป็นต้นไป โดยสามารถเข้าไปที่เว็บไซต์ของ GitHub และทำการเข้าไปที่บัญชีผู้ใช้งาน > Codespaces และตั้งค่าการจ่ายค่าบริการได้เลย

หรือสามารถเข้าไปที่ https://github.com/features/codespaces เพื่อดูรายละเอียดเกี่ยวกับราคา บริการ และการตั้งค่าต่าง ๆ ได้เลยครับ

แล้วก็ทำการกดปุ่ม Request Early Access เพื่อขอ Early Access ให้กับบัญชีผู้ใช้งาน GitHub ที่ล็อคอินอยู่ครับ หากว่าทาง GitHub พร้อมให้บริการ GitHub Codespaces กับเพื่อนๆ แล้ว ก็จะมีอีเมล์ส่งมาให้เพื่อยืนยันการขอ Early Access และเพื่อนๆ ก็จะสามารถใช้งาน GitHub Codespaces ได้ทันที

ประสบการณ์ในการใช้งาน

หลังจากใช้มาตั้งแต่ผมได้รับ Early Access จากทาง GitHub เมื่อตอนเดือนมีนาคมที่ผ่านมา (อ่านได้ที่สตอรี: เครื่องไหนก็โค้ดได้! รีวิวบริการใหม่ Github Codespaces) ผมก็เอาไว้ใช้แทนเครื่องคอมพิวเตอร์เลย ซึ่งจากที่ผมใช้มาก็พบว่า

  • เราไม่ต้องตั้งค่าอะไรเลย เครื่องเป็น Linux ให้แล้ว แถมยังลงพวก Package ที่จำเป็นต่อการพัฒนาโดยประมาณมาให้เป็นที่เรียบร้อยเลย
  • เปิดเครื่อง (Instance) เร็วมากเมื่อเทียบกับการเปิด VM บนอุปกรณ์ของเราเอง
  • เราสามารถตั้งค่าวิธีและการเลือก Environment เอาไว้เป็นค่า default ได้เลย ทำให้ครั้งถัดไปที่คุณเปิดเครื่องก็จะพร้อมใช้งานสำหรับคุณเลยทันที
  • เขียนโค้ดไปอาจมีอาการหน่วงบ้าง โดยเฉพาะถ้าอินเตอร์เน็ตของคุณอ่อน แต่อันนี้ผมพอเข้าใจได้เพราะบริการนี้เป็นการเชื่อมต่อกับเซิฟเวอร์ตลอดเวลาและไม่สามารถหลุดระหว่างทางได้เลย
  • แต่ข้อดีมากเลยก็คือการดาวน์โหลด Package นั้นเร็วมาก เพราะเป็นการใช้ทั้ง SSD และใช้งานอินเตอร์เน็ตที่เป็นความเร็วระดับการใช้งานภายในศูนย์ข้อมูล
  • การทำงานที่เป็น Issue ร่วมกับ GitHub ง่ายมากเพราะเราจะกดสร้าง Instance จากหน้า Issue ได้เลย และถ้าเราทำการ Merge Pull Request แล้ว เราสามารถปิดเซิฟเวอร์ได้ทันทีเพื่อประหยัดค่าใช้จ่าย
  • เราสามารถเขียนโค้ดพร้อมกับการใช้ Extension ได้เลยภายใน Web Browser และไม่จำเป็นที่จะต้องดาวน์โหลด Visual Studio Code ลงบนเครื่อง สร้างความสะดวกให้กับใครที่ต้องการใช้ Codespace แม้ยังไม่ได้ติดตั้ง

ซึ่งถามว่าเรารู้สึกว่ามีข้อเสียหรือไม่ เราก็ว่าจะอยู่ในเรื่องของราคาที่อาจจะสูงมากเกินไปสำหรับใครที่ไม่ต้องการพลังงานในการประมวลผลมากเท่านี้ แต่เราก็ต้องมาดูกันต่อหล่ะครับว่าในอนาคตนั้นจะมีการพัฒนาฟีเจอร์ในการทำงานอย่าง Preprogramming ใน Codespace Instance เดียวกันให้มีประสิทธิภาพได้อย่างไร

แล้ว Codespace เหมาะกับใคร

สำหรับตัวผมแล้ว การทำงานที่ต้องการพลังการคำนวณอย่างการทำ Data Analyst, Machine Learning, Artificial Intelligence ที่ต้องใช้พลังงานคำนวณที่สูงนั้นจะได้ประโยชน์จากการตั้งเซิฟเวอร์แยกแบบนี้ แบบเช่นการใช้งาน Jupyter ที่ทำงานอยู่บนเซิฟเวอร์ แต่จะให้ดีกว่านี้ก็คือ Jupyter อันนี้คิดค่าบริการตามการใช้งานจริงและปิดเซิฟเมื่อไม่มีการใช้งาน

เป็นวิธีหนึ่งที่สามารถทำให้คุณประหยัดค่าเครื่องคอมพิวเตอร์ ค่าเซิฟเวอร์ แถมยังประหยัดเวลาในการแก้ปัญหาเรื่องของการข้าม Development-Production Environment และ Package/Dependencies ที่มีไม่ครบใช้งานอีกด้วย


ข้อมูลอ้างอิง
โฆษณา

Share this post

About the author