Telepresence คือเครื่องมือที่ช่วยให้ developer สามารถพัฒนาระบบงาน
ที่ deploy บน Kubernetes ได้ง่ายและสะดวกขึ้น
ตามแนวคิดคือ Fast Local development in Kubernetes

นั่นคือ developer พัฒนาได้รวดเร็วยิ่งขึ้น
โดยไม่ต้องรอการ build, push image และสร้าง container เลย
ใช้งานร่วมกับ IDE ต่าง ๆ ได้ดี

ก่อนอื่น Telepresence 2.0 นั้น ทำการเขียนใหม่ด้วยภาษา Go
นำความรู้ที่ได้จาก version 1 มาปรับปรุงให้ดีขึ้น
ทั้งการใช้งานที่ง่าย และประสิทธิภาพที่ดีขึ้น

โครงสร้างของ Telepresence 2 เป็นดังภาพ

เพื่อความเข้าใจที่ดีขึ้น มาลองใช้กันดีกว่า

ขั้นตอนที่ 1

ทำการสร้างและ connect ไปยัง Kubernetes Cluster จริง ๆ
จากเครื่อง Local ของ developer ให้ได้
และทำการ deploy ระบบงานไปยัง Kubernetes Cluster แบบปกติก่อน

ขั้นตอนที่ 2

ทำการติดตั้ง TelePresence บนเครื่อง
จากนั้นทำการ connect จาก TelePresence ไปยัง Kubernetes Cluster

ขั้นตอนที่ 3

จาก service ที่ทำงาน deploy Kubernetes Cluster แล้วนั้น
สามารถเข้าถึงได้โดยตรงด้วยชื่อและ port ของ service ต่าง ๆ จาก Local ของเราแล้ว

ขั้นตอนที่ 4

ทำการ intercept request ต่าง ๆ ที่จะส่งเข้ามายัง service ใน Kubernetes Cluster
โดยจะส่ง request นั้นมายัง Local ของเรานั่นเอง
ดังนั้นถ้าเราแก้ไข code ที่ Local ก็จะเห็นการเปลี่ยนแปลงนั้น ๆ เลย
ช่วยให้เราทดสอบได้ง่ายขึ้น
ก่อนจะไปเข้าสู่ขั้นตอน build, push และ deploy ต่อไป ถ้าทุกอย่างเรียบร้อย
ด้วยการใช้คำสั่งดังนี้

ขั้นตอนที่ 5

อีกอย่างเราสามารถเลือกที่จะ intercept เฉพาะบาง URL ที่เรียกใช้งานมาอีกด้วย
หรือเรียกว่า การ intercept จาก Preview URL
โดยที่เราต้อง clear สิ่งที่ intercept ทั้งหมดก่อน
จากนั้นก็ intercept แบบปกติดังนี้

จากนั้นเรียกใช้งานผ่าน service ที่ทำการกำหนดไป
จะไปใช้งาน service ปลายทางจาก Local นั่นเอง

จากการใช้งานพบว่า

ช่วยให้การพัฒนาระบบงาน
และ deploy บน Kubernetes มีความยืดหยุ่นมากขึ้น
ที่สำคัญสามารถทดสอบการทำงานระหว่าง service ได้ง่ายและรวดเร็วขึ้น
เพื่อให้เรารู้ผลการทำงานได้รวดเร็วขึ้น
มีผลดีต่อ productivity อย่างมาก

มีตัวอย่างของ Application ที่พัฒนาด้วยภาษาต่าง ๆ ให้ลองใช้งาน

Reference Websites