Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สรุปเรื่องการใช้ภาษา Go ที่ Bit.ly

$
0
0

จาก Golang weekly นั้น มี link บทความการนำภาษามาใช้งานในระบบของ Bit.ly
Why we write everything in Go ?
จึงทำการสรุปไว้นิดหน่อย

​เริ่มต้นด้วยระบบของ Bit.ly นั้น​​​

พัฒนาส่วนของ frontend ด้วย TypeScript/JavaScript
ส่วนของ backend ด้วย Python และภาษา C เป็นหลัก
เหตุผลที่ใช้ Python คือ ความง่ายในการพัฒนา และได้ performance ที่สมเหตุสมผล
รวมทั้งมี web server ที่ดีคือ Tornado ที่ทำงานแบบ non-blocking I/O

ส่วนงานที่ต้องการ performance สูง ๆ จะใช้ภาษา C
แต่ก็มีปัญหาเรื่องการ maintain และการหาคนที่มี skill ด้านนี้จริง ๆ

ส่วนระบบงานประกอบไปด้วย

  • ผู้ใช้งานใช้งาน service ประมาณ 15 service
  • มี internal api จำนวน 35 ตัว
  • มีการใช้ queue ซึ่งมี 130 queue
  • มี cron job 150 ตัว
  • มี datastore 20 ตัว
  • มี adhoc script อีกเพียบ

Bit.ly ใช้งาน Go มาตั้งแต่ปี 2014

โดยพัฒนา NSQ ขึ้นมาและเปิด open source ด้วย
สำหรับระบบ messaging ที่พัฒนาด้วยภาษา Go
เป็นจุดเริ่มต้นของการทำภาษา Go มาใช้งาน

สิ่งหนึ่งที่สำคัญคือ ในปริมาณ workload เท่าเดิม
เมื่อเปลี่ยมาใช้ภาษา Go แทน Python แล้ว
สามารถลดจำนวน server ลงไปได้เยอะ และได้ response time ที่ดีขึ้นกว่า 2 เท่าตัว

ตัวอย่างเช่น การ copy file ขึ้นไปยัง Google storage

โดยการเปลี่ยนแปลงมีผลกระทบต่าง ๆ ที่ตามมาดังนี้

backend จากทั้งหมดกว่า 270 services มี service จำนวน 155 services
ที่พัฒนาด้วยภาษา Go

แต่เพียงเรื่องของ performance มันยังไม่พอ
ยังต้องมองเรื่องอื่น ๆ อีกด้วย เช่น

  • Go community ที่เป็นมิตร และ active อย่างมาก
  • Documentation, tutorial และ เครื่องมือต่าง ๆ ที่ดี
  • ทางทีมพัฒนาของ Bit.ly นั้นจะทำตาม Effective Go

ช่วยทำให้นักพัฒนาใหม่ ๆ สามารถเรียนรู้และใช้งานได้อย่างรวดเร็วขึ้น


Viewing all articles
Browse latest Browse all 1997

Trending Articles