i-love-instagram-reasonwhy.es_
นั่งอ่านบทความเกี่ยวกับ การสร้างระบบ Instagram :: Five year to building Instagram
เขียนโดยหนึ่งในทีมพัฒนาตั้งแต่เริ่มต้น
มาดูกันว่าตั้งแต่ปี 2010 จนถึงปี 2015 นั้น
ทางทีมพัฒนา Instagram ต้องพบเจอ และ ได้เรียนรู้อะไรบ้าง

ตั้งแต่ในปี 2010 จนถึงปี 2015

ทางทีมพัฒนา Instagram ได้ปล่อย app เวอร์ชันแรกออกมาจนถึงปัจจุบัน
มีผู้ใช้งานงานกว่า 400 ล้านคน
มีรูปและ video ถูก upload ขึ้นมากว่า 80 ล้านรูป

โดยแนวคิดของระบบเริ่มด้วยความเรียบง่าย (Simplicity)
และแน่นอนว่าต้องเป็น product ที่ดีอีกด้วย

มาดูกันว่า ในแต่ละปีของ Instagram มีการเปลี่ยนแปลง
และเหตุการณ์ที่น่าสนใจอะไรบ้าง ?
รวมทั้งสิ่งที่ได้เรียนรู้ในแต่ละปี

ปีที่ 1 :: ผู้ใช้งาน 1 ล้านคนภายใน 3 เดือน

ในวันแรกของการเปิดใช้งานระบบ
ผู้ใช้งานกว่า 25,000 คนเข้ามาใช้งาน
และเพิ่มขึ้นอย่างสูงมาก ๆ ในแต่ละวัน
ซึ่งมันเหนือความคาดหมายของทีมอย่างมาก
ที่คาดการไว้เพียง 2,500 คนเท่านั้น !!

ดังนั้น สิ่งที่ทีมพัฒนาต้องจัดการให้ได้
คือ จำนวนผู้ใช้งานที่สูงขึ้นอย่างรวดเร็ว

อย่างแรกที่ทางทีมพัฒนาทำคือ
ย้าย server จาก Hosting ทั่วไป (Server เพียง 1 เครื่องเท่านั้น)
ไปยังระบบ Amazon Web Service (AWS)

โดยทีมพัฒนาต้องทำการศึกษาหาความรู้เรื่อง Architecture และ Infrastructure อย่างมาก
เพื่อทำให้ระบบสามารถรองรับผู้ใช้งานได้อย่างดี
ซึ่งได้เรียนรู้จากระบบต่าง ๆ ที่เปิดเผยข้อมูล
เช่น Facebook, Twitter และ Netflix เป็นต้น
นั่นคือ สาเหตุที่ทางทีมพัฒนาของ Instagram สร้าง blog
เพื่อแบ่งปันความรู้การสร้างระบบออกไปให้ผู้อื่นเรียนรู้นั่นเอง

ในปีแรกนั้น สิ่งที่มีพัฒนาได้เรียนรู้ คือ

Do the simple thing first

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

ซึ่งมันทำให้ทีมสามารถจัดการกับ
จำนวนผู้ใช้งานที่สูงขึ้นได้อย่างดี

ปีที่ 2 เปิดตัว Android application

คำถามที่ทางทีมพัฒนา Instagram ได้รับมาเยอะมาก ๆ คือ
เมื่อไรที่จะปล่อย Android app ออกมา ?

เนื่องจากระบบเริ่มเปิดให้ใช้ผ่าน iOS app ก่อน
เพื่อต้องการดูว่า product ที่สร้างมานั้นมัน work ไหม
และด้วยทีมพัฒนามีเพียง 2 คนเท่านั้นเอง

แต่เมื่อทุกอย่างพร้อม
ในปี 2012 จึงเป็นปีสำหรับผู้ใช้งานผ่าน Android
โดยทำการสร้าง Android app ในเวลา 3 เดือน ด้วยทีมงาน 3 คน

เมื่อทำการเปิดตัวเพียง 12 ชั่วโมง
จำนวนผู้ใช้งานนั้นเพิ่มสูงอย่างมหาศาล
ซึ่งสิ่งนี้มันทำให้เห็นว่า infrastructure ของ Instagram นั้น
สามารถรองรับได้อย่างดีหรือไม่ !!

ในปีที่ 2 นั้น สิ่งที่มีพัฒนาได้เรียนรู้ คือ
สำหรับการพัฒนาระบบเพียง platform เดียวนั้น
มันช่วยให้ทีม focus กับงานที่ทำเพียงอย่างเดียว
ช่วยทำให้งานที่ออกมามันดี

Do fewer things better

