Archive for the 'เว็บไซต์' Category

Sodia เครื่องมือโพสข้อความอัตโนมัติบน Facebook Page

ทุกวันนี้บริษัทไหนไม่มี Fanpage บน Facebook นอกจากจะโดนหาว่าเชยแล้ว ยังพลาดโอกาสที่สร้างช่องทางการประชาสัมพันธ์ สินค้า , brand ฯลฯ ของบริษัท ต่อมาเนื่องจากการเปิดช่องทาง มาพร้อมกับการดูแลลูกค้าบน Facebook สิ่งที่บริษัท SME , บริษัทใหญ่ เจอก็คือ “ไม่มีคนดูแล” เลยต้องจ้างคนดูแล Facebook Page นั้นๆไปซึ่งในสมัยก่อนนั้นการดูแลด้วยตัวเองเป็นเรื่องยากมาก เพราะไม่มีการ Notification เวลามีคนมาตอบข้อความสำหรับ Admin เลย (แต่เดียวนี้มีแล้วนะครับ)

ต่อมาคือไม่มีเวลาโพสข้อความในเวลาที่เหมาะสม เพราะต้องเอาเวลาไปทำธุรกิจ เลยต้องจ้างคนมา Post ข้อความตามเวลาที่อยากให้เขาโพส แล้วเนื่องจากทุกวันนี้ Facebook สามารถส่งข้อความเตือน มายัง Admin ได้แล้ว งั้นสิ่งที่ SME ต้องการก็คือ “คนคิดคำพูดและระบบโพสอัตโนมัติ” ซึ่งทำให้ Business เขาทำงาน Flow ปกติหรืองานเพิ่มขึ้นไม่มากทางบริษัท Onebitmatter.com เลยได้สร้าง Tools ขึ้นมาชื่อว่า Sodia ลองไปดู video อธิบายกัน

สรุปเลยแล้วกันใครที่เป็น Social Media Specialist , Media Agency , SMEs ที่ต้องการความสะดวกสบาย และไม่ต้องเสียเงินมากจ้างคนมาดูแล ผมขอแนะนำ Tools ตัวนี้เลยครับ วันนี้ลาไปก่อนสวัสดีครับ

ออกแบบ Pantip 3G ในรูปแบบของโดมินิค

หากใครติดตามข่าวสาร IT คงรู้ว่าตอนนี้ Pantip.com ผลัดใบจาก “วันฉัตร” สู่ “อภิศิลป์” หรือที่เรียกกันบ่อยๆว่า Pantip 3G เนื่องจากวันนี้ผมก็คั้นไม้คั้นมืออยาก ออกแบบระบบ Pantip ในแนวทางของผมเอง (เพื่อจะมีหวังที่ได้ไปช่วยงานพี่บอย @MacroArt) เนื่องจากผมยังไม่เก่งเรื่อง Infrastructure แต่ก็ขอลองนั่งเทียนเขียนดูครับ ติชมกันได้ครับ เอาละครับผมจะวิเคราะห์ไปเป็นส่วนๆครับ

Pantip 3G ควรทำอะไรเป็นลำดับต้นๆ

  • เพิ่มความเร็วในการโหลดหน้าเว็บไซต์
  • ไม่ใช้ Iframe
  • สามารถเข้าจาก Mobile แล้วมีสามารถอ่านได้สะดวก
  • มีระบบ RSS/Atom/Email Notification ในส่วนของ “กระทู้” และ “ความคิดเห็นของกระทู้”
  • Data Mining + Social Commerce
  • Social Media Friendly + SEO
  • HTML5 + RDF
  • YSlow + Google PageSpeed เกรด A

ซึ่งในส่วนนี้จะเป็นจุดที่ทำให้คนใช้ Pantip เยอะยิ่งขึ้นเพราะเมื่อโหลดเร็วคนก็อยากเข้า / เมื่อคนไม่เข้าก็มี Noti เตือนให้เขาเข้า / เมื่อนำไป Share คนก็อยากกด / สุดท้ายเมื่อนำไปแสดงบน Search Engine การใช้ RDF จะทำให้เราสามารถบรรยายข้อมูลได้มากขึ้นกับ Google หรือที่ Google เรียกว่า Rich Snippets

Platform

  • PHP 5.3+ , HipHop for PHP
  • MySQL 5.5+ หรือ Percona Server (อาจจะใช้ MySQL Proxy + Shard-Query เสริมได้)
  • Redis
  • CodeIgniter 1.7.3 หรือ 2.0
  • Zend Server + Job Queue หรือ Job Queue ตัวอื่นๆเช่น Gearman , NJQ
  • MongoDB (Optional)
  • Amazon S3 / CloudFront
  • Varnish (หรือ Reverse Proxy ตัวอื่นๆ)
  • HTML5 Cache Manifest

