in Article

Community V.S. Commercial เลือกอย่างไรดี

ก่อนบทความนี้ทำใจให้เป็นกลางและเปิดใจรับในสิ่งที่ผมกำลังจะบอกเล่าว่าทำไม คุณควรเลือก Commercial หรือควรเลือก Community ผมมองดูความก้าวหน้าของกระบวนการผลิตซอฟต์แวร์ไม่ว่าจะอยู่ใน platform ใดๆ Windows, Linux, Mac หรือ Solaris สิ่งที่หลากหลายบริษัทที่พัฒนาซอฟต์แวร์ในแนวทางโอเพนซอร์สมักจะทำคือการ เปิดให้ซอฟต์แวร์ของตัวเองเป็นโอเพนซอร์ส 1 เวอร์ชัน ส่วนอีกเวอร์ชันนึงขาย แต่ก้อไม่เสมอไปเพราะเวอร์ชันที่เป็นโอเพนซอร์สบริษัทเหล่านั้นก้อยังสามารถ หารายได้จากการซัพพอร์ทได้อีกเช่นกัน หลายๆคนอาจเคยได้ยินเรื่อง Duel Licensing หรือซอฟต์แวร์ที่ใช้สัญญาอนุญาติแบบคู่ คือเป็นโอเพนซอร์สและเป็น commercial ด้วย วิธีการแบบนี้มีเยอะให้เห็นจนชินตา เอาเป็นว่าอย่างไปยุ่งกับเขาเลยครับ เราเป็นผู้บริโภค เรามีสิทธิ์เลือกที่จะใช้ซอฟต์แวร์โอเพนซอร์สในแบบใด Pure Open Source หรือ Commercial Open Source
เอาล่ะถ้าเราคิดกันเล่นๆ การที่ผลิตซอฟต์แวร์ออกมา 2 เวอร์ชั่น รุ่นหนึ่งเป็น Open Source สำหรับชุมชน สำหรับลุกค้าหน้าใหม่ สำหรับคนอยากลอง อีกรุ่นหนึ่งเป็น Commercial สำหรับองค์กรที่อยากใช้จริงๆ จังๆ ผู้มีกระเป๋าหนัก? ผู้ที่ต้องการซัพพอร์ท ฯลฯ 108 เหตุผลที่จะเอามาอ้างกันนะครับ มีอย่างหนึ่งที่เป็นเรื่องที่น่าคิดคือเรื่อง TCO (Total Cost Ownership)? ที่ถูกนำมาเป็นจุดตัดสินใจของลูกค้า เอาล่ะอย่างน้อยก้อเรื่อง feature และ price performance ล่ะ ยกตัวอย่างเช่น ผมอยากได้ Open Source Mail Solution สักตัวหนึ่งเขามี feature เยอะมากประมาณว่าเห็นแล้วอยากใช้เลยล่ะ แต่ทางบริษัทที่เป็นตัวแทนจำหน่ายและรับ Implement มีทางเลือกให้ คือ Community Version และ Commercial Version ซึ่งแน่นอนต้องมีตารางเปรียบเทียบ feature และการบริการต่างๆ อย่างแน่นอน ซึ่งก้อรู้อยู่แล้วว่าอันที่เสียเงินมันย่อมดีกว่า และ feature คุ้มค่ากับการลงทุนจริงๆ มีบาง feature ก้อแทบไม่ได้จำเป็นต้องใช้เลยก้อมี เอ้าแล้วจะเลือกอย่างไร? หากมองที่ TCO ผมจะยกตัวอย่างโอเพนซอร์ซอฟต์แวร์ระบบบริหารจัดการฐานข้อมูลตัวหนึ่งก้อ แล้วกันครับ ซอฟต์แวร์โอเพนซอร์ตัวที่ว่านี้คือ MySQL คงจะคุ้นๆ นะครับ ผมเอาตัวอย่างจากที่ผมเลือกว่าผมทำไมเลือกใช้ MySQL แทนที่จะเลือก Microsoft SQL Server 2005 หรือ Oracle 10g ผมพัฒนาซอฟต์แวร์และโซลูชั่นทางด้านโอเพนซอร์สมาได้สัก 7-8 ปีได้แล้วครับ ปัญหาใหญ่คือผมมักจะพัฒนาซอฟต์แวร์ให้ใช้งาน Unix/Linux เป็นหลัก ดังนั้นเรื่อง Windows Server หรืออะไรก้อตามผมแทบจะไม่ได้หันไปมอง แต่ทว่าเวลาไป deploy ให้ลูกค้าจริงๆ กลับเกิดปัญหาเช่น องค์กรเขาเป็น Windows based คือเครื่องแม่ข่ายเป็น Windows Server และอะไรๆ ก้อเป็น Windows ตั้งแต่ระบบปฏิบัติการ Application Server รวมไปถึงระบบฐานข้อมูล แต่นั่นไม่ใช่ปัญหากับ Solution ผมหรอก นั่นเป็นเรื่องของลุกค้าจะเลือกอะไร (ผมเป็นคนขายของนี่ครับ) เท่าที่ดูอาการของลูกค้าแล้ว MySQL Community คงไม่พอครับ เพราะ feature ในเรื่องการจัดการ (Manageability) ตัว MySQL Community มีไม่เพียงพออย่างแน่นอน และเรื่องที่สำคัญคือการ tune up และการจัดการปรับแต่งค่าอัตโนมัติ แต่ถ้าให้ผมเป็นคนเลือกผมจะเลือก MySQL Enterprise ยืนพื้นไว้ก่อน เพราะบางองค์กร (ในกรณีนี้) ถึงขั้นวิกฤต เรียกได้ว่าเห็นหน้าจอดำๆ แล้วเกิดอาการคันบริเวรลำคอขึ้นมาทันที IT Manager และ CIO ก้อเริ่มเกาหัวแกรกๆ กันแล้ว เอาล่ะจากปัญหาของลูกค้าก้อกลับกลายมาเป็นปัญหาของผมในทันที เพราะหากซอฟต์แวร์บริหารจัดการไม่สมารถจัดการ Application Server หรือระบบฐานข้อมูลได้ง่าย เขาก้อไม่เลือกใช้เช่นกัน นี่ยังไม่รวม Solution ที่ผมจะขายว่าจะเกิดอาการระคายเคืองกับคนในองค์กรเขาอีกหรือเปล่านะครับ (ล้อเล่นน่า)
เอ้าลองมาดู cost กันเล่นๆ ผมขาย Software Solution ของผมในราคา 680,000 บาท? ติดตั้งบน Server HP Proliant DL180 G5 เป็น Quad-Core Xeon E5405 x 2 (2.00GHz , 1333MHz FSB)? ราคาประมาณ 52,900 บาท (ก้อคือขายเครื่องพร้อมซอฟต์แวร์ ตัดปัญหาเรื่องเครื่องเซิร์ฟเวอร์ที่ของลูกค้าที่ประสิทธิภาพหรือสเปกไม่โดน ใจทิ้งไป) ซอฟต์แวร์ของผมใช้ฐานข้อมูลอะไรก้อได้ MySQL, Microsoft SQL Server หรือ Oracle 10g (เจ๋งมั๊ย) หากมาพิจารณาว่าผมต้องเสียค่าใช้จ่ายในเรื่องซอฟต์แวร์ระบบบริหารจัดการฐาน ข้อมูลในระยะเวลา 3 ปี? (เอาแค่ 3 ปีก้อพอ) ลองดูตารางข้างล่างกันเล่นๆ ครับ

เอ้าลืมคำนวณ cost ระบบปฏิบัติการ กับ Application Server เฉยเลย เอาเป็นว่าถ้าคุณใช้ Windows Server ก้อคงเห็น TCO ที่แตกต่างกันอย่างชัดเจนอยู่แล้ว และถ้าคุณมีเจ้าหน้าที่ด้าน IT เก่งๆ พอสามารถจัดการกับ MySQL Community Version ได้ cost ในส่วน Subscription Support จะลดลงไปได้มาก คงไม่เหลือ 0 บาท ครับเพราะยังไงๆ ก้อต้องจ่ายเงินให้กับเจ้าหน้าที่ IT อยู่ดี คงไม่จ้างแค่พอระบบทำงานได้แล้ว ก้อไล่เจ้าหน้าที่ IT ออกไปละมั๊งครับ 😛