สวัสดีเช้าวันอังคารที่ 30 มีนาคม 2553 ครับเพื่อนพ้องน้องพี่ ห่างหายจากการเขียนบทความลงใน welovebug ไปเกือบ 3 สัปดาห์ เนื่องจากมีภารกิจนิดหน่อย เช้าวันนี้ก็เลยหยิบยก Case Study ของการทำ Performance Testing มาฝากเพื่อนพ้องน้องพี่กันครับ
Case Study Performance Testing ที่นำมาเสนอวันนี้มีชื่อว่า How MySpace tested their live site with 1 million concurrent users ซึ่งผมได้รับการแนะนำบทความต้นฉบับมาจาก คุณภูวดล (@AuntiSPAM) ณ addmoremem.com ขอขอบคุณ คุณภูวดล ณ addmoremem.com ไว้ ณ ที่นี้ด้วยครับ
ลองตามไปดูก่อนหน่อยครับว่า MySpace ทำยังไงในการที่จะทดสอบ Performance Testing 1 ล้าน concurrent users

รูปจาก http://www.albertsmusicgifts.com
MySpace เป็นเว็บไซต์ในรูปแบบของเครือข่ายชุมชนออนไลน์ ชื่อดังเว็บหนึ่ง ให้บริการทำเว็บส่วนตัว บล็อก การเก็บ ภาพ วิดีโอ ดนตรี และเชื่อมโยงเข้ากับกลุ่มคนอื่น MySpace ก่อตั้งเมื่อ สิงหาคม พ.ศ. 2546 โดย ทอม แอนเดอร์สัน และ คริสโตเฟอร์ เดอโวล์ฟ ในปัจจุบัน MySpace มีพนักงานกว่า 300 คน และในตัวเว็บไซต์มีผู้ลงทะเบียนมากกว่า 100 ล้านคน และมีผู้ลงทะเบียนใหม่ประมาณ 200,000 คนต่อวัน (รายละเอียดเกี่ยวกับ MySpace สามารถอ่านเพิ่มได้ที่ Wikipadia)
Site: http://myspace.com
มาดู Architecture ของ MySpace กันก่อนนะครับ จะได้เห็นภาพเบื้องต้นก่อนว่ามีอะไรอยู่บ้างในระบบของ MySpace
ทั้งข้อมูล Platform และ ตัวเลข 6 ตัวเลขที่นำมาเสนอต่างน่าสนใจมากสำหรับระบบที่ใช้ผลิตภัณฑ์ Microsoft Windows เพื่อให้บริการ และรองรับจำนวนการให้บริการกับผู้ใช้เป็นจำนวนมาก ข้อมูลเพิ่มเกี่ยวกับ MySpace Architecture แบบละเอียดสามารดอ่านเพิ่มเติมได้ที่ MySpace Architecture
สำหรับเพื่อนพ้องน้องพี่ที่เคยทำ Performance Testing มานั้น จำนวน concurrent users ที่เราคุยกันจะเป็น หลักร้อย หรือ หลักพัน แต่นี่ MySpace ได้ทำการทดสอบจำนวน concurrent users ที่ 1 ล้าน!!! เราลองมาดูกันว่า MySpace สามารถสร้าง 1 ล้าน concurrent users ได้อย่างไรครับ
ข้อมูลที่ถูกนำเสนอในบทความนี้มาจาก How MySpace tested their live site with 1 million concurrent users
การดำเนินการทดสอบ Performance Testing ของ MySpace ที่จำนวน 1 ล้าน concurrent users เกิดขึ้นเมื่อประมาณเดือนธันวาคม 2552 MySpace ได้ปล่อย Features Streaming Music Video ใน New Zealand ซึ่งสามารถที่จะดู music video, ค้นหา music video ของศิลปิน, สร้าง list of favorites เป็นต้น
MySpace เล็งเห็นว่า Features ใหม่ที่ได้เปิดให้บริการไปนั้นจะสร้าง Load เพิ่มขึ้นมากให้กับ Architecture ของ MySpace ที่ให้บริการอยู่ จึงได้ร่วมมือกับ SOASTA ในการออกแแบบ และดำเนินการทดสอบ Performance Testing ที่ 1 ล้าน concurrent users เพื่อทดสอบระบบ และแก้ไขปัญหาที่จะเกิดขึ้นก่อนที่จะให้บริการ Features ใหม่กับผู้ใช้ เพราะถ้าไม่ทำ Performance Testing งานอาจจะเข้าได้
SOASTA คือใคร?
SOASTA CloudTest was built to support all common Web application testing types: Load, Performance, Functional, and UI/Ajax either inside your firewall or inside “The Cloud”.
สำหรับผู้ที่สนใจสามารถเข้าไปอ่านรายละเอียดของ SOASTA ได้ที่ http://www.soasta.com/
MySpace ตั้ง Goal ของการทดสอบ Performance Testing ไว้ที่ระบบจะต้องสามารถรองรับ และให้บริการ เมื่อมีผู้ใช้งานอยู่ในระบบ 1ล้าน คนพร้อมกัน เพื่อจะ monitor ดูการทำงานของระบบไม่ว่าจะเป็นส่วนของ Servers ต่างๆ และ การบริหารจัดการ Traffic ด้วยเช่นกัน ดังนั้นด้วย SOASTA จึงนำเสนอ CloudTest เข้ามาเพื่อใช้ในการสร้างจำนวน concurrent users ที่ 1 ล้าน และได้ข้อสรุปของจำนวน Load ที่จะต้องสร้างขึ้นเพื่อใช้ในการทดสอบที่ 1 ล้าน concurrent users (virtual user) ดังนี้
อืม…เป็นการทดสอบที่น่าสนใจมากๆ และส่วนตัวผมว่าในประเทศไทยเรา ณ ขณะนี้คงจะไม่มีใครที่จะลงทุนทำได้ขนาดนี้ หลายๆ คน จะสะดุดตากับ 800 Amazon EC2 ว่ามันคืออะไร?
Amazon ได้รุกตลาดของ Cloud Computing โดยเปิดให้บริการที่ชื่อว่า Amazon Elastic Compute Cloud (Amazon EC2) รายละเอียดเพิ่มเติมสามารถอ่านได้ที่
มาต่อกันด้วย Test Environment ของการทดสอบในครั้งนี้ของ MySpace ว่าเป็นอย่างไร ทางทีม SOASTA ดำเนินการออกแบบ และทดสอบ โดยการเรียกไปยัง API เพื่อสร้าง Request เข้าไปที่ระบบของ MySpace โดยการสร้างจำนวน concurrent users ,เก็บผลจากการทดสอบ และวิเคราะห์ผลการทดสอบ SOASTA ได้ขอให้ทาง Amazon จัดเตรียม EC2 โดยกำหนด Specification ไปดังนี้
รวมทั้งเตรียม EC2 เพื่อใช้เป็นระบบ Test Controller โดยกำหนด Specification ไปดังนี้
รูปร่างหน้าตาของ Test Environment Architecture จึงเป็นไปตามรูปภาพด้านล่างนี้
รูปจาก http://highscalability.com
ผลที่ได้จากการทดสอบ 1 ล้าน concurrent users จาก Amazon EC2 ไปยัง MySpace Infrastructure สรุปได้ดังต่อไปนี้
สามารถอ่านรายละเอียดเพิ่มเติมได้จาก How MySpace tested their live site with 1 million concurrent users
จาก Case Study ที่หยิบยกมาฝากนั้น ผมคัดลอก และสรุปมาเฉพาะส่วนที่สำคัญๆ เพื่อให้ได้เเพื่อนพ้องน้องพี่ทั้งที่เป็น System Analysis, Developer, Programmer, Tester และบุคคลที่เกี่ยวข้องการการพัฒนา Software หรือ System รวมทั้งทีม Operation ที่จะต้องดูแล Software หรือ System ได้เห็นว่า Performance Testing นั้นสำคัญไฉน
ไม่ว่า System Analysis จะเก๋าในการวิเคราะห์และออกแบบ Software หรือ System ขนาดไหน
ไม่ว่า Developer หรือ Programmer จะเทพเพียงใด
ไม่ว่า Tester จะมีชั่วโมงบินสูงเพียงใด
แต่ก็ไม่สามารถจะบอก หรือการันตีได้ว่า Software หรือ System นั้น จะสามารถให้บริการได้อย่างราบรื่น และจะไม่มีปัญหาเรื่องของ Performance และ Capacity เมื่อเปิดให้ผู้ใช้เข้ามาใช้บริการ และให้บริการไปเรื่อยๆ โดยมี จำนวนผู้ใช้เพิ่มขึ้น, จำนวนของ Content เพิ่มขึ้น และจำนวนข้อมูลใน Database เพิ่มขึ้น เป็นต้น
ดังนั้น Performance Testing ช่วยท่านได้ในการทดสอบ และวิเคระาห์ผลออกมาว่า Software หรือ System ที่ท่านทั้งหลายได้ออกแบบ พัฒนา และทดสอบ มานั้นจะ อึด ถึก ทนทาน ได้ขนาดไหน และมีชีวิตอยู่รอดได้อีกนานเพียงใด
Service Down หรือ Web ล่ม มันมิใช้เพียง ขำๆ แล้วพูดว่า “ไม่เป็นไร สั่ง Reboot Server เดี๋ยวก็กลับมาใช้ได้แล้ว” แต่มันเป็น หน้าตา และภาพลักษณ์ของ บริษัท และองค์กร ของท่านทั้งหลายด้วยเช่นกัน รวมทั้งตัวท่านด้วย (ไปคิดต่อเอาเองครับ : )
เช่นเดิมที่เคยบอกไว้ การแก้ปัญหา Performance กับระบบที่ให้บริการอยู่บน Production มันไม่สนุก และเหนื่อยมาก
May the force be with you
7 Responses to Case Study: How MySpace tested their live site with 1 million concurrent users
Tweets that mention Case Study: How MySpace tested their live site with 1 million concurrent users | WeLoveBug.Com | Software Testing Blog -- Topsy.com
March 30th, 2010 at 9:47 am
[...] This post was mentioned on Twitter by welovebug, Weera Kasetsin. Weera Kasetsin said: RT @zyracuze: [Blog]: Case Study: How MySpace tested their live site with 1 million concurrent users http://bit.ly/b7Tuzu #welovebug [...]
Bugz Bunny
March 30th, 2010 at 4:54 pm
อ่าน ๆ ไป ยังมึน ๆ อยู่ แต่ว่า ชื่อคุณภูวดล พิมพ์ผิดค่ะ มี คุณภูวิดล ด้วย เดี๋ยวพี่เค้างอนนะค่ะ คริ ๆๆๆ
Zyracuze
March 30th, 2010 at 6:42 pm
ขอบใจจ้า แก้ไขแหละ พิมพ์เพลินไปหน่อย อิอิ
up1
April 2nd, 2010 at 4:13 pm
เรื่องนี้สำคัญมากๆ ครับ แหล่มเลย
Neopom
April 3rd, 2010 at 1:45 pm
ขอบคุณคับ
ยังไม่ต้อง 1 M Concurrent
แค่ 50 Concurrent ยังไม่รอดเลย T_T
ที่พักเชียงใหม่
April 6th, 2010 at 7:39 pm
เรื่องนี้สำคัญมากๆ ขอบคุณ
NineMee
May 15th, 2010 at 1:16 pm
สุดยอดเลยครับ แต่ว่าผมคงไม่มีอุปกรณ์เครื่องไม้เครื่องมือมาทดสอบระดับนี้หรอกครับ