โดยใช้ CI เพราะผมถนัด + มันเรียนรู้ได้ง่าย , PHP 5.3 เพื่อการทำ OOP + มี Library ใหม่ๆให้ใช้ เสร็จแล้วใช้ MySQL 5.5 เพื่อเก็บข้อมูลตามปกติ , ต่อมาทำไมใช้ Redis แล้ว Memcached ละเป็นผมจะเลือกสักตัวไม่ Redis ก็ Memcached แต่เมื่อมาชั่งน้ำหนักแล้วผมเลือก Redis แล้วที่ไม่ใช้ Memcached เลยเพื่อลดปัญหาการเขียน Code ซ้ำแล้ว Maintenance ลำบาก  ต่อมาเลือก Job Queue แต่ที่ดูแล้วชอบคงหนีไม่พ้นของ Zend Server + Job Queue เพราะใช้ง่าย แต่เสียดายต้องลง Zend Server ซึ่งมาค่า License

สุดท้ายคือ MongoDB ตัวนี้มีหน้าที่เก็บ Log เพียงอย่างเดียวโดยล่าสุด 1.7.5 นั้นมีการทำงานแบบ Durability ทำให้สามารถใช้เครื่องเดียวได้โดยไม่ต้องกลัวข้อมูลศูนย์หายอีกต่อไป (แต่น่าจะช้าลง)  ทั้งนี้ทั้งนั้นสุดท้ายอยู่ที่การเขียน Code / วาง Database อยู่ดีในการทำให้มัน Maintenance ง่ายๆกับมี Performance สูง ส่วนที่มี S3/Cloudfront มาเกี่ยวข้องนั้นจะได้ลดภาระของเครื่องไปอยู่ที่ Amazon แทนซึ่งเสียเงินมากหน่อย แต่เหมือนเป็นการ Outsource งาน โดยไม่ต้องมากลัวเรื่อง Disk เต็มได้ง่ายๆ

ส่วนในเรื่อง Varnish เป็นตัว Reverse Proxy ซึ่งถ้าการแสดงผลเปลี่ยนแปลงก็จะไปอัพเดต Proxy ทำให้ไม่ต้องรอ Request ก่อนแล้วค่อย Check สุดท้ายการใช้ HTML5 Cache Manifest จะช่วยให้การใช้ Bandwidth น้อยลง

การควบคุมคุณภาพ

แน่นอนครับเรื่องหลักๆของ Software ที่ดีต้องมีตัวชี้วัดที่ดี ดังนั้น Process ที่สำคัญในการพัฒนาครั้งใหม่นี้คือ “ตัวชี้วัด” เช่น กิน CPU น้อยกว่าเดิมไหม ? , ใช้ Mem น้อยกว่าเดิมไหม ? รองรับ Throughput เยอะขึ้นไหม ?  Write หรือ Read มากกว่ากัน ?ฯลฯ โดยสุดท้ายเราต้องดูถึงขนาด Function ได้เลยว่า Function ไหนทำให้ระบบงานช้า ! ซึ่งถ้าใช้ Zend Server จะช่วยลดภาระงานประเภทนี้ได้มาก + สุดท้ายเร็วอย่างเดียวไม่ได้ต้องทำงานถูกต้องด้วยดังนั้นไม่ควรพลาดที่จะทำ Automated Test เพื่อการพัฒนาอย่างมั่นใจ ! สุดท้ายแต่ไม่ท้ายสุดการควบคุม Version เพราะเราต้องทำงานหลายคน แล้วเราจะต้องรู้ให้ได้ว่าใครเป็นคนทำอะไร

การสร้างข้อตกลงเพื่อบรรลุเป้าหมาย Scale Out

เนื่องจากงานนี้ทำใหม่ทั้งทีต้องทำให้เมพขิงๆ ดังนั้นการตั้งข้อตกลงในการ Coding จะทำให้มีผลในการทำ Scale Out ได้ซึ่งเป็นเหตุผลหนึ่งที่ถ้าไม่ทำในตัว Application เองก็ควรทำที่ MySQL Proxy (แต่ผมแนะนำให้ทำที่ Proxy ถึงแม้จะเขียนยากหน่อยเพราะมันใช้ภาษา Lua) แล้วการออกแบบ Database จะเป็นส่วนสำคัญ ที่จะทำให้เร็วไม่เร็ว และการ Shard จะช่วยให้เรื่อง Write ได้เร็ว / ส่วน Replication จะทำให้ Read ได้ไว แต่เนื่องจากยุคใหม่นั้นการ Read/Write ที่ไวกว่าคืออยู่บน Mem แต่จำทำยังไงให้มันเร็วได้ทั้ง Read / Write และโอกาสเสียข้อมูลน้อย เป็นผมคงทำ Cache ในระดับ Model และ View ซึ่งเมื่อประกบกับ Varnish ซึ่งเป็น Reverse Proxy แล้ว Performance ก็จะสูงปรี๊ดแต่ประเด่นคือเราไม่ได้มีแค่ Server ตัวเดียว ดังนั้นการทำ Convention ในส่วนการอัพเดต Cache ก็เลยเป็นเรื่องสำคัญ !

