แต่เมื่อไม่นานมานี้ ทางวิศวกร Instagram ได้เปิดเผยกับทาง The New Stack ว่าได้ทำการย้ายไปใช้งาน Python 3 แล้วโดยที่ไม่หยุดการให้บริการแก่ผู้ใช้เลย
เราจึงสรุปบทความที่น่าสนใจนี้มาให้อ่านกัน
อย่างที่เรารู้กัน Instagram ใช้ Django เป็น application server นับตั้งแต่เปิดให้บริการและยังคงใช้งานมาถึงทุกวันนี้ สาเหตุที่วิศวกร Instagram เลือก Python เพราะมันใช้งานง่ายกับวิศวกร ทำให้ได้ความเร็วและออกผลิตภัณฑ์ Python เป็นเรื่องง่าย โค้ดสะอาด และเป็นประโยชน์ในทางปฏิบัติ เป็นเทคโนโลยีที่ได้รับการพิสูจน์แล้ว
เหตุจูงใจในการย้ายจาก Python 2.7 ไป Python 3.5 ของ Instagram มีดังนี้
- Python ไม่ได้รองรับ typed language มาตั้งแต่แรก จึงทำให้เกิดปัญหาในการพัฒนาจำนวนมากเมื่อเริ่มต้นสร้างโค้ดใหม่ ๆ แต่ Python 3.5 สนับสนุน typing
- ระบบเครือข่ายเป็นคอขวดสำหรับทีมวิศวกรมากขึ้น
- ถึงแม้ Python จะไม่ได้เร็ว แต่รุ่นใหม่กว่ามีความเร็วที่เร็วขึ้น แต่ Python 2.7 ไม่มีใครทำให้มันเร็วขึ้น
กระบวนการผลักดันย้ายมาใช้งาน Python 3 ใช้เวลาประมาณ 10 เดือน โดยมีขั้นตอนดังนี้
- ขั้นตอนแรก ทีมงานได้แก้ไขโค้ดจำนวนมาก ใช้เวลา 2 - 3 เดือน
- ขั้นตอนที่สอง เปลี่ยนแพคเกจของบุคคลที่สาม (third-party packages) ที่เข้ากันไม่ได้กับ Python 3 โดยมีกฎในการทำงานคือ “No Python 3, no new package” และลบแพคเกจที่ไม่ได้ใช้งานออก ใช้เวลาประมาณ 3 - 4 เดือน
- ขั้นตอนที่สาม ทำการทดสอบแต่ละหน่วย (unit testing) ใช้เวลา 2 เดือน
- ขั้นตอนที่สี่ ออกผลิตภัณฑ์ใหม่ (Production rollout) ใช้เวลา 4 เดือน
และในเดือนกุมภาพันธ์ ค.ศ.2017 ที่ผ่านมา Instagram ได้ใช้ Python 3 อย่างสมบูรณ์
หลังจากที่ทีมวิศวกร Instagram ได้ย้ายมา Python 3 พบว่าสามารถประหยัด CPU ได้ 12 เปอร์เซ็นต์ (ใน uswgi / Django) และประหยัดหน่วยความจำได้ 30 เปอร์เซ็นต์ (ใน celery)
รายละเอียดแบบเต็มๆ อ่านได้จาก Instagram Makes a Smooth Move to Python 3
ซึ่งมีรายละเอียดที่น่าสนใจ เช่น ประเด็นที่การเติบโตเซิร์ฟเวอร์ที่มากกว่าการเติบโตของผู้ใช้งาน และกระบวนการ reports ที่ทุกอย่างเป็นไปอย่างราบรื่น
อ่านเพิ่มเติม สถาปัตยกรรมเบื้องหลัง Instagram (ปี ค.ศ.2012)
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)