แต่เมื่อทำการขยายไป platform อื่น ๆ เช่น Android
ด้วยการสร้างทีมเล็ก ๆ ขึ้นมา
ประกอบไปด้วยคนที่มีประสบการณ์ และหน้าใหม่เข้าด้วยกัน
เพื่อสร้าง Android app โดยเฉพาะ
ผลที่ได้ตามมาก็คือ ทีมก็ focus ในงานนั้น ๆ
และได้ผลที่ดีออกมา

ปีที่ 3 ผลกระทบจาก พายุทอนาโดถล่มที่รัฐเวอจิเนีย

จากเหตุการณ์นี้ ส่งผลทำให้ระบบ Instagram ล่ม
ซึ่งเหมือน ๆ กับระบบใหญ่ ๆ มากมาย
ที่ใช้บริการของ Amazon Web Service

แต่ว่าทาง Instagram สามารถนำระบบกลับมาได้ภายใน 36 ชั่วโมง
นั่นคือ มีระบบ automated infrastructure ที่ดีนั่นเอง
จากเดิมที่เป็น shell script มากมาย อยู่อย่างกระจัดกระจาย
ต่อมาได้เปลี่ยนเป็นระบบ provisioning ที่ดี
โดยนำ Chef มาใช้งาน

รวมไปถึงการเก็บข้อมูลกระจายอยู่ทั่วทั้งโลก (Distributed data system)
ในปัจจุบันได้แยกข้อมูลไปในแต่ละทวีป
ตามที่อยู่ของผู้ใช้งานของแต่ละคน
เพื่อลดปัญหาจากการล่มของระบบนั่นเอง

ในปีที่ 3 นั้น สิ่งที่มีพัฒนาได้เรียนรู้ คือ
เรื่อง script สำหรับการจัดการ infrastructure เป็นสิ่งที่สำคัญอย่างมาก
มันช่วยเรื่อง disaster-recovery ได้เป็นอย่างดี

ปีที่ 4 Instagration

ในปี 2013 หรือ ปีที่ 4 ของระบบ Instagram
มีผู้ใช้งานกว่า 200 ล้านคนในทุก ๆ เดือน
ดังนั้น การ migrate ระบบ เพื่อไปใช้ infrastructure ของ Facebook จึงเกิดขึ้น
นั่นคือต้องย้ายจาก Amazon EC2 มายัง Facebook Data Center
เป็นความท้าทายของทีมงานอย่างมาก
แต่ก็ผ่านไปได้ด้วยดี

ในปีที่ 4 นั้น สิ่งที่มีพัฒนาได้เรียนรู้ คือ

Don’t reinvent the wheel

เนื่องจากทำการย้าย infrastructure ไปยังระบบของ Facebook
ทำให้ระบบงานเสถียร และ เร็วขึ้นอย่างมาก
รวมทั้งยังได้ใช้เครื่องมือต่าง ๆ ของ Facebook อีกด้วย
เช่น Spam fighting เป็นต้น

ปีที่ 5 Trend on Instagram

ช่วงต้นปีได้สร้างระบบ Search & Explore ขึ้นมาใหม่
โดยได้เพิ่มความสามารถให้ดีขึ้น ง่ายขึ้น และ ได้ผลที่น่าสนใจมากขึ้นกว่าเดิม
รวมไปถึง trend การใช้ hashtag และ สถานที่ต่าง ๆ อีกด้วย

ยังไม่พอนะ
มีระบบ ranking และ นำเสนอข้อมูลที่สำคัญ ๆ อีกด้วย

ซึ่งมันทำให้เราเห็น trend ต่าง ๆ ที่เกิดขึ้นในระบบ
ถือเป็นการปรับปรุง feature ที่สำคัญอย่างมากมาย
โดยได้นำเอาความรู้ของ Machine Learning มาใช้งาน
แน่นอนว่าได้มีการว่าจ้างงานสำหรับผู้เชี่ยวชาญด้านนี้มาโดยเฉพาะ

ในปีที่ 5 นั้น สิ่งที่มีพัฒนาได้เรียนรู้ คือ
การเริ่มต้นทำในสิ่งที่เรียบง่ายนั้น
มันอาจจะไม่จบเพียงเท่านั้น
มันต้องมีการปรับปรุง เปลี่ยนแปลง อยู่อย่างตลอดเวลา
ด้วยการเรียนรู้จาก product
ด้วยการเรียนรู้จากผู้ใช้งาน

เพื่อให้ product สามารถตอบรับกับการเปลี่ยนแปลงของกลุ่มผู้ใช้งาน
ที่มีอัตราการเติบโตสูงมาก ๆ
ดังนั้นจึงได้สร้างทีมขึ้นมาจัดการโดยเฉพาะ เรียกว่า ทีม Datagram

เรามาดูกันต่อไปว่าอีก 5 ปีข้างหน้าของ Instagram จะเป็นอย่างไรต่อไป ?