ส่วนถ้าดูวิธีนี้เป็นการยุ่งยาก การใช้ Virtualization ก็สามารถทำให้ Scale Out ได้เช่นกัน แต่คราวนี้ก็จะไปหนักไปทาง System Admin มากกว่าทาง Developer ซึ่งการทำ เป็นการเปลี่ยนวิธีการ “แยกที่ทำงาน” เป็น “มีที่เดียวแต่เพิ่มหลังให้ทำงานเร็ว” แต่สุดท้ายการมีที่อยู่แหล่งเดียวก็ไม่สามารถการันตี Availability ได้ดังนั้นอย่างน้อยถ้าจะ VM ก็ควรมีสักสอง

สรุปและทิ้งท้าย

เนื่องจากนี้เป็นการวิเคราะห์ในมุมมองของผม ซึ่งไม่มีตัวเลขชี้วัดเป็นการนั่งเทียนขึ้นมา ซึ่งผมอาจจะมั่ว + ผิดถ้าใครมีข้อคิดเห็นอย่างไรกับเรื่องนี้มา Share กันให้ฟังบ้างนะครับ และหวังว่า Pantip 3G ครั้งนี้จะเป็นการเปลี่ยนแปลงครั้งยิ่งใหญ่ของ Pantip.com ซึ่งทำให้เป็นเว็บ Social Network อันดับหนึ่งของไทยตลอดไปครับ

Webbynode โฮส VPS ราคาถูก

 website  greenshot 2010 09 17 17 50 50

เนื่องจากผมมีสิ่งที่อยากลองมากมายบนโลกเว็บเทคโนโลยีที่มีอยู่เต็มไปหมด แต่ผมไม่อยากให้มันอยู่ในเครื่องผมแต่ก็อยากจะมี "สนามเด็กเล่น" เล็กๆที่ผมจะลองอะไรใหม่ๆได้บ้าง ผมเลยหาพวกโฮส VPS ก็มาเจอตัวนี้ครับ ซึ่งมีราคาถูกสุด 9.99$ ต่อเดือน (coupon ชื่อ "davidt" ลดไป 99 cent ในเดือนแรก) เสร็จแล้วผมตั้งใจจะเอามันมาเป็นตัวหัด setup ระบบเองอะไรเอง แต่ผมก็ได้รู้ข้อเท็จจริงอย่างหนึ่งว่า เฮ้ย ! เดียวนี้ทำไม Deploy ง่ายงี้วะ ! โดยเจ้า Webbynode นั้นมีสิ่งนี้

website  greenshot 20100917 175557

ผมจะสรุปสั้นๆนะครับคือมันเป็นตัวช่วย Deploy โดยแบบ RAPP คือการ Deploy ที่สามารถใช้การ Deploy งานของเราด้วย Git ได้ครับสะดวกไปอีกแบบ , แบบที่สอง ReadyStacks ก็คือลง Django หรือ LAMP หรือ Rails ง่ายๆเพียง 3 คลิกครับ ส่วนสุดท้ายคือ Linux คือลง Linux ตัวเปล่าๆมาให้เรา ไปทำเอาเองครับ

โดยเจ้า webbynode เราจะไปลง program ต่างๆอย่างไรนะหรอครับ เราต้อง SSH ไปลงครับ (จริงๆมันมี Web Console แต่ไม่เคยใช้ได้เลย) โดย account ที่เราใช้เข้าไปนั้นคือ root@ip ครับซึ้งใน webbynode นั้นไม่ได้สามารถ Remote ไปดูแบบเห็น Windows Management ได้ ดังนั้นเราต้อง Command-line ล้วน!! แต่ไม่เป็นไรโดมทำได้ !

มาสรุปข้อดีของ VPS กันนะครับ

  • ทำได้มากกว่า Shared Hosting
  • สามารถ run crontab ได้
  • สามารถลงอะไรเพิ่มเองได้
  • สามารถเลือกลง Web Server ที่นอกเหนือจาก Apache ด้วยตนเองได้
  • สามารถลองผิดลองถูกได้มาก ทำให้ได้ความรู้เยอะกว่าทำบน Shared Host
  • ถ้าเล่นจนเละแล้วไม่ต้องกลัว Deploy ใหม่ง่ายนิดเดียว
  • ฯลฯ

โดยสรุปแล้วผมแนะนำให้คนที่ไม่อยากใช้เครื่องตัวเองเป็นหนูทดลอง และไม่ได้มีความรู้เชี่ยวชาญทางด้าน System Admin มากนักผมแนะนำให้ใช้พวก VPS ที่มีบริการสำหรับทำเว็บไว้รองรับ แล้วเราจะได้ไม่ต้องมาเสียเวลา Config เสียเงินเสียเวลามากในการแค่ “ทดลองเล่นศึกษาหาความรู้” ครับผม

Next Page »