Technical Update — August
สำหรับอัพเดทประจำเดือนสิงหาคมนี้ เดือนนี้มีการยกเครื่องระบบหลังบ้านของระบบ Devcamp กันใหม่ทั้งหมด โดยสิ่งที่มีการเปลี่ยนแปลงในระบบ Devcamp ใหญ่ๆได้แก่
Upgrade Infrastructure สู่ Kubernetes

Kubernetes เป็น platform ที่ช่วยจัดการ deploy และ scale container อีกตัวหนึ่ง เป็นตัวที่ช่วยให้การจัดการ infrastructure และการ deploy application ของเราให้สะดวกมากขึ้น
ข้อดีที่ทางทีมงานพบหลังจากที่ลองใช้ Kubernetes ในช่วงเวอร์ชั่นทดสอบ และ project อื่นๆที่ผ่านมา
- จัดการกับ config และ key ที่หลากได้ดียิ่งขึ้น เนื่องจากเวอร์ชั่นใหม่ของ Devcamp มีการเพิ่ม Service ชุดใหญ่เข้าไปอีกหนึ่งตัวคือ Devcamp Account Wallet ซึ่งจะต้องจัดการ Service ที่เกี่ยวข้องกับ Stellar เข้ามาเพิ่มเติมด้วย โดย Kubenetes สามารถทำให้การจัดการ config ถูกรวบรวมและกระจายไปใช้งานใน container, service ต่างๆได้ง่ายขึ้น (module secret ของ kubenetes)
- deployment กันง่ายขึ้น เนื่องด้วย kubenetes มีตัวจัดการ deployment ที่จะคอย scale image และ update image ให้ โดยไม่ต้องมาเสียเวลาคิดวิธีการ build เอง
- มีตัวคอยทำ Health Check จากแต่เดิมที่จะต้องพึ่งพา third party อย่าง Stackdriver มาคอยช่วย check downtime ให้ ส่งผลให้อัตราการเกิด Downtime น้อยลงมาก
- เนื่องจากบริษัทของเรามีลูกค้าจากหลากหลายบริษัท สิ่งหนึ่งที่ช่วยอำนวยความสะดวกมากๆคือ namespace ที่สามารถแบ่ง project ไปตาม namespace และสามารถจัดการแยก service กันไปตาม namespace ได้เลย
Upgrade API หลังบ้านเป็น GraphQL

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

Deploy Devcamp Account Wallet
Devcamp ได้เพิ่มฟีเจอร์ Account Wallet มาเพื่อเตรียมพร้อมกับฟีเจอร์ต่อๆไปกับการใช้จ่ายโดยใช้เหรียญ DEV ผ่านระบบของ Devcamp ได้สะดวกมากขึ้น เช่น จ่ายตั๋ว Event ผ่านระบบ Devcamp เป็นต้น โดยทุกคนสามารถโอนเข้าได้จากระบบ DEV Wallet wallet.dev.wi.th หรือจาก Wallet เพื่อใช้งานได้ในอนาคต


